This release adds initial KiCad v7 support.
- Changed: Removed
SyFill
in favour ofFill
tokens everywhere - (PR #76)
- Added: Parsing new sheet names - (PR #59)
- Added:
Arc
,Rectangle
andCircle
tokens - (PR #76) - Added:
Schematic.shapes
to hold arcs, rectangles and circles - (PR #76) - Added:
GrTextBox
,FpTextBox
,SyTextBox
andTextBox
tokens - (PR #76) - Added:
SchematicSymbol.dnp
token - (PR #77) - Added:
fields_autoplaced
token to all kinds of lables - (PR #77) - Added:
NetclassFlag
token - (PR #80) - Added:
Property.showName
token - (PR #80) - Added:
Rule.severity
token for design rules - (PR #84) - Added:
plotOnAllLayersSelection
,dashedLineDashRatio
anddashedLineGapRatio
tokens inPlotSettings
- (PR #85) - Added:
RenderCache
token for supported text items - (PR #87) - Added:
ProjectInstance
tokens for schematic symbols and hierarchical sheets - (PR #88) - Changed: Strokes are now parsed less strictly - (PR #57)
- Changed: Default value of
Stroke.type
from "dash" to "default" - (PR #63) - Changed:
Stroke.color
is now optional - (PR #63) - Changed:
Stroke.type
is now optional - (PR #82) - Changed:
Schematic.uuid
is now optional - (PR #63) - Changed:
Property.id
is now optional - (PR #78) - Changed:
SymbolPin.nameEffects
andSymbolPin.numberEffects
are now optional - (PR #82) - Changed:
PlotSettings.svgUseInch
andPlotSettings.excludeEdgeLayer
are now optional - (PR #85) - Fixed: Regex parser not correctly handling backslashes in quoted strings - (PR #82)
- Fixed:
DesignRules.from_sexpr()
not parsing version token - (PR #84)
- Changed: The ID token API was consolidated - (PR #54)
SchematicSymbol
:self.libraryIdentifier
renamed toself.libId
Symbol
:self.id
renamed toself.libId
Footprint
:self.libraryLink
renamed toself.libId
- Setting and getting
self.libId
will update some subtokens of these classes. Check the documentation for more information on this.
- Changed:
Footprint.create_new()
's parameterlibrary_link
renamed tolibrary_id
- (PR #54) - Changed:
SymbolLib.version
is now a non-optional token that defaults to the config entryKIUTILS_CREATE_NEW_VERSION_STR
- (PR #55)
- Added: API for lib_name token in
SchematicSymbol
calledself.libName
- (PR #54) - Added: Tokens
self.entryName
andself.libraryNickname
for classesSymbol
,SchematicSymbol
andFootprint
. These tokens are part of thelibId
token and will be changed when setting it. - (PR #41) - Added Tokens
self.unitId
andself.styleId
forSymbol
class. These tokens are part of thelibId
token and will be changed when setting it. - (PR #41) - Added: All
from_file
andto_file
methods got a new optional parameterencoding
to change the default encoding when reading/writing files. - (PR #50) - Added: New
active
token inLibTable
class - (PR #51) - Added: CONTRIBUTING.md - (PR #52)
- Added: Missing
filePath
attribute inDesignRules
class - (PR #45) - Fixed: Return type of
LibTable.create_new()
- (PR #45) - Fixed:
Position.to_sexpr()
having no parameters - (PR #45) - Changed: Most parts of the docu were refactored - (PR #45)
- Removed: Unused
size
token in classConnection()
- (PR #45) - Removed: Unused
stroke
token in classImage()
- (PR #45) - Removed: Some tokens that were defined twice - (PR #45)
- Fixed: Broken package config did not included every source file while building the module - (PR #38)
- Added: Support for Python 3.11 on all platforms
- Added:
create_new()
API for all classes that serve files (schematic, board, etc) - (PR #33) - Added: Checked
self.stroke
to be None in allFpItems
classes when generating its S-Expression - (PR #36) - Fixed: Default values of mutable class members are now set correctly using a dataclass field with a default_factory to ensure unique references for each new class object - (PR #35)
- Fixed: Made VSCode automatic test discovery work - (PR #34)
- Changed: Documentation on
Jusitfy.to_sexpr()
s return value - (PR #37)
- Added: Support for older Python versions (v3.7 to v3.10 are now supported) - (PR #30)
- Added: Automatic test report generation in test framework - (PR #21)
- Added: Sphinx-compatible documentation in
docs/
folder and on https://kiutils.readthedocs.io - (PR #29) - Changed: Replaced relative imports with absolute imports in the module structure - (PR #24)
- Changed: Migrated test framework to Python's
unittest
- (PR #21) - Changed:
unit
token in classkiutils.items.schitems.SchematicSymbol()
is now optional - (PR #26) - Changed:
uuid
token in classkiutils.schematic.Schematic()
is now optional - (PR #26) - Changed: Order of how newlines are generated in
kiutils.schematic.Schematic().to_sexpr()
- (PR #26) - Fixed:
angle
set to 0.0 (wasNone
) when creating a newkiutils.items.common.Property()
object (PR #27, fixes #19) - Fixed: Footprint attributes object (
kiutils.footprint.Attributes()
) missing when certain "Manufacturing Attributes" are set - (PR #28)
- Fixed: Stacked dielectrics in PCB layer stack are now parsed correctly as
StackupSubLayer
item
- Added: Support for track arcs at
kiutils.items.brditems.Arc()
- Fixed: Redundant line break in a footprint's pad section with a schematic symbol assigned (aka net, pinfunction or pintype token set) as well as at least the solder_paste_margin_ratio token set
- Added: Support for custom design rules (
.kicad_dru
) - Added: Support for custom worksheets (
.kicad_wks
)
- Added: Support for Python Package Index (PyPI)
- Changed: Source directory for development moved from
kiutils/
tosrc/kiutils/
- Added: Dimension, DimensionStyle, DimensionFormat classes for dimensions (measurements in PCB)
- Added: Target class for board target markers
- Added: Support for dimensions and target markers in Board class
- Added: Prerequisites in docu
- Fixed: Correct parsing of footprints with empty
attr
field (see #2) - Fixed: Quoted strings funcion now handles integers that may be parsed from older KiCad versions correctly (see #3)
- Fixed: Symbol pin's
alternate
field was missing and is now parsed correctly (see #4) - Fixed: Footprint
libraryLink
attribute was missing (see #5)
- Initial version