Skip to content

Commit 9c72c1c

Browse files
authored
python312Packages.dvc: refactor (#386940)
2 parents b9fbbac + 13a5009 commit 9c72c1c

File tree

6 files changed

+182
-14
lines changed

6 files changed

+182
-14
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
lib,
3+
buildPythonPackage,
4+
dvc-objects,
5+
fetchPypi,
6+
ossfs,
7+
pythonOlder,
8+
setuptools-scm,
9+
}:
10+
11+
buildPythonPackage rec {
12+
pname = "dvc-oss";
13+
version = "3.0.0";
14+
pyproject = true;
15+
16+
disabled = pythonOlder "3.9";
17+
18+
src = fetchPypi {
19+
inherit pname version;
20+
hash = "sha256-EEf3NAIvzSuW0ysGv24JIc0KZYEPf8HpsPrCmhR7apo=";
21+
};
22+
23+
# Prevent circular dependency
24+
pythonRemoveDeps = [ "dvc" ];
25+
26+
build-system = [ setuptools-scm ];
27+
28+
dependencies = [
29+
dvc-objects
30+
ossfs
31+
];
32+
33+
# Circular dependency
34+
# pythonImportsCheck = [ "dvc_ssh" ];
35+
36+
meta = with lib; {
37+
description = "Alibaba OSS plugin for dvc";
38+
homepage = "https://pypi.org/project/dvc-oss/";
39+
changelog = "https://github.com/iterative/dvc-oss/releases/tag/${version}";
40+
license = licenses.asl20;
41+
maintainers = with maintainers; [ fab ];
42+
};
43+
}

pkgs/development/python-modules/dvc-ssh/default.nix

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,39 @@
66
fetchPypi,
77
setuptools-scm,
88
sshfs,
9+
pythonOlder,
910
}:
1011

1112
buildPythonPackage rec {
1213
pname = "dvc-ssh";
13-
version = "4.1.1";
14+
version = "4.2.1";
1415
pyproject = true;
1516

17+
disabled = pythonOlder "3.9";
18+
1619
src = fetchPypi {
17-
inherit pname version;
18-
hash = "sha256-lvC6oAXQR4u7s+11n6NgQExPc9yrq3JAmmXtuOw22tI=";
20+
pname = "dvc_ssh";
21+
inherit version;
22+
hash = "sha256-ld6uaAIA+8lHK/TjKtrjtmGKj5847SBMYYvKKN+MkS4=";
1923
};
2024

2125
pythonRemoveDeps = [
2226
# Prevent circular dependency
2327
"dvc"
2428
];
2529

26-
nativeBuildInputs = [
27-
setuptools-scm
28-
];
30+
build-system = [ setuptools-scm ];
2931

30-
propagatedBuildInputs = [
32+
dependencies = [
3133
bcrypt
3234
dvc-objects
3335
sshfs
3436
];
3537

38+
optional-dependencies = {
39+
gssapi = [ sshfs ];
40+
};
41+
3642
# bcrypt is enabled for sshfs in nixpkgs
3743
postPatch = ''
3844
substituteInPlace setup.cfg --replace "sshfs[bcrypt]" "sshfs"
@@ -47,7 +53,7 @@ buildPythonPackage rec {
4753
# ];
4854

4955
meta = with lib; {
50-
description = "ssh plugin for dvc";
56+
description = "SSH plugin for dvc";
5157
homepage = "https://pypi.org/project/dvc-ssh/${version}";
5258
changelog = "https://github.com/iterative/dvc-ssh/releases/tag/${version}";
5359
license = licenses.asl20;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
lib,
3+
buildPythonPackage,
4+
dvc-objects,
5+
fetchPypi,
6+
pythonOlder,
7+
setuptools-scm,
8+
setuptools,
9+
webdav4,
10+
}:
11+
12+
buildPythonPackage rec {
13+
pname = "dvc-webdav";
14+
version = "3.0.0";
15+
pyproject = true;
16+
17+
disabled = pythonOlder "3.9";
18+
19+
src = fetchPypi {
20+
inherit pname version;
21+
hash = "sha256-Zefu8uvINBWo3b3LV5vyGaN5fGfnpi1FaMXILeK2pQg=";
22+
};
23+
24+
# Prevent circular dependency
25+
pythonRemoveDeps = [ "dvc" ];
26+
27+
build-system = [
28+
setuptools
29+
setuptools-scm
30+
];
31+
32+
dependencies = [
33+
dvc-objects
34+
webdav4
35+
];
36+
37+
# Circular dependency
38+
# pythonImportsCheck = [ "dvc_webdav" ];
39+
40+
meta = {
41+
description = "Webdav plugin for dvc";
42+
homepage = "https://pypi.org/project/dvc-webdav/";
43+
license = lib.licenses.asl20;
44+
maintainers = with lib.maintainers; [ fab ];
45+
};
46+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
lib,
3+
buildPythonPackage,
4+
dvc-objects,
5+
fetchPypi,
6+
fsspec,
7+
pythonOlder,
8+
requests-kerberos,
9+
setuptools-scm,
10+
setuptools,
11+
}:
12+
13+
buildPythonPackage rec {
14+
pname = "dvc-webhdfs";
15+
version = "3.1.0";
16+
pyproject = true;
17+
18+
disabled = pythonOlder "3.9";
19+
20+
src = fetchPypi {
21+
inherit pname version;
22+
hash = "sha256-bolIQ9Fc52agXGFt7anZvDYSSOk7+eozi5lublHqD+o=";
23+
};
24+
25+
# Prevent circular dependency
26+
pythonRemoveDeps = [ "dvc" ];
27+
28+
build-system = [
29+
setuptools
30+
setuptools-scm
31+
];
32+
33+
dependencies = [
34+
dvc-objects
35+
fsspec
36+
];
37+
38+
optional-dependencies = {
39+
kerberos = [ requests-kerberos ];
40+
};
41+
42+
# Circular dependency
43+
# pythonImportsCheck = [ "dvc_webhdfs" ];
44+
45+
meta = {
46+
description = "Webhdfs plugin for dvc";
47+
homepage = "https://pypi.org/project/dvc-webhdfs/";
48+
license = lib.licenses.asl20;
49+
maintainers = with lib.maintainers; [ fab ];
50+
};
51+
}

pkgs/development/python-modules/dvc/default.nix

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
{
22
lib,
3-
appdirs,
3+
attrs,
44
buildPythonPackage,
5+
celery,
56
colorama,
67
configobj,
8+
dulwich,
79
distro,
810
dpath,
911
dvc-azure,
@@ -12,22 +14,28 @@
1214
dvc-gs,
1315
dvc-hdfs,
1416
dvc-http,
17+
dvc-oss,
1518
dvc-render,
1619
dvc-s3,
1720
dvc-ssh,
1821
dvc-studio-client,
1922
dvc-task,
23+
dvc-webdav,
24+
dvc-webhdfs,
2025
fetchFromGitHub,
2126
flatten-dict,
2227
flufl-lock,
28+
fsspec,
2329
funcy,
2430
grandalf,
2531
gto,
2632
hydra-core,
2733
importlib-metadata,
2834
importlib-resources,
2935
iterative-telemetry,
36+
kombu,
3037
networkx,
38+
omegaconf,
3139
packaging,
3240
pathspec,
3341
platformdirs,
@@ -60,7 +68,7 @@ buildPythonPackage rec {
6068
version = "3.59.1";
6169
pyproject = true;
6270

63-
disabled = pythonOlder "3.8";
71+
disabled = pythonOlder "3.9";
6472

6573
src = fetchFromGitHub {
6674
owner = "iterative";
@@ -85,24 +93,29 @@ buildPythonPackage rec {
8593

8694
dependencies =
8795
[
88-
appdirs
96+
attrs
97+
celery
8998
colorama
9099
configobj
91100
distro
92101
dpath
102+
dulwich
93103
dvc-data
94104
dvc-http
95105
dvc-render
96106
dvc-studio-client
97107
dvc-task
98108
flatten-dict
99109
flufl-lock
110+
fsspec
100111
funcy
101112
grandalf
102113
gto
103114
hydra-core
104115
iterative-telemetry
116+
kombu
105117
networkx
118+
omegaconf
106119
packaging
107120
pathspec
108121
platformdirs
@@ -126,17 +139,20 @@ buildPythonPackage rec {
126139
++ lib.optionals enableGoogle optional-dependencies.gs
127140
++ lib.optionals enableAWS optional-dependencies.s3
128141
++ lib.optionals enableAzure optional-dependencies.azure
129-
++ lib.optionals enableSSH optional-dependencies.ssh
130-
++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]
131-
++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
142+
++ lib.optionals enableSSH optional-dependencies.ssh;
132143

133144
optional-dependencies = {
134145
azure = [ dvc-azure ];
135146
gdrive = [ dvc-gdrive ];
136147
gs = [ dvc-gs ];
137148
hdfs = [ dvc-hdfs ];
149+
oss = [ dvc-oss ];
138150
s3 = [ dvc-s3 ];
139151
ssh = [ dvc-ssh ];
152+
ssh_gssapi = [ dvc-ssh ] ++ dvc-ssh.optional-dependencies.gssapi;
153+
webdav = [ dvc-webdav ];
154+
webhdfs = [ dvc-webhdfs ];
155+
webhdfs_kerberos = [ dvc-webhdfs ] ++ dvc-webhdfs.optional-dependencies.kerberos;
140156
};
141157

142158
# Tests require access to real cloud services

pkgs/top-level/python-packages.nix

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4042,6 +4042,8 @@ self: super: with self; {
40424042

40434043
dvc-objects = callPackage ../development/python-modules/dvc-objects { };
40444044

4045+
dvc-oss = callPackage ../development/python-modules/dvc-oss { };
4046+
40454047
dvc-render = callPackage ../development/python-modules/dvc-render { };
40464048

40474049
dvc-s3 = callPackage ../development/python-modules/dvc-s3 { };
@@ -4052,6 +4054,10 @@ self: super: with self; {
40524054

40534055
dvc-task = callPackage ../development/python-modules/dvc-task { };
40544056

4057+
dvc-webdav = callPackage ../development/python-modules/dvc-webdav { };
4058+
4059+
dvc-webhdfs = callPackage ../development/python-modules/dvc-webhdfs { };
4060+
40554061
dvclive = callPackage ../development/python-modules/dvclive { };
40564062

40574063
dwdwfsapi = callPackage ../development/python-modules/dwdwfsapi { };

0 commit comments

Comments
 (0)