# Project metadata [project] dynamic = ["version", "urls"] name = "amaranth" description = "Amaranth hardware definition language" authors = [{name = "Amaranth HDL contributors"}] license = {file = "LICENSE.txt"} requires-python = "~=3.8" dependencies = [ "importlib_resources; python_version<'3.9'", # for amaranth._toolchain.yosys "pyvcd>=0.2.2,<0.5", # for amaranth.sim.pysim "Jinja2~=3.0", # for amaranth.build ] [project.optional-dependencies] # this version requirement needs to be synchronized with the one in amaranth.back.verilog! builtin-yosys = ["amaranth-yosys>=0.10"] remote-build = ["paramiko~=2.7"] [project.scripts] amaranth-rpc = "amaranth.rpc:main" # Build system configuration [build-system] requires = ["wheel", "setuptools>=67.0", "setuptools_scm[toml]>=6.2"] build-backend = "setuptools.build_meta" [tool.setuptools] # If amaranth 0.3 is checked out with git (e.g. as a part of a persistent editable install or # a git worktree cached by tools like poetry), it can have an empty `nmigen` directory left over, # which causes a hard error because setuptools cannot determine the top-level package. # Add a workaround to improve experience for people upgrading from old checkouts. packages = ["amaranth"] [tool.setuptools_scm] local_scheme = "node-and-timestamp" # Development workflow configuration [tool.pdm.dev-dependencies] test = [ "coverage", ] docs = [ "sphinx~=5.3", "sphinxcontrib-platformpicker~=1.3", "sphinx-rtd-theme~=1.2", "sphinx-autobuild", ] [tool.pdm.scripts] test.composite = ["test-code", "test-docs"] test-code.env = {PYTHONWARNINGS = "error"} test-code.cmd = "python -m coverage run -m unittest discover -t . -s tests -v" test-docs.cmd = "sphinx-build -b doctest docs/ docs/_build" document.cmd = "sphinx-build docs/ docs/_build/" document-live.cmd = "sphinx-autobuild docs/ docs/_build/ --watch amaranth"