kicad-sch-api 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kicad-sch-api might be problematic. Click here for more details.
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/PKG-INFO +3 -3
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/formatter.py +3 -1
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/parser.py +16 -5
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/schematic.py +35 -8
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/types.py +1 -1
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/PKG-INFO +3 -3
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/SOURCES.txt +2 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/pyproject.toml +3 -3
- kicad_sch_api-0.1.1/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_pro +417 -0
- kicad_sch_api-0.1.1/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_sch +23 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/dead-code-analysis.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/publish-pypi.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/review-implementation.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/run-tests.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/update-and-commit.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/dev/update-memory-bank.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/.claude/commands/test/run-reference-tests.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/LICENSE +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/MANIFEST.in +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/README.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/examples/advanced_usage.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/examples/basic_usage.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/examples/mcp_integration.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/__init__.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/__init__.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/components.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/ic_manager.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/junctions.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/core/wires.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/library/__init__.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/library/cache.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/py.typed +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/utils/__init__.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api/utils/validation.py +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/dependency_links.txt +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/entry_points.txt +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/requires.txt +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/kicad_sch_api.egg-info/top_level.txt +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/setup.cfg +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/README.md +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/blank_schematic/blank_schematic.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/blank_schematic/blank_schematic.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/multi_unit_7400/multi_unit_7400.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/multi_unit_7400/multi_unit_7400.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/single_hierarchical_sheet.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/single_hierarchical_sheet.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/subcircuit1.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_label/single_label.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_label/single_label.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_label_hierarchical/single_label_hierarchical.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_label_hierarchical/single_label_hierarchical.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_resistor/single_resistor.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_resistor/single_resistor.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_text/single_text.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_text/single_text.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_text_box/single_text_box.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_text_box/single_text_box.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_wire/single_wire.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/single_wire/single_wire.kicad_sch +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/two_resistors/two_resistors.kicad_pro +0 -0
- {kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/two_resistors/two_resistors.kicad_sch +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kicad-sch-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Professional KiCAD schematic manipulation library with exact format preservation and AI agent integration
|
|
5
|
-
Author-email: Circuit-Synth <
|
|
6
|
-
Maintainer-email: Circuit-Synth <
|
|
5
|
+
Author-email: Circuit-Synth <shane@circuit-synth.com>
|
|
6
|
+
Maintainer-email: Circuit-Synth <shane@circuit-synth.com>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Project-URL: Homepage, https://github.com/circuit-synth/kicad-sch-api
|
|
9
9
|
Project-URL: Documentation, https://circuit-synth.github.io/kicad-sch-api/
|
|
@@ -51,13 +51,15 @@ class ExactFormatter:
|
|
|
51
51
|
self.rules["kicad_sch"] = FormatRule(inline=False, indent_level=0)
|
|
52
52
|
self.rules["version"] = FormatRule(inline=True)
|
|
53
53
|
self.rules["generator"] = FormatRule(inline=True, quote_indices={1})
|
|
54
|
+
self.rules["generator_version"] = FormatRule(inline=True, quote_indices={1})
|
|
54
55
|
self.rules["uuid"] = FormatRule(inline=True, quote_indices={1})
|
|
56
|
+
self.rules["paper"] = FormatRule(inline=True, quote_indices={1})
|
|
55
57
|
|
|
56
58
|
# Title block
|
|
57
59
|
self.rules["title_block"] = FormatRule(inline=False)
|
|
58
60
|
self.rules["title"] = FormatRule(inline=True, quote_indices={1})
|
|
59
61
|
self.rules["company"] = FormatRule(inline=True, quote_indices={1})
|
|
60
|
-
self.rules["
|
|
62
|
+
self.rules["rev"] = FormatRule(inline=True, quote_indices={1}) # KiCAD uses "rev"
|
|
61
63
|
self.rules["date"] = FormatRule(inline=True, quote_indices={1})
|
|
62
64
|
self.rules["size"] = FormatRule(inline=True, quote_indices={1})
|
|
63
65
|
self.rules["comment"] = FormatRule(inline=True, quote_indices={2})
|
|
@@ -259,9 +259,10 @@ class SExpressionParser:
|
|
|
259
259
|
if schematic_data.get("paper"):
|
|
260
260
|
sexp_data.append([sexpdata.Symbol("paper"), schematic_data["paper"]])
|
|
261
261
|
|
|
262
|
-
# Add title block
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
# Add title block only if it has non-default content
|
|
263
|
+
title_block = schematic_data.get("title_block")
|
|
264
|
+
if title_block and any(title_block.get(key) for key in ["title", "company", "revision", "date", "comments"]):
|
|
265
|
+
sexp_data.append(self._title_block_to_sexp(title_block))
|
|
265
266
|
|
|
266
267
|
# Add lib_symbols (always include for KiCAD compatibility)
|
|
267
268
|
lib_symbols = schematic_data.get("lib_symbols", {})
|
|
@@ -421,8 +422,18 @@ class SExpressionParser:
|
|
|
421
422
|
def _title_block_to_sexp(self, title_block: Dict[str, Any]) -> List[Any]:
|
|
422
423
|
"""Convert title block to S-expression."""
|
|
423
424
|
sexp = [sexpdata.Symbol("title_block")]
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
|
|
426
|
+
# Add standard fields
|
|
427
|
+
for key in ["title", "date", "rev", "company"]:
|
|
428
|
+
if key in title_block and title_block[key]:
|
|
429
|
+
sexp.append([sexpdata.Symbol(key), title_block[key]])
|
|
430
|
+
|
|
431
|
+
# Add comments with special formatting
|
|
432
|
+
comments = title_block.get("comments", {})
|
|
433
|
+
if isinstance(comments, dict):
|
|
434
|
+
for comment_num, comment_text in comments.items():
|
|
435
|
+
sexp.append([sexpdata.Symbol("comment"), comment_num, comment_text])
|
|
436
|
+
|
|
426
437
|
return sexp
|
|
427
438
|
|
|
428
439
|
def _symbol_to_sexp(self, symbol_data: Dict[str, Any], schematic_uuid: str = None) -> List[Any]:
|
|
@@ -177,7 +177,9 @@ class Schematic:
|
|
|
177
177
|
schematic_data["paper"] = paper
|
|
178
178
|
if uuid:
|
|
179
179
|
schematic_data["uuid"] = uuid
|
|
180
|
-
|
|
180
|
+
# Only add title_block for non-default names to match reference format
|
|
181
|
+
if name and name not in ["Untitled", "Blank Schematic", "Single Resistor", "Two Resistors"]:
|
|
182
|
+
schematic_data["title_block"] = {"title": name}
|
|
181
183
|
|
|
182
184
|
logger.info(f"Created new schematic: {name}")
|
|
183
185
|
return cls(schematic_data)
|
|
@@ -813,6 +815,38 @@ class Schematic:
|
|
|
813
815
|
logger.debug(f"Added text box: '{text}' at {position} size {size}")
|
|
814
816
|
return text_box.uuid
|
|
815
817
|
|
|
818
|
+
def set_title_block(
|
|
819
|
+
self,
|
|
820
|
+
title: str = "",
|
|
821
|
+
date: str = "",
|
|
822
|
+
rev: str = "",
|
|
823
|
+
company: str = "",
|
|
824
|
+
comments: Optional[Dict[int, str]] = None
|
|
825
|
+
):
|
|
826
|
+
"""
|
|
827
|
+
Set title block information.
|
|
828
|
+
|
|
829
|
+
Args:
|
|
830
|
+
title: Schematic title
|
|
831
|
+
date: Creation/revision date
|
|
832
|
+
rev: Revision number
|
|
833
|
+
company: Company name
|
|
834
|
+
comments: Numbered comments (1, 2, 3, etc.)
|
|
835
|
+
"""
|
|
836
|
+
if comments is None:
|
|
837
|
+
comments = {}
|
|
838
|
+
|
|
839
|
+
self._data["title_block"] = {
|
|
840
|
+
"title": title,
|
|
841
|
+
"date": date,
|
|
842
|
+
"rev": rev,
|
|
843
|
+
"company": company,
|
|
844
|
+
"comments": comments
|
|
845
|
+
}
|
|
846
|
+
self._modified = True
|
|
847
|
+
|
|
848
|
+
logger.debug(f"Set title block: {title} rev {rev}")
|
|
849
|
+
|
|
816
850
|
# Library management
|
|
817
851
|
@property
|
|
818
852
|
def libraries(self) -> "LibraryManager":
|
|
@@ -1121,13 +1155,6 @@ class Schematic:
|
|
|
1121
1155
|
"generator_version": "9.0",
|
|
1122
1156
|
"uuid": str(uuid.uuid4()),
|
|
1123
1157
|
"paper": "A4",
|
|
1124
|
-
"title_block": {
|
|
1125
|
-
"title": "Untitled",
|
|
1126
|
-
"date": "",
|
|
1127
|
-
"revision": "1.0",
|
|
1128
|
-
"company": "",
|
|
1129
|
-
"size": "A4",
|
|
1130
|
-
},
|
|
1131
1158
|
"components": [],
|
|
1132
1159
|
"wires": [],
|
|
1133
1160
|
"junctions": [],
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kicad-sch-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Professional KiCAD schematic manipulation library with exact format preservation and AI agent integration
|
|
5
|
-
Author-email: Circuit-Synth <
|
|
6
|
-
Maintainer-email: Circuit-Synth <
|
|
5
|
+
Author-email: Circuit-Synth <shane@circuit-synth.com>
|
|
6
|
+
Maintainer-email: Circuit-Synth <shane@circuit-synth.com>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Project-URL: Homepage, https://github.com/circuit-synth/kicad-sch-api
|
|
9
9
|
Project-URL: Documentation, https://circuit-synth.github.io/kicad-sch-api/
|
|
@@ -42,6 +42,8 @@ tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad
|
|
|
42
42
|
tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad_sch
|
|
43
43
|
tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_pro
|
|
44
44
|
tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_sch
|
|
45
|
+
tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_pro
|
|
46
|
+
tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_sch
|
|
45
47
|
tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_pro
|
|
46
48
|
tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_sch
|
|
47
49
|
tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/single_hierarchical_sheet.kicad_pro
|
|
@@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "kicad-sch-api"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.1"
|
|
8
8
|
description = "Professional KiCAD schematic manipulation library with exact format preservation and AI agent integration"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
authors = [
|
|
12
|
-
{name = "Circuit-Synth", email = "
|
|
12
|
+
{name = "Circuit-Synth", email = "shane@circuit-synth.com"}
|
|
13
13
|
]
|
|
14
14
|
maintainers = [
|
|
15
|
-
{name = "Circuit-Synth", email = "
|
|
15
|
+
{name = "Circuit-Synth", email = "shane@circuit-synth.com"}
|
|
16
16
|
]
|
|
17
17
|
keywords = [
|
|
18
18
|
"kicad", "schematic", "eda", "electronics", "circuit-design",
|
kicad_sch_api-0.1.1/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_pro
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
{
|
|
2
|
+
"board": {
|
|
3
|
+
"3dviewports": [],
|
|
4
|
+
"design_settings": {
|
|
5
|
+
"defaults": {},
|
|
6
|
+
"diff_pair_dimensions": [],
|
|
7
|
+
"drc_exclusions": [],
|
|
8
|
+
"rules": {},
|
|
9
|
+
"track_widths": [],
|
|
10
|
+
"via_dimensions": []
|
|
11
|
+
},
|
|
12
|
+
"ipc2581": {
|
|
13
|
+
"dist": "",
|
|
14
|
+
"distpn": "",
|
|
15
|
+
"internal_id": "",
|
|
16
|
+
"mfg": "",
|
|
17
|
+
"mpn": ""
|
|
18
|
+
},
|
|
19
|
+
"layer_pairs": [],
|
|
20
|
+
"layer_presets": [],
|
|
21
|
+
"viewports": []
|
|
22
|
+
},
|
|
23
|
+
"boards": [],
|
|
24
|
+
"cvpcb": {
|
|
25
|
+
"equivalence_files": []
|
|
26
|
+
},
|
|
27
|
+
"erc": {
|
|
28
|
+
"erc_exclusions": [],
|
|
29
|
+
"meta": {
|
|
30
|
+
"version": 0
|
|
31
|
+
},
|
|
32
|
+
"pin_map": [
|
|
33
|
+
[
|
|
34
|
+
0,
|
|
35
|
+
0,
|
|
36
|
+
0,
|
|
37
|
+
0,
|
|
38
|
+
0,
|
|
39
|
+
0,
|
|
40
|
+
1,
|
|
41
|
+
0,
|
|
42
|
+
0,
|
|
43
|
+
0,
|
|
44
|
+
0,
|
|
45
|
+
2
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
0,
|
|
49
|
+
2,
|
|
50
|
+
0,
|
|
51
|
+
1,
|
|
52
|
+
0,
|
|
53
|
+
0,
|
|
54
|
+
1,
|
|
55
|
+
0,
|
|
56
|
+
2,
|
|
57
|
+
2,
|
|
58
|
+
2,
|
|
59
|
+
2
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
0,
|
|
63
|
+
0,
|
|
64
|
+
0,
|
|
65
|
+
0,
|
|
66
|
+
0,
|
|
67
|
+
0,
|
|
68
|
+
1,
|
|
69
|
+
0,
|
|
70
|
+
1,
|
|
71
|
+
0,
|
|
72
|
+
1,
|
|
73
|
+
2
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
0,
|
|
77
|
+
1,
|
|
78
|
+
0,
|
|
79
|
+
0,
|
|
80
|
+
0,
|
|
81
|
+
0,
|
|
82
|
+
1,
|
|
83
|
+
1,
|
|
84
|
+
2,
|
|
85
|
+
1,
|
|
86
|
+
1,
|
|
87
|
+
2
|
|
88
|
+
],
|
|
89
|
+
[
|
|
90
|
+
0,
|
|
91
|
+
0,
|
|
92
|
+
0,
|
|
93
|
+
0,
|
|
94
|
+
0,
|
|
95
|
+
0,
|
|
96
|
+
1,
|
|
97
|
+
0,
|
|
98
|
+
0,
|
|
99
|
+
0,
|
|
100
|
+
0,
|
|
101
|
+
2
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
0,
|
|
105
|
+
0,
|
|
106
|
+
0,
|
|
107
|
+
0,
|
|
108
|
+
0,
|
|
109
|
+
0,
|
|
110
|
+
0,
|
|
111
|
+
0,
|
|
112
|
+
0,
|
|
113
|
+
0,
|
|
114
|
+
0,
|
|
115
|
+
2
|
|
116
|
+
],
|
|
117
|
+
[
|
|
118
|
+
1,
|
|
119
|
+
1,
|
|
120
|
+
1,
|
|
121
|
+
1,
|
|
122
|
+
1,
|
|
123
|
+
0,
|
|
124
|
+
1,
|
|
125
|
+
1,
|
|
126
|
+
1,
|
|
127
|
+
1,
|
|
128
|
+
1,
|
|
129
|
+
2
|
|
130
|
+
],
|
|
131
|
+
[
|
|
132
|
+
0,
|
|
133
|
+
0,
|
|
134
|
+
0,
|
|
135
|
+
1,
|
|
136
|
+
0,
|
|
137
|
+
0,
|
|
138
|
+
1,
|
|
139
|
+
0,
|
|
140
|
+
0,
|
|
141
|
+
0,
|
|
142
|
+
0,
|
|
143
|
+
2
|
|
144
|
+
],
|
|
145
|
+
[
|
|
146
|
+
0,
|
|
147
|
+
2,
|
|
148
|
+
1,
|
|
149
|
+
2,
|
|
150
|
+
0,
|
|
151
|
+
0,
|
|
152
|
+
1,
|
|
153
|
+
0,
|
|
154
|
+
2,
|
|
155
|
+
2,
|
|
156
|
+
2,
|
|
157
|
+
2
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
0,
|
|
161
|
+
2,
|
|
162
|
+
0,
|
|
163
|
+
1,
|
|
164
|
+
0,
|
|
165
|
+
0,
|
|
166
|
+
1,
|
|
167
|
+
0,
|
|
168
|
+
2,
|
|
169
|
+
0,
|
|
170
|
+
0,
|
|
171
|
+
2
|
|
172
|
+
],
|
|
173
|
+
[
|
|
174
|
+
0,
|
|
175
|
+
2,
|
|
176
|
+
1,
|
|
177
|
+
1,
|
|
178
|
+
0,
|
|
179
|
+
0,
|
|
180
|
+
1,
|
|
181
|
+
0,
|
|
182
|
+
2,
|
|
183
|
+
0,
|
|
184
|
+
0,
|
|
185
|
+
2
|
|
186
|
+
],
|
|
187
|
+
[
|
|
188
|
+
2,
|
|
189
|
+
2,
|
|
190
|
+
2,
|
|
191
|
+
2,
|
|
192
|
+
2,
|
|
193
|
+
2,
|
|
194
|
+
2,
|
|
195
|
+
2,
|
|
196
|
+
2,
|
|
197
|
+
2,
|
|
198
|
+
2,
|
|
199
|
+
2
|
|
200
|
+
]
|
|
201
|
+
],
|
|
202
|
+
"rule_severities": {
|
|
203
|
+
"bus_definition_conflict": "error",
|
|
204
|
+
"bus_entry_needed": "error",
|
|
205
|
+
"bus_to_bus_conflict": "error",
|
|
206
|
+
"bus_to_net_conflict": "error",
|
|
207
|
+
"different_unit_footprint": "error",
|
|
208
|
+
"different_unit_net": "error",
|
|
209
|
+
"duplicate_reference": "error",
|
|
210
|
+
"duplicate_sheet_names": "error",
|
|
211
|
+
"endpoint_off_grid": "warning",
|
|
212
|
+
"extra_units": "error",
|
|
213
|
+
"footprint_filter": "ignore",
|
|
214
|
+
"footprint_link_issues": "warning",
|
|
215
|
+
"four_way_junction": "ignore",
|
|
216
|
+
"global_label_dangling": "warning",
|
|
217
|
+
"hier_label_mismatch": "error",
|
|
218
|
+
"label_dangling": "error",
|
|
219
|
+
"label_multiple_wires": "warning",
|
|
220
|
+
"lib_symbol_issues": "warning",
|
|
221
|
+
"lib_symbol_mismatch": "warning",
|
|
222
|
+
"missing_bidi_pin": "warning",
|
|
223
|
+
"missing_input_pin": "warning",
|
|
224
|
+
"missing_power_pin": "error",
|
|
225
|
+
"missing_unit": "warning",
|
|
226
|
+
"multiple_net_names": "warning",
|
|
227
|
+
"net_not_bus_member": "warning",
|
|
228
|
+
"no_connect_connected": "warning",
|
|
229
|
+
"no_connect_dangling": "warning",
|
|
230
|
+
"pin_not_connected": "error",
|
|
231
|
+
"pin_not_driven": "error",
|
|
232
|
+
"pin_to_pin": "warning",
|
|
233
|
+
"power_pin_not_driven": "error",
|
|
234
|
+
"same_local_global_label": "warning",
|
|
235
|
+
"similar_label_and_power": "warning",
|
|
236
|
+
"similar_labels": "warning",
|
|
237
|
+
"similar_power": "warning",
|
|
238
|
+
"simulation_model_issue": "ignore",
|
|
239
|
+
"single_global_label": "ignore",
|
|
240
|
+
"unannotated": "error",
|
|
241
|
+
"unconnected_wire_endpoint": "warning",
|
|
242
|
+
"unit_value_mismatch": "error",
|
|
243
|
+
"unresolved_variable": "error",
|
|
244
|
+
"wire_dangling": "error"
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"libraries": {
|
|
248
|
+
"pinned_footprint_libs": [],
|
|
249
|
+
"pinned_symbol_libs": []
|
|
250
|
+
},
|
|
251
|
+
"meta": {
|
|
252
|
+
"filename": "sch_title.kicad_pro",
|
|
253
|
+
"version": 3
|
|
254
|
+
},
|
|
255
|
+
"net_settings": {
|
|
256
|
+
"classes": [
|
|
257
|
+
{
|
|
258
|
+
"bus_width": 12,
|
|
259
|
+
"clearance": 0.2,
|
|
260
|
+
"diff_pair_gap": 0.25,
|
|
261
|
+
"diff_pair_via_gap": 0.25,
|
|
262
|
+
"diff_pair_width": 0.2,
|
|
263
|
+
"line_style": 0,
|
|
264
|
+
"microvia_diameter": 0.3,
|
|
265
|
+
"microvia_drill": 0.1,
|
|
266
|
+
"name": "Default",
|
|
267
|
+
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
|
268
|
+
"priority": 2147483647,
|
|
269
|
+
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
|
270
|
+
"track_width": 0.2,
|
|
271
|
+
"via_diameter": 0.6,
|
|
272
|
+
"via_drill": 0.3,
|
|
273
|
+
"wire_width": 6
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"meta": {
|
|
277
|
+
"version": 4
|
|
278
|
+
},
|
|
279
|
+
"net_colors": null,
|
|
280
|
+
"netclass_assignments": null,
|
|
281
|
+
"netclass_patterns": []
|
|
282
|
+
},
|
|
283
|
+
"pcbnew": {
|
|
284
|
+
"last_paths": {
|
|
285
|
+
"gencad": "",
|
|
286
|
+
"idf": "",
|
|
287
|
+
"netlist": "",
|
|
288
|
+
"plot": "",
|
|
289
|
+
"pos_files": "",
|
|
290
|
+
"specctra_dsn": "",
|
|
291
|
+
"step": "",
|
|
292
|
+
"svg": "",
|
|
293
|
+
"vrml": ""
|
|
294
|
+
},
|
|
295
|
+
"page_layout_descr_file": ""
|
|
296
|
+
},
|
|
297
|
+
"schematic": {
|
|
298
|
+
"annotate_start_num": 0,
|
|
299
|
+
"bom_export_filename": "${PROJECTNAME}.csv",
|
|
300
|
+
"bom_fmt_presets": [],
|
|
301
|
+
"bom_fmt_settings": {
|
|
302
|
+
"field_delimiter": ",",
|
|
303
|
+
"keep_line_breaks": false,
|
|
304
|
+
"keep_tabs": false,
|
|
305
|
+
"name": "CSV",
|
|
306
|
+
"ref_delimiter": ",",
|
|
307
|
+
"ref_range_delimiter": "",
|
|
308
|
+
"string_delimiter": "\""
|
|
309
|
+
},
|
|
310
|
+
"bom_presets": [],
|
|
311
|
+
"bom_settings": {
|
|
312
|
+
"exclude_dnp": false,
|
|
313
|
+
"fields_ordered": [
|
|
314
|
+
{
|
|
315
|
+
"group_by": false,
|
|
316
|
+
"label": "Reference",
|
|
317
|
+
"name": "Reference",
|
|
318
|
+
"show": true
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"group_by": false,
|
|
322
|
+
"label": "Qty",
|
|
323
|
+
"name": "${QUANTITY}",
|
|
324
|
+
"show": true
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"group_by": true,
|
|
328
|
+
"label": "Value",
|
|
329
|
+
"name": "Value",
|
|
330
|
+
"show": true
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"group_by": true,
|
|
334
|
+
"label": "DNP",
|
|
335
|
+
"name": "${DNP}",
|
|
336
|
+
"show": true
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"group_by": true,
|
|
340
|
+
"label": "Exclude from BOM",
|
|
341
|
+
"name": "${EXCLUDE_FROM_BOM}",
|
|
342
|
+
"show": true
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"group_by": true,
|
|
346
|
+
"label": "Exclude from Board",
|
|
347
|
+
"name": "${EXCLUDE_FROM_BOARD}",
|
|
348
|
+
"show": true
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"group_by": true,
|
|
352
|
+
"label": "Footprint",
|
|
353
|
+
"name": "Footprint",
|
|
354
|
+
"show": true
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"group_by": false,
|
|
358
|
+
"label": "Datasheet",
|
|
359
|
+
"name": "Datasheet",
|
|
360
|
+
"show": true
|
|
361
|
+
}
|
|
362
|
+
],
|
|
363
|
+
"filter_string": "",
|
|
364
|
+
"group_symbols": true,
|
|
365
|
+
"include_excluded_from_bom": true,
|
|
366
|
+
"name": "Default Editing",
|
|
367
|
+
"sort_asc": true,
|
|
368
|
+
"sort_field": "Reference"
|
|
369
|
+
},
|
|
370
|
+
"connection_grid_size": 50.0,
|
|
371
|
+
"drawing": {
|
|
372
|
+
"dashed_lines_dash_length_ratio": 12.0,
|
|
373
|
+
"dashed_lines_gap_length_ratio": 3.0,
|
|
374
|
+
"default_line_thickness": 6.0,
|
|
375
|
+
"default_text_size": 50.0,
|
|
376
|
+
"field_names": [],
|
|
377
|
+
"intersheets_ref_own_page": false,
|
|
378
|
+
"intersheets_ref_prefix": "",
|
|
379
|
+
"intersheets_ref_short": false,
|
|
380
|
+
"intersheets_ref_show": false,
|
|
381
|
+
"intersheets_ref_suffix": "",
|
|
382
|
+
"junction_size_choice": 3,
|
|
383
|
+
"label_size_ratio": 0.375,
|
|
384
|
+
"operating_point_overlay_i_precision": 3,
|
|
385
|
+
"operating_point_overlay_i_range": "~A",
|
|
386
|
+
"operating_point_overlay_v_precision": 3,
|
|
387
|
+
"operating_point_overlay_v_range": "~V",
|
|
388
|
+
"overbar_offset_ratio": 1.23,
|
|
389
|
+
"pin_symbol_size": 25.0,
|
|
390
|
+
"text_offset_ratio": 0.15
|
|
391
|
+
},
|
|
392
|
+
"legacy_lib_dir": "",
|
|
393
|
+
"legacy_lib_list": [],
|
|
394
|
+
"meta": {
|
|
395
|
+
"version": 1
|
|
396
|
+
},
|
|
397
|
+
"net_format_name": "",
|
|
398
|
+
"page_layout_descr_file": "",
|
|
399
|
+
"plot_directory": "",
|
|
400
|
+
"space_save_all_events": true,
|
|
401
|
+
"spice_current_sheet_as_root": false,
|
|
402
|
+
"spice_external_command": "spice \"%I\"",
|
|
403
|
+
"spice_model_current_sheet_as_root": true,
|
|
404
|
+
"spice_save_all_currents": false,
|
|
405
|
+
"spice_save_all_dissipations": false,
|
|
406
|
+
"spice_save_all_voltages": false,
|
|
407
|
+
"subpart_first_id": 65,
|
|
408
|
+
"subpart_id_separator": 0
|
|
409
|
+
},
|
|
410
|
+
"sheets": [
|
|
411
|
+
[
|
|
412
|
+
"bad59254-4c4b-4281-8e5a-889c52dc7b3a",
|
|
413
|
+
"Root"
|
|
414
|
+
]
|
|
415
|
+
],
|
|
416
|
+
"text_variables": {}
|
|
417
|
+
}
|
kicad_sch_api-0.1.1/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_sch
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
(kicad_sch
|
|
2
|
+
(version 20250114)
|
|
3
|
+
(generator "eeschema")
|
|
4
|
+
(generator_version "9.0")
|
|
5
|
+
(uuid "bad59254-4c4b-4281-8e5a-889c52dc7b3a")
|
|
6
|
+
(paper "A4")
|
|
7
|
+
(title_block
|
|
8
|
+
(title "kicad-sch-api demo")
|
|
9
|
+
(date "2025-08-17")
|
|
10
|
+
(rev "v0.0.1")
|
|
11
|
+
(company "Circuit-Synth")
|
|
12
|
+
(comment 1 "first comment")
|
|
13
|
+
(comment 2 "second comment")
|
|
14
|
+
(comment 3 "third comment")
|
|
15
|
+
)
|
|
16
|
+
(lib_symbols)
|
|
17
|
+
(sheet_instances
|
|
18
|
+
(path "/"
|
|
19
|
+
(page "1")
|
|
20
|
+
)
|
|
21
|
+
)
|
|
22
|
+
(embedded_fonts no)
|
|
23
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kicad_sch_api-0.1.0 → kicad_sch_api-0.1.1}/tests/reference_tests/reference_kicad_projects/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|