diff --git a/pkgs/development/python-modules/whenever/default.nix b/pkgs/development/python-modules/whenever/default.nix new file mode 100644 index 000000000000..20d05c8bbaf3 --- /dev/null +++ b/pkgs/development/python-modules/whenever/default.nix @@ -0,0 +1,64 @@ +{ lib +, fetchFromGitHub +, pythonOlder +, buildPythonPackage +, poetry-core +, backports-zoneinfo +, tzdata +, pytestCheckHook +, pytest-mypy-plugins +, hypothesis +, freezegun +}: + +buildPythonPackage rec { + pname = "whenever"; + version = "0.3.4"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "ariebovenberg"; + repo = "whenever"; + rev = version; + hash = "sha256-pVbR9KYothEPJUhvFA3hDnLcKp7hvU8ntxvkYrKxQfQ="; + }; + + postPatch = '' + # unrecognized arguments since we don't use pytest-benchmark in nixpkgs + substituteInPlace pytest.ini \ + --replace-fail '--benchmark-disable' '#--benchmark-disable' + ''; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + tzdata + ] ++ lib.optionals (pythonOlder "3.9") [ + backports-zoneinfo + ]; + + pythonImportsCheck = [ "whenever" ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-mypy-plugins + hypothesis + freezegun + ]; + + # early TDD, many tests are failing + # TODO: try enabling on bump + doCheck = false; + + meta = with lib; { + description = "Strict, predictable, and typed datetimes"; + homepage = "https://github.com/ariebovenberg/whenever"; + changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.rst"; + license = licenses.mit; + maintainers = with maintainers; [ pbsds ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index bdd6908c95fe..3c2562bb99f9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -16300,6 +16300,8 @@ self: super: with self; { wheezy-template = callPackage ../development/python-modules/wheezy-template { }; + whenever = callPackage ../development/python-modules/whenever { }; + whichcraft = callPackage ../development/python-modules/whichcraft { }; whirlpool-sixth-sense = callPackage ../development/python-modules/whirlpool-sixth-sense { };