Files
PeakRDL-BusDecoder/pyproject.toml
Arnav Sacheti a9653c8497 Tests/cocotb (#19)
* wip

* reorg

* update sv int

* apb4 working

* apb3 working

* version bump + ignore runner warning

* remove redundant check

* adding log on failure

* cleaning up verilator version issue

* devcontainer

* Fix missing libpython in GitHub Actions CI environment (#21)

* Initial plan

* Install libpython in GitHub Actions for cocotb tests

Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-10 23:00:28 -08:00

118 lines
3.3 KiB
TOML

[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[project]
name = "peakrdl-busdecoder"
version = "0.5.0"
requires-python = ">=3.10"
dependencies = ["jinja2>=3.1.6", "systemrdl-compiler~=1.30.1"]
authors = [{ name = "Arnav Sacheti" }]
description = "Generate a SystemVerilog bus decoder from SystemRDL for splitting CPU interfaces to multiple sub-address spaces"
readme = "README.md"
license = { text = "LGPLv3" }
keywords = [
"SystemRDL",
"PeakRDL",
"bus decoder",
"address decoder",
"hierarchical addressing",
"compiler",
"tool",
"registers",
"generator",
"Verilog",
"SystemVerilog",
"register abstraction layer",
"FPGA",
"ASIC",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Operating System :: OS Independent",
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
]
[project.optional-dependencies]
cli = ["peakrdl-cli >= 1.2.3"]
[project.urls]
Source = "https://github.com/arnavsacheti/PeakRDL-BusDecoder"
Tracker = "https://github.com/arnavsacheti/PeakRDL-BusDecoder/issues"
Changelog = "https://github.com/arnavsacheti/PeakRDL-BusDecoder/releases"
Documentation = "https://peakrdl-busdecoder.readthedocs.io/"
[dependency-groups]
docs = [
"pygments-systemrdl>=1.3.0",
"sphinx-book-theme>=1.1.4",
"sphinxcontrib-wavedrom>=3.0.4",
]
test = [
"parameterized>=0.9.0",
"pytest>=7.4.4",
"pytest-cov>=4.1.0",
"pytest-xdist>=3.5.0",
"cocotb>=1.8.0",
"cocotb-bus>=0.2.1",
]
tools = ["pyrefly>=0.37.0", "ruff>=0.14.0"]
[project.entry-points."peakrdl.exporters"]
busdecoder = "peakrdl_busdecoder.__peakrdl__:Exporter"
# ---------------------- RUFF ----------------------
[tool.ruff]
line-length = 110
target-version = "py310"
extend-exclude = ["CVS", "parser", "docs", "tests"]
[tool.ruff.lint]
select = [
"E", # pycodestyle
"F", # pyflakes
"I", # isort
"B", # bugbear
"UP", # pyupgrade
"RUF", # ruff-specific
"ANN", # flake8-annotations (require type annotations)
]
ignore = [
"F841", # unused-variable
"UP032", # consider-using-f-string
"E501", # line-too-long
]
# Make tests less strict for annotations.
# [tool.ruff.lint.per-file-ignores]
# "tests/**/*" = ["ANN*"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
# ---------------------- PYREFLY ----------------------
[tool.pyrefly]
python-version = "3.10"
# Default behavior: check bodies of untyped defs & infer return types.
untyped-def-behavior = "check-and-infer-return-type"
project-includes = ["src/**/*"]
project-excludes = ["**/__pycache__", "**/*venv/**/*"]
# ---------------------- PYTEST ----------------------
[tool.pytest.ini_options]
python_files = ["test_*.py", "*_test.py"]
markers = [
"simulation: marks tests as requiring cocotb simulation (deselect with '-m \"not simulation\"')",
"verilator: marks tests as requiring verilator simulator (deselect with '-m \"not verilator\"')",
]
filterwarnings = ["error", "ignore::UserWarning"]