# Project metadata [tool.pdm.version] source = "scm" [project] dynamic = ["version"] name = "amaranth" description = "Amaranth hardware definition language" readme = "README.md" 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: # - pyproject.toml: tool.pdm.dev-dependencies.test # - amaranth/back/verilog.py: _convert_rtlil_text # - docs/install.rst: yosys-version builtin-yosys = ["amaranth-yosys>=0.38"] 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] # Remove this once we no longer support Python 3.8. ignore_package_warnings = ["sphinx*"] [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/"] source-includes = [ ".gitignore", ".coveragerc", ".env.toolchain", "CONTRIBUTING.txt", ] # Development workflow configuration [tool.pdm.dev-dependencies] # This version requirement needs to be synchronized with the one in pyproject.toml above! test = [ "yowasp-yosys>=0.38", "coverage", ] docs = [ "sphinx~=7.1", "sphinxcontrib-platformpicker~=1.3", "sphinx-rtd-theme~=2.0", "sphinx-autobuild", ] examples = [ "amaranth-boards @ git+https://github.com/amaranth-lang/amaranth-boards.git" ] [tool.pdm.scripts] _.env_file = ".env.toolchain" 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/ -W --keep-going" document-live.cmd = "sphinx-autobuild docs/ docs/_build/ --watch amaranth" document-linkcheck.cmd = "sphinx-build docs/ docs/_linkcheck/ -b linkcheck" coverage-text.cmd = "python -m coverage report" coverage-html.cmd = "python -m coverage html"