Core EasyEDA / LCSC symbol, footprint, and 3D reference parsing tooling
Project description
EasyEDA Monkey
easyeda_monkey is a small Python package for reading EasyEDA / LCSC component
data into typed Python objects. It also exposes a small diagnostic CLI for
package-local fetch and inspection workflows.
Current scope:
- EasyEDA / LCSC component API responses
- schematic symbols
- PCB footprints
- 3D model references and URL extraction
- SVG path parsing helpers
The package is intentionally focused on parsing and close-to-format data models. Larger workflow commands and conversion applications should live in downstream tools.
Install
Install uv first if it is not already available:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
On macOS or Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
For the command-line tool, use uv tool install so the executable is installed
in an isolated tool environment and exposed on PATH:
uv tool install easyeda-monkey
uv tool update-shell
easyeda-monkey --version
For library use inside an existing Python environment:
pip install easyeda-monkey
For development:
git clone https://github.com/wavenumber-eng/easyeda_monkey.git
cd easyeda_monkey
uv sync --extra test
Testing
The active suite uses redistributable saved EasyEDA / LCSC API response fixtures and does not require a private corpus.
uv run --extra test rack run --all
Rack is the primary local gate. L99 signoff runs release metadata checks, Python signoff, CLI design-doc checks, API design-doc checks, ruff, and pyright.
CLI
The package installs the easyeda-monkey console script.
easyeda-monkey --version
easyeda-monkey fetch-part C21190
easyeda-monkey fetch-part C21190 --cache-dir .cache/easyeda --output C21190.summary.json
easyeda-monkey download-part C21190 --output-dir output
download-part writes to output/<LCSC_ID>/ by default. The bundle includes
the raw API response, a compact summary, extracted 3D model metadata, and STEP
or OBJ model files when EasyEDA exposes a model reference for the part.
The top-level CLI module is only an orchestrator. Each public subcommand lives
in its own easyeda_monkey.cli_commands module, even when the command is
small.
Design And Test Docs
docs/ is the source of truth for architecture, tests, and contracts. The
master design entry point is docs/design/index.html.
Every public CLI command must have a matching HTML design document under
docs/design/cli/. The filename must match the command name, and signoff fails
when a registered command is missing its design document.
Commands that accept config files must also define a machine-readable contract and validation tests before release.
New public features, commands, and external dependencies need explicit justification in the commit, PR, or linked plan. Prefer the standard library and existing dependencies unless a new dependency has a clear install, licensing, and maintenance case.
Every public dataclass and major interface needs design documentation under
docs/design/api/. L99 signoff fails when interface docs or Rack test
ownership are missing.
Fixture Model
Active fixtures live under:
tests/L0_foundation/cases/api_responses
Broader fixture families should use this shape when needed:
input/reference_output/output/
output/ is transient and should stay local or temporary.
Scope Boundaries
Core package responsibilities:
- parse EasyEDA-native JSON structures into typed Python objects
- preserve EasyEDA-native semantics
- expose a clean parser/API surface for downstream converters
Deferred or downstream responsibilities:
- command-line workflow applications
- Altium, KiCad, or other EDA conversion policy
- private project corpus handling
Documentation
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easyeda_monkey-2026.5.26.2.tar.gz.
File metadata
- Download URL: easyeda_monkey-2026.5.26.2.tar.gz
- Upload date:
- Size: 136.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1c38e7faab19fb43c48e68817e71dc106602ff51cedced0b4f9d246fac25738
|
|
| MD5 |
80e1b2ce58fead27686416f1b421ab5a
|
|
| BLAKE2b-256 |
5c1d88b939b90ddd560671d68e9a828c30de13c13192a3a99357100c8e58e6c5
|
Provenance
The following attestation bundles were made for easyeda_monkey-2026.5.26.2.tar.gz:
Publisher:
release.yml on wavenumber-eng/easyeda_monkey
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easyeda_monkey-2026.5.26.2.tar.gz -
Subject digest:
f1c38e7faab19fb43c48e68817e71dc106602ff51cedced0b4f9d246fac25738 - Sigstore transparency entry: 1633561510
- Sigstore integration time:
-
Permalink:
wavenumber-eng/easyeda_monkey@2c91521d642121faae6dcb01ca978d251e3b7249 -
Branch / Tag:
refs/tags/easyeda-monkey/v2026.5.26.2 - Owner: https://github.com/wavenumber-eng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2c91521d642121faae6dcb01ca978d251e3b7249 -
Trigger Event:
release
-
Statement type:
File details
Details for the file easyeda_monkey-2026.5.26.2-py3-none-any.whl.
File metadata
- Download URL: easyeda_monkey-2026.5.26.2-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b04d20c27c32a1a6e3fd1bf2b6861c876f94d802e545c2c21edaa7bc255bbdd1
|
|
| MD5 |
852725ad1a2894f04b71630c41ddb629
|
|
| BLAKE2b-256 |
2b77f05e285ac1349570a83301bb6d0738523af70386893d0b1b6db76f41b3da
|
Provenance
The following attestation bundles were made for easyeda_monkey-2026.5.26.2-py3-none-any.whl:
Publisher:
release.yml on wavenumber-eng/easyeda_monkey
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easyeda_monkey-2026.5.26.2-py3-none-any.whl -
Subject digest:
b04d20c27c32a1a6e3fd1bf2b6861c876f94d802e545c2c21edaa7bc255bbdd1 - Sigstore transparency entry: 1633561519
- Sigstore integration time:
-
Permalink:
wavenumber-eng/easyeda_monkey@2c91521d642121faae6dcb01ca978d251e3b7249 -
Branch / Tag:
refs/tags/easyeda-monkey/v2026.5.26.2 - Owner: https://github.com/wavenumber-eng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2c91521d642121faae6dcb01ca978d251e3b7249 -
Trigger Event:
release
-
Statement type: