Module and utilities for manipulating part fields in KiCad files.

## Project description

A utility for manipulating part fields in KiCad schematic files or libraries. KiField can extract all the component fields from a schematic or library and place them into a spreadsheet for bulk editing, after which you can insert the edited values from the spreadsheet back into the schematic or library.

KiField is usually employed in a three-step process:

1. First use KiField to extract the part field labels and values from a schematic or library and place them into a CSV or XLSX spreadsheet file.
2. Edit the spreadsheet file to change existing field values, add entirely new fields, or completely delete fields.
3. Finally, use KiField to insert the updated field labels and values from the spreadsheet file into the schematic or library.

## Features

• Extracts all fields and values from one or more KiCad schematic libraries or files (even hierarchical designs), and inserts them into a spreadsheet (either CSV or XLSX format).
• Extracts all fields and values from one or more CSV or XLSX spreadsheet files and inserts them into one or more KiCad schematics or libraries.

## History

### 1.0.0 (2022-05-06)

• Bumped to version 1.0.0.
• Fixed a bug where field visibility is default-visible and/or cannot be set if Reference field does not contain an ‘effects’ property.
• Fixed some string-splitting and unicode bugs in find_by_key() that manifested in Python 2.

### 0.2.0 (2021-07-28)

• Added --no_range, -nr option to disable hyphenated ranges when components are grouped, explicitly showing each component in a group.

### 0.1.19 (2021-07-27)

• Bug fix: Add sexpdata to install requirements.
• Bug fix: Add import of reduce from functools.
• Bug fix: Correct disappearance of default part fields when extracting from schematic to spreadsheet file.
• Bug fix: Explode collapsed references when importing a spreadsheet file.

### 0.1.18 (2021-06-28)

• KiCad V6 schematic and library files are now supported (well, V5.99 actually, but the file formats shouldn’t change).

### 0.1.17 (2021-03-25)

• Part fields are cleaned up if they contain newlines.
• Lines in a schematic file which were broken by a newline within a quoted string are rejoined.
• Generated spreadsheet cells have their format set to TEXT if they contain a string.

### 0.1.16 (2020-07-26)

• Fixed problem with unescaped quote being inserted into schematics/libraries.

### 0.1.15 (2019-02-17)

• Fixed problems caused by new 2.6.0 version of openpyxl.

### 0.1.14 (2019-01-08)

• Fixed handling of relative sheetpaths in hierarchical schematics.
• Fixed string problems that occur under Anaconda.

### 0.1.13 (2018-10-28)

• Now works on files outside the current directory.
• Clearer error explanation when part field extraction fails.
• Simplified installation instructions.

### 0.1.12 (2018-01-22)

• Fixed error where output was not produced because KiField was first trying to backup a non-existent output file.

### 0.1.11 (2018-01-04)

• Line-feeds and carriage-returns are stripped from strings inserted into .sch or .lib files.
• Fixed error where reading .lib files was ignoring the first line after the EESchema-LIBRARY header and missing a part DEF.

### 0.1.10 (2018-01-01)

• File backup now works on all files in a hierarchical schematic.

### 0.1.9 (2017-12-31)

• Fixed mishandling of quoted strings containing escaped quotation marks.

### 0.1.8 (2017-09-23)

• Catch exception caused by numeric fields that aren’t strings interacting with vis/invis option.

### 0.1.7 (2017-08-14)

• Added visibility/invisibility option for fields.

### 0.1.6 (2017-01-30)

• Added “grouping” option (–group) for gathering components with the same field values onto a single line of the XLSX/CSV/TSV file.

### 0.1.5 (2016-11-29)

• Added recursive operations on hierarchical schematics so everything can be handled just by processing the top-level file.

### 0.1.3 (2016-05-29)

• Fixed issue where all the fields from multi-unit components in a schematic were not appearing in the csv file.

### 0.1.2 (2016-04-13)

• Fixed issues #3 and #4 regarding incompatibilities with openpyxl 2.4.0a1.

### 0.1.1 (2016-02-20)

• Added the ability to extract/insert fields in DCM files.
• Added the ability to explicitly exclude fields from extraction/insertion.

### 0.1.0 (2016-01-29)

• First release on PyPI.

## Project details

Uploaded source