# Project metadata [tool.pdm.version] source = "scm" [project] dynamic = ["version"] 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" [project.urls] "Homepage" = "https://amaranth-lang.org/" "Documentation" = "https://amaranth-lang.org/docs/amaranth/" # modified in pdm_build.py "Source Code" = "https://github.com/amaranth-lang/amaranth" "Bug Tracker" = "https://github.com/amaranth-lang/amaranth/issues" # Build system configuration [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" [tool.pdm.build] # 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. includes = ["amaranth/"] # Development workflow configuration [tool.pdm.dev-dependencies] test = [ "coverage", ] docs = [ "sphinx~=5.3", "sphinxcontrib-platformpicker~=1.3", "sphinx-rtd-theme~=1.2", "sphinx-autobuild", ] examples = [ "amaranth-boards @ git+https://github.com/amaranth-lang/amaranth-boards.git" ] [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" coverage-text.cmd = "python -m coverage report" coverage-html.cmd = "python -m coverage html"