diff options
Diffstat (limited to 'pkgs/development/python-modules/dvc')
-rw-r--r-- | pkgs/development/python-modules/dvc/default.nix | 151 | ||||
-rw-r--r-- | pkgs/development/python-modules/dvc/dvc-daemon.patch | 18 |
2 files changed, 169 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix new file mode 100644 index 00000000000..c80c6670936 --- /dev/null +++ b/pkgs/development/python-modules/dvc/default.nix @@ -0,0 +1,151 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, pythonOlder +, pythonRelaxDepsHook +, setuptools-scm +, appdirs +, colorama +, configobj +, distro +, dpath +, dvc-azure +, dvc-data +, dvc-gs +, dvc-http +, dvc-render +, dvc-s3 +, dvc-ssh +, dvc-studio-client +, dvc-task +, flatten-dict +, flufl_lock +, funcy +, grandalf +, hydra-core +, importlib-metadata +, importlib-resources +, iterative-telemetry +, networkx +, packaging +, pathspec +, platformdirs +, psutil +, pydot +, pygtrie +, pyparsing +, requests +, rich +, ruamel-yaml +, scmrepo +, shortuuid +, shtab +, tabulate +, tomlkit +, tqdm +, typing-extensions +, voluptuous +, zc_lockfile +, enableGoogle ? false +, enableAWS ? false +, enableAzure ? false +, enableSSH ? false +}: + +buildPythonPackage rec { + pname = "dvc"; + version = "3.8.1"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "iterative"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-ZHB2XAYjPwhCWHqq2Kro4CzDW34YBaknv9xBotCDkOw="; + }; + + pythonRelaxDeps = [ + "dvc-data" + "platformdirs" + ]; + + postPatch = '' + substituteInPlace dvc/analytics.py --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False' + substituteInPlace dvc/daemon.py \ + --subst-var-by dvc "$out/bin/dcv" + ''; + + nativeBuildInputs = [ + pythonRelaxDepsHook + setuptools-scm + ]; + + propagatedBuildInputs = [ + appdirs + colorama + configobj + distro + dpath + dvc-data + dvc-http + dvc-render + dvc-studio-client + dvc-task + flatten-dict + flufl_lock + funcy + grandalf + hydra-core + iterative-telemetry + networkx + packaging + pathspec + platformdirs + psutil + pydot + pygtrie + pyparsing + requests + rich + ruamel-yaml + scmrepo + shortuuid + shtab + tabulate + tomlkit + tqdm + typing-extensions + voluptuous + zc_lockfile + ] + ++ lib.optionals enableGoogle passthru.optional-dependencies.gs + ++ lib.optionals enableAWS passthru.optional-dependencies.s3 + ++ lib.optionals enableAzure passthru.optional-dependencies.azure + ++ lib.optionals enableSSH passthru.optional-dependencies.ssh + ++ lib.optionals (pythonOlder "3.8") [ + importlib-metadata + ] ++ lib.optionals (pythonOlder "3.9") [ + importlib-resources + ]; + + passthru.optional-dependencies = { + azure = [ dvc-azure ]; + gs = [ dvc-gs ]; + s3 = [ dvc-s3 ]; + ssh = [ dvc-ssh ]; + }; + + # Tests require access to real cloud services + doCheck = false; + + pythonImportsCheck = [ "dvc" "dvc.api" ]; + + meta = with lib; { + description = "Version Control System for Machine Learning Projects"; + homepage = "https://dvc.org"; + changelog = "https://github.com/iterative/dvc/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ cmcdragonkai fab ]; + }; +} diff --git a/pkgs/development/python-modules/dvc/dvc-daemon.patch b/pkgs/development/python-modules/dvc/dvc-daemon.patch new file mode 100644 index 00000000000..65ba630f3b8 --- /dev/null +++ b/pkgs/development/python-modules/dvc/dvc-daemon.patch @@ -0,0 +1,18 @@ +diff --git a/dvc/daemon.py b/dvc/daemon.py +index 9854a0e1..fefdd613 100644 +--- a/dvc/daemon.py ++++ b/dvc/daemon.py +@@ -103,11 +103,8 @@ def daemon(args): + logger.debug("skipping launching a new daemon.") + return + +- cmd = ["daemon", "-q"] + args +- +- env = fix_env() +- file_path = os.path.abspath(inspect.stack()[0][1]) +- env["PYTHONPATH"] = os.path.dirname(os.path.dirname(file_path)) ++ cmd = [ "@dvc@" , "daemon", "-q"] + args ++ env = os.environ.copy() + env[DVC_DAEMON] = "1" + + _spawn(cmd, env) |