Skip to content

Break out abstract_parts, electronics_model#495

Merged
ducky64 merged 12 commits into
masterfrom
abstract-parts-reorg
May 24, 2026
Merged

Break out abstract_parts, electronics_model#495
ducky64 merged 12 commits into
masterfrom
abstract-parts-reorg

Conversation

@ducky64
Copy link
Copy Markdown
Collaborator

@ducky64 ducky64 commented May 24, 2026

Break out some application circuits from abstract_parts into circuits; break out anything non-Passive and infrastructure from electronics_model into new package electronics_interface. Also creates a generic vendor_parts package for custom and generic (E6/E12/... series) parts.

This focuses on simple file moves and import renames, with the exception of breaking up Comparator which its application circuit has a dependency on abstract parts. A future PR will:

  • Remove AbstractLedDriver
  • Break out AbstractResistor
  • Break out PowerConverters
  • Break out ZenerDiode

Resolves #479

Creates #493, #494 since there is some cross-coupling from Passive to electronics_interface types, which needs a deeper structure refactor.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the EDG library packages by splitting application circuits out of abstract_parts into circuits, and separating higher-level port/link “interfaces” out of electronics_model into a new electronics_interfaces package, primarily via file moves and import rewrites.

Changes:

  • Introduces edg.electronics_interfaces and updates ports/adapters/tests to import from it instead of electronics_model.
  • Moves/standardizes common circuits under edg.circuits and updates parts/tests/examples to import from circuits / abstract_parts accordingly.
  • Adds/relocates test fixtures and schematic/simulation resources to match the new package layout.

Reviewed changes

Copilot reviewed 249 out of 263 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
examples/test_usb_source_measure.py Updates imports to new circuits / electronics_interfaces locations.
edg/vendor_parts/generic/test_resistor_generic.py Adjusts imports to use abstract_parts and explicit generic resistor.
edg/vendor_parts/generic/test_capacitor_generic.py Adjusts imports to use abstract_parts and explicit generic capacitor.
edg/vendor_parts/generic/GenericResistor.py Simplifies imports via abstract_parts.
edg/vendor_parts/generic/GenericCapacitor.py Simplifies imports via abstract_parts.
edg/vendor_parts/generic/CustomFet.py Simplifies imports via abstract_parts.
edg/vendor_parts/generic/CustomDiode.py Simplifies imports via abstract_parts.
edg/vendor_parts/generic/init.py Adds explicit exports for the generic vendor parts subpackage.
edg/vendor_parts/init.py Re-exports new generic vendor parts.
edg/parts/TouchPad.py Updates imports to new package boundaries.
edg/parts/sensor/Temp_TexasInstruments.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Temp_Shtc3.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Rtc_Pcf2129.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/MagSwitch_Ah1806.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Mag_Qmc5883l.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Mag_A1304.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/LightSensor_Bh1750.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/LightSensor_As7341.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Imu_Lsm6dsv16x.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Imu_Lsm6ds3trc.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/FlirLepton.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/EnvironmentalSensor_Bme680.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Distance_Vl53l0x.py Switches imports from abstract_parts to circuits.
edg/parts/sensor/Camera_Ov2640_Fpc24.py Switches imports from abstract_parts to circuits.
edg/parts/power/Ref30xx.py Switches imports from abstract_parts to circuits.
edg/parts/power/motor/StepperDriver_A4988.py Switches imports from abstract_parts to circuits.
edg/parts/power/motor/MotorDriver_L293dd.py Switches imports from abstract_parts to circuits.
edg/parts/power/motor/MotorDriver_Drv8870.py Switches imports from abstract_parts to circuits.
edg/parts/power/motor/MotorDriver_Drv8833.py Switches imports from abstract_parts to circuits.
edg/parts/power/motor/Bldc_Drv8313.py Switches imports from abstract_parts to circuits.
edg/parts/power/LedDriver_Tps92200.py Switches imports from abstract_parts to circuits.
edg/parts/power/LedDriver_Al8861.py Switches imports from abstract_parts to circuits.
edg/parts/power/gate_driver/Ucc27282.py Switches imports from abstract_parts to circuits.
edg/parts/power/gate_driver/Ncp3420.py Switches imports from abstract_parts to circuits.
edg/parts/power/gate_driver/Ir2301.py Switches imports from abstract_parts to circuits.
edg/parts/power/FuelGauge_Max17048.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/Torex_Boost.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/TexasInstruments_SwitchedCap.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/TexasInstruments_Buck.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/TexasInstruments_Boost.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/Mp2722.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/LinearRegulators.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/DiodesInc_Boost.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/CustomBuckBoost.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/CustomBuck.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/Ap3418.py Switches imports from abstract_parts to circuits.
edg/parts/power/converter/AnalogDevices_Boost.py Switches imports from abstract_parts to circuits.
edg/parts/power/BatteryProtector_S8261A.py Switches imports from abstract_parts to circuits.
edg/parts/power/BatteryCharger_Mcp73831.py Switches imports from abstract_parts to circuits.
edg/parts/power/Batteries.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Stm32l432.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Stm32g431.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Stm32g031.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Stm32f303.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Stm32f103.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Rp2040.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/nRF52840.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Lpc1549.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Ice40up.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/EspCommon.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Esp32s3.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Esp32c3.py Switches imports from abstract_parts to circuits.
edg/parts/microcontroller/Esp32.py Switches imports from abstract_parts to circuits.
edg/parts/Mechanicals.py Switches imports from abstract_parts to circuits.
edg/parts/logic/SpiMemory_W25q.py Switches imports from abstract_parts to circuits.
edg/parts/logic/SpiMemory_93Lc.py Switches imports from abstract_parts to circuits.
edg/parts/logic/Logic_74Lvc.py Switches imports from abstract_parts to circuits.
edg/parts/logic/Logic_74Ahct.py Switches imports from abstract_parts to circuits.
edg/parts/Labels.py Switches imports from abstract_parts to circuits.
edg/parts/Jacdac.py Switches imports from abstract_parts to circuits.
edg/parts/interface/UsbUart_Cp2102.py Switches imports from abstract_parts to circuits.
edg/parts/interface/UsbPd_Fusb302b.py Switches imports from abstract_parts to circuits.
edg/parts/interface/UsbInterface_Ft232h.py Switches imports from abstract_parts to circuits.
edg/parts/interface/RfModules.py Switches imports from abstract_parts to circuits.
edg/parts/interface/Rf_Sx1262.py Switches imports from abstract_parts to circuits.
edg/parts/interface/Rf_Pn7160.py Switches imports from abstract_parts to circuits.
edg/parts/interface/ResetGenerator_Apx803s.py Switches imports from abstract_parts to circuits.
edg/parts/interface/Isolator_Cbmud1200.py Switches imports from abstract_parts to circuits.
edg/parts/interface/IoExpander_Pcf8574.py Switches imports from abstract_parts to circuits.
edg/parts/interface/IoExpander_Pca9554.py Switches imports from abstract_parts to circuits.
edg/parts/interface/CanTransceiver_Sn65hvd230.py Switches imports from abstract_parts to circuits.
edg/parts/interface/CanTransceiver_Iso1050.py Switches imports from abstract_parts to circuits.
edg/parts/interface/CanBlocks.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/Speakers.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/SpeakerDriver_Max98357a.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/SpeakerDriver_Analog.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/RotaryEncoder_Bourns.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/RotaryEncoder_Alps.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/Neopixel.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/Microphone_Sd18ob261.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/Joystick_Xbox.py Switches imports from abstract_parts to circuits.
edg/parts/human_interface/DirectionSwitch_Alps.py Switches imports from abstract_parts to circuits.
edg/parts/display/Waveshare_Epd.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Nhd_312_25664uc.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Er_Oled_096_1c.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Er_Oled_096_1_1.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Er_Oled_091_3.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Er_Oled_028.py Switches imports from abstract_parts to circuits.
edg/parts/display/oled/Er_Oled_022.py Switches imports from abstract_parts to circuits.
edg/parts/display/lcd/Qt096t_if09.py Switches imports from abstract_parts to circuits.
edg/parts/display/lcd/Er_Tft1_28_3.py Switches imports from abstract_parts to circuits.
edg/parts/display/lcd/Ch280qv10_Ct.py Switches imports from abstract_parts to circuits.
edg/parts/display/EInkBoostPowerPath.py Switches imports from abstract_parts to circuits.
edg/parts/display/EInk_Er_Epd027_2.py Switches imports from abstract_parts to circuits.
edg/parts/debug/TestPoint_Rc.py Switches imports from abstract_parts to circuits.
edg/parts/debug/TestPoint_Keystone.py Switches imports from abstract_parts to circuits.
edg/parts/debug/Jumpers.py Switches imports from abstract_parts to circuits.
edg/parts/connector/UsbPorts.py Switches imports from abstract_parts to circuits.
edg/parts/connector/TagConnect.py Switches imports from abstract_parts to circuits.
edg/parts/connector/SwdHeaders.py Switches imports from abstract_parts to circuits.
edg/parts/connector/SdCards.py Switches imports from abstract_parts to circuits.
edg/parts/connector/Rf.py Switches imports from abstract_parts to circuits.
edg/parts/connector/Headers.py Switches imports from abstract_parts to circuits.
edg/parts/connector/Fpc.py Switches imports from abstract_parts to circuits.
edg/parts/connector/FanConnector.py Switches imports from abstract_parts to circuits.
edg/parts/connector/Connectors.py Switches imports from abstract_parts to circuits.
edg/parts/connector/Banana.py Switches imports from abstract_parts to circuits.
edg/parts/analog/switch/Nlas4157.py Switches imports from abstract_parts to circuits.
edg/parts/analog/switch/Logic74xx.py Switches imports from abstract_parts to circuits.
edg/parts/analog/switch/Dg468.py Switches imports from abstract_parts to circuits.
edg/parts/analog/SolidStateRelay_Toshiba.py Switches imports from abstract_parts to circuits.
edg/parts/analog/SolidStateRelay_G3VM_61GR2.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Tlv915x.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Tlv9061.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Opax333.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Opax197.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Opax189.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Opax171.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Mcp6001.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Lmv321.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Ina826.py Switches imports from abstract_parts to circuits.
edg/parts/analog/opamp/Ina219.py Switches imports from abstract_parts to circuits.
edg/parts/analog/dac/Mcp4901.py Switches imports from abstract_parts to circuits.
edg/parts/analog/dac/Mcp47f.py Switches imports from abstract_parts to circuits.
edg/parts/analog/dac/Mcp4728.py Switches imports from abstract_parts to circuits.
edg/parts/analog/CurrentSense_Ad8418.py Switches imports from abstract_parts to circuits.
edg/parts/analog/Comparator_Lmv331.py Switches imports from abstract_parts to circuits.
edg/parts/analog/adc/Mcp3561.py Switches imports from abstract_parts to circuits.
edg/parts/analog/adc/Mcp3201.py Switches imports from abstract_parts to circuits.
edg/parts/init.py Re-exports circuits and adds TouchPad export.
edg/electronics_model/test_kicad.py Points KiCad tests at relocated netlist tests.
edg/electronics_model/PassivePort.py Updates adapter type-check imports to electronics_interfaces.
edg/electronics_model/DummyDevice.py Removes file (DummyDevice moved).
edg/electronics_model/Categories.py Moves DummyDevice into categories module.
edg/electronics_model/init.py Updates exports and moves categories exports into model init.
edg/electronics_interfaces/VoltagePorts.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/VoltageDummy.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/UsbPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/UartPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/TouchPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/test_voltage_link.py Updates test imports to new dummy devices and model core.
edg/electronics_interfaces/test_netlist.py Updates netlist tests to use model netlister implementation and helpers.
edg/electronics_interfaces/test_netlist_subboard.py Updates subboard netlist test to use new helpers/import paths.
edg/electronics_interfaces/test_netlist_subboard_wrapper.py Updates wrapper netlist test to use new helpers/import paths.
edg/electronics_interfaces/test_netlist_subboard_array.py Updates array wrapper netlist test to use new helpers/import paths.
edg/electronics_interfaces/test_netlist_connector_pair.py Updates connector-pair netlist test to use new helpers/import paths.
edg/electronics_interfaces/test_multipack_netlist.py Updates multipack netlist test imports and exception source.
edg/electronics_interfaces/test_kicad_import_conversion.py Updates KiCad import conversion test to point at relocated resource.
edg/electronics_interfaces/test_kicad_import_bundle.py Updates KiCad bundle import test imports.
edg/electronics_interfaces/test_kicad_import_blackbox.py Updates KiCad blackbox test imports.
edg/electronics_interfaces/test_i2c_link.py Updates I2C link test imports.
edg/electronics_interfaces/test_bundle_netlist.py Updates bundle netlist test helper usage/imports.
edg/electronics_interfaces/test_bom.py Updates BOM test to use electronics_model backends.
edg/electronics_interfaces/test_analog_link.py Updates analog link test imports.
edg/electronics_interfaces/SpiPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/SpeakerPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/resources/test_kicad_import_bundle.kicad_sch Adds KiCad test schematic resource for bundle import testing.
edg/electronics_interfaces/py.typed Marks package as typed.
edg/electronics_interfaces/MergedBlocks.py Updates merged block dependencies to explicit interface imports.
edg/electronics_interfaces/I2sPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/I2cPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/GroundPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/GroundDummy.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/DvpPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/DummyDevices.py Updates dummy device utilities to explicit interface imports.
edg/electronics_interfaces/DigitalPorts.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/DebugPorts.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/CrystalPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/ConnectedGenerator.py Refactors imports and makes explicit interface dependencies.
edg/electronics_interfaces/CircuitPackingBlock.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/CanPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/AnalogPort.py Refactors imports to depend on electronics_model core.
edg/electronics_interfaces/init.py Adds package-level re-exports for interfaces + model core.
edg/circuits/VoltageComparator.py Splits comparator interface vs application circuit usage/imports.
edg/circuits/UsbBitBang.py Refactors imports to pull from abstract_parts.
edg/circuits/test_rf.py Adds RF network calculation tests.
edg/circuits/test_resistive_divider.py Updates resistive divider tests for new package structure.
edg/circuits/test_power_circuits.py Updates power circuit tests to use generic vendor parts imports.
edg/circuits/test_opamp.py Updates opamp tests to use abstract_parts imports.
edg/circuits/test_opamp_calculations.py Updates opamp calculation tests to use abstract_parts imports.
edg/circuits/test_diodemerge.py Updates diode merge tests to use generic vendor parts imports.
edg/circuits/RfNetworks.py Refactors imports to pull from abstract_parts.
edg/circuits/resources/RampLimiter.asc Adds LTspice resource for ramp limiter circuit.
edg/circuits/resources/OpampFollower.kicad_sch Adds KiCad schematic fixture for opamp follower.
edg/circuits/resources/IntegratorInverting.kicad_sch Adds KiCad schematic fixture for inverting integrator.
edg/circuits/resources/HighSideSwitch.kicad_sch Adds KiCad schematic fixture for high-side switch.
edg/circuits/resources/Amplifier.kicad_sch Adds KiCad schematic fixture for amplifier.
edg/circuits/ResistiveSensor.py Updates resistive sensor circuit to import divider block.
edg/circuits/ResistiveDivider.py Refactors divider implementation to pull from abstract_parts.
edg/circuits/PowerCircuits.py Refactors imports and keeps divider dependency explicit.
edg/circuits/PassiveFilters.py Refactors imports to pull from abstract_parts.
edg/circuits/OpampCurrentSensor.py Refactors imports to pull from abstract_parts.
edg/circuits/OpampCircuits.py Refactors imports and updates ForcedAnalogSignal dependency.
edg/circuits/LevelShifter.py Refactors imports to pull from abstract_parts.
edg/circuits/I2cPullup.py Refactors imports to pull from abstract_parts.
edg/circuits/I2cBitBang.py Refactors imports to pull from abstract_parts.
edg/circuits/DigitalAmplifiers.py Refactors imports to pull from abstract_parts.
edg/circuits/ControlCircuits.py Refactors imports to pull from abstract_parts.
edg/circuits/init.py Adds broader circuit exports and depends on abstract_parts.
edg/abstract_parts/UsbConnectors.py Updates to import from electronics_interfaces.
edg/abstract_parts/TvsDiode.py Updates to import from electronics_interfaces and renamed diode module.
edg/abstract_parts/TestPoint.py Updates to import from electronics_interfaces and renamed connector module.
edg/abstract_parts/test_switching_converters.py Updates tests for renamed power converter/part modules.
edg/abstract_parts/test_pinmappable.py Updates pinmappable tests to import ports/units from electronics_interfaces.
edg/abstract_parts/test_parts_table.py Cleans up imports in parts table tests.
edg/abstract_parts/test_kicad_import_netlist.py Updates netlist tests to use relocated netlist helpers/imports.
edg/abstract_parts/test_ideal_circuit.py Updates tests to import dummies/ports from electronics_interfaces.
edg/abstract_parts/test_e_series.py Updates tests to import model core and explicit E-series utils.
edg/abstract_parts/Switch.py Updates to import from electronics_interfaces.
edg/abstract_parts/SwdCortexConnectors.py Updates to import from electronics_interfaces.
edg/abstract_parts/SpiMemory.py Updates to import from electronics_interfaces.
edg/abstract_parts/SolidStateRelay.py Updates to import from electronics_interfaces and renamed resistor module.
edg/abstract_parts/resources/.gitignore Removes resource gitignore (resource location changed).
edg/abstract_parts/ResistorArray.py Updates resistor array to import renamed resistor module.
edg/abstract_parts/Resistor.py Updates resistor to import from electronics_interfaces.
edg/abstract_parts/Resettable.py Updates to import from electronics_interfaces.
edg/abstract_parts/PowerConverters.py Updates imports to use electronics_interfaces and renamed capacitor/inductor modules.
edg/abstract_parts/PinMappable.py Updates to import from electronics_interfaces.
edg/abstract_parts/PartsTablePart.py Simplifies typing imports.
edg/abstract_parts/PartsTable.py Broadens core import to from ..core import *.
edg/abstract_parts/Oscillator.py Updates to import from electronics_interfaces and use explicit parts table imports.
edg/abstract_parts/Opamp.py Updates to import from electronics_interfaces.
edg/abstract_parts/LedDriver.py Adds new LED driver abstractions.
edg/abstract_parts/Led.py Updates to import from electronics_interfaces and renamed resistor module.
edg/abstract_parts/Jumper.py Updates to import from electronics_interfaces.
edg/abstract_parts/IoControllerProgramming.py Updates SWD connector imports.
edg/abstract_parts/IoControllerMixins.py Updates crystal import path.
edg/abstract_parts/IoControllerInterfaceMixins.py Updates to import from electronics_interfaces.
edg/abstract_parts/IoController.py Updates to import from electronics_interfaces.
edg/abstract_parts/Inductor.py Updates to import from electronics_interfaces.
edg/abstract_parts/IdealIoController.py Updates to import from electronics_interfaces.
edg/abstract_parts/GateDrivers.py Updates to import from electronics_interfaces.
edg/abstract_parts/Fuse.py Updates to import from electronics_interfaces.
edg/abstract_parts/Fet.py Updates typing imports; retains model import baseline.
edg/abstract_parts/FerriteBead.py Updates to import from electronics_interfaces.
edg/abstract_parts/Diode.py Updates to import from electronics_interfaces.
edg/abstract_parts/DigitalIsolator.py Updates to import from electronics_interfaces.
edg/abstract_parts/Crystal.py Updates to import from electronics_interfaces and explicit parts table imports.
edg/abstract_parts/Connectors.py Updates to import from electronics_interfaces and renamed antenna module.
edg/abstract_parts/Comparator.py Adds comparator abstract part definition under abstract_parts.
edg/abstract_parts/Capacitor.py Updates to import from electronics_interfaces and refactors imports.
edg/abstract_parts/CanTransceiver.py Updates to import from electronics_interfaces.
edg/abstract_parts/Bjt.py Updates typing imports; retains model import baseline.
edg/abstract_parts/Battery.py Updates to import from electronics_interfaces.
edg/abstract_parts/Antenna.py Updates to import from electronics_interfaces.
edg/abstract_parts/AnalogSwitch.py Updates to import from electronics_interfaces.
edg/abstract_parts/init.py Reworks exports to reflect new module/package split.
edg/init.py Re-exports electronics_interfaces at the top level.
Comments suppressed due to low confidence (2)

edg/circuits/LevelShifter.py:6

  • The circuit class name BidirectionaLevelShifter looks misspelled (missing 'l' in "Bidirectional"). Since this module is being touched and the name is re-exported elsewhere, consider renaming to BidirectionalLevelShifter (and keeping a deprecated alias) to prevent the typo from becoming part of the long-term API.
    edg/parts/TouchPad.py:6
  • The class name FootprintToucbPad appears to have a typo ("Toucb" vs "Touch"). Since this module is being edited and this is a public part class, consider renaming it to FootprintTouchPad (and keeping a backwards-compatible alias if needed) to avoid propagating the typo into downstream code.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread edg/parts/__init__.py
Comment on lines 16 to 18
from .Labels import DuckLogo, LeadFreeIndicator, IdDots4, LemurLogo
from .TouchPad import FootprintToucbPad
from .Mechanicals import Outline_Pn1332
Comment thread edg/circuits/__init__.py
Comment on lines +25 to +29
from .I2cPullup import I2cPullup

from .LevelShifter import BidirectionaLevelShifter

from .OpampCircuits import OpampFollower, Amplifier, DifferentialAmplifier, IntegratorInverting, SummingAmplifier
@ducky64 ducky64 merged commit 0b22c21 into master May 24, 2026
12 checks passed
@ducky64 ducky64 deleted the abstract-parts-reorg branch May 24, 2026 00:50
@ducky64 ducky64 mentioned this pull request May 24, 2026
ducky64 added a commit that referenced this pull request May 24, 2026
Follow-on to #495, cleans up some of the abstract_parts modules.
- Breaks ZenerDiode out of Diode
- Deprecates LedDriver abstract class, removes subclasses dependence on
this base class by inlining code. Non-backwards compatible (though
trivially fixable), refinements will break.
- Breaks up PowerConverters into LinearRegulator,
SwitchingVoltageRegulator
- Moves the BuckConverterPowerPath, BoostConverterPowerPath,
BuckBoostConverterPowerPath into circuits
- Moves some of the resistor application circuits into the circuits
package, especially the functional protection circuits as opposed to
type-wrappers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split up massive parts subpackage

2 participants