From 0c8a5aa4dca6bb83e5ea057e637afdc328f6ffef Mon Sep 17 00:00:00 2001
From: eeintech
Date: Mon, 27 Mar 2023 14:27:41 -0400
Subject: [PATCH 1/7] Added kiutils master as dependency (temporary), migrated
KiCad templates to V7 format
---
.../templates/capacitor-polarized.kicad_sym | 42 +++++-----
kintree/kicad/templates/capacitor.kicad_sym | 38 ++++-----
kintree/kicad/templates/connector.kicad_sym | 20 ++---
kintree/kicad/templates/crystal-2p.kicad_sym | 34 ++++----
kintree/kicad/templates/default.kicad_sym | 20 ++---
kintree/kicad/templates/diode-led.kicad_sym | 32 ++++----
.../kicad/templates/diode-schottky.kicad_sym | 32 ++++----
.../kicad/templates/diode-standard.kicad_sym | 30 +++----
kintree/kicad/templates/diode-zener.kicad_sym | 32 ++++----
.../kicad/templates/eeprom-sot23.kicad_sym | 22 +++---
.../kicad/templates/ferrite-bead.kicad_sym | 32 ++++----
kintree/kicad/templates/fuse.kicad_sym | 36 ++++-----
kintree/kicad/templates/inductor.kicad_sym | 32 ++++----
.../templates/integrated-circuit.kicad_sym | 20 ++---
.../kicad/templates/oscillator-4p.kicad_sym | 26 +++----
.../templates/protection-unidir.kicad_sym | 32 ++++----
kintree/kicad/templates/resistor-sm.kicad_sym | 28 +++----
kintree/kicad/templates/resistor.kicad_sym | 28 +++----
.../kicad/templates/transistor-nfet.kicad_sym | 54 ++++++-------
.../kicad/templates/transistor-npn.kicad_sym | 34 ++++----
.../kicad/templates/transistor-pfet.kicad_sym | 58 +++++++-------
.../kicad/templates/transistor-pnp.kicad_sym | 34 ++++----
poetry.lock | 78 +++++++++----------
pyproject.toml | 2 +-
24 files changed, 398 insertions(+), 398 deletions(-)
diff --git a/kintree/kicad/templates/capacitor-polarized.kicad_sym b/kintree/kicad/templates/capacitor-polarized.kicad_sym
index e56ad0c4..c6e2c2fc 100644
--- a/kintree/kicad/templates/capacitor-polarized.kicad_sym
+++ b/kintree/kicad/templates/capacitor-polarized.kicad_sym
@@ -1,45 +1,45 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "C" (id 0) (at 0 3.81 0)
+ (property "Reference" "C" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -11.43 0)
+ (property "Value" "IPN" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -19.05 0)
+ (property "Footprint" "Footprint" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -21.59 0)
+ (property "Datasheet" "inventree_url" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -13.97 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -16.51 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Capacitance (Farad)" "Value" (id 6) (at 0 -3.81 0)
+ (property "Capacitance (Farad)" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Tolerance (%)" "Tolerance" (id 7) (at 5.08 -3.81 0)
+ (property "Tolerance (%)" "Tolerance" (at 5.08 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
- (property "Voltage Rated (Volt)" "Rated Voltage" (id 8) (at 0 -6.35 0)
+ (property "Voltage Rated (Volt)" "Rated Voltage" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Package Type" "Package Type" (id 9) (at 0 -8.89 0)
+ (property "Package Type" "Package Type" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "Package Size" "Package Size" (id 10) (at 0 -8.89 0)
+ (property "Package Size" "Package Size" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ESR (Ohm)" "ESR" (id 11) (at 5.08 -6.35 0)
+ (property "ESR (Ohm)" "ESR" (at 5.08 -6.35 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
- (property "ki_keywords" "keywords" (id 12) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 13) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -48,7 +48,7 @@
(xy -1.778 -0.381)
(xy -1.778 -1.651)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -56,7 +56,7 @@
(xy -1.27 0)
(xy -0.635 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -64,7 +64,7 @@
(xy -1.143 -1.016)
(xy -2.413 -1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -72,7 +72,7 @@
(xy -0.635 -1.905)
(xy -0.635 1.905)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -80,11 +80,11 @@
(xy 1.524 0)
(xy 0.635 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.524 1.905) (mid 0.8343 0) (end 1.524 -1.905)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/capacitor.kicad_sym b/kintree/kicad/templates/capacitor.kicad_sym
index ad8a594e..56b35efe 100644
--- a/kintree/kicad/templates/capacitor.kicad_sym
+++ b/kintree/kicad/templates/capacitor.kicad_sym
@@ -1,42 +1,42 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "C" (id 0) (at 0 3.81 0)
+ (property "Reference" "C" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -13.97 0)
+ (property "Value" "IPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -16.51 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -19.05 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Capacitance (Farad)" "Value" (id 6) (at 0 -3.81 0)
+ (property "Capacitance (Farad)" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Tolerance (%)" "Tolerance" (id 7) (at 7.62 -3.81 0)
+ (property "Tolerance (%)" "Tolerance" (at 7.62 -3.81 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 8) (at 0 -6.35 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Temperature Grade" "Temperature Grade" (id 9) (at 0 -11.43 0)
+ (property "Temperature Grade" "Temperature Grade" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Package Type" "Package Type" (id 10) (at 0 -8.89 0)
+ (property "Package Type" "Package Type" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 11) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 12) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -45,7 +45,7 @@
(xy -1.27 0)
(xy -1.016 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -53,7 +53,7 @@
(xy -0.889 1.905)
(xy -0.889 -1.905)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -61,7 +61,7 @@
(xy 0.889 1.905)
(xy 0.889 -1.905)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -69,7 +69,7 @@
(xy 1.27 0)
(xy 1.016 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -77,7 +77,7 @@
(xy 1.905 0)
(xy 2.54 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/connector.kicad_sym b/kintree/kicad/templates/connector.kicad_sym
index 3d609ba9..0d3636b5 100644
--- a/kintree/kicad/templates/connector.kicad_sym
+++ b/kintree/kicad/templates/connector.kicad_sym
@@ -1,30 +1,30 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "J" (id 0) (at 0 0 0)
+ (property "Reference" "J" (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -5.08 0)
+ (property "Value" "IPN" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -12.7 0)
+ (property "Footprint" "Footprint" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -15.24 0)
+ (property "Datasheet" "inventree_url" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -7.62 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -10.16 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -2.54 0)
+ (property "Part Number" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 7) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 8) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
)
diff --git a/kintree/kicad/templates/crystal-2p.kicad_sym b/kintree/kicad/templates/crystal-2p.kicad_sym
index 545b0432..cfcbcdf9 100644
--- a/kintree/kicad/templates/crystal-2p.kicad_sym
+++ b/kintree/kicad/templates/crystal-2p.kicad_sym
@@ -1,41 +1,41 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "Y" (id 0) (at 0 5.08 0)
+ (property "Reference" "Y" (at 0 5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -15.24 0)
+ (property "Value" "IPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -20.32 0)
+ (property "Footprint" "Footprint" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -22.86 0)
+ (property "Datasheet" "inventree_url" (at 0 -22.86 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -17.78 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -7.62 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)))
)
- (property "Frequency" "Value" (id 6) (at 0 -5.08 0)
+ (property "Frequency" "Value" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "Load Capacitance (Farad)" "Load Capacitance" (id 7) (at 0 -10.16 0)
+ (property "Load Capacitance (Farad)" "Load Capacitance" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Package Size" "Package Size" (id 8) (at 0 -12.7 0)
+ (property "Package Size" "Package Size" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_1_1"
(rectangle (start -1.016 3.048) (end 1.016 -3.048)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -43,7 +43,7 @@
(xy -2.54 0)
(xy -1.778 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -51,7 +51,7 @@
(xy 2.54 0)
(xy 1.778 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -60,7 +60,7 @@
(xy -1.778 0)
(xy -1.778 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -69,7 +69,7 @@
(xy 1.778 0)
(xy 1.778 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(pin passive line (at -5.08 0 0) (length 2.54)
diff --git a/kintree/kicad/templates/default.kicad_sym b/kintree/kicad/templates/default.kicad_sym
index 072f6f24..7ac9a6c7 100644
--- a/kintree/kicad/templates/default.kicad_sym
+++ b/kintree/kicad/templates/default.kicad_sym
@@ -1,30 +1,30 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "DES" (id 0) (at 0 0 0)
+ (property "Reference" "DES" (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -5.08 0)
+ (property "Value" "IPN" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -12.7 0)
+ (property "Footprint" "Footprint" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -15.24 0)
+ (property "Datasheet" "inventree_url" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -7.62 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -10.16 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -2.54 0)
+ (property "Part Number" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 7) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 8) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
)
diff --git a/kintree/kicad/templates/diode-led.kicad_sym b/kintree/kicad/templates/diode-led.kicad_sym
index 689a0525..3420e293 100644
--- a/kintree/kicad/templates/diode-led.kicad_sym
+++ b/kintree/kicad/templates/diode-led.kicad_sym
@@ -1,36 +1,36 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "D" (id 0) (at 0 3.81 0)
+ (property "Reference" "D" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -12.7 0)
+ (property "Value" "IPN" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -20.32 0)
+ (property "Footprint" "Footprint" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -22.86 0)
+ (property "Datasheet" "inventree_url" (at 0 -22.86 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -15.24 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -17.78 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -10.16 0)
+ (property "Part Number" "Value" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Forward Voltage (Volt)" "Forward Voltage" (id 7) (at 0 -7.62 0)
+ (property "Forward Voltage (Volt)" "Forward Voltage" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)))
)
- (property "LED Color" "LED Color" (id 8) (at 0 -5.08 0)
+ (property "LED Color" "LED Color" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -39,7 +39,7 @@
(xy 1.27 -1.27)
(xy 1.27 1.27)
)
- (stroke (width 0.381) (type default) (color 0 0 0 0))
+ (stroke (width 0.381) (type default))
(fill (type none))
)
(polyline
@@ -49,7 +49,7 @@
(xy 1.27 0)
(xy -1.27 1.27)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
(polyline
@@ -60,7 +60,7 @@
(xy -0.254 -2.921)
(xy 0.508 -3.175)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type outline))
)
(polyline
@@ -71,7 +71,7 @@
(xy 1.778 -2.286)
(xy 2.032 -3.048)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type outline))
)
)
diff --git a/kintree/kicad/templates/diode-schottky.kicad_sym b/kintree/kicad/templates/diode-schottky.kicad_sym
index 914cdda5..97553220 100644
--- a/kintree/kicad/templates/diode-schottky.kicad_sym
+++ b/kintree/kicad/templates/diode-schottky.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "D" (id 0) (at 0 3.81 0)
+ (property "Reference" "D" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -13.97 0)
+ (property "Value" "IPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -16.51 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -19.05 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -3.81 0)
+ (property "Part Number" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Forward Voltage (Volt)" "Forward Voltage" (id 7) (at 0 -8.89 0)
+ (property "Forward Voltage (Volt)" "Forward Voltage" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Current (Amps)" "Rated Current" (id 8) (at 0 -6.35 0)
+ (property "Current (Amps)" "Rated Current" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 9) (at 0 -11.43 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 -1.397)
(xy 2.159 -1.397)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -51,7 +51,7 @@
(xy 1.27 1.397)
(xy 0.381 1.397)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -61,7 +61,7 @@
(xy 1.27 0)
(xy -1.27 1.27)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
)
diff --git a/kintree/kicad/templates/diode-standard.kicad_sym b/kintree/kicad/templates/diode-standard.kicad_sym
index 1ba97a18..eff2e49c 100644
--- a/kintree/kicad/templates/diode-standard.kicad_sym
+++ b/kintree/kicad/templates/diode-standard.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "D" (id 0) (at 0 3.81 0)
+ (property "Reference" "D" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -13.97 0)
+ (property "Value" "IPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -16.51 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -19.05 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -3.81 0)
+ (property "Part Number" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Forward Voltage (Volt)" "Forward Voltage" (id 7) (at 0 -8.89 0)
+ (property "Forward Voltage (Volt)" "Forward Voltage" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Current (Amps)" "Rated Current" (id 8) (at 0 -6.35 0)
+ (property "Current (Amps)" "Rated Current" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 9) (at 0 -11.43 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 -1.397)
(xy 1.27 1.397)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -52,7 +52,7 @@
(xy 1.27 0)
(xy -1.27 1.27)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
)
diff --git a/kintree/kicad/templates/diode-zener.kicad_sym b/kintree/kicad/templates/diode-zener.kicad_sym
index c8261367..5ac87f31 100644
--- a/kintree/kicad/templates/diode-zener.kicad_sym
+++ b/kintree/kicad/templates/diode-zener.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "D" (id 0) (at 0 3.81 0)
+ (property "Reference" "D" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -13.97 0)
+ (property "Value" "IPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -16.51 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -19.05 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -3.81 0)
+ (property "Part Number" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Forward Voltage (Volt)" "Forward Voltage" (id 7) (at 0 -11.43 0)
+ (property "Forward Voltage (Volt)" "Forward Voltage" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Power (Watts)" "Rated Power" (id 8) (at 0 -6.35 0)
+ (property "Power (Watts)" "Rated Power" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 9) (at 0 -8.89 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 -1.397)
(xy 2.159 -1.778)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -51,7 +51,7 @@
(xy 1.27 1.397)
(xy 0.381 1.778)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -61,7 +61,7 @@
(xy 1.27 0)
(xy -1.27 1.27)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
)
diff --git a/kintree/kicad/templates/eeprom-sot23.kicad_sym b/kintree/kicad/templates/eeprom-sot23.kicad_sym
index d7006f4e..5c0eb7b6 100644
--- a/kintree/kicad/templates/eeprom-sot23.kicad_sym
+++ b/kintree/kicad/templates/eeprom-sot23.kicad_sym
@@ -1,35 +1,35 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (in_bom yes) (on_board yes)
- (property "Reference" "U" (id 0) (at 0 8.89 0)
+ (property "Reference" "U" (at 0 8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -11.43 0)
+ (property "Value" "IPN" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -19.05 0)
+ (property "Footprint" "Footprint" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -21.59 0)
+ (property "Datasheet" "inventree_url" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -13.97 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -16.51 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -8.89 0)
+ (property "Part Number" "Value" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 7) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 8) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
(rectangle (start -5.08 7.62) (end 5.08 -7.62)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
)
diff --git a/kintree/kicad/templates/ferrite-bead.kicad_sym b/kintree/kicad/templates/ferrite-bead.kicad_sym
index 22396e56..9f594b13 100644
--- a/kintree/kicad/templates/ferrite-bead.kicad_sym
+++ b/kintree/kicad/templates/ferrite-bead.kicad_sym
@@ -1,36 +1,36 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "FB" (id 0) (at 0 2.54 0)
+ (property "Reference" "FB" (at 0 2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Inductance (Henry)" "Value" (id 6) (at 0 -2.54 0)
+ (property "Inductance (Henry)" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Current Rating (Ampere)" "Rated Current" (id 7) (at 0 -5.08 0)
+ (property "Current Rating (Ampere)" "Rated Current" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "ESR (Ohm)" "ESR" (id 8) (at 0 -7.62 0)
+ (property "ESR (Ohm)" "ESR" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -39,7 +39,7 @@
(xy -4.318 0)
(xy -4.064 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -47,7 +47,7 @@
(xy -1.27 0)
(xy 1.27 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -55,7 +55,7 @@
(xy 4.064 0)
(xy 4.318 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -66,7 +66,7 @@
(xy 2.54 1.27)
(xy -2.54 1.27)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/fuse.kicad_sym b/kintree/kicad/templates/fuse.kicad_sym
index d745a4c8..5bb53a0d 100644
--- a/kintree/kicad/templates/fuse.kicad_sym
+++ b/kintree/kicad/templates/fuse.kicad_sym
@@ -1,55 +1,55 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "F" (id 0) (at 0 2.794 0)
+ (property "Reference" "F" (at 0 2.794 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Current Rating (A)" "Rated Current" (id 6) (at 0 -2.54 0)
+ (property "Current Rating (A)" "Rated Current" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Voltage Rating (V)" "Rated Voltage" (id 7) (at 0 -5.08 0)
+ (property "Voltage Rating (V)" "Rated Voltage" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Package Type" "Package Type" (id 8) (at 0 -7.62 0)
+ (property "Package Type" "Package Type" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
(rectangle (start -3.81 0) (end -3.048 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
- (arc (start 0 0) (mid 1.524 -1.524) (end 3.048 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (arc (start 0 0) (mid 1.524 -1.5174) (end 3.048 0)
+ (stroke (width 0) (type default))
(fill (type none))
)
(rectangle (start 3.048 0) (end 3.81 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "IPN_1_1"
- (arc (start 0 0) (mid -1.524 1.524) (end -3.048 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (arc (start 0 0) (mid -1.524 1.5174) (end -3.048 0)
+ (stroke (width 0) (type default))
(fill (type none))
)
(pin passive line (at -5.08 0 0) (length 1.27)
diff --git a/kintree/kicad/templates/inductor.kicad_sym b/kintree/kicad/templates/inductor.kicad_sym
index 9ba6f5c8..cfcd7d70 100644
--- a/kintree/kicad/templates/inductor.kicad_sym
+++ b/kintree/kicad/templates/inductor.kicad_sym
@@ -1,53 +1,53 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "L" (id 0) (at 0 2.54 0)
+ (property "Reference" "L" (at 0 2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -8.89 0)
+ (property "Value" "IPN" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -16.51 0)
+ (property "Footprint" "Footprint" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -19.05 0)
+ (property "Datasheet" "inventree_url" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -11.43 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -13.97 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Inductance (Henry)" "Value" (id 6) (at 0 -1.27 0)
+ (property "Inductance (Henry)" "Value" (at 0 -1.27 0)
(effects (font (size 1.27 1.27)))
)
- (property "Current Rating (Ampere)" "Rated Current" (id 7) (at 0 -3.81 0)
+ (property "Current Rating (Ampere)" "Rated Current" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "ESR (Ohm)" "ESR" (id 8) (at 0 -6.35 0)
+ (property "ESR (Ohm)" "ESR" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
(arc (start -1.905 0) (mid -2.8575 0.9399) (end -3.81 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(arc (start 0 0) (mid -0.9525 0.9399) (end -1.905 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0) (mid 0.9525 0.9399) (end 0 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(arc (start 3.81 0) (mid 2.8575 0.9399) (end 1.905 0)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/integrated-circuit.kicad_sym b/kintree/kicad/templates/integrated-circuit.kicad_sym
index e2f80357..41c0aefb 100644
--- a/kintree/kicad/templates/integrated-circuit.kicad_sym
+++ b/kintree/kicad/templates/integrated-circuit.kicad_sym
@@ -1,30 +1,30 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "U" (id 0) (at 0 0 0)
+ (property "Reference" "U" (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -5.08 0)
+ (property "Value" "IPN" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -12.7 0)
+ (property "Footprint" "Footprint" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -15.24 0)
+ (property "Datasheet" "inventree_url" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -7.62 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -10.16 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -2.54 0)
+ (property "Part Number" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "ki_keywords" "keywords" (id 7) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 8) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
)
diff --git a/kintree/kicad/templates/oscillator-4p.kicad_sym b/kintree/kicad/templates/oscillator-4p.kicad_sym
index 5b24e037..84a1c83e 100644
--- a/kintree/kicad/templates/oscillator-4p.kicad_sym
+++ b/kintree/kicad/templates/oscillator-4p.kicad_sym
@@ -1,41 +1,41 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (in_bom yes) (on_board yes)
- (property "Reference" "Y" (id 0) (at 0 6.35 0)
+ (property "Reference" "Y" (at 0 6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -16.51 0)
+ (property "Value" "IPN" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -19.05 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -8.89 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)))
)
- (property "Part Number" "Value" (id 6) (at 0 -6.35 0)
+ (property "Part Number" "Value" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 7) (at 0 -11.43 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Package Size" "Package Size" (id 8) (at 0 -13.97 0)
+ (property "Package Size" "Package Size" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 9) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 10) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_1_1"
(rectangle (start -5.08 5.08) (end 5.08 -5.08)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type background))
)
(pin input line (at -10.16 -2.54 0) (length 5.08)
diff --git a/kintree/kicad/templates/protection-unidir.kicad_sym b/kintree/kicad/templates/protection-unidir.kicad_sym
index 084c2f76..61826ecf 100644
--- a/kintree/kicad/templates/protection-unidir.kicad_sym
+++ b/kintree/kicad/templates/protection-unidir.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "D" (id 0) (at 0 3.81 0)
+ (property "Reference" "D" (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -13.97 0)
+ (property "Value" "IPN" (at 0 -13.97 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -21.59 0)
+ (property "Footprint" "Footprint" (at 0 -21.59 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -24.13 0)
+ (property "Datasheet" "inventree_url" (at 0 -24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -16.51 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -16.51 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -19.05 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -19.05 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 0 -3.81 0)
+ (property "Part Number" "Value" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
- (property "Standoff Voltage" "Standoff Voltage" (id 7) (at 0 -6.35 0)
+ (property "Standoff Voltage" "Standoff Voltage" (at 0 -6.35 0)
(effects (font (size 1.27 1.27)))
)
- (property "Breakdown Voltage" "Breakdown Voltage" (id 8) (at 0 -8.89 0)
+ (property "Breakdown Voltage" "Breakdown Voltage" (at 0 -8.89 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Peak Power (Watts)" "Rated Power" (id 9) (at 0 -11.43 0)
+ (property "Peak Power (Watts)" "Rated Power" (at 0 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 -1.397)
(xy 2.159 -1.778)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -51,7 +51,7 @@
(xy 1.27 1.397)
(xy 0.381 1.778)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
@@ -61,7 +61,7 @@
(xy 1.27 0)
(xy -1.27 1.27)
)
- (stroke (width 0.254) (type default) (color 0 0 0 0))
+ (stroke (width 0.254) (type default))
(fill (type background))
)
)
diff --git a/kintree/kicad/templates/resistor-sm.kicad_sym b/kintree/kicad/templates/resistor-sm.kicad_sym
index 0bb73027..c018a1f5 100644
--- a/kintree/kicad/templates/resistor-sm.kicad_sym
+++ b/kintree/kicad/templates/resistor-sm.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "R" (id 0) (at 0 2.032 0)
+ (property "Reference" "R" (at 0 2.032 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Resistance (Ohms)" "Value" (id 6) (at 0 -2.54 0)
+ (property "Resistance (Ohms)" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Tolerance (%)" "Tolerance" (id 7) (at 3.81 -2.54 0)
+ (property "Tolerance (%)" "Tolerance" (at 3.81 -2.54 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
- (property "Package Type" "Package Type" (id 8) (at 0 -5.08 0)
+ (property "Package Type" "Package Type" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "Power (Watts)" "Rated Power" (id 9) (at 0 -7.62 0)
+ (property "Power (Watts)" "Rated Power" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -51,7 +51,7 @@
(xy 3.81 0)
(xy 3.81 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/resistor.kicad_sym b/kintree/kicad/templates/resistor.kicad_sym
index 0bb73027..c018a1f5 100644
--- a/kintree/kicad/templates/resistor.kicad_sym
+++ b/kintree/kicad/templates/resistor.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "R" (id 0) (at 0 2.032 0)
+ (property "Reference" "R" (at 0 2.032 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Resistance (Ohms)" "Value" (id 6) (at 0 -2.54 0)
+ (property "Resistance (Ohms)" "Value" (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
- (property "Tolerance (%)" "Tolerance" (id 7) (at 3.81 -2.54 0)
+ (property "Tolerance (%)" "Tolerance" (at 3.81 -2.54 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
- (property "Package Type" "Package Type" (id 8) (at 0 -5.08 0)
+ (property "Package Type" "Package Type" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)))
)
- (property "Power (Watts)" "Rated Power" (id 9) (at 0 -7.62 0)
+ (property "Power (Watts)" "Rated Power" (at 0 -7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -51,7 +51,7 @@
(xy 3.81 0)
(xy 3.81 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
)
diff --git a/kintree/kicad/templates/transistor-nfet.kicad_sym b/kintree/kicad/templates/transistor-nfet.kicad_sym
index 3cfc0c37..5f34104a 100644
--- a/kintree/kicad/templates/transistor-nfet.kicad_sym
+++ b/kintree/kicad/templates/transistor-nfet.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "Q" (id 0) (at 0 4.318 0)
+ (property "Reference" "Q" (at 0 4.318 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 7.62 3.81 0)
+ (property "Part Number" "Value" (at 7.62 3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 7) (at 7.62 1.27 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 7.62 1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Current (Amps)" "Rated Current" (id 8) (at 7.62 -1.27 0)
+ (property "Rated Current (Amps)" "Rated Current" (at 7.62 -1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Package Type" "Package Type" (id 9) (at 7.62 -3.81 0)
+ (property "Package Type" "Package Type" (at 7.62 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 0)
(xy 1.27 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -50,7 +50,7 @@
(xy 1.27 0)
(xy 1.27 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -58,7 +58,7 @@
(xy 1.778 -1.27)
(xy 1.778 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -66,7 +66,7 @@
(xy 1.778 -0.635)
(xy 1.778 0.635)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -74,7 +74,7 @@
(xy 1.778 1.27)
(xy 1.778 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -82,7 +82,7 @@
(xy 3.81 -2.54)
(xy 3.81 -1.905)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -90,7 +90,7 @@
(xy 4.953 0.508)
(xy 6.223 0.508)
)
- (stroke (width 0.127) (type default) (color 0 0 0 0))
+ (stroke (width 0.127) (type default))
(fill (type none))
)
(polyline
@@ -98,7 +98,7 @@
(xy 5.08 -0.635)
(xy 4.953 -0.635)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -107,7 +107,7 @@
(xy 3.81 1.905)
(xy 3.81 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -116,7 +116,7 @@
(xy 5.588 -2.413)
(xy 3.81 -2.413)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -125,7 +125,7 @@
(xy 5.588 2.286)
(xy 3.81 2.286)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -135,7 +135,7 @@
(xy 3.81 0)
(xy 3.048 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -145,7 +145,7 @@
(xy 3.048 -0.635)
(xy 1.905 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
(polyline
@@ -155,7 +155,7 @@
(xy 6.223 -0.635)
(xy 5.08 -0.635)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
)
diff --git a/kintree/kicad/templates/transistor-npn.kicad_sym b/kintree/kicad/templates/transistor-npn.kicad_sym
index f12b25e5..324319b0 100644
--- a/kintree/kicad/templates/transistor-npn.kicad_sym
+++ b/kintree/kicad/templates/transistor-npn.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "Q" (id 0) (at 0 4.318 0)
+ (property "Reference" "Q" (at 0 4.318 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 5.08 3.81 0)
+ (property "Part Number" "Value" (at 5.08 3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 7) (at 5.08 1.27 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 5.08 1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Current (Amps)" "Rated Current" (id 8) (at 5.08 -1.27 0)
+ (property "Rated Current (Amps)" "Rated Current" (at 5.08 -1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Package Type" "Package Type" (id 9) (at 5.08 -3.81 0)
+ (property "Package Type" "Package Type" (at 5.08 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 2.286)
(xy 1.27 -2.286)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -50,7 +50,7 @@
(xy 3.81 -2.54)
(xy 1.27 -1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -58,7 +58,7 @@
(xy 3.81 2.54)
(xy 1.27 1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -68,7 +68,7 @@
(xy 2.413 -2.413)
(xy 3.81 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
)
diff --git a/kintree/kicad/templates/transistor-pfet.kicad_sym b/kintree/kicad/templates/transistor-pfet.kicad_sym
index 3b3d9897..42e3034d 100644
--- a/kintree/kicad/templates/transistor-pfet.kicad_sym
+++ b/kintree/kicad/templates/transistor-pfet.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "Q" (id 0) (at 0 4.318 0)
+ (property "Reference" "Q" (at 0 4.318 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 7.62 3.81 0)
+ (property "Part Number" "Value" (at 7.62 3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 7) (at 7.62 1.27 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 7.62 1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Current (Amps)" "Rated Current" (id 8) (at 7.62 -1.27 0)
+ (property "Rated Current (Amps)" "Rated Current" (at 7.62 -1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Package Type" "Package Type" (id 9) (at 7.62 -3.81 0)
+ (property "Package Type" "Package Type" (at 7.62 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 0)
(xy 1.27 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -50,7 +50,7 @@
(xy 1.27 0)
(xy 1.27 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -58,7 +58,7 @@
(xy 1.778 -1.905)
(xy 3.81 -1.905)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -66,7 +66,7 @@
(xy 1.778 -1.27)
(xy 1.778 -2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -74,7 +74,7 @@
(xy 1.778 -0.635)
(xy 1.778 0.635)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -82,7 +82,7 @@
(xy 1.778 0)
(xy 2.667 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -90,7 +90,7 @@
(xy 1.778 1.27)
(xy 1.778 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -98,7 +98,7 @@
(xy 3.81 -2.54)
(xy 3.81 -1.905)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -106,7 +106,7 @@
(xy 4.953 -0.635)
(xy 6.223 -0.635)
)
- (stroke (width 0.127) (type default) (color 0 0 0 0))
+ (stroke (width 0.127) (type default))
(fill (type none))
)
(polyline
@@ -114,7 +114,7 @@
(xy 5.08 0.508)
(xy 4.953 0.508)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -123,7 +123,7 @@
(xy 3.81 1.905)
(xy 3.81 2.54)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -132,7 +132,7 @@
(xy 3.81 0)
(xy 3.81 -1.905)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -141,7 +141,7 @@
(xy 5.588 -2.413)
(xy 3.81 -2.413)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -150,7 +150,7 @@
(xy 5.588 2.286)
(xy 3.81 2.286)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -160,7 +160,7 @@
(xy 2.667 -0.762)
(xy 3.683 0)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
(polyline
@@ -170,7 +170,7 @@
(xy 6.223 0.508)
(xy 5.08 0.508)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
)
diff --git a/kintree/kicad/templates/transistor-pnp.kicad_sym b/kintree/kicad/templates/transistor-pnp.kicad_sym
index 997a4f03..dfb4bce5 100644
--- a/kintree/kicad/templates/transistor-pnp.kicad_sym
+++ b/kintree/kicad/templates/transistor-pnp.kicad_sym
@@ -1,39 +1,39 @@
-(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
+(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "IPN" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
- (property "Reference" "Q" (id 0) (at 0 4.318 0)
+ (property "Reference" "Q" (at 0 4.318 0)
(effects (font (size 1.27 1.27)))
)
- (property "Value" "IPN" (id 1) (at 0 -10.16 0)
+ (property "Value" "IPN" (at 0 -10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Footprint" "Footprint" (id 2) (at 0 -17.78 0)
+ (property "Footprint" "Footprint" (at 0 -17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Datasheet" "inventree_url" (id 3) (at 0 -20.32 0)
+ (property "Datasheet" "inventree_url" (at 0 -20.32 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer" "Manufacturer" (id 4) (at 0 -12.7 0)
+ (property "Manufacturer" "Manufacturer" (at 0 -12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Manufacturer Part Number" "MPN" (id 5) (at 0 -15.24 0)
+ (property "Manufacturer Part Number" "MPN" (at 0 -15.24 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "Part Number" "Value" (id 6) (at 5.08 3.81 0)
+ (property "Part Number" "Value" (at 5.08 3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Voltage (Volt)" "Rated Voltage" (id 7) (at 5.08 1.27 0)
+ (property "Rated Voltage (Volt)" "Rated Voltage" (at 5.08 1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Rated Current (Amps)" "Rated Current" (id 8) (at 5.08 -1.27 0)
+ (property "Rated Current (Amps)" "Rated Current" (at 5.08 -1.27 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "Package Type" "Package Type" (id 9) (at 5.08 -3.81 0)
+ (property "Package Type" "Package Type" (at 5.08 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
- (property "ki_keywords" "keywords" (id 10) (at 0 0 0)
+ (property "ki_keywords" "keywords" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
- (property "ki_description" "description" (id 11) (at 0 0 0)
+ (property "ki_description" "description" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "IPN_0_1"
@@ -42,7 +42,7 @@
(xy 1.27 -2.286)
(xy 1.27 2.286)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -50,7 +50,7 @@
(xy 3.81 -2.54)
(xy 1.27 -1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -58,7 +58,7 @@
(xy 3.81 2.54)
(xy 1.27 1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type none))
)
(polyline
@@ -68,7 +68,7 @@
(xy 2.794 -1.143)
(xy 1.397 -1.016)
)
- (stroke (width 0) (type default) (color 0 0 0 0))
+ (stroke (width 0) (type default))
(fill (type outline))
)
)
diff --git a/poetry.lock b/poetry.lock
index 3407d5fe..34d084ef 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -114,7 +114,7 @@ yaml = ["PyYAML (>=3.10)"]
[[package]]
name = "cryptography"
-version = "39.0.2"
+version = "40.0.1"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main"
optional = false
@@ -126,10 +126,10 @@ cffi = ">=1.12"
[package.extras]
docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"]
docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"]
-pep8test = ["black", "check-manifest", "mypy", "ruff", "types-pytz", "types-requests"]
+pep8test = ["black", "check-manifest", "mypy", "ruff"]
sdist = ["setuptools-rust (>=0.11.4)"]
ssh = ["bcrypt (>=3.1.5)"]
-test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist", "pytz"]
+test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"]
test-randomorder = ["pytest-randomly"]
tox = ["tox"]
@@ -188,7 +188,7 @@ python-versions = "*"
[[package]]
name = "filelock"
-version = "3.10.2"
+version = "3.10.7"
description = "A platform independent file lock."
category = "main"
optional = false
@@ -196,7 +196,7 @@ python-versions = ">=3.7"
[package.extras]
docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"]
-testing = ["covdefaults (>=2.3)", "coverage (>=7.2.2)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"]
+testing = ["covdefaults (>=2.3)", "coverage (>=7.2.2)", "diff-cover (>=7.5)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"]
[[package]]
name = "flet"
@@ -314,6 +314,13 @@ description = "Simple and SCM-friendly KiCad file parser for KiCad 6.0 and up"
category = "main"
optional = false
python-versions = ">=3.7"
+develop = false
+
+[package.source]
+type = "git"
+url = "https://github.com/mvnmgrx/kiutils.git"
+reference = "HEAD"
+resolved_reference = "a4690a4091723a795abd8f5441b73436f09b5d54"
[[package]]
name = "lib-detect-testenv"
@@ -392,14 +399,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pyopenssl"
-version = "23.0.0"
+version = "23.1.0"
description = "Python wrapper module around the OpenSSL library"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
-cryptography = ">=38.0.0,<40"
+cryptography = ">=38.0.0,<41"
[package.extras]
docs = ["sphinx (!=5.2.0,!=5.2.0.post0)", "sphinx-rtd-theme"]
@@ -608,7 +615,7 @@ wrapt = "*"
[metadata]
lock-version = "1.1"
python-versions = ">=3.8,<3.11"
-content-hash = "344c279ab8851de963db2b877c808650a7ed6539562d044644d83eecabd92b6c"
+content-hash = "6931b654c7d2795cebe471f17787c626229ff585e55a7e539a110fffd83d1c7c"
[metadata.files]
anyio = [
@@ -835,29 +842,25 @@ coveralls = [
{file = "coveralls-3.3.1.tar.gz", hash = "sha256:b32a8bb5d2df585207c119d6c01567b81fba690c9c10a753bfe27a335bfc43ea"},
]
cryptography = [
- {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06"},
- {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011"},
- {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536"},
- {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5"},
- {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0"},
- {file = "cryptography-39.0.2-cp36-abi3-win32.whl", hash = "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480"},
- {file = "cryptography-39.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9"},
- {file = "cryptography-39.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac"},
- {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074"},
- {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1"},
- {file = "cryptography-39.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3"},
- {file = "cryptography-39.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3"},
- {file = "cryptography-39.0.2.tar.gz", hash = "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"},
+ {file = "cryptography-40.0.1-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:918cb89086c7d98b1b86b9fdb70c712e5a9325ba6f7d7cfb509e784e0cfc6917"},
+ {file = "cryptography-40.0.1-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:9618a87212cb5200500e304e43691111570e1f10ec3f35569fdfcd17e28fd797"},
+ {file = "cryptography-40.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a4805a4ca729d65570a1b7cac84eac1e431085d40387b7d3bbaa47e39890b88"},
+ {file = "cryptography-40.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63dac2d25c47f12a7b8aa60e528bfb3c51c5a6c5a9f7c86987909c6c79765554"},
+ {file = "cryptography-40.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0a4e3406cfed6b1f6d6e87ed243363652b2586b2d917b0609ca4f97072994405"},
+ {file = "cryptography-40.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1e0af458515d5e4028aad75f3bb3fe7a31e46ad920648cd59b64d3da842e4356"},
+ {file = "cryptography-40.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d8aa3609d337ad85e4eb9bb0f8bcf6e4409bfb86e706efa9a027912169e89122"},
+ {file = "cryptography-40.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cf91e428c51ef692b82ce786583e214f58392399cf65c341bc7301d096fa3ba2"},
+ {file = "cryptography-40.0.1-cp36-abi3-win32.whl", hash = "sha256:650883cc064297ef3676b1db1b7b1df6081794c4ada96fa457253c4cc40f97db"},
+ {file = "cryptography-40.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:a805a7bce4a77d51696410005b3e85ae2839bad9aa38894afc0aa99d8e0c3160"},
+ {file = "cryptography-40.0.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd033d74067d8928ef00a6b1327c8ea0452523967ca4463666eeba65ca350d4c"},
+ {file = "cryptography-40.0.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d36bbeb99704aabefdca5aee4eba04455d7a27ceabd16f3b3ba9bdcc31da86c4"},
+ {file = "cryptography-40.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:32057d3d0ab7d4453778367ca43e99ddb711770477c4f072a51b3ca69602780a"},
+ {file = "cryptography-40.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f5d7b79fa56bc29580faafc2ff736ce05ba31feaa9d4735048b0de7d9ceb2b94"},
+ {file = "cryptography-40.0.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7c872413353c70e0263a9368c4993710070e70ab3e5318d85510cc91cce77e7c"},
+ {file = "cryptography-40.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:28d63d75bf7ae4045b10de5413fb1d6338616e79015999ad9cf6fc538f772d41"},
+ {file = "cryptography-40.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6f2bbd72f717ce33100e6467572abaedc61f1acb87b8d546001328d7f466b778"},
+ {file = "cryptography-40.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cc3a621076d824d75ab1e1e530e66e7e8564e357dd723f2533225d40fe35c60c"},
+ {file = "cryptography-40.0.1.tar.gz", hash = "sha256:2803f2f8b1e95f614419926c7e6f55d828afc614ca5ed61543877ae668cc3472"},
]
decorator = [
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
@@ -877,8 +880,8 @@ docopt = [
{file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"},
]
filelock = [
- {file = "filelock-3.10.2-py3-none-any.whl", hash = "sha256:eb8f0f2d37ed68223ea63e3bddf2fac99667e4362c88b3f762e434d160190d18"},
- {file = "filelock-3.10.2.tar.gz", hash = "sha256:75997740323c5f12e18f10b494bc11c03e42843129f980f17c04352cc7b09d40"},
+ {file = "filelock-3.10.7-py3-none-any.whl", hash = "sha256:bde48477b15fde2c7e5a0713cbe72721cb5a5ad32ee0b8f419907960b9d75536"},
+ {file = "filelock-3.10.7.tar.gz", hash = "sha256:892be14aa8efc01673b5ed6589dbccb95f9a8596f0507e232626155495c18105"},
]
flet = [
{file = "flet-0.4.2-py3-none-any.whl", hash = "sha256:e2f92e45fe79ac2ad0694024204357f675538b9b44c9fbd6d540d7ca696e7644"},
@@ -924,10 +927,7 @@ invoke = [
{file = "invoke-1.7.3-py3-none-any.whl", hash = "sha256:d9694a865764dd3fd91f25f7e9a97fb41666e822bbb00e670091e3f43933574d"},
{file = "invoke-1.7.3.tar.gz", hash = "sha256:41b428342d466a82135d5ab37119685a989713742be46e42a3a399d685579314"},
]
-kiutils = [
- {file = "kiutils-1.3.0-py3-none-any.whl", hash = "sha256:274f43bad4295c68a9e31282305a29b23013fa62cfd8bbe83bc137e08beee648"},
- {file = "kiutils-1.3.0.tar.gz", hash = "sha256:0c60e40ea2c37d3a58825b02300e7b9110b84ab943f603127542dafe36a25834"},
-]
+kiutils = []
lib-detect-testenv = [
{file = "lib_detect_testenv-2.0.3-py3-none-any.whl", hash = "sha256:b6113bf4974a0e91db2cb0bc468b69a919be9c6ded27765229b3ee7a6dcf6302"},
{file = "lib_detect_testenv-2.0.3.tar.gz", hash = "sha256:3b02e4c874aaf62ef819fa662cc879a8c29791983b790791863b6613357e201c"},
@@ -978,8 +978,8 @@ pycparser = [
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
pyopenssl = [
- {file = "pyOpenSSL-23.0.0-py3-none-any.whl", hash = "sha256:df5fc28af899e74e19fccb5510df423581047e10ab6f1f4ba1763ff5fde844c0"},
- {file = "pyOpenSSL-23.0.0.tar.gz", hash = "sha256:c1cc5f86bcacefc84dada7d31175cae1b1518d5f60d3d0bb595a67822a868a6f"},
+ {file = "pyOpenSSL-23.1.0-py3-none-any.whl", hash = "sha256:fb96e936866ad65662c22d0de84ca0fba58397893cdfe0f01334fa93382af23c"},
+ {file = "pyOpenSSL-23.1.0.tar.gz", hash = "sha256:8cb78010a1eb2c8e24b851693b7b04dfe9b1dc0a5ab3843927b10a85b1dfbb2e"},
]
pyyaml = [
{file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
diff --git a/pyproject.toml b/pyproject.toml
index d3afc695..9aab70a0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,7 +16,7 @@ digikey-api = "^1.0.0"
Flet = "^0.4.2"
thefuzz = "^0.19.0"
inventree = "^0.9.2"
-kiutils = "^1.3.0"
+kiutils = { git = "https://github.com/mvnmgrx/kiutils.git" }
mouser = "^0.1.2"
multiprocess = "^0.70.12"
PyYAML = "^5.4.1"
From 6a6775673435ecf73ef7e07265170d493451193f Mon Sep 17 00:00:00 2001
From: eeintech
Date: Mon, 27 Mar 2023 14:36:57 -0400
Subject: [PATCH 2/7] Fixed requirements
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 9075b081..f261f274 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,7 +2,7 @@ digikey-api>=1.0.0,<2.0
Flet>=0.4.2,<1.0
thefuzz>=0.19.0,<1.0
inventree>=0.9.2,<1.0
-kiutils>=1.3.0,<2.0
+git+https://github.com/mvnmgrx/kiutils.git # kiutils>=1.3.0,<2.0
mouser>=0.1.2,<1.0
multiprocess>=0.70.12,<0.71
PySimpleGUI>=4.60.4,<5.0
From 62a74c692da4b427d7d2e0fd4d54123a1a6b0e0f Mon Sep 17 00:00:00 2001
From: eeintech
Date: Mon, 27 Mar 2023 15:03:29 -0400
Subject: [PATCH 3/7] Updated mouser API to 0.1.3
---
poetry.lock | 16 ++++++++--------
pyproject.toml | 4 ++--
requirements.txt | 2 +-
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index 34d084ef..2e5a7dec 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -290,7 +290,7 @@ python-versions = ">=3.5"
[[package]]
name = "inventree"
-version = "0.9.2"
+version = "0.10.1"
description = "Python interface for InvenTree inventory management system"
category = "main"
optional = false
@@ -320,7 +320,7 @@ develop = false
type = "git"
url = "https://github.com/mvnmgrx/kiutils.git"
reference = "HEAD"
-resolved_reference = "a4690a4091723a795abd8f5441b73436f09b5d54"
+resolved_reference = "94f0b0d11e13f36e0a41270042028739fe39893e"
[[package]]
name = "lib-detect-testenv"
@@ -336,7 +336,7 @@ click = "*"
[[package]]
name = "mouser"
-version = "0.1.2"
+version = "0.1.3"
description = "Mouser Python API"
category = "main"
optional = false
@@ -615,7 +615,7 @@ wrapt = "*"
[metadata]
lock-version = "1.1"
python-versions = ">=3.8,<3.11"
-content-hash = "6931b654c7d2795cebe471f17787c626229ff585e55a7e539a110fffd83d1c7c"
+content-hash = "199846bcaf0d88959565981b52f7589e39261042ccd11764c8c5caa958efd306"
[metadata.files]
anyio = [
@@ -920,8 +920,8 @@ inflection = [
{file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"},
]
inventree = [
- {file = "inventree-0.9.2-py2.py3-none-any.whl", hash = "sha256:31e6f80e6f3b0bc2afbeed352e8b5ee1688d6c996b53781ef670c370f909de2c"},
- {file = "inventree-0.9.2.tar.gz", hash = "sha256:25e6689bcd65510fe7bf9189be5886f62eb5ceabd0af7409f0f92ed2335894c5"},
+ {file = "inventree-0.10.1-py2.py3-none-any.whl", hash = "sha256:613dcf11ee714986e8ef2d53892454473724dbada1a60ecb7ff25b6d4e0120af"},
+ {file = "inventree-0.10.1.tar.gz", hash = "sha256:ab92fc32a8aff839bbf64e2c3ffe72c0a186976c71b983de60b09ab72305005f"},
]
invoke = [
{file = "invoke-1.7.3-py3-none-any.whl", hash = "sha256:d9694a865764dd3fd91f25f7e9a97fb41666e822bbb00e670091e3f43933574d"},
@@ -933,8 +933,8 @@ lib-detect-testenv = [
{file = "lib_detect_testenv-2.0.3.tar.gz", hash = "sha256:3b02e4c874aaf62ef819fa662cc879a8c29791983b790791863b6613357e201c"},
]
mouser = [
- {file = "mouser-0.1.2-py3-none-any.whl", hash = "sha256:560fb2d248d98487665fb1f6e010ff23d62ed99b6e9cc06e7f7f0e8f66f06c29"},
- {file = "mouser-0.1.2.tar.gz", hash = "sha256:6d9712ad0402c3b127fb2f8f94e131ab82b8a6909031d2a192674f4fd55c5bda"},
+ {file = "mouser-0.1.3-py3-none-any.whl", hash = "sha256:5537acb61c0f9a84da3303b133abdc525fe1d0a8dcf562135182991fab7e0447"},
+ {file = "mouser-0.1.3.tar.gz", hash = "sha256:42e43b17e797bfc2b7a8323585ad8e772a8ba69d58439021635945cc0869cd5f"},
]
multiprocess = [
{file = "multiprocess-0.70.12.2-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:35d41e410ca2a32977a483ae1f40f86b193b45cecf85567c2fae402fb8bf172e"},
diff --git a/pyproject.toml b/pyproject.toml
index 9aab70a0..f59ba5b1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -15,9 +15,9 @@ python = ">=3.8,<3.11"
digikey-api = "^1.0.0"
Flet = "^0.4.2"
thefuzz = "^0.19.0"
-inventree = "^0.9.2"
+inventree = "^0.10.1"
kiutils = { git = "https://github.com/mvnmgrx/kiutils.git" }
-mouser = "^0.1.2"
+mouser = "^0.1.3"
multiprocess = "^0.70.12"
PyYAML = "^5.4.1"
validators = "^0.19.0"
diff --git a/requirements.txt b/requirements.txt
index f261f274..e0a27c8c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,7 +3,7 @@ Flet>=0.4.2,<1.0
thefuzz>=0.19.0,<1.0
inventree>=0.9.2,<1.0
git+https://github.com/mvnmgrx/kiutils.git # kiutils>=1.3.0,<2.0
-mouser>=0.1.2,<1.0
+mouser>=0.1.3,<1.0
multiprocess>=0.70.12,<0.71
PySimpleGUI>=4.60.4,<5.0
PyYAML>=5.4.1,<6.0
From 3de2155ffd43ce940a3c492888e7f85a336b694a Mon Sep 17 00:00:00 2001
From: eeintech
Date: Mon, 27 Mar 2023 16:02:11 -0400
Subject: [PATCH 4/7] Fixed part add flow when only KiCad is enabled
---
kintree/database/inventree_interface.py | 17 ++++++++++++-----
kintree/gui/views/main.py | 16 ++++++++++++++--
2 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/kintree/database/inventree_interface.py b/kintree/database/inventree_interface.py
index d029ea07..0a5113ae 100644
--- a/kintree/database/inventree_interface.py
+++ b/kintree/database/inventree_interface.py
@@ -259,8 +259,13 @@ def translate_form_to_inventree(part_info: dict, category_tree: list, is_custom=
inventree_part['image'] = part_info['image'].replace(' ', '%20')
# Load parameters map
- parameter_map = config_interface.load_category_parameters(category=category_tree[0],
- supplier_config_path=settings.CONFIG_SUPPLIER_PARAMETERS, )
+ if category_tree:
+ parameter_map = config_interface.load_category_parameters(
+ category=category_tree[0],
+ supplier_config_path=settings.CONFIG_SUPPLIER_PARAMETERS,
+ )
+ else:
+ cprint('[INFO]\tWarning: Parameter map not loaded (no category selected)', silent=settings.SILENT)
if not is_custom:
# Add Parameters
@@ -270,9 +275,11 @@ def translate_form_to_inventree(part_info: dict, category_tree: list, is_custom=
if inventree_param not in inventree_part['parameters'].keys():
if supplier_param != 'Manufacturer Part Number':
try:
- parameter_value = part_tools.clean_parameter_value(category=category_tree[0],
- name=supplier_param,
- value=part_info['parameters'][supplier_param])
+ parameter_value = part_tools.clean_parameter_value(
+ category=category_tree[0],
+ name=supplier_param,
+ value=part_info['parameters'][supplier_param],
+ )
inventree_part['parameters'][inventree_param] = parameter_value
except:
cprint(f'[INFO]\tWarning: Parameter "{supplier_param}" not found in supplier data', silent=settings.SILENT)
diff --git a/kintree/gui/views/main.py b/kintree/gui/views/main.py
index cc382327..e7f480e4 100644
--- a/kintree/gui/views/main.py
+++ b/kintree/gui/views/main.py
@@ -1238,18 +1238,30 @@ def create_part(self, e=None):
# KiCad data processing
if settings.ENABLE_KICAD and not settings.ENABLE_ALTERNATE:
+ # Store "pseudo-category" as re-used in multiple places
+ pseudo_category = symbol.split(':')[0]
+ # Translate part info if InvenTree not enabled
+ if not settings.ENABLE_INVENTREE:
+ part_info = inventree_interface.translate_form_to_inventree(
+ part_info=part_info,
+ category_tree=[pseudo_category],
+ is_custom=custom,
+ )
+ # Also add datasheet URL as part page URL
+ part_info['inventree_url'] = part_info['datasheet']
part_info['Symbol'] = symbol
part_info['Template'] = template.split('/')
part_info['Footprint'] = footprint
symbol_library_path = os.path.join(
settings.KICAD_SETTINGS['KICAD_SYMBOLS_PATH'],
- f'{symbol.split(":")[0]}.kicad_sym',
+ f'{pseudo_category}.kicad_sym',
)
# Reset progress
progress.CREATE_PART_PROGRESS = 0
- # Create part
+ # Add part symbol to KiCAD
+ cprint('\n[MAIN]\tAdding part to KiCad', silent=settings.SILENT)
kicad_success, kicad_new_part = kicad_interface.inventree_to_kicad(
part_data=part_info,
library_path=symbol_library_path,
From de3b9bd0d4e0a960a09cc5f38c6d6f045f66aa22 Mon Sep 17 00:00:00 2001
From: eeintech
Date: Tue, 28 Mar 2023 10:39:54 -0400
Subject: [PATCH 5/7] Updated kiutils to 1.4.0
---
poetry.lock | 22 +++++++++-------------
pyproject.toml | 2 +-
requirements.txt | 2 +-
3 files changed, 11 insertions(+), 15 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index 2e5a7dec..74e44ec1 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -309,18 +309,11 @@ python-versions = "*"
[[package]]
name = "kiutils"
-version = "1.3.0"
+version = "1.4.0"
description = "Simple and SCM-friendly KiCad file parser for KiCad 6.0 and up"
category = "main"
optional = false
python-versions = ">=3.7"
-develop = false
-
-[package.source]
-type = "git"
-url = "https://github.com/mvnmgrx/kiutils.git"
-reference = "HEAD"
-resolved_reference = "94f0b0d11e13f36e0a41270042028739fe39893e"
[[package]]
name = "lib-detect-testenv"
@@ -399,7 +392,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pyopenssl"
-version = "23.1.0"
+version = "23.1.1"
description = "Python wrapper module around the OpenSSL library"
category = "main"
optional = false
@@ -615,7 +608,7 @@ wrapt = "*"
[metadata]
lock-version = "1.1"
python-versions = ">=3.8,<3.11"
-content-hash = "199846bcaf0d88959565981b52f7589e39261042ccd11764c8c5caa958efd306"
+content-hash = "a2064f909db4af77420e07dccd2d9a39a3104c643dcdf15767d94d5574e29d6c"
[metadata.files]
anyio = [
@@ -927,7 +920,10 @@ invoke = [
{file = "invoke-1.7.3-py3-none-any.whl", hash = "sha256:d9694a865764dd3fd91f25f7e9a97fb41666e822bbb00e670091e3f43933574d"},
{file = "invoke-1.7.3.tar.gz", hash = "sha256:41b428342d466a82135d5ab37119685a989713742be46e42a3a399d685579314"},
]
-kiutils = []
+kiutils = [
+ {file = "kiutils-1.4.0-py3-none-any.whl", hash = "sha256:bcb63d495f7f97e08203e757eecb86cf37793093ef178d3a5f46b5edeb767b3d"},
+ {file = "kiutils-1.4.0.tar.gz", hash = "sha256:fcdb6ddae050729670854b3e233e86ebb71b9c9e568908d2eb70192d6ec9988f"},
+]
lib-detect-testenv = [
{file = "lib_detect_testenv-2.0.3-py3-none-any.whl", hash = "sha256:b6113bf4974a0e91db2cb0bc468b69a919be9c6ded27765229b3ee7a6dcf6302"},
{file = "lib_detect_testenv-2.0.3.tar.gz", hash = "sha256:3b02e4c874aaf62ef819fa662cc879a8c29791983b790791863b6613357e201c"},
@@ -978,8 +974,8 @@ pycparser = [
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
pyopenssl = [
- {file = "pyOpenSSL-23.1.0-py3-none-any.whl", hash = "sha256:fb96e936866ad65662c22d0de84ca0fba58397893cdfe0f01334fa93382af23c"},
- {file = "pyOpenSSL-23.1.0.tar.gz", hash = "sha256:8cb78010a1eb2c8e24b851693b7b04dfe9b1dc0a5ab3843927b10a85b1dfbb2e"},
+ {file = "pyOpenSSL-23.1.1-py3-none-any.whl", hash = "sha256:9e0c526404a210df9d2b18cd33364beadb0dc858a739b885677bc65e105d4a4c"},
+ {file = "pyOpenSSL-23.1.1.tar.gz", hash = "sha256:841498b9bec61623b1b6c47ebbc02367c07d60e0e195f19790817f10cc8db0b7"},
]
pyyaml = [
{file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
diff --git a/pyproject.toml b/pyproject.toml
index f59ba5b1..53b0c44f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,7 +16,7 @@ digikey-api = "^1.0.0"
Flet = "^0.4.2"
thefuzz = "^0.19.0"
inventree = "^0.10.1"
-kiutils = { git = "https://github.com/mvnmgrx/kiutils.git" }
+kiutils = "^1.4.0"
mouser = "^0.1.3"
multiprocess = "^0.70.12"
PyYAML = "^5.4.1"
diff --git a/requirements.txt b/requirements.txt
index e0a27c8c..5dd8e97e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,7 +2,7 @@ digikey-api>=1.0.0,<2.0
Flet>=0.4.2,<1.0
thefuzz>=0.19.0,<1.0
inventree>=0.9.2,<1.0
-git+https://github.com/mvnmgrx/kiutils.git # kiutils>=1.3.0,<2.0
+kiutils>=1.4.0,<2.0
mouser>=0.1.3,<1.0
multiprocess>=0.70.12,<0.71
PySimpleGUI>=4.60.4,<5.0
From ccb1b1bf3f929aed540640f64c7c3be29a84ccd2 Mon Sep 17 00:00:00 2001
From: eeintech
Date: Tue, 28 Mar 2023 17:45:36 -0400
Subject: [PATCH 6/7] Started to update README, deleted lib_utils folder,
migrated template project to V7
---
README.md | 46 +-
images/doc/kintree_v1_preview.png | Bin 67221 -> 76613 bytes
images/doc/settings_user_cache.png | Bin 16408 -> 35371 bytes
kintree/kicad/lib_utils/kicad_sym.py | 1189 -----------------
kintree/kicad/lib_utils/sexpr.py | 238 ----
.../templates_project.kicad_pcb | 81 +-
.../templates_project.kicad_prl | 2 +
.../templates_project.kicad_pro | 260 +++-
.../templates_project.kicad_sch | 15 +-
9 files changed, 360 insertions(+), 1471 deletions(-)
delete mode 100644 kintree/kicad/lib_utils/kicad_sym.py
delete mode 100644 kintree/kicad/lib_utils/sexpr.py
diff --git a/README.md b/README.md
index 5d04cf5c..fd02ddbc 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
## New version (1.0) is coming soon!
-To install the beta release:
+To install the release candidate:
``` shell
pip install --pre -U kintree
```
@@ -29,13 +29,14 @@ Ki-nTree works with:
- [Digi-Key](https://developer.digikey.com/), [Mouser](https://www.mouser.com/api-hub/), [Element14](https://partner.element14.com/docs) and [LCSC](https://lcsc.com/) **enormous** part databases and free APIs
- the awesome open-source [Digi-Key API python library](https://github.com/peeter123/digikey-api) built and maintained by [@peeter123](https://github.com/peeter123)
- the [Mouser Python API](https://github.com/sparkmicro/mouser-api/) built and maintained by [@eeintech](https://github.com/eeintech)
-- the awesome open-source [InvenTree Inventory Management System](https://github.com/inventree/inventree) built and maintained by [@SchrodingersGat](https://github.com/SchrodingersGat)
-- [KiCad](https://www.kicad.org/) (of course!) and their open-source [library utils](https://gitlab.com/kicad/libraries/kicad-library-utils)
+- the awesome open-source [InvenTree Inventory Management System](https://github.com/inventree/inventree) built and maintained by [@SchrodingersGat](https://github.com/SchrodingersGat) and [@matmair](https://github.com/matmair)
+- [KiUtils](https://github.com/mvnmgrx/kiutils), an amazing and SCM-friendly KiCad file parser which is built and maintained by [@mvnmgrx](https://github.com/mvnmgrx)
> **Important Note**
>
-> Because of limited maintenance bandwidth, Ki-nTree versions `0.5.x` and newer will only support KiCad version **6**.
-> To keep using Ki-nTree with KiCad version **5**, use older `0.4.x` versions (`pip install kintree==0.4.8`).
+> Ki-nTree version `1.0.x` and forward support KiCad versions **6 and up**.
+> Ki-nTree versions `0.5.x` and `0.6.x` only support KiCad version **6**.
+> To use Ki-nTree with KiCad version **5**, use older `0.4.x` versions (`pip install kintree==0.4.8`).
Ki-nTree was developped by [@eeintech](https://github.com/eeintech) for [SPARK Microsystems](https://www.sparkmicro.com/), who generously accepted to make it open-source!
@@ -137,7 +138,7 @@ Below is a summary table of the different configuration files, their function an
| `digikey_categories.yaml` | Mapping between InvenTree categories and Digi-Key categories | :heavy_check_mark: |
| `digikey_parameters.yaml` | Mapping between InvenTree parameters and Digi-Key parameters/attributes | :x: |
-> In versions `0.6.x` and older, Ki-nTree only supports matching between InvenTree and Digi-Key categories and parameters/attibutes (help wanted!)
+> Ki-nTree only supports matching between InvenTree and Digi-Key categories and parameters/attibutes (help wanted!)
@@ -230,7 +231,7 @@ git clone https://github.com/sparkmicro/Ki-nTree
poetry install
Installing dependencies from lock file
...
-Installing the current project: kintree (0.4.99)
+Installing the current project: kintree (1.0.99)
```
> Note: the version is not accurate (placeholder only)
@@ -249,11 +250,11 @@ $ python -m kintree_gui
1. Make sure you followed the previous installation steps, then run:
``` bash
$ poetry build
-Building kintree (0.6.99)
+Building kintree (1.0.99)
- Building sdist
- - Built kintree-0.6.99.tar.gz
+ - Built kintree-1.0.99.tar.gz
- Building wheel
- - Built kintree-0.6.99-py3-none-any.whl
+ - Built kintree-1.0.99-py3-none-any.whl
```
2. Exit the virtual environment (`Ctrl + D` on Linux; you can also close the
terminal and reopen it in the same folder).
@@ -262,36 +263,15 @@ Building kintree (0.6.99)
step. For example:
```bash
-pip install dist/kintree-0.6.99-py3-none-any.whl
+pip install dist/kintree-1.0.99-py3-none-any.whl
```
3. You can now start Ki-nTree by typing `kintree` in the terminal, provided
that your python dist path is a part of your `$PATH`.
-## Roadmap
-
-> Priority goes to implementing new features over GUI improvements
-> Open to new ideas and pull requests :smiley:
-
-#### Versions 1.0.x or later
-(Strikethrough items are supported in V1.0.0 beta1 release)
-
-##### New Features
-~~- Revamp category selection based on hierarchical structure from InvenTree ([reference](https://github.com/sparkmicro/Ki-nTree/issues/87))~~
-~~- Allow user to decide the category code to use for IPN~~
-~~- Enable option to download and save PDF files locally/to internal server storage~~
-
-##### Improvements
-~~- Optimize the category search ([reference](https://github.com/sparkmicro/Ki-nTree/issues/104))~~
-~~- Migrate KiCad library management to [KiUtils](https://github.com/mvnmgrx/kiutils) ([reference](https://github.com/sparkmicro/Ki-nTree/issues/119))~~
-- Add support for KiCad V7 ([reference](https://github.com/sparkmicro/Ki-nTree/issues/120))
-
-##### GUI
-~~- Migrate to [Flet](https://github.com/flet-dev/flet) ([reference](https://github.com/sparkmicro/Ki-nTree/issues/37))~~
-
## License
The Ki-nTree source code is licensed under the [GPL3.0 license](https://github.com/sparkmicro/Ki-nTree/blob/main/LICENSE) as it uses source code under that license:
-* https://gitlab.com/kicad/libraries/kicad-library-utils
+* https://github.com/mvnmgrx/kiutils
* https://github.com/peeter123/digikey-api
The [KiCad templates](https://github.com/sparkmicro/Ki-nTree/tree/main/kintree/kicad/templates) are licensed under the [Creative Commons CC0 1.0 license](https://github.com/sparkmicro/Ki-nTree/blob/main/kintree/kicad/templates/LICENSE) which means that "you can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission" ([reference](https://creativecommons.org/publicdomain/zero/1.0/)).
\ No newline at end of file
diff --git a/images/doc/kintree_v1_preview.png b/images/doc/kintree_v1_preview.png
index 114c3c486547a0c2a6797cba6f6981c64ab062c8..75b198e41cc08310ca24882493063a6a721b2cb3 100644
GIT binary patch
literal 76613
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