diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix index fc3adf2534e7..d1d6de0bcba8 100644 --- a/pkgs/development/python-modules/audio-metadata/default.nix +++ b/pkgs/development/python-modules/audio-metadata/default.nix @@ -1,25 +1,50 @@ -{ lib, buildPythonPackage, fetchPypi +{ lib , attrs , bidict , bitstruct +, buildPythonPackage +, fetchFromGitHub +, fetchpatch , more-itertools +, poetry-core , pprintpp +, pythonOlder +, pythonRelaxDepsHook , tbm-utils }: buildPythonPackage rec { pname = "audio-metadata"; version = "0.11.1"; + format = "pyproject"; - src = fetchPypi { - inherit pname version; - sha256 = "9e7ba79d49cf048a911d5f7d55bb2715c10be5c127fe5db0987c5fe1aa7335eb"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "thebigmunch"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-5ZX4HwbuB9ZmFfHuxaMCrn3R7/znuDsoyqqLql2Nizg="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace "'attrs>=18.2,<19.4'" "'attrs'" - ''; + patches = [ + # Switch to poetry-core, https://github.com/thebigmunch/audio-metadata/pull/41 + (fetchpatch { + name = "switch-to-poetry-core.patch"; + url = "https://github.com/thebigmunch/audio-metadata/commit/dfe91a69ee37e9dcefb692165eb0f9cd36a7e5b8.patch"; + hash = "sha256-ut3mqgZQu0YFbsTEA13Ch0+aSNl17ndMV0fuIu3n5tc="; + }) + ]; + + pythonRelaxDeps = [ + "attrs" + "more-itertools" + ]; + + nativeBuildInputs = [ + poetry-core + pythonRelaxDepsHook + ]; propagatedBuildInputs = [ attrs @@ -30,12 +55,17 @@ buildPythonPackage rec { tbm-utils ]; - # No tests + # Tests require ward which is not ready to be used doCheck = false; + pythonImportsCheck = [ + "audio_metadata" + ]; + meta = with lib; { homepage = "https://github.com/thebigmunch/audio-metadata"; description = "A library for reading and, in the future, writing metadata from audio files"; + changelog = "https://github.com/thebigmunch/audio-metadata/blob/${version}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ jakewaksbaum ]; }; diff --git a/pkgs/development/python-modules/ward/default.nix b/pkgs/development/python-modules/ward/default.nix new file mode 100644 index 000000000000..9d438d74258f --- /dev/null +++ b/pkgs/development/python-modules/ward/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonPackage +, click +, click-completion +, click-default-group +, cucumber-tag-expressions +, fetchFromGitHub +, pluggy +, poetry-core +, pprintpp +, pythonOlder +, pythonRelaxDepsHook +, rich +, tomli +}: + +buildPythonPackage rec { + pname = "ward"; + version = "0.67.0b0"; + format = "pyproject"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "darrenburns"; + repo = pname; + rev = "refs/tags/release%2F${version}"; + hash = "sha256-4dEMEEPySezgw3dIcYMl56HrhyaYlql9JvtamOn7Y8g="; + }; + + pythonRelaxDeps = [ + "rich" + ]; + + nativeBuildInputs = [ + poetry-core + pythonRelaxDepsHook + ]; + + propagatedBuildInputs = [ + click + rich + tomli + pprintpp + cucumber-tag-expressions + click-default-group + click-completion + pluggy + ]; + + # Fixture is missing. Looks like an issue with the import of the sample file + doCheck = false; + + pythonImportsCheck = [ + "ward" + ]; + + meta = with lib; { + description = "Test framework for Python"; + homepage = "https://github.com/darrenburns/ward"; + changelog = "https://github.com/darrenburns/ward/releases/tag/release%2F${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 48b188ddf43e..dcff126d93ab 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12058,6 +12058,8 @@ self: super: with self; { warcio = callPackage ../development/python-modules/warcio { }; + ward = callPackage ../development/python-modules/ward { }; + warlock = callPackage ../development/python-modules/warlock { }; warrant = callPackage ../development/python-modules/warrant { };