Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / dvc / default.nix
blob57487bbb7ad48d92b7978842fbe9d33a0ccc46ae
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , fetchpatch
5 , pythonOlder
6 , pythonRelaxDepsHook
7 , setuptools-scm
8 , appdirs
9 , colorama
10 , configobj
11 , distro
12 , dpath
13 , dvc-azure
14 , dvc-data
15 , dvc-gs
16 , dvc-http
17 , dvc-render
18 , dvc-s3
19 , dvc-ssh
20 , dvc-studio-client
21 , dvc-task
22 , flatten-dict
23 , flufl_lock
24 , funcy
25 , grandalf
26 , hydra-core
27 , importlib-metadata
28 , importlib-resources
29 , iterative-telemetry
30 , networkx
31 , packaging
32 , pathspec
33 , platformdirs
34 , psutil
35 , pydot
36 , pygtrie
37 , pyparsing
38 , requests
39 , rich
40 , ruamel-yaml
41 , scmrepo
42 , shortuuid
43 , shtab
44 , tabulate
45 , tomlkit
46 , tqdm
47 , typing-extensions
48 , voluptuous
49 , zc_lockfile
50 , enableGoogle ? false
51 , enableAWS ? false
52 , enableAzure ? false
53 , enableSSH ? false
56 buildPythonPackage rec {
57   pname = "dvc";
58   version = "3.30.1";
59   format = "pyproject";
61   src = fetchFromGitHub {
62     owner = "iterative";
63     repo = pname;
64     rev = "refs/tags/${version}";
65     hash = "sha256-UFAqcO6SG/1ufzylrNuOpJaH2hlIo0ZkSLEfxi8OqLw=";
66   };
68   pythonRelaxDeps = [
69     "dvc-data"
70     "platformdirs"
71   ];
73   postPatch = ''
74     substituteInPlace dvc/analytics.py --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False'
75     substituteInPlace dvc/daemon.py \
76       --subst-var-by dvc "$out/bin/dcv"
77   '';
79   nativeBuildInputs = [
80     pythonRelaxDepsHook
81     setuptools-scm
82   ];
84   propagatedBuildInputs = [
85     appdirs
86     colorama
87     configobj
88     distro
89     dpath
90     dvc-data
91     dvc-http
92     dvc-render
93     dvc-studio-client
94     dvc-task
95     flatten-dict
96     flufl_lock
97     funcy
98     grandalf
99     hydra-core
100     iterative-telemetry
101     networkx
102     packaging
103     pathspec
104     platformdirs
105     psutil
106     pydot
107     pygtrie
108     pyparsing
109     requests
110     rich
111     ruamel-yaml
112     scmrepo
113     shortuuid
114     shtab
115     tabulate
116     tomlkit
117     tqdm
118     typing-extensions
119     voluptuous
120     zc_lockfile
121   ]
122   ++ lib.optionals enableGoogle passthru.optional-dependencies.gs
123   ++ lib.optionals enableAWS passthru.optional-dependencies.s3
124   ++ lib.optionals enableAzure passthru.optional-dependencies.azure
125   ++ lib.optionals enableSSH passthru.optional-dependencies.ssh
126   ++ lib.optionals (pythonOlder "3.8") [
127     importlib-metadata
128   ] ++ lib.optionals (pythonOlder "3.9") [
129     importlib-resources
130   ];
132   passthru.optional-dependencies = {
133     azure = [ dvc-azure ];
134     gs = [ dvc-gs ];
135     s3 = [ dvc-s3 ];
136     ssh = [ dvc-ssh ];
137   };
139   # Tests require access to real cloud services
140   doCheck = false;
142   pythonImportsCheck = [ "dvc" "dvc.api" ];
144   meta = with lib; {
145     description = "Version Control System for Machine Learning Projects";
146     homepage = "https://dvc.org";
147     changelog = "https://github.com/iterative/dvc/releases/tag/${version}";
148     license = licenses.asl20;
149     maintainers = with maintainers; [ cmcdragonkai fab ];
150   };