diff --git a/pkgs/development/python-modules/kfactory/default.nix b/pkgs/development/python-modules/kfactory/default.nix new file mode 100644 index 000000000000..3652d517d048 --- /dev/null +++ b/pkgs/development/python-modules/kfactory/default.nix @@ -0,0 +1,77 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + setuptools, + setuptools-scm, + klayout, + aenum, + cachetools, + gitpython, + loguru, + pydantic, + pydantic-settings, + rectangle-packer, + requests, + ruamel-yaml-string, + scipy, + tomli, + toolz, + typer, + numpy, + ruamel-yaml, +}: + +buildPythonPackage rec { + pname = "kfactory"; + version = "0.21.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "gdsfactory"; + repo = "kfactory"; + rev = "v${version}"; + sha256 = "sha256-VLhAJ5rOBKEO1FDCnlaseA+SmrMSoyS+BaEzjdHm59Y="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + aenum + cachetools + gitpython + klayout + loguru + numpy + pydantic + pydantic-settings + rectangle-packer + requests + ruamel-yaml + ruamel-yaml-string + scipy + tomli + toolz + typer + ]; + + pythonImportsCheck = [ "kfactory" ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + # https://github.com/gdsfactory/kfactory/issues/511 + disabledTestPaths = [ + "tests/test_pdk.py" + ]; + + meta = with lib; { + description = "KLayout API implementation of gdsfactory"; + homepage = "https://github.com/gdsfactory/kfactory"; + license = licenses.mit; + maintainers = with maintainers; [ fbeffa ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b69f15324023..ba378582c7b4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6981,6 +6981,8 @@ self: super: with self; { inherit (pkgs) keyutils; }; + kfactory = callPackage ../development/python-modules/kfactory { }; + khanaa = callPackage ../development/python-modules/khanaa {}; kicad = toPythonModule (pkgs.kicad.override {