at 23.11-beta 2.8 kB view raw
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 54}: 55 56buildPythonPackage rec { 57 pname = "dvc"; 58 version = "3.30.1"; 59 format = "pyproject"; 60 61 src = fetchFromGitHub { 62 owner = "iterative"; 63 repo = pname; 64 rev = "refs/tags/${version}"; 65 hash = "sha256-UFAqcO6SG/1ufzylrNuOpJaH2hlIo0ZkSLEfxi8OqLw="; 66 }; 67 68 pythonRelaxDeps = [ 69 "dvc-data" 70 "platformdirs" 71 ]; 72 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 ''; 78 79 nativeBuildInputs = [ 80 pythonRelaxDepsHook 81 setuptools-scm 82 ]; 83 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 ]; 131 132 passthru.optional-dependencies = { 133 azure = [ dvc-azure ]; 134 gs = [ dvc-gs ]; 135 s3 = [ dvc-s3 ]; 136 ssh = [ dvc-ssh ]; 137 }; 138 139 # Tests require access to real cloud services 140 doCheck = false; 141 142 pythonImportsCheck = [ "dvc" "dvc.api" ]; 143 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 }; 151}