[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "freeroute" version = "0.1.0" description = "Native Python PCB autorouter — a Java-free port of the FreeRouting engine (Specctra DSN in, SES out)" readme = "README.md" license = { text = "GPL-3.0-or-later" } authors = [{ name = "Ryan Malloy", email = "ryan@supported.systems" }] keywords = ["pcb", "autorouter", "routing", "specctra", "dsn", "ses", "kicad", "eda"] classifiers = [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: Manufacturing", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] requires-python = ">=3.10" dependencies = [] [project.urls] "Homepage" = "https://git.supported.systems/warehack.ing/freeroute" "Repository" = "https://git.supported.systems/warehack.ing/freeroute" "Upstream" = "https://github.com/freerouting/freerouting" [project.scripts] freeroute = "freeroute.cli:main" [dependency-groups] dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "ruff>=0.1.0", ] [tool.hatch.build.targets.wheel] packages = ["src/freeroute"] [tool.ruff] target-version = "py310" line-length = 100 src = ["src", "tests"] [tool.ruff.lint] select = ["E", "W", "F", "I", "B", "C4", "UP", "SIM"] ignore = ["E501"] [tool.ruff.lint.isort] known-first-party = ["freeroute"] force-sort-within-sections = true [tool.pytest.ini_options] minversion = "7.0" testpaths = ["tests"] pythonpath = ["tests"] addopts = ["-ra", "--strict-markers"] markers = [ "oracle: runs the FreeRouting JAR (slow, needs Java); deselect with -m 'not oracle'", ]