diff --git a/pkgs/development/python-modules/aw-core/default.nix b/pkgs/development/python-modules/aw-core/default.nix new file mode 100644 index 000000000000..e0caf6b41c0e --- /dev/null +++ b/pkgs/development/python-modules/aw-core/default.nix @@ -0,0 +1,69 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, poetry-core +, jsonschema +, peewee +, appdirs +, iso8601 +, rfc3339-validator +, takethetime +, strict-rfc3339 +, tomlkit +, deprecation +, timeslot +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "aw-core"; + version = "0.5.12"; + + format = "pyproject"; + + # pypi distribution doesn't include tests, so build from source instead + src = fetchFromGitHub { + owner = "ActivityWatch"; + repo = "aw-core"; + rev = "v${version}"; + sha256 = "sha256-DbugVMaQHlHpfbFEsM6kfpDL2VzRs0TDn9klWjAwz64="; + }; + + disabled = pythonOlder "3.8"; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + jsonschema + peewee + appdirs + iso8601 + rfc3339-validator + takethetime + strict-rfc3339 + tomlkit + deprecation + timeslot + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + preCheck = '' + # Fake home folder for tests that write to $HOME + export HOME="$TMPDIR" + ''; + + pythonImportsCheck = [ "aw_core" ]; + + meta = with lib; { + description = "Core library for ActivityWatch"; + homepage = "https://github.com/ActivityWatch/aw-core"; + maintainers = with maintainers; [ huantian ]; + license = licenses.mpl20; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0af5df74e9f8..8d4a6187eba5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -847,6 +847,8 @@ self: super: with self; { avro-python3 = callPackage ../development/python-modules/avro-python3 { }; + aw-core = callPackage ../development/python-modules/aw-core { }; + awacs = callPackage ../development/python-modules/awacs { }; awesome-slugify = callPackage ../development/python-modules/awesome-slugify { };