feat: Week 1 complete - Linux support + IPC API prep
🎉 Major v2.0 rebuild kickoff - Week 1 accomplished! ## Highlights ### Cross-Platform Support 🌍 - ✅ Linux primary platform (Ubuntu/Debian tested) - ✅ Windows fully supported - ✅ macOS experimental support - ✅ Platform-agnostic path handling (XDG spec) - ✅ Auto-detection of KiCAD installation ### Infrastructure 🏗️ - ✅ GitHub Actions CI/CD pipeline - ✅ Pytest framework with 20+ tests - ✅ Pre-commit hooks (Black, MyPy, ESLint) - ✅ Automated Linux installation script - ✅ Enhanced npm scripts ### IPC API Migration Prep 🚀 - ✅ Comprehensive migration plan (30 pages) - ✅ Backend abstraction layer (800+ lines) - ✅ Factory pattern with auto-detection - ✅ SWIG backward compatibility wrapper - ✅ IPC backend skeleton ready ### Documentation 📚 - ✅ Updated README (Linux installation) - ✅ CONTRIBUTING.md guide - ✅ Linux compatibility audit - ✅ IPC API migration plan - ✅ Session summaries - ✅ Platform-specific config templates ## Files Changed - 27 files created - ~3,000 lines of code/docs - 8 comprehensive documentation pages - 20+ unit tests - 5 abstraction layer modules ## Next Steps - Week 2: IPC API migration (project.py → component.py → routing.py) - Migrate from deprecated SWIG to official IPC API - JLCPCB/Digikey integration prep 🤖 Generated with Claude Code https://claude.com/claude-code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
93
test/manual_test_schematic.py
Normal file
93
test/manual_test_schematic.py
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Manual test script for the schematic functionality
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add the parent directory to the module search path
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
# Import our schematic modules
|
||||
from python.commands.schematic import SchematicManager
|
||||
from python.commands.component_schematic import ComponentManager
|
||||
from python.commands.connection_schematic import ConnectionManager
|
||||
|
||||
def main():
|
||||
"""Run a basic test of schematic functionality"""
|
||||
print("=== Starting manual schematic test ===")
|
||||
|
||||
# Set up test output directory
|
||||
test_dir = os.path.join(os.path.dirname(__file__), 'schematic_test_output')
|
||||
if not os.path.exists(test_dir):
|
||||
os.makedirs(test_dir)
|
||||
|
||||
# 1. Create a new schematic
|
||||
schematic_name = "TestCircuitManual"
|
||||
schematic_path = os.path.join(test_dir, f"{schematic_name}.kicad_sch")
|
||||
print(f"Creating schematic: {schematic_name}")
|
||||
|
||||
schematic = SchematicManager.create_schematic(schematic_name)
|
||||
|
||||
# 2. Add components to the schematic
|
||||
print("Adding components to schematic...")
|
||||
|
||||
# Add resistor R1
|
||||
r1_def = {
|
||||
"type": "R",
|
||||
"reference": "R1",
|
||||
"value": "10k",
|
||||
"library": "Device",
|
||||
"x": 100,
|
||||
"y": 100
|
||||
}
|
||||
r1 = ComponentManager.add_component(schematic, r1_def)
|
||||
|
||||
# Add resistor R2
|
||||
r2_def = {
|
||||
"type": "R",
|
||||
"reference": "R2",
|
||||
"value": "4.7k",
|
||||
"library": "Device",
|
||||
"x": 100,
|
||||
"y": 200
|
||||
}
|
||||
r2 = ComponentManager.add_component(schematic, r2_def)
|
||||
|
||||
# Add capacitor C1
|
||||
c1_def = {
|
||||
"type": "C",
|
||||
"reference": "C1",
|
||||
"value": "0.1uF",
|
||||
"library": "Device",
|
||||
"x": 200,
|
||||
"y": 150
|
||||
}
|
||||
c1 = ComponentManager.add_component(schematic, c1_def)
|
||||
|
||||
# 3. Add wires to connect components
|
||||
print("Adding wires to connect components...")
|
||||
|
||||
# Connect R1 to R2
|
||||
wire1 = ConnectionManager.add_wire(schematic, [150, 100], [150, 200])
|
||||
|
||||
# Connect R2 to C1
|
||||
wire2 = ConnectionManager.add_wire(schematic, [150, 200], [200, 200])
|
||||
|
||||
# Connect C1 to R1
|
||||
wire3 = ConnectionManager.add_wire(schematic, [200, 100], [150, 100])
|
||||
|
||||
# 4. Save the schematic
|
||||
print(f"Saving schematic to: {schematic_path}")
|
||||
success = SchematicManager.save_schematic(schematic, schematic_path)
|
||||
|
||||
if success:
|
||||
print(f"Successfully saved schematic to: {schematic_path}")
|
||||
else:
|
||||
print("Failed to save schematic")
|
||||
|
||||
print("=== Manual schematic test completed ===")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user