$ show devbisme/KiPart
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.
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.
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.
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.