diff --git a/pkgs/development/python-modules/dvc-gdrive/default.nix b/pkgs/development/python-modules/dvc-gdrive/default.nix new file mode 100644 index 000000000000..e7b2b0d7c499 --- /dev/null +++ b/pkgs/development/python-modules/dvc-gdrive/default.nix @@ -0,0 +1,49 @@ +{ lib +, buildPythonPackage +, dvc +, fetchFromGitHub +, pydrive2 +, pythonOlder +, setuptools +, setuptools-scm +}: + +buildPythonPackage rec { + pname = "dvc-gdrive"; + version = "3.0.1"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "iterative"; + repo = "dvc-gdrive"; + rev = "refs/tags/${version}"; + hash = "sha256-oqHSMmwfR24ydJlpXGI3cCxIlF0BwNdgje5zKa0c7FA="; + }; + + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + + propagatedBuildInputs = [ + dvc + pydrive2 + ]; + + # Circular dependency with dvc + doCheck = false; + + pythonImportsCheck = [ + "dvc_gdrive" + ]; + + meta = with lib; { + description = "Google Drive plugin for DVC"; + homepage = "https://github.com/iterative/dvc-gdrive"; + changelog = "https://github.com/iterative/dvc-gdrive/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/dvc-hdfs/default.nix b/pkgs/development/python-modules/dvc-hdfs/default.nix new file mode 100644 index 000000000000..b532941e42ba --- /dev/null +++ b/pkgs/development/python-modules/dvc-hdfs/default.nix @@ -0,0 +1,49 @@ +{ lib +, buildPythonPackage +, dvc +, fetchFromGitHub +, fsspec +, pythonOlder +, setuptools +, setuptools-scm +}: + +buildPythonPackage rec { + pname = "dvc-hdfs"; + version = "3.0.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "iterative"; + repo = "dvc-hdfs"; + rev = "refs/tags/${version}"; + hash = "sha256-Bo8+El5GC7iyT8SxaJquWFG29BOeilmEMDtTG+RkDGI="; + }; + + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + + propagatedBuildInputs = [ + dvc + fsspec + ] ++ fsspec.optional-dependencies.arrow; + + # Circular dependency with dvc + doCheck = false; + + pythonImportsCheck = [ + "dvc_hdfs" + ]; + + meta = with lib; { + description = "HDFS/WebHDFS plugin for dvc"; + homepage = "https://github.com/iterative/dvc-hdfs"; + changelog = "https://github.com/iterative/dvc-hdfs/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix index 302c6a11e356..33cddb5b0e99 100644 --- a/pkgs/development/python-modules/dvc/default.nix +++ b/pkgs/development/python-modules/dvc/default.nix @@ -1,24 +1,23 @@ { lib -, buildPythonPackage -, fetchFromGitHub -, fetchpatch -, pythonOlder -, pythonRelaxDepsHook -, setuptools-scm , appdirs +, buildPythonPackage , colorama , configobj , distro , dpath , dvc-azure , dvc-data +, dvc-gdrive , dvc-gs +, dvc-hdfs , dvc-http , dvc-render , dvc-s3 , dvc-ssh , dvc-studio-client , dvc-task +, fetchFromGitHub +, fetchpatch , flatten-dict , flufl_lock , funcy @@ -36,10 +35,13 @@ , pydot , pygtrie , pyparsing +, pythonOlder +, pythonRelaxDepsHook , requests , rich , ruamel-yaml , scmrepo +, setuptools-scm , shortuuid , shtab , tabulate @@ -56,14 +58,16 @@ buildPythonPackage rec { pname = "dvc"; - version = "3.40.0"; + version = "3.40.1"; pyproject = true; + disabled = pythonOlder "3.8"; + src = fetchFromGitHub { owner = "iterative"; repo = "dvc"; rev = "refs/tags/${version}"; - hash = "sha256-MSbj8k7ZdjbB3jNq+AZ3gkwjyuT1DpfQuaWlgltsfrk="; + hash = "sha256-ik2WVq7cXhOc9kwBep38HELgvj0CGLtpx5EzzdJzAsc="; }; pythonRelaxDeps = [ @@ -72,7 +76,8 @@ buildPythonPackage rec { ]; postPatch = '' - substituteInPlace dvc/analytics.py --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False' + 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" ''; @@ -135,9 +140,15 @@ buildPythonPackage rec { azure = [ dvc-azure ]; + gdrive = [ + dvc-gdrive + ]; gs = [ dvc-gs ]; + hdfs = [ + dvc-hdfs + ]; s3 = [ dvc-s3 ]; diff --git a/pkgs/development/python-modules/pydrive2/default.nix b/pkgs/development/python-modules/pydrive2/default.nix index ad2d80c0a5e8..32bb5d78984f 100644 --- a/pkgs/development/python-modules/pydrive2/default.nix +++ b/pkgs/development/python-modules/pydrive2/default.nix @@ -1,19 +1,25 @@ { lib +, appdirs , buildPythonPackage , fetchPypi +, fsspec +, funcy , google-api-python-client , oauth2client , pyopenssl -, pyyaml , pythonOlder +, pyyaml +, setuptools +, setuptools-scm +, tqdm }: buildPythonPackage rec { pname = "pydrive2"; version = "1.19.0"; - format = "setuptools"; + pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchPypi { pname = "PyDrive2"; @@ -21,6 +27,11 @@ buildPythonPackage rec { hash = "sha256-Ia6n2idjXCw/cFDgICBhkfOwMFxlUDFebo491Sb4tTE="; }; + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + propagatedBuildInputs = [ google-api-python-client oauth2client @@ -28,6 +39,16 @@ buildPythonPackage rec { pyyaml ]; + passthru.optional-dependencies = { + fsspec = [ + appdirs + fsspec + funcy + tqdm + ]; + }; + + # Tests require a account and network access doCheck = false; pythonImportsCheck = [ diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cbbe4a9074f1..333a256dda61 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3474,8 +3474,12 @@ self: super: with self; { dvc-data = callPackage ../development/python-modules/dvc-data { }; + dvc-gdrive = callPackage ../development/python-modules/dvc-gdrive { }; + dvc-gs = callPackage ../development/python-modules/dvc-gs { }; + dvc-hdfs = callPackage ../development/python-modules/dvc-hdfs { }; + dvc-http = callPackage ../development/python-modules/dvc-http { }; dvc-objects = callPackage ../development/python-modules/dvc-objects { };