diff --git a/pkgs/development/python-modules/pathy/default.nix b/pkgs/development/python-modules/pathy/default.nix index aba6fdccb327..30cdd782df2e 100644 --- a/pkgs/development/python-modules/pathy/default.nix +++ b/pkgs/development/python-modules/pathy/default.nix @@ -1,36 +1,59 @@ { lib , buildPythonPackage +, dataclasses , fetchPypi -, pytestCheckHook -, typer -, smart-open -, mock +, fetchpatch , google-cloud-storage +, mock +, pytestCheckHook +, pythonOlder +, smart-open +, typer }: buildPythonPackage rec { pname = "pathy"; version = "0.6.1"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; sha256 = "838624441f799a06b446a657e4ecc9ebc3fdd05234397e044a7c87e8f6e76b1c"; }; - propagatedBuildInputs = [ smart-open typer google-cloud-storage ]; + propagatedBuildInputs = [ + smart-open + typer + google-cloud-storage + ] ++ lib.optionals (pythonOlder "3.7") [ + dataclasses + ]; - postPatch = '' - substituteInPlace requirements.txt \ - --replace "smart-open>=2.2.0,<4.0.0" "smart-open>=2.2.0" - ''; + checkInputs = [ + mock + pytestCheckHook + ]; - checkInputs = [ pytestCheckHook mock ]; + patches = [ + # Support for smart-open >= 6.0.0, https://github.com/justindujardin/pathy/pull/71 + (fetchpatch { + name = "support-later-smart-open.patch"; + url = "https://github.com/justindujardin/pathy/commit/ba1c23df6ee5d1e57bdfe845ff6a9315cba3df6a.patch"; + sha256 = "sha256-V1i4tx73Xkdqb/wZhQIv4p6FVpF9SEfDhlBkwaaRE3w="; + }) + ]; - # Exclude tests that require provider credentials - pytestFlagsArray = [ - "--ignore=pathy/_tests/test_clients.py" - "--ignore=pathy/_tests/test_gcs.py" - "--ignore=pathy/_tests/test_s3.py" + disabledTestPaths = [ + # Exclude tests that require provider credentials + "pathy/_tests/test_clients.py" + "pathy/_tests/test_gcs.py" + "pathy/_tests/test_s3.py" + ]; + + pythonImportsCheck = [ + "pathy" ]; meta = with lib; {