diff --git a/pkgs/development/python-modules/liberty-parser/default.nix b/pkgs/development/python-modules/liberty-parser/default.nix new file mode 100644 index 000000000000..820ea8ed201d --- /dev/null +++ b/pkgs/development/python-modules/liberty-parser/default.nix @@ -0,0 +1,65 @@ +{ + lib, + buildPythonPackage, + fetchFromGitea, + setuptools, + lark, + numpy, + sympy, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "liberty-parser"; + version = "0.0.25"; + pyproject = true; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "tok"; + repo = "liberty-parser"; + tag = version; + hash = "sha256-Nl+FRG93DeP1ctDphaTKZqkukEywmGprj6JORJQTunw="; + }; + + # Tests try to write to /tmp directly. use $TMPDIR instead. + postPatch = '' + substituteInPlace src/liberty/parser.py \ + --replace-fail "/tmp" "$TMPDIR" + ''; + + build-system = [ + setuptools + ]; + + dependencies = [ + lark + numpy + sympy + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + enabledTestPaths = [ + "src/liberty/*.py" + ]; + + pythonImportsCheck = [ + "liberty.parser" + ]; + + meta = { + description = "Liberty parser for Python"; + homepage = "https://codeberg.org/tok/liberty-parser"; + license = with lib.licenses; [ + asl20 + cc-by-sa-40 + cc0 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 63a2b6385f5d..1722c722ba15 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8123,6 +8123,8 @@ self: super: with self; { libear = callPackage ../development/python-modules/libear { }; + liberty-parser = callPackage ../development/python-modules/liberty-parser { }; + libevdev = callPackage ../development/python-modules/libevdev { }; libfdt = toPythonModule (