pyedb 0.37.0__py3-none-any.whl → 0.39.0__py3-none-any.whl
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 pyedb might be problematic. Click here for more details.
- pyedb/__init__.py +1 -1
- pyedb/common/nets.py +53 -139
- pyedb/configuration/cfg_common.py +1 -1
- pyedb/configuration/cfg_components.py +229 -201
- pyedb/configuration/cfg_data.py +3 -1
- pyedb/configuration/cfg_general.py +4 -2
- pyedb/configuration/cfg_modeler.py +7 -7
- pyedb/configuration/cfg_package_definition.py +1 -1
- pyedb/configuration/cfg_padstacks.py +346 -290
- pyedb/configuration/cfg_ports_sources.py +243 -65
- pyedb/configuration/configuration.py +23 -3
- pyedb/dotnet/{application → database}/Variables.py +21 -21
- pyedb/dotnet/{edb_core → database}/cell/connectable.py +5 -5
- pyedb/dotnet/{edb_core → database}/cell/hierarchy/component.py +11 -11
- pyedb/dotnet/{edb_core → database}/cell/hierarchy/hierarchy_obj.py +1 -1
- pyedb/dotnet/{edb_core → database}/cell/hierarchy/model.py +1 -1
- pyedb/dotnet/{edb_core → database}/cell/layout.py +19 -19
- pyedb/dotnet/{edb_core → database}/cell/layout_obj.py +3 -3
- pyedb/dotnet/{edb_core → database}/cell/primitive/bondwire.py +1 -1
- pyedb/dotnet/{edb_core → database}/cell/primitive/path.py +4 -4
- pyedb/dotnet/{edb_core → database}/cell/primitive/primitive.py +14 -14
- pyedb/dotnet/{edb_core → database}/cell/terminal/bundle_terminal.py +2 -2
- pyedb/dotnet/{edb_core → database}/cell/terminal/edge_terminal.py +4 -4
- pyedb/dotnet/{edb_core → database}/cell/terminal/padstack_instance_terminal.py +2 -2
- pyedb/dotnet/{edb_core → database}/cell/terminal/pingroup_terminal.py +2 -2
- pyedb/dotnet/{edb_core → database}/cell/terminal/point_terminal.py +2 -2
- pyedb/dotnet/{edb_core → database}/cell/terminal/terminal.py +11 -11
- pyedb/dotnet/{edb_core → database}/cell/voltage_regulator.py +2 -2
- pyedb/dotnet/{edb_core → database}/components.py +101 -124
- pyedb/dotnet/{edb_core → database}/definition/component_def.py +5 -5
- pyedb/dotnet/{edb_core → database}/definition/component_model.py +1 -1
- pyedb/dotnet/{edb_core → database}/definition/definition_obj.py +1 -1
- pyedb/dotnet/{edb_core → database}/definition/definitions.py +2 -2
- pyedb/dotnet/{edb_core → database}/definition/package_def.py +4 -4
- pyedb/dotnet/{edb_core → database}/dotnet/database.py +8 -8
- pyedb/dotnet/{edb_core → database}/dotnet/primitive.py +9 -9
- pyedb/dotnet/{edb_core → database}/edb_data/control_file.py +12 -12
- pyedb/dotnet/{edb_core → database}/edb_data/hfss_extent_info.py +7 -7
- pyedb/dotnet/{edb_core → database}/edb_data/nets_data.py +10 -13
- pyedb/dotnet/{edb_core → database}/edb_data/padstacks_data.py +60 -73
- pyedb/dotnet/{edb_core → database}/edb_data/ports.py +4 -4
- pyedb/dotnet/{edb_core → database}/edb_data/primitives_data.py +5 -5
- pyedb/dotnet/{edb_core → database}/edb_data/raptor_x_simulation_setup_data.py +4 -4
- pyedb/dotnet/{edb_core → database}/edb_data/simulation_configuration.py +10 -10
- pyedb/dotnet/{edb_core → database}/edb_data/sources.py +4 -4
- pyedb/dotnet/{edb_core → database}/edb_data/variables.py +1 -1
- pyedb/dotnet/{edb_core → database}/geometry/polygon_data.py +4 -4
- pyedb/dotnet/{edb_core → database}/hfss.py +8 -8
- pyedb/dotnet/{edb_core → database}/layout_obj_instance.py +1 -1
- pyedb/dotnet/{edb_core → database}/layout_validation.py +2 -2
- pyedb/dotnet/{edb_core → database}/materials.py +23 -8
- pyedb/dotnet/{edb_core → database}/modeler.py +27 -27
- pyedb/dotnet/{edb_core → database}/net_class.py +8 -8
- pyedb/dotnet/{edb_core → database}/nets.py +12 -12
- pyedb/dotnet/{edb_core → database}/padstack.py +17 -16
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/mesh_operation.py +1 -1
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/settings.py +18 -3
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/sim_setup_info.py +2 -2
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/simulation_settings.py +1 -1
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/siw_dc_ir_settings.py +1 -1
- pyedb/dotnet/{edb_core → database}/sim_setup_data/data/sweep_data.py +4 -4
- pyedb/dotnet/{edb_core → database}/siwave.py +10 -10
- pyedb/dotnet/{edb_core → database}/stackup.py +12 -12
- pyedb/dotnet/{edb_core → database}/utilities/hfss_simulation_setup.py +15 -15
- pyedb/dotnet/{edb_core → database}/utilities/obj_base.py +1 -1
- pyedb/dotnet/{edb_core → database}/utilities/simulation_setup.py +4 -3
- pyedb/dotnet/{edb_core → database}/utilities/siwave_simulation_setup.py +6 -6
- pyedb/dotnet/edb.py +118 -113
- pyedb/extensions/pre_layout_design_toolkit/via_design.py +1151 -0
- pyedb/generic/design_types.py +26 -19
- pyedb/generic/general_methods.py +1 -1
- pyedb/generic/plot.py +0 -2
- pyedb/grpc/database/__init__.py +1 -0
- pyedb/grpc/database/components.py +2354 -0
- pyedb/grpc/database/control_file.py +1277 -0
- pyedb/grpc/database/definition/component_def.py +218 -0
- pyedb/grpc/database/definition/component_model.py +39 -0
- pyedb/grpc/database/definition/component_pin.py +32 -0
- pyedb/grpc/database/definition/materials.py +1207 -0
- pyedb/grpc/database/definition/n_port_component_model.py +34 -0
- pyedb/grpc/database/definition/package_def.py +227 -0
- pyedb/grpc/database/definition/padstack_def.py +842 -0
- pyedb/grpc/database/definitions.py +70 -0
- pyedb/grpc/database/general.py +43 -0
- pyedb/grpc/database/geometry/__init__.py +0 -0
- pyedb/grpc/database/geometry/arc_data.py +93 -0
- pyedb/grpc/database/geometry/point_3d_data.py +79 -0
- pyedb/grpc/database/geometry/point_data.py +30 -0
- pyedb/grpc/database/geometry/polygon_data.py +133 -0
- pyedb/grpc/database/hfss.py +1279 -0
- pyedb/grpc/database/hierarchy/__init__.py +0 -0
- pyedb/grpc/database/hierarchy/component.py +1301 -0
- pyedb/grpc/database/hierarchy/model.py +31 -0
- pyedb/grpc/database/hierarchy/netlist_model.py +30 -0
- pyedb/grpc/database/hierarchy/pin_pair_model.py +128 -0
- pyedb/grpc/database/hierarchy/pingroup.py +245 -0
- pyedb/grpc/database/hierarchy/s_parameter_model.py +33 -0
- pyedb/grpc/database/hierarchy/spice_model.py +48 -0
- pyedb/grpc/database/layers/__init__.py +0 -0
- pyedb/grpc/database/layers/layer.py +57 -0
- pyedb/grpc/database/layers/stackup_layer.py +410 -0
- pyedb/grpc/database/layout/__init__.py +0 -0
- pyedb/grpc/database/layout/cell.py +30 -0
- pyedb/grpc/database/layout/layout.py +196 -0
- pyedb/grpc/database/layout/voltage_regulator.py +149 -0
- pyedb/grpc/database/layout_validation.py +319 -0
- pyedb/grpc/database/modeler.py +1468 -0
- pyedb/grpc/database/net/__init__.py +0 -0
- pyedb/grpc/database/net/differential_pair.py +138 -0
- pyedb/grpc/database/net/extended_net.py +340 -0
- pyedb/grpc/database/net/net.py +198 -0
- pyedb/grpc/database/net/net_class.py +93 -0
- pyedb/grpc/database/nets.py +633 -0
- pyedb/grpc/database/padstacks.py +1500 -0
- pyedb/grpc/database/ports/__init__.py +0 -0
- pyedb/grpc/database/ports/ports.py +396 -0
- pyedb/grpc/database/primitive/__init__.py +3 -0
- pyedb/grpc/database/primitive/bondwire.py +181 -0
- pyedb/grpc/database/primitive/circle.py +75 -0
- pyedb/grpc/database/primitive/padstack_instance.py +1116 -0
- pyedb/grpc/database/primitive/path.py +346 -0
- pyedb/grpc/database/primitive/polygon.py +276 -0
- pyedb/grpc/database/primitive/primitive.py +739 -0
- pyedb/grpc/database/primitive/rectangle.py +146 -0
- pyedb/grpc/database/simulation_setup/__init__.py +0 -0
- pyedb/grpc/database/simulation_setup/adaptive_frequency.py +33 -0
- pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +32 -0
- pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +59 -0
- pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +35 -0
- pyedb/grpc/database/simulation_setup/hfss_general_settings.py +61 -0
- pyedb/grpc/database/simulation_setup/hfss_settings_options.py +78 -0
- pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +118 -0
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +355 -0
- pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +34 -0
- pyedb/grpc/database/simulation_setup/mesh_operation.py +34 -0
- pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +34 -0
- pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +33 -0
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +64 -0
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +125 -0
- pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +34 -0
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +119 -0
- pyedb/grpc/database/simulation_setup/sweep_data.py +32 -0
- pyedb/grpc/database/siwave.py +1023 -0
- pyedb/grpc/database/source_excitations.py +2572 -0
- pyedb/grpc/database/stackup.py +2574 -0
- pyedb/grpc/database/terminal/__init__.py +0 -0
- pyedb/grpc/database/terminal/bundle_terminal.py +218 -0
- pyedb/grpc/database/terminal/edge_terminal.py +51 -0
- pyedb/grpc/database/terminal/padstack_instance_terminal.py +171 -0
- pyedb/grpc/database/terminal/pingroup_terminal.py +162 -0
- pyedb/grpc/database/terminal/point_terminal.py +99 -0
- pyedb/grpc/database/terminal/terminal.py +470 -0
- pyedb/grpc/database/utility/__init__.py +3 -0
- pyedb/grpc/database/utility/constants.py +25 -0
- pyedb/grpc/database/utility/heat_sink.py +124 -0
- pyedb/grpc/database/utility/hfss_extent_info.py +448 -0
- pyedb/grpc/database/utility/layout_statistics.py +277 -0
- pyedb/grpc/database/utility/rlc.py +80 -0
- pyedb/grpc/database/utility/simulation_configuration.py +3305 -0
- pyedb/grpc/database/utility/sources.py +388 -0
- pyedb/grpc/database/utility/sweep_data_distribution.py +83 -0
- pyedb/grpc/database/utility/xml_control_file.py +1277 -0
- pyedb/grpc/edb.py +4151 -0
- pyedb/grpc/edb_init.py +481 -0
- pyedb/grpc/rpc_session.py +177 -0
- pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +3 -2
- pyedb/ipc2581/ecad/cad_data/feature.py +4 -3
- pyedb/ipc2581/ecad/cad_data/layer_feature.py +32 -20
- pyedb/ipc2581/ecad/cad_data/outline.py +3 -2
- pyedb/ipc2581/ecad/cad_data/package.py +4 -3
- pyedb/ipc2581/ecad/cad_data/path.py +82 -31
- pyedb/ipc2581/ecad/cad_data/polygon.py +122 -60
- pyedb/ipc2581/ecad/cad_data/profile.py +13 -12
- pyedb/ipc2581/ecad/cad_data/step.py +52 -20
- pyedb/ipc2581/ipc2581.py +47 -49
- pyedb/modeler/geometry_operators.py +1 -1
- {pyedb-0.37.0.dist-info → pyedb-0.39.0.dist-info}/METADATA +9 -6
- pyedb-0.39.0.dist-info/RECORD +288 -0
- pyedb-0.37.0.dist-info/RECORD +0 -194
- /pyedb/dotnet/{edb_core → database}/__init__.py +0 -0
- /pyedb/dotnet/{application → database/cell}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core/cell → database/cell/hierarchy}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/cell/hierarchy/netlist_model.py +0 -0
- /pyedb/dotnet/{edb_core → database}/cell/hierarchy/pin_pair_model.py +0 -0
- /pyedb/dotnet/{edb_core → database}/cell/hierarchy/s_parameter_model.py +0 -0
- /pyedb/dotnet/{edb_core → database}/cell/hierarchy/spice_model.py +0 -0
- /pyedb/dotnet/{edb_core → database}/cell/primitive/__init__.py +0 -0
- /pyedb/dotnet/{edb_core/cell/hierarchy → database/cell/terminal}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core/cell/terminal → database/definition}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core/definition → database/dotnet}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core/dotnet → database/edb_data}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/edb_data/design_options.py +0 -0
- /pyedb/dotnet/{edb_core → database}/edb_data/edbvalue.py +0 -0
- /pyedb/dotnet/{edb_core → database}/edb_data/layer_data.py +0 -0
- /pyedb/dotnet/{edb_core → database}/edb_data/utilities.py +0 -0
- /pyedb/dotnet/{edb_core → database}/general.py +0 -0
- /pyedb/dotnet/{edb_core/edb_data → database/geometry}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/geometry/point_data.py +0 -0
- /pyedb/dotnet/{edb_core → database}/sim_setup_data/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/sim_setup_data/data/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/sim_setup_data/data/adaptive_frequency_data.py +0 -0
- /pyedb/dotnet/{edb_core/geometry → database/sim_setup_data/io}/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/sim_setup_data/io/siwave.py +0 -0
- /pyedb/dotnet/{edb_core → database}/utilities/__init__.py +0 -0
- /pyedb/dotnet/{edb_core → database}/utilities/heatsink.py +0 -0
- /pyedb/{dotnet/edb_core/sim_setup_data/io → grpc/database/definition}/__init__.py +0 -0
- {pyedb-0.37.0.dist-info → pyedb-0.39.0.dist-info}/LICENSE +0 -0
- {pyedb-0.37.0.dist-info → pyedb-0.39.0.dist-info}/WHEEL +0 -0
|
@@ -279,7 +279,7 @@ class PinGroup(object):
|
|
|
279
279
|
@property
|
|
280
280
|
def pins(self):
|
|
281
281
|
"""Gets the pins belong to this pin group."""
|
|
282
|
-
from pyedb.dotnet.
|
|
282
|
+
from pyedb.dotnet.database.edb_data.padstacks_data import EDBPadstackInstance
|
|
283
283
|
|
|
284
284
|
return {i.GetName(): EDBPadstackInstance(i, self._pedb) for i in list(self._edb_object.GetPins())}
|
|
285
285
|
|
|
@@ -317,7 +317,7 @@ class PinGroup(object):
|
|
|
317
317
|
@property
|
|
318
318
|
def terminal(self):
|
|
319
319
|
"""Terminal."""
|
|
320
|
-
from pyedb.dotnet.
|
|
320
|
+
from pyedb.dotnet.database.cell.terminal.pingroup_terminal import (
|
|
321
321
|
PinGroupTerminal,
|
|
322
322
|
)
|
|
323
323
|
|
|
@@ -335,7 +335,7 @@ class PinGroup(object):
|
|
|
335
335
|
|
|
336
336
|
Returns
|
|
337
337
|
-------
|
|
338
|
-
:class:`pyedb.dotnet.
|
|
338
|
+
:class:`pyedb.dotnet.database.edb_data.terminals.PinGroupTerminal`
|
|
339
339
|
"""
|
|
340
340
|
warnings.warn("`_create_terminal` is deprecated. Use `create_terminal` instead.", DeprecationWarning)
|
|
341
341
|
|
|
@@ -355,7 +355,7 @@ class PinGroup(object):
|
|
|
355
355
|
"""
|
|
356
356
|
if not name:
|
|
357
357
|
name = generate_unique_name(self.name)
|
|
358
|
-
from pyedb.dotnet.
|
|
358
|
+
from pyedb.dotnet.database.cell.terminal.pingroup_terminal import (
|
|
359
359
|
PinGroupTerminal,
|
|
360
360
|
)
|
|
361
361
|
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
from typing import Union
|
|
23
23
|
|
|
24
|
-
from pyedb.dotnet.
|
|
25
|
-
from pyedb.dotnet.
|
|
26
|
-
from pyedb.dotnet.
|
|
24
|
+
from pyedb.dotnet.database.general import convert_py_list_to_net_list
|
|
25
|
+
from pyedb.dotnet.database.geometry.point_data import PointData
|
|
26
|
+
from pyedb.dotnet.database.utilities.obj_base import BBox
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class PolygonData:
|
|
@@ -68,7 +68,7 @@ class PolygonData:
|
|
|
68
68
|
@property
|
|
69
69
|
def arcs(self):
|
|
70
70
|
"""Get the Primitive Arc Data."""
|
|
71
|
-
from pyedb.dotnet.
|
|
71
|
+
from pyedb.dotnet.database.edb_data.primitives_data import EDBArcs
|
|
72
72
|
|
|
73
73
|
arcs = [EDBArcs(self._pedb, i) for i in self._edb_object.GetArcData()]
|
|
74
74
|
return arcs
|
|
@@ -25,13 +25,13 @@ This module contains the ``EdbHfss`` class.
|
|
|
25
25
|
"""
|
|
26
26
|
import math
|
|
27
27
|
|
|
28
|
-
from pyedb.dotnet.
|
|
29
|
-
from pyedb.dotnet.
|
|
30
|
-
from pyedb.dotnet.
|
|
31
|
-
from pyedb.dotnet.
|
|
28
|
+
from pyedb.dotnet.database.edb_data.hfss_extent_info import HfssExtentInfo
|
|
29
|
+
from pyedb.dotnet.database.edb_data.ports import BundleWavePort, WavePort
|
|
30
|
+
from pyedb.dotnet.database.edb_data.primitives_data import Primitive
|
|
31
|
+
from pyedb.dotnet.database.edb_data.simulation_configuration import (
|
|
32
32
|
SimulationConfiguration,
|
|
33
33
|
)
|
|
34
|
-
from pyedb.dotnet.
|
|
34
|
+
from pyedb.dotnet.database.general import (
|
|
35
35
|
convert_py_list_to_net_list,
|
|
36
36
|
convert_pytuple_to_nettuple,
|
|
37
37
|
)
|
|
@@ -514,7 +514,7 @@ class EdbHfss(object):
|
|
|
514
514
|
Returns
|
|
515
515
|
-------
|
|
516
516
|
tuple
|
|
517
|
-
The tuple contains: (port_name, pyedb.dotnet.
|
|
517
|
+
The tuple contains: (port_name, pyedb.dotnet.database.edb_data.sources.ExcitationDifferential).
|
|
518
518
|
|
|
519
519
|
Examples
|
|
520
520
|
--------
|
|
@@ -584,7 +584,7 @@ class EdbHfss(object):
|
|
|
584
584
|
Returns
|
|
585
585
|
-------
|
|
586
586
|
tuple
|
|
587
|
-
The tuple contains: (port_name, pyedb.egacy.
|
|
587
|
+
The tuple contains: (port_name, pyedb.egacy.database.edb_data.sources.ExcitationDifferential).
|
|
588
588
|
|
|
589
589
|
Examples
|
|
590
590
|
--------
|
|
@@ -789,7 +789,7 @@ class EdbHfss(object):
|
|
|
789
789
|
Returns
|
|
790
790
|
-------
|
|
791
791
|
tuple
|
|
792
|
-
The tuple contains: (Port name, pyedb.dotnet.
|
|
792
|
+
The tuple contains: (Port name, pyedb.dotnet.database.edb_data.sources.Excitation).
|
|
793
793
|
|
|
794
794
|
Examples
|
|
795
795
|
--------
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
from pyedb.dotnet.
|
|
23
|
+
from pyedb.dotnet.database.utilities.obj_base import ObjBase
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class LayoutObjInstance(ObjBase):
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
import re
|
|
24
24
|
|
|
25
25
|
from pyedb.dotnet.clr_module import String
|
|
26
|
-
from pyedb.dotnet.
|
|
27
|
-
from pyedb.dotnet.
|
|
26
|
+
from pyedb.dotnet.database.edb_data.padstacks_data import EDBPadstackInstance
|
|
27
|
+
from pyedb.dotnet.database.edb_data.primitives_data import Primitive
|
|
28
28
|
from pyedb.generic.general_methods import generate_unique_name
|
|
29
29
|
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ import warnings
|
|
|
32
32
|
from pydantic import BaseModel, confloat
|
|
33
33
|
|
|
34
34
|
from pyedb import Edb
|
|
35
|
-
from pyedb.dotnet.
|
|
35
|
+
from pyedb.dotnet.database.general import convert_py_list_to_net_list
|
|
36
36
|
from pyedb.exceptions import MaterialModelException
|
|
37
37
|
|
|
38
38
|
logger = logging.getLogger(__name__)
|
|
@@ -493,7 +493,7 @@ class Materials(object):
|
|
|
493
493
|
|
|
494
494
|
Returns
|
|
495
495
|
-------
|
|
496
|
-
:class:`pyedb.dotnet.
|
|
496
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
497
497
|
"""
|
|
498
498
|
curr_materials = self.materials
|
|
499
499
|
if name in curr_materials:
|
|
@@ -532,7 +532,7 @@ class Materials(object):
|
|
|
532
532
|
|
|
533
533
|
Returns
|
|
534
534
|
-------
|
|
535
|
-
:class:`pyedb.dotnet.
|
|
535
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
536
536
|
|
|
537
537
|
"""
|
|
538
538
|
extended_kwargs = {key: value for (key, value) in kwargs.items()}
|
|
@@ -555,7 +555,7 @@ class Materials(object):
|
|
|
555
555
|
|
|
556
556
|
Returns
|
|
557
557
|
-------
|
|
558
|
-
:class:`pyedb.dotnet.
|
|
558
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
559
559
|
"""
|
|
560
560
|
extended_kwargs = {key: value for (key, value) in kwargs.items()}
|
|
561
561
|
extended_kwargs["permittivity"] = permittivity
|
|
@@ -589,7 +589,7 @@ class Materials(object):
|
|
|
589
589
|
|
|
590
590
|
Returns
|
|
591
591
|
-------
|
|
592
|
-
:class:`pyedb.dotnet.
|
|
592
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
593
593
|
"""
|
|
594
594
|
curr_materials = self.materials
|
|
595
595
|
if name in curr_materials:
|
|
@@ -657,7 +657,7 @@ class Materials(object):
|
|
|
657
657
|
|
|
658
658
|
Returns
|
|
659
659
|
-------
|
|
660
|
-
:class:`pyedb.dotnet.
|
|
660
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
661
661
|
"""
|
|
662
662
|
curr_materials = self.materials
|
|
663
663
|
if name in curr_materials:
|
|
@@ -711,7 +711,7 @@ class Materials(object):
|
|
|
711
711
|
|
|
712
712
|
Returns
|
|
713
713
|
-------
|
|
714
|
-
:class:`pyedb.dotnet.
|
|
714
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
715
715
|
|
|
716
716
|
Examples
|
|
717
717
|
--------
|
|
@@ -786,7 +786,7 @@ class Materials(object):
|
|
|
786
786
|
|
|
787
787
|
Returns
|
|
788
788
|
-------
|
|
789
|
-
:class:`pyedb.dotnet.
|
|
789
|
+
:class:`pyedb.dotnet.database.materials.Material`
|
|
790
790
|
"""
|
|
791
791
|
curr_materials = self.materials
|
|
792
792
|
if new_material_name in curr_materials:
|
|
@@ -1043,3 +1043,18 @@ class Materials(object):
|
|
|
1043
1043
|
|
|
1044
1044
|
self.__edb.logger.error(f"Material {material_name} does not exist in syslib AMAT file.")
|
|
1045
1045
|
return res
|
|
1046
|
+
|
|
1047
|
+
def update_materials_from_sys_library(self, update_all: bool = True, material_name: Union[str, list] = None):
|
|
1048
|
+
"""Update material properties from syslib AMAT file."""
|
|
1049
|
+
amat_file = os.path.join(self.__edb.base_path, "syslib", "Materials.amat")
|
|
1050
|
+
materials_dict = self.read_materials(amat_file)
|
|
1051
|
+
if update_all:
|
|
1052
|
+
for name, obj in self.materials.items():
|
|
1053
|
+
if name in materials_dict:
|
|
1054
|
+
obj.update(materials_dict[name])
|
|
1055
|
+
self.__edb.logger.info(f"Material {name} is updated from syslibrary.")
|
|
1056
|
+
else:
|
|
1057
|
+
material_names = material_name if isinstance(material_name, list) else [material_name]
|
|
1058
|
+
for name in material_names:
|
|
1059
|
+
self.materials[name].update(materials_dict[name])
|
|
1060
|
+
self.__edb.logger.info(f"Material {name} is updated from syslibrary.")
|
|
@@ -26,11 +26,11 @@ This module contains these classes: `EdbLayout` and `Shape`.
|
|
|
26
26
|
import math
|
|
27
27
|
import warnings
|
|
28
28
|
|
|
29
|
-
from pyedb.dotnet.
|
|
30
|
-
from pyedb.dotnet.
|
|
31
|
-
from pyedb.dotnet.
|
|
32
|
-
from pyedb.dotnet.
|
|
33
|
-
from pyedb.dotnet.
|
|
29
|
+
from pyedb.dotnet.database.cell.primitive.bondwire import Bondwire
|
|
30
|
+
from pyedb.dotnet.database.dotnet.primitive import CircleDotNet, RectangleDotNet
|
|
31
|
+
from pyedb.dotnet.database.edb_data.primitives_data import Primitive, cast
|
|
32
|
+
from pyedb.dotnet.database.edb_data.utilities import EDBStatistics
|
|
33
|
+
from pyedb.dotnet.database.general import convert_py_list_to_net_list
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class Modeler(object):
|
|
@@ -52,7 +52,7 @@ class Modeler(object):
|
|
|
52
52
|
|
|
53
53
|
Returns
|
|
54
54
|
-------
|
|
55
|
-
:class:`pyedb.dotnet.
|
|
55
|
+
:class:`pyedb.dotnet.database.cell.hierarchy.component.EDBComponent`
|
|
56
56
|
|
|
57
57
|
"""
|
|
58
58
|
for i in self.primitives:
|
|
@@ -123,7 +123,7 @@ class Modeler(object):
|
|
|
123
123
|
|
|
124
124
|
Returns
|
|
125
125
|
-------
|
|
126
|
-
list of :class:`pyedb.dotnet.
|
|
126
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
127
127
|
List of primitives.
|
|
128
128
|
"""
|
|
129
129
|
for p in self._layout.primitives:
|
|
@@ -140,7 +140,7 @@ class Modeler(object):
|
|
|
140
140
|
|
|
141
141
|
Returns
|
|
142
142
|
-------
|
|
143
|
-
list of :class:`pyedb.dotnet.
|
|
143
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
144
144
|
List of primitives.
|
|
145
145
|
"""
|
|
146
146
|
return self._pedb.layout.primitives
|
|
@@ -202,7 +202,7 @@ class Modeler(object):
|
|
|
202
202
|
|
|
203
203
|
Returns
|
|
204
204
|
-------
|
|
205
|
-
list of :class:`pyedb.dotnet.
|
|
205
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
206
206
|
List of rectangles.
|
|
207
207
|
|
|
208
208
|
"""
|
|
@@ -214,7 +214,7 @@ class Modeler(object):
|
|
|
214
214
|
|
|
215
215
|
Returns
|
|
216
216
|
-------
|
|
217
|
-
list of :class:`pyedb.dotnet.
|
|
217
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
218
218
|
List of circles.
|
|
219
219
|
|
|
220
220
|
"""
|
|
@@ -226,7 +226,7 @@ class Modeler(object):
|
|
|
226
226
|
|
|
227
227
|
Returns
|
|
228
228
|
-------
|
|
229
|
-
list of :class:`pyedb.dotnet.
|
|
229
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
230
230
|
List of paths.
|
|
231
231
|
"""
|
|
232
232
|
return [i for i in self.primitives if i.primitive_type == "path"]
|
|
@@ -237,7 +237,7 @@ class Modeler(object):
|
|
|
237
237
|
|
|
238
238
|
Returns
|
|
239
239
|
-------
|
|
240
|
-
list of :class:`pyedb.dotnet.
|
|
240
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
241
241
|
List of polygons.
|
|
242
242
|
"""
|
|
243
243
|
return [i for i in self.primitives if i.primitive_type == "polygon"]
|
|
@@ -282,7 +282,7 @@ class Modeler(object):
|
|
|
282
282
|
|
|
283
283
|
Returns
|
|
284
284
|
-------
|
|
285
|
-
list of :class:`pyedb.dotnet.
|
|
285
|
+
list of :class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
286
286
|
List of primitives, polygons, paths and rectangles.
|
|
287
287
|
"""
|
|
288
288
|
if isinstance(layer, str) and layer not in list(self._pedb.stackup.signal_layers.keys()):
|
|
@@ -339,8 +339,8 @@ class Modeler(object):
|
|
|
339
339
|
|
|
340
340
|
Examples
|
|
341
341
|
--------
|
|
342
|
-
>>> poly =
|
|
343
|
-
>>> bounding =
|
|
342
|
+
>>> poly = database.modeler.get_polygons_by_layer("GND")
|
|
343
|
+
>>> bounding = database.modeler.get_polygon_bounding_box(poly[0])
|
|
344
344
|
"""
|
|
345
345
|
bounding = []
|
|
346
346
|
try:
|
|
@@ -364,7 +364,7 @@ class Modeler(object):
|
|
|
364
364
|
Parameters
|
|
365
365
|
----------
|
|
366
366
|
polygon :
|
|
367
|
-
class: `dotnet.
|
|
367
|
+
class: `dotnet.database.edb_data.primitives_data.Primitive`
|
|
368
368
|
|
|
369
369
|
Returns
|
|
370
370
|
-------
|
|
@@ -378,8 +378,8 @@ class Modeler(object):
|
|
|
378
378
|
Examples
|
|
379
379
|
--------
|
|
380
380
|
|
|
381
|
-
>>> poly =
|
|
382
|
-
>>> points =
|
|
381
|
+
>>> poly = database.modeler.get_polygons_by_layer("GND")
|
|
382
|
+
>>> points = database.modeler.get_polygon_points(poly[0])
|
|
383
383
|
|
|
384
384
|
"""
|
|
385
385
|
points = []
|
|
@@ -499,7 +499,7 @@ class Modeler(object):
|
|
|
499
499
|
|
|
500
500
|
Parameters
|
|
501
501
|
----------
|
|
502
|
-
path_list : :class:`dotnet.
|
|
502
|
+
path_list : :class:`dotnet.database.layout.Shape`
|
|
503
503
|
List of points.
|
|
504
504
|
layer_name : str
|
|
505
505
|
Name of the layer on which to create the path.
|
|
@@ -521,7 +521,7 @@ class Modeler(object):
|
|
|
521
521
|
|
|
522
522
|
Returns
|
|
523
523
|
-------
|
|
524
|
-
:class:`pyedb.dotnet.
|
|
524
|
+
:class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
525
525
|
``True`` when successful, ``False`` when failed.
|
|
526
526
|
"""
|
|
527
527
|
net = self._pedb.nets.find_or_create_net(net_name)
|
|
@@ -600,7 +600,7 @@ class Modeler(object):
|
|
|
600
600
|
|
|
601
601
|
Returns
|
|
602
602
|
-------
|
|
603
|
-
:class:`pyedb.dotnet.
|
|
603
|
+
:class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
604
604
|
"""
|
|
605
605
|
path = self.Shape("Polygon", points=path_list)
|
|
606
606
|
primitive = self._create_path(
|
|
@@ -635,7 +635,7 @@ class Modeler(object):
|
|
|
635
635
|
|
|
636
636
|
Returns
|
|
637
637
|
-------
|
|
638
|
-
bool, :class:`dotnet.
|
|
638
|
+
bool, :class:`dotnet.database.edb_data.primitives.Primitive`
|
|
639
639
|
Polygon when successful, ``False`` when failed.
|
|
640
640
|
"""
|
|
641
641
|
net = self._pedb.nets.find_or_create_net(net_name)
|
|
@@ -705,7 +705,7 @@ class Modeler(object):
|
|
|
705
705
|
|
|
706
706
|
Returns
|
|
707
707
|
-------
|
|
708
|
-
:class:`pyedb.dotnet.
|
|
708
|
+
:class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
709
709
|
"""
|
|
710
710
|
warnings.warn(
|
|
711
711
|
"Use :func:`create_polygon` method instead. It now supports point lists as arguments.", DeprecationWarning
|
|
@@ -753,7 +753,7 @@ class Modeler(object):
|
|
|
753
753
|
|
|
754
754
|
Returns
|
|
755
755
|
-------
|
|
756
|
-
:class:`pyedb.dotnet.
|
|
756
|
+
:class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
757
757
|
Rectangle when successful, ``False`` when failed.
|
|
758
758
|
"""
|
|
759
759
|
edb_net = self._pedb.nets.find_or_create_net(net_name)
|
|
@@ -808,7 +808,7 @@ class Modeler(object):
|
|
|
808
808
|
|
|
809
809
|
Returns
|
|
810
810
|
-------
|
|
811
|
-
:class:`pyedb.dotnet.
|
|
811
|
+
:class:`pyedb.dotnet.database.edb_data.primitives_data.Primitive`
|
|
812
812
|
Objects of the circle created when successful.
|
|
813
813
|
"""
|
|
814
814
|
edb_net = self._pedb.nets.find_or_create_net(net_name)
|
|
@@ -947,7 +947,7 @@ class Modeler(object):
|
|
|
947
947
|
|
|
948
948
|
Parameters
|
|
949
949
|
----------
|
|
950
|
-
shape : :class:`pyedb.dotnet.
|
|
950
|
+
shape : :class:`pyedb.dotnet.database.modeler.Modeler.Shape`
|
|
951
951
|
Type of the shape to convert. Options are ``"rectangle"`` and ``"polygon"``.
|
|
952
952
|
"""
|
|
953
953
|
if shape.type == "polygon":
|
|
@@ -1386,7 +1386,7 @@ class Modeler(object):
|
|
|
1386
1386
|
|
|
1387
1387
|
Returns
|
|
1388
1388
|
-------
|
|
1389
|
-
:class:`pyedb.dotnet.
|
|
1389
|
+
:class:`pyedb.dotnet.database.dotnet.primitive.BondwireDotNet`
|
|
1390
1390
|
Bondwire object created.
|
|
1391
1391
|
"""
|
|
1392
1392
|
|
|
@@ -24,7 +24,7 @@ from __future__ import absolute_import # noreorder
|
|
|
24
24
|
|
|
25
25
|
import re
|
|
26
26
|
|
|
27
|
-
from pyedb.dotnet.
|
|
27
|
+
from pyedb.dotnet.database.edb_data.nets_data import (
|
|
28
28
|
EDBDifferentialPairData,
|
|
29
29
|
EDBExtendedNetData,
|
|
30
30
|
EDBNetClassData,
|
|
@@ -59,7 +59,7 @@ class EdbCommon:
|
|
|
59
59
|
|
|
60
60
|
Returns
|
|
61
61
|
-------
|
|
62
|
-
:class:` :class:`pyedb.dotnet.
|
|
62
|
+
:class:` :class:`pyedb.dotnet.database.edb_data.nets_data.EDBExtendedNetsData`
|
|
63
63
|
|
|
64
64
|
"""
|
|
65
65
|
if name in self.items:
|
|
@@ -86,7 +86,7 @@ class EdbNetClasses(EdbCommon, object):
|
|
|
86
86
|
|
|
87
87
|
Returns
|
|
88
88
|
-------
|
|
89
|
-
dict[str, :class:`pyedb.dotnet.
|
|
89
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.nets_data.EDBDifferentialPairData`]
|
|
90
90
|
Dictionary of extended nets.
|
|
91
91
|
"""
|
|
92
92
|
temp = {}
|
|
@@ -107,7 +107,7 @@ class EdbNetClasses(EdbCommon, object):
|
|
|
107
107
|
|
|
108
108
|
Returns
|
|
109
109
|
-------
|
|
110
|
-
:class:`pyedb.dotnet.
|
|
110
|
+
:class:`pyedb.dotnet.database.edb_data.nets_data.EDBNetClassData`
|
|
111
111
|
"""
|
|
112
112
|
if name in self.items:
|
|
113
113
|
self._pedb.logger.error("{} already exists.".format(name))
|
|
@@ -142,7 +142,7 @@ class EdbExtendedNets(EdbCommon, object):
|
|
|
142
142
|
|
|
143
143
|
Returns
|
|
144
144
|
-------
|
|
145
|
-
dict[str, :class:`pyedb.dotnet.
|
|
145
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.nets_data.EDBExtendedNetsData`]
|
|
146
146
|
Dictionary of extended nets.
|
|
147
147
|
"""
|
|
148
148
|
nets = {}
|
|
@@ -163,7 +163,7 @@ class EdbExtendedNets(EdbCommon, object):
|
|
|
163
163
|
|
|
164
164
|
Returns
|
|
165
165
|
-------
|
|
166
|
-
:class:`pyedb.dotnet.
|
|
166
|
+
:class:`pyedb.dotnet.database.edb_data.nets_data.EDBExtendedNetsData`
|
|
167
167
|
"""
|
|
168
168
|
if name in self.items:
|
|
169
169
|
self._pedb.logger.error("{} already exists.".format(name))
|
|
@@ -267,7 +267,7 @@ class EdbDifferentialPairs(EdbCommon, object):
|
|
|
267
267
|
|
|
268
268
|
Returns
|
|
269
269
|
-------
|
|
270
|
-
dict[str, :class:`pyedb.dotnet.
|
|
270
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.nets_data.EDBDifferentialPairData`]
|
|
271
271
|
Dictionary of extended nets.
|
|
272
272
|
"""
|
|
273
273
|
diff_pairs = {}
|
|
@@ -290,7 +290,7 @@ class EdbDifferentialPairs(EdbCommon, object):
|
|
|
290
290
|
|
|
291
291
|
Returns
|
|
292
292
|
-------
|
|
293
|
-
:class:`pyedb.dotnet.
|
|
293
|
+
:class:`pyedb.dotnet.database.edb_data.nets_data.EDBDifferentialPairData`
|
|
294
294
|
"""
|
|
295
295
|
if name in self.items:
|
|
296
296
|
self._pedb.logger.error("{} already exists.".format(name))
|
|
@@ -25,7 +25,7 @@ from __future__ import absolute_import # noreorder
|
|
|
25
25
|
import warnings
|
|
26
26
|
|
|
27
27
|
from pyedb.common.nets import CommonNets
|
|
28
|
-
from pyedb.dotnet.
|
|
28
|
+
from pyedb.dotnet.database.edb_data.nets_data import EDBNetsData
|
|
29
29
|
from pyedb.generic.general_methods import generate_unique_name
|
|
30
30
|
from pyedb.misc.utilities import compute_arc_points
|
|
31
31
|
|
|
@@ -49,7 +49,7 @@ class EdbNets(CommonNets):
|
|
|
49
49
|
|
|
50
50
|
Returns
|
|
51
51
|
-------
|
|
52
|
-
:class:` :class:`pyedb.dotnet.
|
|
52
|
+
:class:` :class:`pyedb.dotnet.database.edb_data.nets_data.EDBNetsData`
|
|
53
53
|
|
|
54
54
|
"""
|
|
55
55
|
return self._pedb.layout.find_net_by_name(name)
|
|
@@ -70,7 +70,7 @@ class EdbNets(CommonNets):
|
|
|
70
70
|
return name in self.nets
|
|
71
71
|
|
|
72
72
|
def __init__(self, p_edb):
|
|
73
|
-
self
|
|
73
|
+
CommonNets.__init__(self, p_edb)
|
|
74
74
|
self._nets_by_comp_dict = {}
|
|
75
75
|
self._comps_by_nets_dict = {}
|
|
76
76
|
|
|
@@ -110,7 +110,7 @@ class EdbNets(CommonNets):
|
|
|
110
110
|
|
|
111
111
|
Returns
|
|
112
112
|
-------
|
|
113
|
-
dict[str, :class:`pyedb.dotnet.
|
|
113
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.nets_data.EDBNetsData`]
|
|
114
114
|
Dictionary of nets.
|
|
115
115
|
"""
|
|
116
116
|
return {i.name: i for i in self._pedb.layout.nets}
|
|
@@ -135,7 +135,7 @@ class EdbNets(CommonNets):
|
|
|
135
135
|
|
|
136
136
|
Returns
|
|
137
137
|
-------
|
|
138
|
-
dict[str, :class:`pyedb.dotnet.
|
|
138
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.EDBNetsData`]
|
|
139
139
|
Dictionary of signal nets.
|
|
140
140
|
"""
|
|
141
141
|
warnings.warn("Use :func:`signal` instead.", DeprecationWarning)
|
|
@@ -150,7 +150,7 @@ class EdbNets(CommonNets):
|
|
|
150
150
|
|
|
151
151
|
Returns
|
|
152
152
|
-------
|
|
153
|
-
dict[str, :class:`pyedb.dotnet.
|
|
153
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.EDBNetsData`]
|
|
154
154
|
Dictionary of power nets.
|
|
155
155
|
"""
|
|
156
156
|
warnings.warn("Use :func:`power` instead.", DeprecationWarning)
|
|
@@ -162,7 +162,7 @@ class EdbNets(CommonNets):
|
|
|
162
162
|
|
|
163
163
|
Returns
|
|
164
164
|
-------
|
|
165
|
-
dict[str, :class:`pyedb.dotnet.
|
|
165
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.EDBNetsData`]
|
|
166
166
|
Dictionary of signal nets.
|
|
167
167
|
"""
|
|
168
168
|
nets = {}
|
|
@@ -177,7 +177,7 @@ class EdbNets(CommonNets):
|
|
|
177
177
|
|
|
178
178
|
Returns
|
|
179
179
|
-------
|
|
180
|
-
dict[str, :class:`pyedb.dotnet.
|
|
180
|
+
dict[str, :class:`pyedb.dotnet.database.edb_data.EDBNetsData`]
|
|
181
181
|
Dictionary of power nets.
|
|
182
182
|
"""
|
|
183
183
|
nets = {}
|
|
@@ -197,7 +197,7 @@ class EdbNets(CommonNets):
|
|
|
197
197
|
|
|
198
198
|
Returns
|
|
199
199
|
-------
|
|
200
|
-
list of :class:`pyedb.dotnet.
|
|
200
|
+
list of :class:`pyedb.dotnet.database.edb_data.EDBNetsData`
|
|
201
201
|
"""
|
|
202
202
|
pwr_gnd_nets = []
|
|
203
203
|
for net in self._layout.nets[:]:
|
|
@@ -564,7 +564,7 @@ class EdbNets(CommonNets):
|
|
|
564
564
|
Examples
|
|
565
565
|
--------
|
|
566
566
|
|
|
567
|
-
>>> deleted_nets =
|
|
567
|
+
>>> deleted_nets = database.nets.delete(["Net1","Net2"])
|
|
568
568
|
"""
|
|
569
569
|
warnings.warn("Use :func:`delete` method instead.", DeprecationWarning)
|
|
570
570
|
return self.delete(netlist=netlist)
|
|
@@ -585,7 +585,7 @@ class EdbNets(CommonNets):
|
|
|
585
585
|
Examples
|
|
586
586
|
--------
|
|
587
587
|
|
|
588
|
-
>>> deleted_nets =
|
|
588
|
+
>>> deleted_nets = database.nets.delete(["Net1","Net2"])
|
|
589
589
|
"""
|
|
590
590
|
if isinstance(netlist, str):
|
|
591
591
|
netlist = [netlist]
|
|
@@ -726,7 +726,7 @@ class EdbNets(CommonNets):
|
|
|
726
726
|
Examples
|
|
727
727
|
--------
|
|
728
728
|
|
|
729
|
-
>>> renamed_nets =
|
|
729
|
+
>>> renamed_nets = database.nets.find_and_fix_disjoint_nets(["GND","Net2"])
|
|
730
730
|
"""
|
|
731
731
|
warnings.warn("Use new function :func:`edb.layout_validation.disjoint_nets` instead.", DeprecationWarning)
|
|
732
732
|
return self._pedb.layout_validation.disjoint_nets(
|