Skip to main content

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


Download files

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

Source Distribution

easyeda_monkey-2026.5.26.2.tar.gz (136.9 kB view details)

Uploaded Source

Built Distribution

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

easyeda_monkey-2026.5.26.2-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

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

Hashes for easyeda_monkey-2026.5.26.2.tar.gz
Algorithm Hash digest
SHA256 f1c38e7faab19fb43c48e68817e71dc106602ff51cedced0b4f9d246fac25738
MD5 80e1b2ce58fead27686416f1b421ab5a
BLAKE2b-256 5c1d88b939b90ddd560671d68e9a828c30de13c13192a3a99357100c8e58e6c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyeda_monkey-2026.5.26.2.tar.gz:

Publisher: release.yml on wavenumber-eng/easyeda_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 easyeda_monkey-2026.5.26.2-py3-none-any.whl.

File metadata

File hashes

Hashes for easyeda_monkey-2026.5.26.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b04d20c27c32a1a6e3fd1bf2b6861c876f94d802e545c2c21edaa7bc255bbdd1
MD5 852725ad1a2894f04b71630c41ddb629
BLAKE2b-256 2b77f05e285ac1349570a83301bb6d0738523af70386893d0b1b6db76f41b3da

See more details on using hashes here.

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

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