diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix new file mode 100644 index 000000000000..42182cadc081 --- /dev/null +++ b/pkgs/development/python-modules/import-expression/default.nix @@ -0,0 +1,45 @@ +{ lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + pytestCheckHook, + astunparse, + setuptools +}: +buildPythonPackage rec { + pname = "import-expression"; + version = "1.1.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ioistired"; + repo = "import-expression-parser"; + rev = "refs/tags/v${version}"; + hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM="; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch"; + hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU="; + }) + ]; + + nativeBuildInputs = [ setuptools ]; + propagatedBuildInputs = [ astunparse ]; + nativeCheckInputs = [ pytestCheckHook ]; + pytestFlagsArray = [ "tests.py" ]; + + pythonImportsCheck = [ + "import_expression" + "import_expression._codec" + ]; + + meta = { + description = "Transpiles a superset of python to allow easy inline imports"; + homepage = "https://github.com/ioistired/import-expression-parser"; + license = with lib.licenses; [ mit psfl ]; + mainProgram = "import-expression"; + maintainers = with lib.maintainers; [ lychee ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 62499c72835b..31453e22038e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5526,6 +5526,8 @@ self: super: with self; { impacket = callPackage ../development/python-modules/impacket { }; + import-expression = callPackage ../development/python-modules/import-expression { }; + importlab = callPackage ../development/python-modules/importlab { }; importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };