pyedb 0.23.0__tar.gz → 0.24.0__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 pyedb might be problematic. Click here for more details.
- {pyedb-0.23.0 → pyedb-0.24.0}/PKG-INFO +2 -2
- {pyedb-0.23.0 → pyedb-0.24.0}/pyproject.toml +1 -1
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/__init__.py +1 -1
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb.py +35 -33
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +11 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/layout.py +30 -23
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/layout_obj.py +0 -9
- pyedb-0.23.0/src/pyedb/dotnet/edb_core/cell/primitive.py → pyedb-0.24.0/src/pyedb/dotnet/edb_core/cell/primitive/bondwire.py +1 -146
- pyedb-0.24.0/src/pyedb/dotnet/edb_core/cell/primitive/path.py +351 -0
- pyedb-0.24.0/src/pyedb/dotnet/edb_core/cell/primitive/primitive.py +895 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +0 -4
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +1 -1
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/components.py +12 -5
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/dotnet/database.py +1 -23
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/dotnet/primitive.py +3 -139
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/nets_data.py +1 -11
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/padstacks_data.py +10 -24
- pyedb-0.24.0/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +499 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/geometry/polygon_data.py +43 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/hfss.py +26 -22
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/layout_validation.py +3 -3
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/modeler.py +64 -81
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/nets.py +5 -4
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/padstack.py +12 -13
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/siwave.py +1 -1
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/stackup.py +3 -3
- pyedb-0.24.0/src/pyedb/dotnet/edb_core/utilities/__init__.py +3 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +1 -1
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +2 -2
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +2 -2
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/siwave.py +99 -0
- pyedb-0.23.0/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +0 -1311
- {pyedb-0.23.0 → pyedb-0.24.0}/LICENSE +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/README.md +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_common.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_components.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_general.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_nets.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_operations.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_ports_sources.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_setup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/cfg_stackup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/configuration/configuration.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/application/Variables.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/application/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/clr_module.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/connectable.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/component.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +0 -0
- {pyedb-0.23.0/src/pyedb/dotnet/edb_core/sim_setup_data → pyedb-0.24.0/src/pyedb/dotnet/edb_core/cell/primitive}/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/terminal/terminal.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/cell/voltage_regulator.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/component_def.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/component_model.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/definition_obj.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/definitions.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/definition/package_def.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/control_file.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/design_options.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/edbvalue.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/ports.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/sources.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/utilities.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/edb_data/variables.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/general.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/geometry/point_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/layout_obj_instance.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/materials.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/net_class.py +0 -0
- {pyedb-0.23.0/src/pyedb/dotnet/edb_core/sim_setup_data/data → pyedb-0.24.0/src/pyedb/dotnet/edb_core/sim_setup_data}/__init__.py +0 -0
- {pyedb-0.23.0/src/pyedb/dotnet/edb_core/utilities → pyedb-0.24.0/src/pyedb/dotnet/edb_core/sim_setup_data/data}/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/settings.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/utilities/heatsink.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/utilities/obj_base.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/edb_logger.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/exceptions.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/constants.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/data_handlers.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/design_types.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/filesystem.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/general_methods.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/plot.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/process.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/generic/settings.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/color.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/content.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/fill.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/history_record.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/downloads.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/misc.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/misc/utilities.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/modeler/geometry_operators.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/siwave_core/icepak.py +0 -0
- {pyedb-0.23.0 → pyedb-0.24.0}/src/pyedb/workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.24.0
|
|
4
4
|
Summary: Higher-Level Pythonic Ansys Electronics Data Base
|
|
5
5
|
Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
|
|
6
6
|
Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
|
|
@@ -40,7 +40,7 @@ Requires-Dist: Sphinx>=7.1.0,<7.4 ; extra == "doc"
|
|
|
40
40
|
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version == '3.8')
|
|
41
41
|
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version > '3.8')
|
|
42
42
|
Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
|
|
43
|
-
Requires-Dist: sphinx-gallery>=0.14.0,<0.
|
|
43
|
+
Requires-Dist: sphinx-gallery>=0.14.0,<0.18 ; extra == "doc"
|
|
44
44
|
Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
|
|
45
45
|
Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
|
|
46
46
|
Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
|
|
@@ -63,7 +63,7 @@ doc = [
|
|
|
63
63
|
"sphinx-autobuild==2024.2.4; python_version == '3.8'",
|
|
64
64
|
"sphinx-autobuild==2024.2.4; python_version > '3.8'",
|
|
65
65
|
"sphinx-copybutton>=0.5.0,<0.6",
|
|
66
|
-
"sphinx-gallery>=0.14.0,<0.
|
|
66
|
+
"sphinx-gallery>=0.14.0,<0.18",
|
|
67
67
|
"sphinx_design>=0.4.0,<0.7",
|
|
68
68
|
]
|
|
69
69
|
full = [
|
|
@@ -454,13 +454,13 @@ class Edb(Database):
|
|
|
454
454
|
@property
|
|
455
455
|
def excitations(self):
|
|
456
456
|
"""Get all layout excitations."""
|
|
457
|
-
terms = [term for term in self.layout.terminals if int(term.GetBoundaryType()) == 0]
|
|
457
|
+
terms = [term for term in self.layout.terminals if int(term._edb_object.GetBoundaryType()) == 0]
|
|
458
458
|
temp = {}
|
|
459
459
|
for ter in terms:
|
|
460
|
-
if "BundleTerminal" in ter.GetType().ToString():
|
|
461
|
-
temp[ter.
|
|
460
|
+
if "BundleTerminal" in ter._edb_object.GetType().ToString():
|
|
461
|
+
temp[ter.name] = BundleWavePort(self, ter._edb_object)
|
|
462
462
|
else:
|
|
463
|
-
temp[ter.
|
|
463
|
+
temp[ter.name] = GapPort(self, ter._edb_object)
|
|
464
464
|
return temp
|
|
465
465
|
|
|
466
466
|
@property
|
|
@@ -473,41 +473,41 @@ class Edb(Database):
|
|
|
473
473
|
:class:`pyedb.dotnet.edb_core.edb_data.ports.WavePort`,]]
|
|
474
474
|
|
|
475
475
|
"""
|
|
476
|
-
temp = [term for term in self.layout.terminals if not term.
|
|
476
|
+
temp = [term for term in self.layout.terminals if not term.is_reference_terminal]
|
|
477
477
|
|
|
478
478
|
ports = {}
|
|
479
479
|
for t in temp:
|
|
480
|
-
t2 = Terminal(self, t)
|
|
480
|
+
t2 = Terminal(self, t._edb_object)
|
|
481
481
|
if not t2.boundary_type == "PortBoundary":
|
|
482
482
|
continue
|
|
483
483
|
|
|
484
484
|
if t2.is_circuit_port:
|
|
485
|
-
port = CircuitPort(self, t)
|
|
485
|
+
port = CircuitPort(self, t._edb_object)
|
|
486
486
|
ports[port.name] = port
|
|
487
487
|
elif t2.terminal_type == "BundleTerminal":
|
|
488
|
-
port = BundleWavePort(self, t)
|
|
488
|
+
port = BundleWavePort(self, t._edb_object)
|
|
489
489
|
ports[port.name] = port
|
|
490
490
|
elif t2.hfss_type == "Wave":
|
|
491
|
-
ports[t2.name] = WavePort(self, t)
|
|
491
|
+
ports[t2.name] = WavePort(self, t._edb_object)
|
|
492
492
|
elif t2.terminal_type == "PadstackInstanceTerminal":
|
|
493
|
-
ports[t2.name] = CoaxPort(self, t)
|
|
493
|
+
ports[t2.name] = CoaxPort(self, t._edb_object)
|
|
494
494
|
else:
|
|
495
|
-
ports[t2.name] = GapPort(self, t)
|
|
495
|
+
ports[t2.name] = GapPort(self, t._edb_object)
|
|
496
496
|
return ports
|
|
497
497
|
|
|
498
498
|
@property
|
|
499
499
|
def excitations_nets(self):
|
|
500
500
|
"""Get all excitations net names."""
|
|
501
|
-
names = list(set([i.
|
|
501
|
+
names = list(set([i.net.name for i in self.layout.terminals]))
|
|
502
502
|
names = [i for i in names if i]
|
|
503
503
|
return names
|
|
504
504
|
|
|
505
505
|
@property
|
|
506
506
|
def sources(self):
|
|
507
507
|
"""Get all layout sources."""
|
|
508
|
-
terms = [term for term in self.layout.terminals if int(term.GetBoundaryType()) in [3, 4, 7]]
|
|
509
|
-
terms = [term for term in terms if not term.IsReferenceTerminal()]
|
|
510
|
-
return {ter.
|
|
508
|
+
terms = [term for term in self.layout.terminals if int(term._edb_object.GetBoundaryType()) in [3, 4, 7]]
|
|
509
|
+
terms = [term for term in terms if not term._edb_object.IsReferenceTerminal()]
|
|
510
|
+
return {ter.name: ExcitationSources(self, ter._edb_object) for ter in terms}
|
|
511
511
|
|
|
512
512
|
@property
|
|
513
513
|
def voltage_regulator_modules(self):
|
|
@@ -1167,9 +1167,9 @@ class Edb(Database):
|
|
|
1167
1167
|
elif obj_type == LayoutObjType.Primitive.name:
|
|
1168
1168
|
prim_type = i.GetPrimitiveType().ToString()
|
|
1169
1169
|
if prim_type == Primitives.Path.name:
|
|
1170
|
-
from pyedb.dotnet.edb_core.
|
|
1170
|
+
from pyedb.dotnet.edb_core.cell.primitive.path import Path
|
|
1171
1171
|
|
|
1172
|
-
temp.append(
|
|
1172
|
+
temp.append(Path(self, i))
|
|
1173
1173
|
elif prim_type == Primitives.Rectangle.name:
|
|
1174
1174
|
from pyedb.dotnet.edb_core.edb_data.primitives_data import (
|
|
1175
1175
|
EdbRectangle,
|
|
@@ -1669,11 +1669,11 @@ class Edb(Database):
|
|
|
1669
1669
|
from pyedb.dotnet.clr_module import Tuple
|
|
1670
1670
|
|
|
1671
1671
|
_polys = []
|
|
1672
|
-
terms = [term for term in self.layout.terminals if int(term.GetBoundaryType()) in [0, 3, 4, 7, 8]]
|
|
1672
|
+
terms = [term for term in self.layout.terminals if int(term._edb_object.GetBoundaryType()) in [0, 3, 4, 7, 8]]
|
|
1673
1673
|
locations = []
|
|
1674
1674
|
for term in terms:
|
|
1675
|
-
if term.GetTerminalType().ToString() == "PointTerminal" and term.
|
|
1676
|
-
pd = term.GetParameters()[1]
|
|
1675
|
+
if term._edb_object.GetTerminalType().ToString() == "PointTerminal" and term.net.name in reference_list:
|
|
1676
|
+
pd = term._edb_object.GetParameters()[1]
|
|
1677
1677
|
locations.append([pd.X.ToDouble(), pd.Y.ToDouble()])
|
|
1678
1678
|
for point in locations:
|
|
1679
1679
|
pointA = self.edb_api.geometry.point_data(
|
|
@@ -2214,11 +2214,13 @@ class Edb(Database):
|
|
|
2214
2214
|
if pin.pingroups:
|
|
2215
2215
|
pins_to_preserve.append(pin.id)
|
|
2216
2216
|
if check_terminals:
|
|
2217
|
-
terms = [
|
|
2217
|
+
terms = [
|
|
2218
|
+
term for term in self.layout.terminals if int(term._edb_object.GetBoundaryType()) in [0, 3, 4, 7, 8]
|
|
2219
|
+
]
|
|
2218
2220
|
for term in terms:
|
|
2219
|
-
if term.GetTerminalType().ToString() == "PadstackInstanceTerminal":
|
|
2220
|
-
if term.GetParameters()[1].GetNet().GetName() in reference_list:
|
|
2221
|
-
pins_to_preserve.append(term.GetParameters()[1].GetId())
|
|
2221
|
+
if term._edb_object.GetTerminalType().ToString() == "PadstackInstanceTerminal":
|
|
2222
|
+
if term._edb_object.GetParameters()[1].GetNet().GetName() in reference_list:
|
|
2223
|
+
pins_to_preserve.append(term._edb_object.GetParameters()[1].GetId())
|
|
2222
2224
|
|
|
2223
2225
|
for i in self.nets.nets.values():
|
|
2224
2226
|
name = i.name
|
|
@@ -2309,7 +2311,7 @@ class Edb(Database):
|
|
|
2309
2311
|
return poly.Subtract(convert_py_list_to_net_list(poly), convert_py_list_to_net_list(voids))
|
|
2310
2312
|
|
|
2311
2313
|
def clip_path(path):
|
|
2312
|
-
pdata = path.polygon_data.
|
|
2314
|
+
pdata = path.polygon_data._edb_object
|
|
2313
2315
|
int_data = _poly.GetIntersectionType(pdata)
|
|
2314
2316
|
if int_data == 0:
|
|
2315
2317
|
prims_to_delete.append(path)
|
|
@@ -2320,7 +2322,7 @@ class Edb(Database):
|
|
|
2320
2322
|
reference_prims.append(path)
|
|
2321
2323
|
|
|
2322
2324
|
def clean_prim(prim_1): # pragma: no cover
|
|
2323
|
-
pdata = prim_1.polygon_data.
|
|
2325
|
+
pdata = prim_1.polygon_data._edb_object
|
|
2324
2326
|
int_data = _poly.GetIntersectionType(pdata)
|
|
2325
2327
|
if int_data == 2:
|
|
2326
2328
|
if not inlcude_voids_in_extents:
|
|
@@ -2347,7 +2349,7 @@ class Edb(Database):
|
|
|
2347
2349
|
# points = list(p.Points)
|
|
2348
2350
|
list_void = []
|
|
2349
2351
|
if voids:
|
|
2350
|
-
voids_data = [void.polygon_data.
|
|
2352
|
+
voids_data = [void.polygon_data._edb_object for void in voids]
|
|
2351
2353
|
list_prims = subtract(p, voids_data)
|
|
2352
2354
|
for prim in list_prims:
|
|
2353
2355
|
if not prim.IsNull():
|
|
@@ -4445,10 +4447,10 @@ class Edb(Database):
|
|
|
4445
4447
|
for poly in polys:
|
|
4446
4448
|
for void in poly.voids:
|
|
4447
4449
|
void_bbox = (
|
|
4448
|
-
void.polygon_data.
|
|
4449
|
-
void.polygon_data.
|
|
4450
|
-
void.polygon_data.
|
|
4451
|
-
void.polygon_data.
|
|
4450
|
+
void.polygon_data._edb_object.GetBBox().Item1.X.ToDouble(),
|
|
4451
|
+
void.polygon_data._edb_object.GetBBox().Item1.Y.ToDouble(),
|
|
4452
|
+
void.polygon_data._edb_object.GetBBox().Item2.X.ToDouble(),
|
|
4453
|
+
void.polygon_data._edb_object.GetBBox().Item2.Y.ToDouble(),
|
|
4452
4454
|
)
|
|
4453
4455
|
included_instances = list(padstack_instances_index.intersection(void_bbox))
|
|
4454
4456
|
if included_instances:
|
|
@@ -4481,10 +4483,10 @@ class Edb(Database):
|
|
|
4481
4483
|
|
|
4482
4484
|
for void_info in void_padstacks:
|
|
4483
4485
|
port_poly = cloned_edb.modeler.create_polygon(
|
|
4484
|
-
main_shape=void_info[0].polygon_data.
|
|
4486
|
+
main_shape=void_info[0].polygon_data._edb_object, layer_name="ref", net_name="GND"
|
|
4485
4487
|
)
|
|
4486
4488
|
pec_poly = cloned_edb.modeler.create_polygon(
|
|
4487
|
-
main_shape=port_poly.polygon_data.
|
|
4489
|
+
main_shape=port_poly.polygon_data._edb_object, layer_name="port_pec", net_name="GND"
|
|
4488
4490
|
)
|
|
4489
4491
|
pec_poly.scale(1.5)
|
|
4490
4492
|
|
|
@@ -48,3 +48,14 @@ class HierarchyObj(Connectable):
|
|
|
48
48
|
class Group(HierarchyObj):
|
|
49
49
|
def __init__(self, pedb, edb_object):
|
|
50
50
|
super().__init__(pedb, edb_object)
|
|
51
|
+
|
|
52
|
+
def ungroup(self, recursive=False):
|
|
53
|
+
"""Dissolve a group.
|
|
54
|
+
|
|
55
|
+
Parameters
|
|
56
|
+
----------
|
|
57
|
+
recursive : bool, optional
|
|
58
|
+
If True, all subgroups will also be dissolved.
|
|
59
|
+
|
|
60
|
+
"""
|
|
61
|
+
return self._edb_object.Ungroup(recursive)
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
This module contains these classes: `EdbLayout` and `Shape`.
|
|
25
25
|
"""
|
|
26
26
|
from pyedb.dotnet.edb_core.cell.hierarchy.component import EDBComponent
|
|
27
|
-
from pyedb.dotnet.edb_core.cell.primitive import Bondwire
|
|
27
|
+
from pyedb.dotnet.edb_core.cell.primitive.bondwire import Bondwire
|
|
28
|
+
from pyedb.dotnet.edb_core.cell.primitive.path import Path
|
|
28
29
|
from pyedb.dotnet.edb_core.cell.terminal.bundle_terminal import BundleTerminal
|
|
29
30
|
from pyedb.dotnet.edb_core.cell.terminal.edge_terminal import EdgeTerminal
|
|
30
31
|
from pyedb.dotnet.edb_core.cell.terminal.padstack_instance_terminal import (
|
|
@@ -42,7 +43,6 @@ from pyedb.dotnet.edb_core.edb_data.nets_data import (
|
|
|
42
43
|
from pyedb.dotnet.edb_core.edb_data.padstacks_data import EDBPadstackInstance
|
|
43
44
|
from pyedb.dotnet.edb_core.edb_data.primitives_data import (
|
|
44
45
|
EdbCircle,
|
|
45
|
-
EdbPath,
|
|
46
46
|
EdbPolygon,
|
|
47
47
|
EdbRectangle,
|
|
48
48
|
EdbText,
|
|
@@ -206,26 +206,8 @@ class Layout(ObjBase):
|
|
|
206
206
|
"""
|
|
207
207
|
prims = []
|
|
208
208
|
for p in self._edb_object.Primitives:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
elif p.GetPrimitiveType().ToString() == "Circle":
|
|
212
|
-
prims.append(EdbCircle(p, self._pedb))
|
|
213
|
-
elif p.GetPrimitiveType().ToString() == "Polygon":
|
|
214
|
-
prims.append(EdbPolygon(p, self._pedb))
|
|
215
|
-
elif p.GetPrimitiveType().ToString() == "Path":
|
|
216
|
-
prims.append(EdbPath(p, self._pedb))
|
|
217
|
-
elif p.GetPrimitiveType().ToString() == "Bondwire":
|
|
218
|
-
prims.append(Bondwire(self._pedb, p))
|
|
219
|
-
elif p.GetPrimitiveType().ToString() == "Text":
|
|
220
|
-
prims.append(EdbText(p, self._pedb))
|
|
221
|
-
elif p.GetPrimitiveType().ToString() == "PrimitivePlugin":
|
|
222
|
-
pass
|
|
223
|
-
elif p.GetPrimitiveType().ToString() == "Path3D":
|
|
224
|
-
pass
|
|
225
|
-
elif p.GetPrimitiveType().ToString() == "BoardBendDef":
|
|
226
|
-
pass
|
|
227
|
-
else:
|
|
228
|
-
pass
|
|
209
|
+
obj = self.find_object_by_id(p.GetId())
|
|
210
|
+
prims.append(obj)
|
|
229
211
|
return prims
|
|
230
212
|
|
|
231
213
|
@property
|
|
@@ -293,8 +275,33 @@ class Layout(ObjBase):
|
|
|
293
275
|
ID of the object.
|
|
294
276
|
"""
|
|
295
277
|
obj = self._pedb._edb.Cell.Connectable.FindById(self._edb_object, value)
|
|
278
|
+
if obj is None:
|
|
279
|
+
raise RuntimeError(f"Object Id {value} not found")
|
|
280
|
+
|
|
296
281
|
if obj.GetObjType().ToString() == "PadstackInstance":
|
|
297
|
-
return EDBPadstackInstance(obj, self._pedb)
|
|
282
|
+
return EDBPadstackInstance(obj, self._pedb)
|
|
283
|
+
|
|
284
|
+
if obj.GetObjType().ToString() == "Primitive":
|
|
285
|
+
if obj.GetPrimitiveType().ToString() == "Rectangle":
|
|
286
|
+
return EdbRectangle(obj, self._pedb)
|
|
287
|
+
elif obj.GetPrimitiveType().ToString() == "Circle":
|
|
288
|
+
return EdbCircle(obj, self._pedb)
|
|
289
|
+
elif obj.GetPrimitiveType().ToString() == "Polygon":
|
|
290
|
+
return EdbPolygon(obj, self._pedb)
|
|
291
|
+
elif obj.GetPrimitiveType().ToString() == "Path":
|
|
292
|
+
return Path(self._pedb, obj)
|
|
293
|
+
elif obj.GetPrimitiveType().ToString() == "Bondwire":
|
|
294
|
+
return Bondwire(self._pedb, obj)
|
|
295
|
+
elif obj.GetPrimitiveType().ToString() == "Text":
|
|
296
|
+
return EdbText(obj, self._pedb)
|
|
297
|
+
elif obj.GetPrimitiveType().ToString() == "PrimitivePlugin":
|
|
298
|
+
pass
|
|
299
|
+
elif obj.GetPrimitiveType().ToString() == "Path3D":
|
|
300
|
+
pass
|
|
301
|
+
elif obj.GetPrimitiveType().ToString() == "BoardBendDef":
|
|
302
|
+
pass
|
|
303
|
+
else:
|
|
304
|
+
pass
|
|
298
305
|
|
|
299
306
|
def find_net_by_name(self, value: str):
|
|
300
307
|
"""Find a net object by name
|
|
@@ -27,15 +27,6 @@ from pyedb.dotnet.edb_core.utilities.obj_base import ObjBase
|
|
|
27
27
|
class LayoutObj(ObjBase):
|
|
28
28
|
"""Manages EDB functionalities for the layout object."""
|
|
29
29
|
|
|
30
|
-
def __getattr__(self, key): # pragma: no cover
|
|
31
|
-
try:
|
|
32
|
-
return super().__getattribute__(key)
|
|
33
|
-
except AttributeError:
|
|
34
|
-
try:
|
|
35
|
-
return getattr(self._edb_object, key)
|
|
36
|
-
except AttributeError:
|
|
37
|
-
raise AttributeError(f"Attribute '{key}' not present")
|
|
38
|
-
|
|
39
30
|
def __init__(self, pedb, edb_object):
|
|
40
31
|
super().__init__(pedb, edb_object)
|
|
41
32
|
|
|
@@ -20,152 +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.edb_core.cell.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class Primitive(Connectable):
|
|
27
|
-
"""Manages EDB functionalities for a primitives.
|
|
28
|
-
It inherits EDB Object properties.
|
|
29
|
-
|
|
30
|
-
Examples
|
|
31
|
-
--------
|
|
32
|
-
>>> from pyedb import Edb
|
|
33
|
-
>>> edb = Edb(myedb, edbversion="2021.2")
|
|
34
|
-
>>> edb_prim = edb.modeler.primitives[0]
|
|
35
|
-
>>> edb_prim.is_void # Class Property
|
|
36
|
-
>>> edb_prim.IsVoid() # EDB Object Property
|
|
37
|
-
"""
|
|
38
|
-
|
|
39
|
-
def __init__(self, pedb, edb_object):
|
|
40
|
-
super().__init__(pedb, edb_object)
|
|
41
|
-
self._app = self._pedb
|
|
42
|
-
self._core_stackup = pedb.stackup
|
|
43
|
-
self._core_net = pedb.nets
|
|
44
|
-
self.primitive_object = self._edb_object
|
|
45
|
-
|
|
46
|
-
bondwire_type = self._pedb._edb.Cell.Primitive.BondwireType
|
|
47
|
-
self._bondwire_type = {
|
|
48
|
-
"invalid": bondwire_type.Invalid,
|
|
49
|
-
"apd": bondwire_type.ApdBondwire,
|
|
50
|
-
"jedec_4": bondwire_type.Jedec4Bondwire,
|
|
51
|
-
"jedec_5": bondwire_type.Jedec5Bondwire,
|
|
52
|
-
"num_of_bondwire_type": bondwire_type.NumOfBondwireType,
|
|
53
|
-
}
|
|
54
|
-
bondwire_cross_section_type = self._pedb._edb.Cell.Primitive.BondwireCrossSectionType
|
|
55
|
-
self._bondwire_cross_section_type = {
|
|
56
|
-
"invalid": bondwire_cross_section_type.Invalid,
|
|
57
|
-
"round": bondwire_cross_section_type.BondwireRound,
|
|
58
|
-
"rectangle": bondwire_cross_section_type.BondwireRectangle,
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@property
|
|
62
|
-
def type(self):
|
|
63
|
-
"""Return the type of the primitive.
|
|
64
|
-
|
|
65
|
-
Expected output is among ``"Circle"``, ``"Rectangle"``,``"Polygon"``,``"Path"`` or ``"Bondwire"``.
|
|
66
|
-
|
|
67
|
-
Returns
|
|
68
|
-
-------
|
|
69
|
-
str
|
|
70
|
-
"""
|
|
71
|
-
try:
|
|
72
|
-
return self._edb_object.GetPrimitiveType().ToString()
|
|
73
|
-
except AttributeError: # pragma: no cover
|
|
74
|
-
return ""
|
|
75
|
-
|
|
76
|
-
@property
|
|
77
|
-
def primitive_type(self):
|
|
78
|
-
"""Return the type of the primitive.
|
|
79
|
-
|
|
80
|
-
Expected output is among ``"circle"``, ``"rectangle"``,``"polygon"``,``"path"`` or ``"bondwire"``.
|
|
81
|
-
|
|
82
|
-
Returns
|
|
83
|
-
-------
|
|
84
|
-
str
|
|
85
|
-
"""
|
|
86
|
-
return self._edb_object.GetPrimitiveType().ToString().lower()
|
|
87
|
-
|
|
88
|
-
@property
|
|
89
|
-
def net_name(self):
|
|
90
|
-
"""Get the primitive net name.
|
|
91
|
-
|
|
92
|
-
Returns
|
|
93
|
-
-------
|
|
94
|
-
str
|
|
95
|
-
"""
|
|
96
|
-
return self.net.GetName()
|
|
97
|
-
|
|
98
|
-
@net_name.setter
|
|
99
|
-
def net_name(self, name):
|
|
100
|
-
if isinstance(name, str):
|
|
101
|
-
net = self._app.nets.nets[name].net_object
|
|
102
|
-
self.primitive_object.SetNet(net)
|
|
103
|
-
else:
|
|
104
|
-
try:
|
|
105
|
-
self.net = name.name
|
|
106
|
-
except: # pragma: no cover
|
|
107
|
-
self._app.logger.error("Failed to set net name.")
|
|
108
|
-
|
|
109
|
-
@property
|
|
110
|
-
def layer(self):
|
|
111
|
-
"""Get the primitive edb layer object."""
|
|
112
|
-
try:
|
|
113
|
-
layer_name = self.primitive_object.GetLayer().GetName()
|
|
114
|
-
return self._pedb.stackup.layers[layer_name]
|
|
115
|
-
except (KeyError, AttributeError): # pragma: no cover
|
|
116
|
-
return None
|
|
117
|
-
|
|
118
|
-
@property
|
|
119
|
-
def layer_name(self):
|
|
120
|
-
"""Get the primitive layer name.
|
|
121
|
-
|
|
122
|
-
Returns
|
|
123
|
-
-------
|
|
124
|
-
str
|
|
125
|
-
"""
|
|
126
|
-
try:
|
|
127
|
-
return self.layer.name
|
|
128
|
-
except (KeyError, AttributeError): # pragma: no cover
|
|
129
|
-
return None
|
|
130
|
-
|
|
131
|
-
@layer_name.setter
|
|
132
|
-
def layer_name(self, val):
|
|
133
|
-
layer_list = list(self._core_stackup.layers.keys())
|
|
134
|
-
if isinstance(val, str) and val in layer_list:
|
|
135
|
-
layer = self._core_stackup.layers[val]._edb_layer
|
|
136
|
-
if layer:
|
|
137
|
-
self.primitive_object.SetLayer(layer)
|
|
138
|
-
else:
|
|
139
|
-
raise AttributeError("Layer {} not found.".format(val))
|
|
140
|
-
elif isinstance(val, type(self._core_stackup.layers[layer_list[0]])):
|
|
141
|
-
try:
|
|
142
|
-
self.primitive_object.SetLayer(val._edb_layer)
|
|
143
|
-
except:
|
|
144
|
-
raise AttributeError("Failed to assign new layer on primitive.")
|
|
145
|
-
else:
|
|
146
|
-
raise AttributeError("Invalid input value")
|
|
147
|
-
|
|
148
|
-
@property
|
|
149
|
-
def is_void(self):
|
|
150
|
-
"""Either if the primitive is a void or not.
|
|
151
|
-
|
|
152
|
-
Returns
|
|
153
|
-
-------
|
|
154
|
-
bool
|
|
155
|
-
"""
|
|
156
|
-
try:
|
|
157
|
-
return self._edb_object.IsVoid()
|
|
158
|
-
except AttributeError: # pragma: no cover
|
|
159
|
-
return None
|
|
160
|
-
|
|
161
|
-
def get_connected_objects(self):
|
|
162
|
-
"""Get connected objects.
|
|
163
|
-
|
|
164
|
-
Returns
|
|
165
|
-
-------
|
|
166
|
-
list
|
|
167
|
-
"""
|
|
168
|
-
return self._pedb.get_connected_objects(self._layout_obj_instance)
|
|
23
|
+
from pyedb.dotnet.edb_core.cell.primitive.primitive import Primitive
|
|
169
24
|
|
|
170
25
|
|
|
171
26
|
class Bondwire(Primitive):
|