Skip to main content

Core KiCad parser, round-trip, and 2D rendering tooling

Project description

KiCad Monkey

        ▓▓▓▓▓▓▓▓▓▓
      ▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  ▓▓▓▓░░░░░░▓▓░░░░░░▓▓▓▓

░░░░▓▓░░░░░░░░░░░░░░░░░░▓▓░░░░ ░░░░▓▓░░ ░░░░░░ ░░▓▓░░░░ ░░▓▓░░ ██░░░░░░ ██░░▓▓░░ ▓▓░░░░░░░░░░░░░░░░░░▓▓ ▓▓░░░░░░░░░░░░░░▓▓ ▓▓▓▓░░░░░░▓▓▓▓ ░░ ▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓░░▓▓░░▓▓▓▓

kicad_monkey is a focused Python package for KiCad source-file parsing, round-trip modeling, close-to-format utilities, and IR-backed 2D rendering.

Current scope:

  • KiCad S-expression parsing helpers
  • schematic, symbol-library, PCB, footprint, project, and design OOP facades
  • property cleanup and model mutation helpers
  • netlist and connectivity utilities
  • plotter-style IR and SVG rendering entrypoints

Larger workflow commands and heavier application orchestration should live in downstream packages such as kicad-cruncher.

Install

For library use inside an existing Python environment:

pip install kicad-monkey

For development:

git clone https://github.com/wavenumber-eng/kicad_monkey.git
cd kicad_monkey
uv sync --extra test

Testing

Rack is the primary public gate:

uv run --extra test python tests/rack.py run L0_foundation
uv run --extra test python tests/rack.py run L99_signoff

L99_signoff checks release metadata, changelog coverage, public API contract resolution, API design-doc ownership, Rack test ownership, corpus archive hygiene, and the current ruff/pyright ratchet state.

The redistributable KiCad corpus is transported as tests/corpus/kicad.zip. The loose mirror is ignored locally; test helpers extract it on demand when no external corpus is configured.

API Shape

The promoted package-root API is recorded in kicad_monkey.kicad_api_contract. The broad package __all__ remains a provisional discovery surface while kicad-cruncher integration proves which symbols should graduate into the durable public contract.

The public OOP facade groups and supporting public classes are documented under docs/design/api. L99 fails when a promoted public class or major interface is missing design documentation or Rack test ownership.

Typical entrypoints:

from kicad_monkey import KiCadDesign, KiCadPcb, KiCadSchematic

schematic = KiCadSchematic.from_file("design.kicad_sch")
board = KiCadPcb.from_file("board.kicad_pcb")
design = KiCadDesign.from_project_file("project.kicad_pro")

SVG generation goes through the IR-backed rendering path.

Fixture Model

Public fixtures should be redistributable and package-local when possible. Broader fixture families should use this shape:

  • input/
  • reference_output/
  • output/

output/ is transient and should stay local or temporary.

Documentation

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kicad_monkey-2026.5.31.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kicad_monkey-2026.5.31-py3-none-any.whl (611.5 kB view details)

Uploaded Python 3

File details

Details for the file kicad_monkey-2026.5.31.tar.gz.

File metadata

  • Download URL: kicad_monkey-2026.5.31.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kicad_monkey-2026.5.31.tar.gz
Algorithm Hash digest
SHA256 d9218de1d26d3e8a14b6815d9f9360456ad670b256565011706aece4d55ce9ee
MD5 bb35a012215b8f9c532142a23d58b330
BLAKE2b-256 963d871f817c697eeab843d0d82f98a91a74d8853c19b9f8d8467abf2591e02f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kicad_monkey-2026.5.31.tar.gz:

Publisher: release.yml on wavenumber-eng/kicad_monkey

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kicad_monkey-2026.5.31-py3-none-any.whl.

File metadata

File hashes

Hashes for kicad_monkey-2026.5.31-py3-none-any.whl
Algorithm Hash digest
SHA256 3fb3e43dd149fb152fe11220e43ca16d930da5af120d2bd53f445c9b05f3209f
MD5 4c578b24e93d835b1d5dc07ad8c0e4fc
BLAKE2b-256 b62f8f85d6869931a595d1cab1903dae12d51d740282357f84f8df5873685e8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kicad_monkey-2026.5.31-py3-none-any.whl:

Publisher: release.yml on wavenumber-eng/kicad_monkey

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page