Files
nixpkgs/pkgs/development/python-modules/atopile/default.nix
2025-03-17 20:49:18 +01:00

127 lines
2.0 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
scikit-build-core,
hatch-vcs,
nanobind,
# deps
antlr4-python3-runtime,
attrs,
case-converter,
cattrs,
click,
deepdiff,
easyeda2ato,
eseries,
fake-useragent,
fastapi,
gitpython,
igraph,
jinja2,
natsort,
networkx,
pandas,
pint,
pygls,
quart-cors,
quart-schema,
quart,
rich,
ruamel-yaml,
schema,
scipy,
semver,
toolz,
urllib3,
uvicorn,
watchfiles,
pyyaml,
# tests
pytestCheckHook,
pytest-xdist,
pytest-timeout,
}:
buildPythonPackage rec {
pname = "atopile";
version = "0.2.69";
pyproject = true;
src = fetchFromGitHub {
owner = "atopile";
repo = "atopile";
tag = "v${version}";
hash = "sha256-mQYnaWch0lVzz1hV6WboYxBGe3ruw+mK2AwMx13DQJM=";
};
build-system = [
hatchling
scikit-build-core
hatch-vcs
nanobind
];
dependencies = [
antlr4-python3-runtime
attrs
case-converter
cattrs
click
deepdiff
easyeda2ato
eseries
fake-useragent
fastapi
gitpython
igraph
jinja2
natsort
networkx
pandas
pint
pygls
quart-cors
quart-schema
quart
rich
ruamel-yaml
schema
scipy
semver
toolz
urllib3
uvicorn
watchfiles
pyyaml # required for ato
];
pythonRelaxDeps = [ "antlr4-python3-runtime" ];
pythonImportsCheck = [ "atopile" ];
preCheck = ''
substituteInPlace pyproject.toml \
--replace-fail "--html=artifacts/test-report.html" "" \
--replace-fail "--self-contained-html" ""
'';
nativeCheckInputs = [
pytestCheckHook
pytest-xdist
pytest-timeout
];
meta = {
description = "Design circuit boards with code";
homepage = "https://aiopg.readthedocs.io/";
downloadPage = "https://github.com/atopile/atopile";
changelog = "https://github.com/atopile/atopile/releases/tag/${src.rev}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ sigmanificient ];
mainProgram = "ato";
};
}