Skip to content

REFACTOR: Configfile data class #1279

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 88 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
00250e4
grpc transition PR#1005 tracker
svandenb-dev Mar 25, 2025
534a4fb
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 1, 2025
08ee4f6
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 1, 2025
80e56ea
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 2, 2025
ed9a6d8
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 2, 2025
10bda00
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 2, 2025
647b426
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 2, 2025
3d75f93
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 2, 2025
89e41a2
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 3, 2025
3bdbbb1
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 4, 2025
6d9b264
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 9, 2025
580f542
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 10, 2025
cd224b0
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 10, 2025
b5d4dbb
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 10, 2025
a1eb46d
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 10, 2025
00f5cae
grpc test_01a_setups_frequency_sweeps
svandenb-dev Apr 11, 2025
b8b8171
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 11, 2025
49deb6c
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 14, 2025
daa31dd
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 15, 2025
ae76f6e
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 16, 2025
8f70584
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 16, 2025
1c1be82
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 17, 2025
afaac7b
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 17, 2025
9335773
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 18, 2025
11989f8
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 22, 2025
a6f2472
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 22, 2025
c5719ac
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 22, 2025
873f21d
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 22, 2025
b430d3d
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 23, 2025
a9b7abf
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 23, 2025
f3fb121
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 25, 2025
8fcdfc6
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 25, 2025
0d3635f
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 25, 2025
37ca625
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 28, 2025
c009c60
Merge remote-tracking branch 'origin/main'
svandenb-dev Apr 30, 2025
8bcfb88
Merge remote-tracking branch 'origin/main'
svandenb-dev May 2, 2025
557f752
Merge remote-tracking branch 'origin/main'
svandenb-dev May 2, 2025
3c692e4
Merge remote-tracking branch 'origin/main'
svandenb-dev May 5, 2025
c75e276
Merge remote-tracking branch 'origin/main'
svandenb-dev May 5, 2025
28d6680
grpc test fix
svandenb-dev May 5, 2025
5577313
Merge remote-tracking branch 'origin/main'
svandenb-dev May 5, 2025
659b038
Merge remote-tracking branch 'origin/main'
svandenb-dev May 5, 2025
94407a2
Merge remote-tracking branch 'origin/main'
svandenb-dev May 6, 2025
c4a17bb
Merge remote-tracking branch 'origin/main'
svandenb-dev May 6, 2025
32bbe52
Merge remote-tracking branch 'origin/main'
svandenb-dev May 6, 2025
0f250a0
Merge remote-tracking branch 'origin/main'
svandenb-dev May 6, 2025
ae2043e
Merge remote-tracking branch 'origin/main'
svandenb-dev May 7, 2025
4021a4a
Merge remote-tracking branch 'origin/main'
svandenb-dev May 7, 2025
40f583c
Merge remote-tracking branch 'origin/main'
svandenb-dev May 9, 2025
c0ebe6a
Merge remote-tracking branch 'origin/main'
svandenb-dev May 9, 2025
4c2a0f0
Merge remote-tracking branch 'origin/main'
svandenb-dev May 19, 2025
c57005d
Merge remote-tracking branch 'origin/main'
svandenb-dev May 19, 2025
d1303aa
Merge remote-tracking branch 'origin/main'
svandenb-dev May 19, 2025
bfa109d
Merge remote-tracking branch 'origin/main'
svandenb-dev May 21, 2025
0d47568
Merge remote-tracking branch 'origin/main'
svandenb-dev May 21, 2025
4ddf579
Merge remote-tracking branch 'origin/main'
svandenb-dev May 21, 2025
3ff21cc
Merge remote-tracking branch 'origin/main'
svandenb-dev May 21, 2025
f53930f
Merge remote-tracking branch 'origin/main'
svandenb-dev May 22, 2025
d02a496
Merge remote-tracking branch 'origin/main'
svandenb-dev May 23, 2025
1178822
Merge remote-tracking branch 'origin/main'
svandenb-dev May 25, 2025
8a13daf
Merge remote-tracking branch 'origin/main'
svandenb-dev May 25, 2025
ed7780b
Merge remote-tracking branch 'origin/main'
svandenb-dev May 26, 2025
2d895c2
Merge remote-tracking branch 'origin/main'
svandenb-dev May 27, 2025
0f5202b
Merge remote-tracking branch 'origin/main'
svandenb-dev May 27, 2025
4bf6e8b
temp
svandenb-dev May 27, 2025
4c57e1a
cfg data_model
svandenb-dev May 28, 2025
089afdf
cfg data_model
svandenb-dev May 28, 2025
a890d77
cfg data model load json
svandenb-dev May 30, 2025
32ec870
cfg data model load components from layout
svandenb-dev May 30, 2025
01f19b5
cfg data model load components from layout
svandenb-dev May 30, 2025
c247a18
cfg data model load nets from layout
svandenb-dev May 30, 2025
2e20c09
cfg data model load nets from layout
svandenb-dev May 30, 2025
bdc7baf
grpc edb output
svandenb-dev May 31, 2025
ba484e2
grpc components output
svandenb-dev May 31, 2025
5b5aca2
temp refactoring
svandenb-dev Jun 1, 2025
fc7984f
refactoring + load ports from layout
svandenb-dev Jun 1, 2025
7b1e6db
refactoring + sources from layout
svandenb-dev Jun 1, 2025
a92ee68
refactoring + setup from layout
svandenb-dev Jun 2, 2025
cfc3ce1
load setup from layout
svandenb-dev Jun 2, 2025
4b17f90
load setup 2 from layout
svandenb-dev Jun 2, 2025
d64caac
load padstacks from layout
svandenb-dev Jun 2, 2025
dfe2bdf
load sparam spice from layout
svandenb-dev Jun 2, 2025
7b8c965
load init from layout
svandenb-dev Jun 2, 2025
366b8f2
fixing None type warning with json serialization
svandenb-dev Jun 2, 2025
cf04238
Spice model
svandenb-dev Jun 3, 2025
51bc2bf
Spice model 2
svandenb-dev Jun 3, 2025
e8176e8
Spice model 2
svandenb-dev Jun 4, 2025
2869a07
Spice model 2
svandenb-dev Jun 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/pyedb/configuration/data_model/cfg_boundaries_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from dataclasses import dataclass

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgBoundaries:
open_region: bool = True
open_region_type: str = "radiation"
pml_visible: bool = False
pml_operation_frequency: str = "5ghz"
pml_radiation_factor: int = 10
dielectric_extents_type: str = "bounding_box"
dielectric_base_polygon: str = ""
horizontal_padding: float = 0
honor_primitives_on_dielectric_layers: bool = True
air_box_extents_type: str = "bounding_box"
air_box_base_polygon: str = ""
air_box_truncate_model_ground_layers: bool = False
air_box_horizontal_padding: float = 0.15
air_box_positive_vertical_padding: float = 1
air_box_negative_vertical_padding: float = 1
55 changes: 55 additions & 0 deletions src/pyedb/configuration/data_model/cfg_components_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from dataclasses import dataclass, field
from typing import Optional

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgPinPair:
type: str = "series"
p1: str = "1"
p2: str = "2"
capacitance: Optional[str] = None
inductance: Optional[str] = None
resistance: Optional[str] = None


@dataclass_json
@dataclass
class CfgPinPairs:
pin_pairs: list[CfgPinPair] = field(default_factory=list)


@dataclass_json
@dataclass
class CfgSolderBallProperties:
shape: Optional[str] = "None"
diameter: Optional[str] = "0um"
height: Optional[str] = "0um"


@dataclass_json
@dataclass
class CfgPortProperties:
reference_offset: float = 0
reference_size_auto: bool = True
reference_size_x: float = 0.0
reference_size_y: float = 0.0


@dataclass_json
@dataclass
class CfgComponent:
reference_designator: str = ""
part_type: str = ""
enabled: Optional[bool] = True
rlc_model: Optional[CfgPinPairs] = None
solder_ball_properties: Optional[CfgSolderBallProperties] = None
port_properties: Optional[CfgPortProperties] = None


@dataclass_json
@dataclass
class CfgComponents:
components: list[CfgComponent]
11 changes: 11 additions & 0 deletions src/pyedb/configuration/data_model/cfg_general_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from dataclasses import dataclass
from typing import Optional

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgGeneral:
spice_model_library: Optional[str] = None
s_parameter_library: Optional[str] = None
10 changes: 10 additions & 0 deletions src/pyedb/configuration/data_model/cfg_nets_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from dataclasses import dataclass, field

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgNets:
power_ground_nets: list[str] = field(default_factory=list)
signal_nets: list[str] = field(default_factory=list)
38 changes: 38 additions & 0 deletions src/pyedb/configuration/data_model/cfg_operations_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from dataclasses import dataclass, field
from typing import Optional

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgCutout:
signal_list: list[str] = field(default_factory=list)
reference_list: list[str] = field(default_factory=list)
extent_type: str = "ConvexHull"
expansion_size: float = 0.002
use_round_corner: bool = False
output_aedb_path: str = ""
open_cutout_at_end: bool = True
use_pyaedt_cutout: bool = True
number_of_threads: int = 4
use_pyaedt_extent_computing: bool = True
extent_defeature: float = 0.0
remove_single_pin_components: bool = False
custom_extent: str = ""
custom_extent_units: str = "mm"
include_partial_instances: bool = False
keep_voids: bool = True
check_terminals: bool = False
include_pingroups: bool = False
expansion_factor: float = 0.0
maximum_iterations: int = 30
preserve_components_with_model: bool = False
simple_pad_check: bool = True
keep_lines_as_path: bool = False


@dataclass_json
@dataclass
class CfgOperations:
cutout: Optional[CfgCutout] = None
26 changes: 26 additions & 0 deletions src/pyedb/configuration/data_model/cfg_package_definition_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from dataclasses import dataclass

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgHeatSink:
fin_base_height: float = 0.0
fin_height: float = 0.0
fin_orientation: str = str
fin_spacing: float = 0.0
fin_thickness: float = 0.0


@dataclass_json
@dataclass
class CfgPackageDefinition:
name: str = ""
component_definition: str = ""
maximum_power: float = 0.0
therm_cond: float = 0.0
theta_jb: float = 0.0
theta_jc: float = 0.0
height: float = 0.0
heatsink: CfgHeatSink = None
44 changes: 44 additions & 0 deletions src/pyedb/configuration/data_model/cfg_padsatck_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from dataclasses import dataclass, field

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgDefinition:
name: str = ""
hole_diameter: str = ""
hole_plating_thickness: str = ""
hole_material: str = ""
hole_range: str = "through"


@dataclass_json
@dataclass
class CfgBackDrillTop:
drill_to_layer: str = ""
drill_diameter: str = ""
stub_length: str = ""


@dataclass_json
@dataclass
class CfgBackDrillBottom:
drill_to_layer: str = ""
drill_diameter: str = ""
stub_length: str = ""


@dataclass_json
@dataclass
class CfgInstance:
name: str = ""
backdrill_top: CfgBackDrillTop = None
backdrill_bottom: CfgBackDrillBottom = None


@dataclass_json
@dataclass
class CfgPadStacks:
definitions: list[CfgDefinition] = field(default_factory=list)
instances: list[CfgInstance] = field(default_factory=list)
20 changes: 20 additions & 0 deletions src/pyedb/configuration/data_model/cfg_pingroup_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from dataclasses import dataclass, field
from typing import Union

from dataclasses_json import dataclass_json


@dataclass_json()
@dataclass
class CfgPinGroup:
name: str = ""
reference_designator: str = ""
pins: list[str] = field(default_factory=list)
net: Union[str, list[str]] = field(default_factory=list)
pingroup: str = ""


@dataclass_json
@dataclass
class CfgTerminal:
pingroup: str = ""
33 changes: 33 additions & 0 deletions src/pyedb/configuration/data_model/cfg_ports_sources_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from dataclasses import dataclass
from typing import Optional

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgTerminal:
pin: str = ""
net: str = ""
pin_group: str = ""


@dataclass_json
@dataclass
class CfgPort:
name: str = ""
reference_designator: str = ""
type: str = ""
positive_terminal: Optional[CfgTerminal] = None
negative_terminal: Optional[CfgTerminal] = None


@dataclass_json
@dataclass
class CfgSource:
name: str = ""
reference_designator: str = ""
type: str = ""
magnitude: float = 0.0
positive_terminal: CfgTerminal = None
negative_terminal: CfgTerminal = None
15 changes: 15 additions & 0 deletions src/pyedb/configuration/data_model/cfg_s_parameter_models_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from dataclasses import dataclass, field

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgSparameter:
name: str = ""
component_definition: str = ""
file_path: str = ""
apply_to_all: bool = True
components: list[str] = field(default_factory=list)
reference_net: str = ""
reference_net_per_component: dict[str, str] = field(default_factory=dict)
42 changes: 42 additions & 0 deletions src/pyedb/configuration/data_model/cfg_setup_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from dataclasses import dataclass, field
from typing import Optional, Union

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgFrequency:
distribution: str = ""
start: Union[str, float] = 0.0
stop: Union[str, float] = 0.0
step: Union[str, float] = 0.0
points: int = 0
samples: int = 0


@dataclass_json
@dataclass
class CfgFrequencySweep:
name: str = ""
type: str = ""
frequencies: list[CfgFrequency] = field(default_factory=list)


@dataclass_json
@dataclass
class CfgDcIrSettings:
export_dc_thermal_data: bool = False


@dataclass_json
@dataclass
class CfgSetup:
name: str = ""
type: str = ""
f_adapt: Union[str, float] = ""
max_num_passes: int = 20
max_mag_delta_s: Union[str, float] = 0.02
dc_slider_position: int = 1
dc_ir_settings: Optional[CfgDcIrSettings] = None
freq_sweep: Optional[CfgFrequencySweep] = None
20 changes: 20 additions & 0 deletions src/pyedb/configuration/data_model/cfg_spice_models_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from dataclasses import dataclass, field

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgSpiceModelLib:
spice_model_library: str = ""


@dataclass_json
@dataclass
class CfgSpiceModel:
name: str = ""
component_definition: str = ""
file_path: str = ""
sub_circuit_name: str = ""
apply_to_all: bool = True
components: [str] = field(default_factory=list)
30 changes: 30 additions & 0 deletions src/pyedb/configuration/data_model/cfg_stackup_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from dataclasses import dataclass, field
from typing import Union

from dataclasses_json import dataclass_json


@dataclass_json
@dataclass
class CfgMaterial:
name: str = ""
conductivity: float = 0.0
permittivity: float = 0.0
dielectric_loss_tangent: float = 0.0


@dataclass_json
@dataclass
class CfgLayer:
fill_material: str = ""
material: str = ""
name: str = ""
thickness: Union[str, float] = ""
type: str = ""


@dataclass_json
@dataclass
class CfgStackup:
materials: list[CfgMaterial] = field(default_factory=list)
layers: list = field(default_factory=list)
Loading