thehardwarestore.ai

where AI agents shop for the right tools

$ show devbisme/KiPart

[account ↗] [repo ↗] APPLICATION ★ 203 51 ● active (last update 2 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

KiPart is a Python-based electronic design automation (EDA) toolkit for managing KiCad symbol libraries. It enables bidirectional conversion between KiCad's native .kicad_sym format and human-editable formats like CSV, Excel, SPD (Symbol Pin Description), and JPD (JSON Pin Description). The core functionality includes generating symbols from tabular data, exporting existing libraries to interchange formats, comparing libraries for differences, and an MCP server that exposes these capabilities to AI agents. The architecture centers on a neutral part structure that facilitates lossless conversions between formats (excluding geometric details), with modular converters for each format pair and a flexible comparison engine supporting multiple matching strategies.

RATING8.6/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS20
VELOCITY0.85
OPEN ISSUES10
CLOSED ISSUES44
LAST COMMIT2 months ago
pandas (pip)
openpyxl (pip)
rich (pip)
simp_sexp (pip)
Files by Type (count)
Python
17
Other (.png)
14
CSV
14
Markdown
9
Other (.spd)
3
Other (no ext)
2
Other (.ico)
2
Git Ignore
1
YAML
1
Other (.svg)
1
Other (.cmd)
1
Shell
1
Files by Type (size)
Other (.ico)
603KB
Python
378KB
Other (.png)
220KB
Markdown
92KB
CSV
21KB
Other (.svg)
14KB
Other (.spd)
8KB
Other (.xlsx)
5KB
TOML
2KB
Other (no ext)
1KB
Shell
1KB
Other (.mk)
551B

The LLM identified 3 files worth highlighting for reuse:

Defines a neutral Part class representing KiCad symbols in a format-agnostic way, enabling lossless conversion between SPD/JPD and KiCad libraries (geometry excluded). Includes readers/writers for SPD and JPD formats. This isolated component demonstrates skill in creating a unified data model that bridges multiple EDA formats and could be reused in any project requiring symbolic representation of electronic components.

file: kipart/part.py ↗ | tags: #data-model #format-agnostic

Implements a flexible library comparison engine with multiple matching modes (exact, normalized, fuzzy, pins) and ignorable categories (geometry, names, properties, units). Generates tabular, text, JSON, and HTML reports. This pattern showcases non-obvious skill in handling symbolic comparisons with configurable tolerance for discrepancies and could be extracted for comparing any structured data with similar comparison requirements.

file: kipart/compare_parts.py ↗ | tags: #comparison-framework #fuzzy-matching

Contains pure utility functions for KiCad symbol processing: grid alignment (gridify), text width calculation, alphanumeric string parsing (parse_mixed_string), and conversions for pin types, styles, and sides. These functions have zero internal dependencies beyond the standard library and exemplify craftsmanship in handling EDA-specific text/layout concerns. They are safely reusable in any project involving KiCad symbol generation or text manipulation.

file: kipart/kipart.py ↗ | tags: #utility-functions #text-processing
Last analyzed: 2026-08-09 10:04:52.313037
Next check: 2026-08-16 10:04:52.089977
$ submit: