kicad-sch-api 0.1.4__tar.gz → 0.1.6__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.4 → kicad_sch_api-0.1.6}/PKG-INFO +1 -1
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/cli.py +38 -39
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/mcp/server.py +4 -2
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/PKG-INFO +1 -1
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/pyproject.toml +1 -1
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/dead-code-analysis.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/publish-pypi.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/review-implementation.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/run-tests.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/update-and-commit.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/dev/update-memory-bank.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/.claude/commands/test/run-reference-tests.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/LICENSE +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/MANIFEST.in +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/README.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/examples/advanced_usage.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/examples/basic_usage.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/examples/mcp_basic_example.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/examples/mcp_integration.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/components.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/formatter.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/ic_manager.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/junctions.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/parser.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/schematic.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/types.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/core/wires.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/discovery/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/discovery/search_index.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/library/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/library/cache.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/mcp/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/py.typed +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/utils/__init__.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api/utils/validation.py +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/SOURCES.txt +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/dependency_links.txt +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/entry_points.txt +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/requires.txt +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/kicad_sch_api.egg-info/top_level.txt +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/setup.cfg +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/README.md +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/blank_schematic/blank_schematic.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/blank_schematic/blank_schematic.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/multi_unit_7400/multi_unit_7400.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/multi_unit_7400/multi_unit_7400.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/power_symbols/power_symbols.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/resistor_divider/resistor_divider.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/sch_title/sch_title.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_extended_component/single_extended_component.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/single_hierarchical_sheet.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/single_hierarchical_sheet.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_hierarchical_sheet/subcircuit1.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_label/single_label.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_label/single_label.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_label_hierarchical/single_label_hierarchical.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_label_hierarchical/single_label_hierarchical.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_resistor/single_resistor.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_resistor/single_resistor.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_text/single_text.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_text/single_text.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_text_box/single_text_box.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_text_box/single_text_box.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_wire/single_wire.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/single_wire/single_wire.kicad_sch +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/two_resistors/two_resistors.kicad_pro +0 -0
- {kicad_sch_api-0.1.4 → kicad_sch_api-0.1.6}/tests/reference_tests/reference_kicad_projects/two_resistors/two_resistors.kicad_sch +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kicad-sch-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: Professional KiCAD schematic manipulation library with exact format preservation and AI agent integration
|
|
5
5
|
Author-email: Circuit-Synth <shane@circuit-synth.com>
|
|
6
6
|
Maintainer-email: Circuit-Synth <shane@circuit-synth.com>
|
|
@@ -37,34 +37,22 @@ def setup_claude_code() -> bool:
|
|
|
37
37
|
backup_path.write_text(config_path.read_text())
|
|
38
38
|
print(f"📁 Backed up existing config to: {backup_path}")
|
|
39
39
|
|
|
40
|
-
#
|
|
41
|
-
|
|
40
|
+
# Read existing config or create new one
|
|
41
|
+
if config_path.exists():
|
|
42
|
+
with open(config_path) as f:
|
|
43
|
+
config = json.load(f)
|
|
44
|
+
else:
|
|
45
|
+
config = {}
|
|
42
46
|
|
|
43
|
-
#
|
|
44
|
-
if
|
|
45
|
-
|
|
46
|
-
possible_paths = [
|
|
47
|
-
f"/Library/Frameworks/Python.framework/Versions/{python_version}/bin/kicad-sch-mcp",
|
|
48
|
-
os.path.expanduser(f"~/Library/Python/{python_version}/bin/kicad-sch-mcp"),
|
|
49
|
-
os.path.expanduser("~/.local/bin/kicad-sch-mcp"),
|
|
50
|
-
"/usr/local/bin/kicad-sch-mcp"
|
|
51
|
-
]
|
|
52
|
-
|
|
53
|
-
for path_to_try in possible_paths:
|
|
54
|
-
if os.path.exists(path_to_try) and os.access(path_to_try, os.X_OK):
|
|
55
|
-
mcp_command = path_to_try
|
|
56
|
-
print(f"📍 Using MCP command at: {mcp_command}")
|
|
57
|
-
break
|
|
47
|
+
# Ensure mcpServers section exists
|
|
48
|
+
if "mcpServers" not in config:
|
|
49
|
+
config["mcpServers"] = {}
|
|
58
50
|
|
|
59
|
-
#
|
|
60
|
-
config = {
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"args": [],
|
|
65
|
-
"env": {}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
51
|
+
# Use direct Python command - this is more reliable than trying to find binary paths
|
|
52
|
+
config["mcpServers"]["kicad-sch-api"] = {
|
|
53
|
+
"command": sys.executable,
|
|
54
|
+
"args": ["-m", "kicad_sch_api.mcp.server"],
|
|
55
|
+
"env": {}
|
|
68
56
|
}
|
|
69
57
|
|
|
70
58
|
# Write configuration
|
|
@@ -282,7 +270,7 @@ def show_logs():
|
|
|
282
270
|
def setup_everything() -> bool:
|
|
283
271
|
"""One-command setup that does everything automatically."""
|
|
284
272
|
print("🚀 KiCAD Schematic API - Complete Setup")
|
|
285
|
-
print("=" *
|
|
273
|
+
print("=" * 40)
|
|
286
274
|
print()
|
|
287
275
|
|
|
288
276
|
success = True
|
|
@@ -300,7 +288,7 @@ def setup_everything() -> bool:
|
|
|
300
288
|
print("⚠️ Cache initialization failed, but continuing...")
|
|
301
289
|
print()
|
|
302
290
|
|
|
303
|
-
# 3. Setup Claude Code
|
|
291
|
+
# 3. Setup Claude Code (using direct Python command)
|
|
304
292
|
print("Step 3/4: Configuring Claude Code...")
|
|
305
293
|
if not setup_claude_code():
|
|
306
294
|
print("⚠️ Claude Code setup failed, but continuing...")
|
|
@@ -315,14 +303,23 @@ def setup_everything() -> bool:
|
|
|
315
303
|
# Final status
|
|
316
304
|
print("🎉 Setup Complete!")
|
|
317
305
|
print()
|
|
318
|
-
print("
|
|
306
|
+
print("✅ What was configured:")
|
|
307
|
+
print(" • MCP server ready for Claude Code")
|
|
308
|
+
print(" • Component discovery cache initialized")
|
|
309
|
+
print(" • Demo schematic created")
|
|
310
|
+
print()
|
|
311
|
+
print("🚀 Next steps:")
|
|
319
312
|
print("1. Restart Claude Code")
|
|
320
313
|
print("2. Try: 'Create a voltage divider with two 10kΩ resistors'")
|
|
321
314
|
print("3. Open demo_circuit.kicad_sch in KiCAD to see the example")
|
|
322
315
|
print()
|
|
316
|
+
print("🔍 To test manually:")
|
|
317
|
+
print(" python -m kicad_sch_api.mcp.server --test")
|
|
318
|
+
print()
|
|
323
319
|
|
|
324
320
|
return True
|
|
325
321
|
|
|
322
|
+
|
|
326
323
|
def main():
|
|
327
324
|
"""Main CLI entry point."""
|
|
328
325
|
parser = argparse.ArgumentParser(
|
|
@@ -330,16 +327,18 @@ def main():
|
|
|
330
327
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
331
328
|
epilog="""
|
|
332
329
|
Examples:
|
|
333
|
-
kicad-sch-api --setup
|
|
334
|
-
kicad-sch-api --setup-claude-code
|
|
335
|
-
kicad-sch-api --test
|
|
336
|
-
kicad-sch-api --demo
|
|
337
|
-
kicad-sch-api --status # Show detailed status
|
|
330
|
+
kicad-sch-api --setup # Complete one-command setup (RECOMMENDED)
|
|
331
|
+
kicad-sch-api --setup-claude-code # Configure Claude Code MCP settings only
|
|
332
|
+
kicad-sch-api --test # Test installation
|
|
333
|
+
kicad-sch-api --demo # Create demo schematic
|
|
338
334
|
"""
|
|
339
335
|
)
|
|
340
336
|
|
|
337
|
+
# Main setup options
|
|
341
338
|
parser.add_argument('--setup', action='store_true',
|
|
342
|
-
help='Complete one-command setup (RECOMMENDED
|
|
339
|
+
help='Complete one-command setup (RECOMMENDED)')
|
|
340
|
+
|
|
341
|
+
# Setup options
|
|
343
342
|
parser.add_argument('--setup-claude-code', action='store_true',
|
|
344
343
|
help='Configure Claude Code MCP settings only')
|
|
345
344
|
parser.add_argument('--test', action='store_true',
|
|
@@ -357,14 +356,14 @@ Examples:
|
|
|
357
356
|
|
|
358
357
|
args = parser.parse_args()
|
|
359
358
|
|
|
360
|
-
# If no arguments provided, suggest
|
|
359
|
+
# If no arguments provided, suggest setup
|
|
361
360
|
if not any(vars(args).values()):
|
|
362
|
-
print("KiCAD Schematic API - Command Line Interface")
|
|
361
|
+
print("🚀 KiCAD Schematic API - Command Line Interface")
|
|
363
362
|
print()
|
|
364
|
-
print("
|
|
363
|
+
print("🌟 RECOMMENDED: Complete setup:")
|
|
365
364
|
print(" kicad-sch-api --setup")
|
|
366
365
|
print()
|
|
367
|
-
print("For help with all options:")
|
|
366
|
+
print("🆘 For help with all options:")
|
|
368
367
|
print(" kicad-sch-api --help")
|
|
369
368
|
return
|
|
370
369
|
|
|
@@ -1457,7 +1457,7 @@ This hierarchical approach makes complex designs manageable and promotes reusabl
|
|
|
1457
1457
|
"""
|
|
1458
1458
|
|
|
1459
1459
|
def main():
|
|
1460
|
-
"""Run the MCP server."""
|
|
1460
|
+
"""Run the MCP server in standard on-demand mode."""
|
|
1461
1461
|
import argparse
|
|
1462
1462
|
|
|
1463
1463
|
parser = argparse.ArgumentParser(description="KiCAD Schematic MCP Server")
|
|
@@ -1473,7 +1473,7 @@ def main():
|
|
|
1473
1473
|
logger.debug("Debug logging enabled")
|
|
1474
1474
|
|
|
1475
1475
|
if args.version:
|
|
1476
|
-
print("KiCAD Schematic MCP Server v0.1.
|
|
1476
|
+
print("KiCAD Schematic MCP Server v0.1.5")
|
|
1477
1477
|
return
|
|
1478
1478
|
|
|
1479
1479
|
if args.status:
|
|
@@ -1498,6 +1498,7 @@ def main():
|
|
|
1498
1498
|
|
|
1499
1499
|
logger.info("Starting KiCAD Schematic MCP Server...")
|
|
1500
1500
|
try:
|
|
1501
|
+
# Run normally - Claude Desktop will manage the process lifecycle
|
|
1501
1502
|
mcp.run()
|
|
1502
1503
|
except KeyboardInterrupt:
|
|
1503
1504
|
logger.info("Server stopped by user")
|
|
@@ -1505,5 +1506,6 @@ def main():
|
|
|
1505
1506
|
logger.error(f"Server error: {e}")
|
|
1506
1507
|
sys.exit(1)
|
|
1507
1508
|
|
|
1509
|
+
|
|
1508
1510
|
if __name__ == "__main__":
|
|
1509
1511
|
main()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kicad-sch-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: Professional KiCAD schematic manipulation library with exact format preservation and AI agent integration
|
|
5
5
|
Author-email: Circuit-Synth <shane@circuit-synth.com>
|
|
6
6
|
Maintainer-email: Circuit-Synth <shane@circuit-synth.com>
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "kicad-sch-api"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.6"
|
|
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"
|
|
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
|
|
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.4 → kicad_sch_api-0.1.6}/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
|
|
File without changes
|
|
File without changes
|