1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 textual,
7 universal-pathlib,
8 adlfs,
9 aiohttp,
10 gcsfs,
11 paramiko,
12 requests,
13 s3fs,
14 pythonOlder,
15}:
16
17buildPythonPackage rec {
18 pname = "textual-universal-directorytree";
19 version = "1.7.0";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "juftin";
26 repo = "textual-universal-directorytree";
27 tag = "v${version}";
28 hash = "sha256-e9i6P+KQnGbFwCsNiu2eLJFg3fpcR2/vl/FVWOBqWUQ=";
29 };
30
31 nativeBuildInputs = [ hatchling ];
32
33 propagatedBuildInputs = [
34 textual
35 universal-pathlib
36 ];
37
38 optional-dependencies = {
39 remote = [
40 adlfs
41 aiohttp
42 gcsfs
43 paramiko
44 requests
45 s3fs
46 ];
47 };
48
49 pythonImportsCheck = [ "textual_universal_directorytree" ];
50
51 meta = with lib; {
52 description = "Textual plugin for a DirectoryTree compatible with remote filesystems";
53 homepage = "https://github.com/juftin/textual-universal-directorytree";
54 changelog = "https://github.com/juftin/textual-universal-directorytree/releases/tag/v${version}";
55 license = licenses.mit;
56 maintainers = with maintainers; [ figsoda ];
57 };
58}