[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "kindred-solver" version = "0.1.0" description = "Assembly constraint prediction via GNN for Kindred Create" readme = "README.md" license = "Apache-2.0" requires-python = ">=3.11" authors = [ { name = "Kindred Systems" }, ] classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering", ] dependencies = [ "torch>=2.2", "torch-geometric>=2.5", "numpy>=1.26", "scipy>=1.12", ] [project.optional-dependencies] train = [ "wandb>=0.16", "tensorboard>=2.16", "hydra-core>=1.3", "omegaconf>=2.3", "matplotlib>=3.8", "networkx>=3.2", ] freecad = [ "pyside6>=6.6", ] dev = [ "pytest>=8.0", "pytest-cov>=4.1", "ruff>=0.3", "mypy>=1.8", "pre-commit>=3.6", ] [project.urls] Repository = "https://git.kindred-systems.com/kindred/solver" [tool.hatch.build.targets.wheel] packages = ["solver", "freecad"] [tool.ruff] target-version = "py311" line-length = 100 [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "N", # pep8-naming "UP", # pyupgrade "B", # flake8-bugbear "SIM", # flake8-simplify "TCH", # flake8-type-checking "RUF", # ruff-specific ] [tool.ruff.lint.isort] known-first-party = ["solver", "freecad"] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true check_untyped_defs = true [[tool.mypy.overrides]] module = [ "torch.*", "torch_geometric.*", "scipy.*", "wandb.*", "hydra.*", "omegaconf.*", ] ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests", "freecad/tests"] addopts = "-v --tb=short"