Installation#
Requirements#
Runtime requirements (always installed):
Python >= 3.10
systemrdl-compiler >= 1.30.1
jinja2
NumPy — hard dependency
CMake >= 3.15 (for building generated modules)
C++11 compatible compiler (for building generated modules)
pybind11 (runtime dependency for generated code)
NumPy is a hard runtime dependency, not optional. Bursts, bulk reads, and
the buffer protocol return ndarray from arrays, memory regions, and
snapshot frames; pretending NumPy were optional would just push the same
import into user code. There is no list-fallback shim and no apology — if
peakrdl-pybind11 is installed, numpy is installed.
Using pip#
The easiest way to install PeakRDL-pybind11 is using pip:
pip install peakrdl-pybind11
Optional extras#
Several features have soft dependencies. They are not required to import or use the core API, but they unlock additional functionality when present:
ipywidgets — powers
watch()live monitor widgets in Jupyter notebooks. Without it,watch()falls back to a plain text refresh loop.watchdog — required by the
--watchCLI flag, which rebuilds and hot-reloads the bound module when the source RDL changes.pandas — enables
Snapshot.to_dataframe()for tabular introspection of all readable fields in a snapshot.
These can be installed individually, or grouped via the notebook extras
bundle (recommended for interactive workflows):
pip install peakrdl-pybind11[notebook]
Note
The [notebook] extras group is the intended UX for grouping the
notebook/interactive soft dependencies. The exact set of extras groups
may evolve as the API stabilizes.
From Source#
To install from source:
git clone https://github.com/arnavsacheti/PeakRDL-pybind11.git
cd PeakRDL-pybind11
pip install -e .
Development Installation#
For development, install with test dependencies:
git clone https://github.com/arnavsacheti/PeakRDL-pybind11.git
cd PeakRDL-pybind11
pip install -e .
pip install pytest pytest-cov
Verifying Installation#
Verify the installation by running:
peakrdl pybind11 --help
You should see the help message for the pybind11 exporter.