1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 setuptools-scm, 9 10 # dependencies 11 aenum, 12 cachetools, 13 gitpython, 14 klayout, 15 loguru, 16 numpy, 17 pydantic, 18 pydantic-settings, 19 rectangle-packer, 20 requests, 21 ruamel-yaml, 22 ruamel-yaml-string, 23 scipy, 24 tomli, 25 toolz, 26 typer, 27 28 # tests 29 pytestCheckHook, 30}: 31 32buildPythonPackage rec { 33 pname = "kfactory"; 34 version = "1.4.4"; 35 pyproject = true; 36 37 src = fetchFromGitHub { 38 owner = "gdsfactory"; 39 repo = "kfactory"; 40 tag = "v${version}"; 41 hash = "sha256-/dhlAcrqQP/YeKGhnBAVMEy80X3yShn65ywoZMRU/ZM="; 42 }; 43 44 build-system = [ 45 setuptools 46 setuptools-scm 47 ]; 48 49 dependencies = [ 50 aenum 51 cachetools 52 gitpython 53 klayout 54 loguru 55 numpy 56 pydantic 57 pydantic-settings 58 rectangle-packer 59 requests 60 ruamel-yaml 61 ruamel-yaml-string 62 scipy 63 tomli 64 toolz 65 typer 66 ]; 67 68 pythonImportsCheck = [ "kfactory" ]; 69 70 nativeCheckInputs = [ pytestCheckHook ]; 71 72 disabledTestPaths = [ 73 # https://github.com/gdsfactory/kfactory/issues/511 74 "tests/test_pdk.py" 75 ]; 76 77 meta = { 78 description = "KLayout API implementation of gdsfactory"; 79 homepage = "https://github.com/gdsfactory/kfactory"; 80 changelog = "https://github.com/gdsfactory/kfactory/blob/v${version}/CHANGELOG.md"; 81 license = lib.licenses.mit; 82 maintainers = with lib.maintainers; [ fbeffa ]; 83 }; 84}