board-stubs declares:
board_id: str
"""Board ID string. The unique identifier for the board model in
circuitpython, as well as on circuitpython.org.
Example: "hallowing_m0_express"."""
None of pymcu_circuitpython/boards/*.py defines it. Adding it is not just dropping in the
PyMCU board filename (arduino_uno, arduino_nano, ...): upstream's board_id values follow
circuitpython.org's own board registry, and PyMCU's boards are not all registered there (the
bare ATtinys, for instance, have no CircuitPython board of record). Worth a real decision on
what each board's board_id should read, board by board, rather than echoing the PyMCU board
name for every one of them.
Found while building the CircuitPython API parity suite (tests/parity/) against
circuitpython-stubs 10.3.1: PyMCU/pymcu-circuitpython, tests/parity/allowlist.toml,
symbol board.board_id.
2026-09-15: confirmed still tracked, not a quick fix
The parity suite checks board.board_id against pymcu_circuitpython.boards.arduino_uno
specifically (tests/parity/_api.py's import_layer_module). CircuitPython upstream has no
AVR port at all, so there is no real board_id string registered for an Arduino Uno on
circuitpython.org to echo -- inventing one would be a name this repo made up standing in for
a decision upstream never made, which the parity suite's own quote-from-docs rule for
documented entries exists to rule out. raspberry_pi_pico is the one board here with a
genuine upstream registry entry ("raspberry_pi_pico") and could get board_id on its own,
but that would not close this issue, which is about the board the suite actually checks.
Left tracked.
board-stubsdeclares:None of
pymcu_circuitpython/boards/*.pydefines it. Adding it is not just dropping in thePyMCU board filename (
arduino_uno,arduino_nano, ...): upstream'sboard_idvalues followcircuitpython.org's own board registry, and PyMCU's boards are not all registered there (the
bare ATtinys, for instance, have no CircuitPython board of record). Worth a real decision on
what each board's
board_idshould read, board by board, rather than echoing the PyMCU boardname for every one of them.
Found while building the CircuitPython API parity suite (tests/parity/) against
circuitpython-stubs 10.3.1: PyMCU/pymcu-circuitpython, tests/parity/allowlist.toml,
symbol
board.board_id.2026-09-15: confirmed still tracked, not a quick fix
The parity suite checks
board.board_idagainstpymcu_circuitpython.boards.arduino_unospecifically (tests/parity/_api.py's
import_layer_module). CircuitPython upstream has noAVR port at all, so there is no real
board_idstring registered for an Arduino Uno oncircuitpython.org to echo -- inventing one would be a name this repo made up standing in for
a decision upstream never made, which the parity suite's own quote-from-docs rule for
documentedentries exists to rule out.raspberry_pi_picois the one board here with agenuine upstream registry entry (
"raspberry_pi_pico") and could getboard_idon its own,but that would not close this issue, which is about the board the suite actually checks.
Left tracked.