python312Packages.{gdsfactory,kfactory,klayout,rectangle-packer,rectpack,ruamel-yaml-string}: init (#355506)

Changed files
+350
pkgs
development
python-modules
gdsfactory
kfactory
klayout
rectangle-packer
rectpack
ruamel-yaml-string
top-level
+108
pkgs/development/python-modules/gdsfactory/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
pytestCheckHook,
+
flit-core,
+
jinja2,
+
loguru,
+
matplotlib,
+
numpy,
+
orjson,
+
pandas,
+
pydantic,
+
pydantic-settings,
+
pydantic-extra-types,
+
pyyaml,
+
qrcode,
+
rectpack,
+
rich,
+
scipy,
+
shapely,
+
toolz,
+
types-pyyaml,
+
typer,
+
kfactory,
+
watchdog,
+
freetype-py,
+
mapbox-earcut,
+
networkx,
+
scikit-image,
+
trimesh,
+
ipykernel,
+
attrs,
+
graphviz,
+
# tests
+
jsondiff,
+
jsonschema,
+
pytest-regressions,
+
}:
+
buildPythonPackage rec {
+
pname = "gdsfactory";
+
version = "8.18.1";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "gdsfactory";
+
repo = "gdsfactory";
+
rev = "v${version}";
+
hash = "sha256-wDz8QpRgu40FB8+otnGsHVn2e6/SWXIZgA1aeMqMhPQ=";
+
};
+
+
build-system = [ flit-core ];
+
+
dependencies = [
+
jinja2
+
loguru
+
matplotlib
+
numpy
+
orjson
+
pandas
+
pydantic
+
pydantic-settings
+
pydantic-extra-types
+
pyyaml
+
qrcode
+
rectpack
+
rich
+
scipy
+
shapely
+
toolz
+
types-pyyaml
+
typer
+
kfactory
+
watchdog
+
freetype-py
+
mapbox-earcut
+
networkx
+
scikit-image
+
trimesh
+
ipykernel
+
attrs
+
graphviz
+
];
+
+
nativeCheckInputs = [
+
jsondiff
+
jsonschema
+
pytestCheckHook
+
pytest-regressions
+
];
+
+
pythonRelaxDeps = [
+
"pydantic"
+
"trimesh"
+
];
+
+
# tests require >32GB of RAM
+
doCheck = false;
+
+
pythonImportsCheck = [ "gdsfactory" ];
+
+
meta = with lib; {
+
description = "Python library to generate GDS layouts";
+
homepage = "https://github.com/gdsfactory/gdsfactory";
+
license = licenses.mit;
+
maintainers = with maintainers; [ fbeffa ];
+
};
+
}
+77
pkgs/development/python-modules/kfactory/default.nix
···
+
{
+
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 ];
+
};
+
}
+42
pkgs/development/python-modules/klayout/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchPypi,
+
curl,
+
cython,
+
expat,
+
libpng,
+
setuptools,
+
}:
+
+
buildPythonPackage rec {
+
pname = "klayout";
+
version = "0.29.8";
+
pyproject = true;
+
+
src = fetchPypi {
+
inherit pname version;
+
hash = "sha256-21EPhFb/JMZdyuHDXIxhnLTpHUPxKU24cnodH9oX2q8=";
+
};
+
+
build-system = [
+
cython
+
setuptools
+
];
+
+
buildInputs = [
+
curl
+
expat
+
libpng
+
];
+
+
pythonImportsCheck = [ "klayout" ];
+
+
meta = with lib; {
+
description = "KLayout’s Python API";
+
homepage = "https://github.com/KLayout/klayout";
+
license = licenses.gpl3Plus;
+
maintainers = with maintainers; [ fbeffa ];
+
platforms = platforms.linux;
+
};
+
}
+46
pkgs/development/python-modules/rectangle-packer/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
setuptools,
+
cython,
+
pytestCheckHook,
+
}:
+
+
buildPythonPackage rec {
+
pname = "rectangle-packer";
+
version = "2.0.2";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "Penlect";
+
repo = "rectangle-packer";
+
rev = version;
+
hash = "sha256-YsMLB9jfAC5yB8TnlY9j6ybXM2ILireOgQ8m8wYo4ts=";
+
};
+
+
build-system = [
+
cython
+
setuptools
+
];
+
+
postPatch = ''
+
substituteInPlace setup.py \
+
--replace-fail 'Cython<3.0.0' 'Cython'
+
'';
+
+
pythonImportsCheck = [ "rpack" ];
+
+
nativeCheckInputs = [ pytestCheckHook ];
+
+
preCheck = ''
+
rm -r rpack
+
'';
+
+
meta = with lib; {
+
description = "Pack a set of rectangles into a bounding box with minimum area";
+
homepage = "https://github.com/Penlect/rectangle-packer";
+
license = licenses.mit;
+
maintainers = with maintainers; [ fbeffa ];
+
};
+
}
+33
pkgs/development/python-modules/rectpack/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
setuptools,
+
}:
+
+
buildPythonPackage rec {
+
pname = "rectpack";
+
version = "0.2.2";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "secnot";
+
repo = "rectpack";
+
rev = version;
+
hash = "sha256-kU0TT3wiudcLXrT+lYPYHYRtf7aNj/IKpnYKb/H91ng=";
+
};
+
+
build-system = [ setuptools ];
+
+
# tests are base on nose
+
doCheck = false;
+
+
pythonImportsCheck = [ "rectpack" ];
+
+
meta = with lib; {
+
description = "Collection of algorithms for solving the 2D knapsack problem";
+
homepage = "https://github.com/secnot/rectpack";
+
license = licenses.asl20;
+
maintainers = with maintainers; [ fbeffa ];
+
};
+
}
+32
pkgs/development/python-modules/ruamel-yaml-string/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchPypi,
+
setuptools,
+
ruamel-yaml,
+
}:
+
+
buildPythonPackage rec {
+
pname = "ruamel-yaml-string";
+
version = "0.1.1";
+
pyproject = true;
+
+
src = fetchPypi {
+
inherit version;
+
pname = "ruamel.yaml.string";
+
hash = "sha256-enrtzAVdRcAE04t1b1hHTr77EGhR9M5WzlhBVwl4Q1A=";
+
};
+
+
build-system = [ setuptools ];
+
+
dependencies = [ ruamel-yaml ];
+
+
pythonImportsCheck = [ "ruamel.yaml" ];
+
+
meta = with lib; {
+
description = "Add dump_to_string/dumps method that returns YAML document as string";
+
homepage = "https://sourceforge.net/projects/ruamel-yaml-string/";
+
license = licenses.mit;
+
maintainers = with maintainers; [ fbeffa ];
+
};
+
}
+12
pkgs/top-level/python-packages.nix
···
gdown = callPackage ../development/python-modules/gdown { };
+
gdsfactory = callPackage ../development/python-modules/gdsfactory { };
+
ge25519 = callPackage ../development/python-modules/ge25519 { };
geant4 = toPythonModule (pkgs.geant4.override {
···
inherit (pkgs) keyutils;
};
+
kfactory = callPackage ../development/python-modules/kfactory { };
+
khanaa = callPackage ../development/python-modules/khanaa {};
kicad = toPythonModule (pkgs.kicad.override {
···
kiwisolver = callPackage ../development/python-modules/kiwisolver { };
klaus = callPackage ../development/python-modules/klaus { };
+
+
klayout = callPackage ../development/python-modules/klayout { };
klein = callPackage ../development/python-modules/klein { };
···
recordlinkage = callPackage ../development/python-modules/recordlinkage { };
+
rectpack = callPackage ../development/python-modules/rectpack { };
+
+
rectangle-packer = callPackage ../development/python-modules/rectangle-packer { };
+
recurring-ical-events = callPackage ../development/python-modules/recurring-ical-events { };
recursive-pth-loader = toPythonModule (callPackage ../development/python-modules/recursive-pth-loader { });
···
ruamel-yaml = callPackage ../development/python-modules/ruamel-yaml { };
ruamel-yaml-clib = callPackage ../development/python-modules/ruamel-yaml-clib { };
+
+
ruamel-yaml-string = callPackage ../development/python-modules/ruamel-yaml-string { };
rubicon-objc = callPackage ../development/python-modules/rubicon-objc { };