- Added alternate pin handling: when a pin number appears multiple times, the subsequent pins become alternates of the first pin.
- Added Style and Hidden columns to spd2csv CSV output.
- Added pin style modifiers in SPD files such as
!= inverted,>= clock,-= hidden. - Combined modifiers supported:
!>= inverted_clock. - Added support for
//comments in addition to;comments in SPD files. - Added part properties support in SPD files using
property_name: property_valueformat. - Added multi-pin bus support with automatic pin name incrementing.
- Added spacer pin support (empty lines or lines containing just
*create skipped pin positions). - Fixed pin naming: when pin name doesn't end with a number but has multiple pin numbers, the name is used as-is without appending incrementing index.
- Added comprehensive unit tests for spd2csv.
- Added
spd2csvcommand-line utility for converting SPD (Shorthand Part Description) symbol description format to CSV for use with kipart. - Added multi-unit symbol support in SPD files via the
unit <name>directive. - Added ability for kipart to read CSV from stdin when no input files are given.
- Added
--justifyparameter for controlling text justification on symbols. - Added support for custom properties that are placed below the symbol body.
- Added
--bundle-styleoption for choosing a suffix for bundled pins. - Added
-1/--one-symboloption for ignoring empty rows in CSV files. - Added ability to bundle NC (no-connect) pins when
-bflag is specified twice. - Enable bundling of power_out pins.
- Fixed bundled power_in pins becoming global nets.
- Fixed truncation behavior:
-wwithout-mnow properly truncates the destination file. - Moved validation of overwrite and merge operations into the row_file_to_symbol_file function.
- Improved spacing and breathing room on symbol properties.
- Fixed gridify rounding to round from zero.
- Updated tests to account for changes in overwrite/merge flag handling and output status messages.
- Fixed unit tests for bundle_pins() changes.
- Improved usage text formatting with code fencing.
- Fixed handling of rows of symbol properties.
- Names in the unit column of the CSV are now displayed in the unit name drop-down of the Symbol Editor.
- Added
hide-pin-numto remove pin numbers on generated symbols.
- Symbol pin lengths are now sized to fit the longest pin number.
- Symbol property names and values can now be placed on rows between the symbol name row and the pin rows.
- Symbol properties are now placed so they don't overlap any symbol unit if the units have differing sizes.
- Prepending asterisks to a pin number will insert blank pin spaces in the symbol.
- Multiple asterisks can be used to insert multiple blank pin spaces.
- Bundled pins now have the number of pins in the bundle appended to the pin name within brackets.
- Added
--alt-delimiteroption to split pin names using a given delimiter and assign them as alternate pin names.
- Complete rewrite to support modern KiCad symbol libraries based on S-expressions.
- Prevent bundling of spacer pins.
- Swapped test on -a and -w flags so appending with overwrite doesn't erase all the existing parts.
- Pin lengths are scaled to fit the size of the pin numbers.
- Part information is placed consistently regardless of part origin (either pin #1 or center).
- Fixed exceptions caused by malformed input pin data.
- Multiple asterisks can be prepended to pin numbers to create more than one blank pin location.
- Added ability to process KiCad V6 symbol libraries to kilib2csv.
- No-connect pins were added to the types of pins that can be bundled.
- Option was added to select the suffix for bundled pins: none, count ([[n]]{.title-ref}), or range ([[n:0]]{.title-ref}).
- Option was added to center the symbol on the origin.
- Option was added to "scrunch" pin columns closer together between top/bottom pin rows.
- Changes made to conform to KiCad Library Conventions.
- Decided this tool has matured to the point it could be called 1.0.0.
- Added option to set thickness of schematic symbol box.
- Added option to push pins left/up or right/down on the sides of the schematic symbol box.
- Removed reference to Lattice Diamond tool since it's no longer supported.
- Added "other" category to stm32cube_reader.py to remain compatible with new STM32cube software.
- KiPart will now use a <name>_reader.py file in the current directory to process part information.
- Cleaned up tests directory.
- Fixed missing field label for description in F5.
- Updated Lattice FPGA pinout reader.
- Added option to select schematic symbol fill style.
- Handled differing line terminations between Python 2/3 when converting XLSX to CSV file.
- Fixed Python 2 str.lower() error requiring conversion of str to unicode.
- Added missing parameter to stm32cube_reader().
- Added requirement for openpyxl.
- KiPart now accepts part data stored in Excel .xlsx files.
- Added reader for GOWIN FPGA pin tables.
- Kipart now creates individual .lib files if given multiple .csv files with no global output .lib file specified using the -o option.
- kilib2csv now creates individual .csv files if given multiple .lib files with no global output .csv file specified using the -o option.
- All symbols now include F2 (package) and F3 (datasheet) fields.
- Datasheet link and part description can be entered on the first line of a part description in the CSV file.
- Fixed error in field syntax for part manufacturer number.
- No-connect pins can no longer be bundled because it is marked as an ERC error by EESCHEMA.
- Pins sorted by name or row are now pplaced top-to-bottom on left/right sides and left-to-right on top/bottom sides.
- Removed *_ in statement that caused an error in Python2.
- Removed duplicated entries in pin-style table.
- ~ and # are now allowed in pin-style keys.
- Parts dictionary changed to OrderedDict so it retains the order parts were entered in. Important for passing random part generation tests.
- Specifying
-aoption allows new parts to be written to an existing library but prevents overwriting existing parts. Using-win conjunction with-aallows added parts to overwrite existing parts. - Part name, reference prefix, footprint, and manf. part num. are now allowed on beginning row of part info in a CSV file.
- Expanded the lists of mnemonics for pin types and styles.
- Fixed erroneous library generation when part number is omitted from first line of CSV file.
- Changed default output library to
kipart.libif no output library is specified. - Changed default output CSV file of kilib2csv to
kipart.csvif no output CSV file is specified.
- Added reader for Lattice FPGA devices (except iCE40). (Thanks, Adrien Descamps!)
- Fixed issue #11 (blank lines in CSV file were skipped and multiple parts ran together).
- Fixed issue #18 (crash when symbol side for pin was left blank).
- Fixed problem caused by pin side designators not being lower-case (e.g., "Left").
- Fixed Xilinx reader function to parse leading comments in their FPGA pin files.
- Added ability to create hidden pins.
- Fixed readers for Xilinx, STM32, PSoC devices.
- Pins on multiple sides of a symbol are now distributed in a more attractive manner.
- Extra stuff on starting line of library no longer kill kilib2csv.
- Fixed bug where kilib2csv was choking on footprint lists in part definitions.
- Added utility to test kilib2csv and kipart on randomly-generated CSV part files.
- kilib2csv utility added to convert KiCad schematic symbol libraries into CSV files suitable for input to KiPart.
- Use same type of sorting for unit names as for pin names so (for example) unit 'ADC_12' comes before unit 'ADC_2'.
- Added reader for CSV-formatted pinout files exported from the STM32CubeMx tool. (Thanks, Hasan Yavuz OZDERYA!)
- Added reader for Xilinx Ultrascale FPGAs.
- Fixed insertion of spaces between groups of pins when pin number starts with '*'.
- Replaced call to warnings.warn with issues() function.
- fix_pin_data() now strips leading/trailing spaces from pin information.
- Fixed incorrect y-offset of pins for symbols that only have pins along the right side.
- The number of pins in a bundle is now appended to the pin name instead of an '*'.
- Added capability to insert non-existent "gap" pins that divide groups of pins into sections.
- future module requirement added to setup.py.
- Now runs under both Python 2.7 and 3.4.
- The bundling option now only bundles pins where that operation makes sense: power input pins (e.g., VCC and GND) and no-connect pins.
- Input data from the CSV file is now scanned for errors and fixed before it can cause problems in the library file.
- Added reader functions for Xilinx Virtex-6 and Spartan-6.
- Broke-out reader functions into separate modules.
- TXT and CSV files are now acceptable as part data files, but the reader has to be built to handle it.
- Fuzzy string matching is now used for the column headers.
- Choice-type options are now case-insensitive.
- Multiple parts can now be described in a single CSV file.
- Added function and option for reading Cypress PSoC5LP CSV files.
- Simplified key generators for sorting pins by name or number.
- Improved ordering of pins by name.
- Added option for approximate (fuzzy) matching for pin types, styles and orientations (sides).
- Multiple pins with the same name are now hidden by reducing their pin number size to zero (rather than enabling the hidden flag which can cause problems with power-in pins).
- Symbols can now have pins on any combination of left, right, top and bottom sides.
- Added option to append parts to an existing library.
- Refactored kipart routine into subroutines.
- Added documentation.
- Fixed calculation of pin name widths.
- Made CSV row order the default for arranging pins on the schematic symbol.
- Fixed sorting key routine for numeric pin numbers.
- Spaces are now stripped between fields in a CSV file.
- First release on PyPI.