pyedb 0.52.0__tar.gz → 0.54.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.52.0 → pyedb-0.54.0}/PKG-INFO +15 -13
- {pyedb-0.52.0 → pyedb-0.54.0}/README.md +1 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/pyproject.toml +12 -12
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/__init__.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_common.py +12 -15
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_data.py +2 -2
- pyedb-0.54.0/src/pyedb/configuration/cfg_modeler.py +202 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_ports_sources.py +6 -8
- pyedb-0.54.0/src/pyedb/configuration/cfg_stackup.py +103 -0
- pyedb-0.54.0/src/pyedb/configuration/configuration.py +563 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/model.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/layout.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/layout_obj.py +3 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/path.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/primitive.py +8 -8
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/point_terminal.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/terminal.py +24 -26
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/components.py +33 -27
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/component_def.py +3 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/component_model.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/package_def.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/database.py +47 -38
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/primitive.py +16 -16
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/hfss_extent_info.py +6 -6
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/layer_data.py +17 -15
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/padstacks_data.py +12 -12
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/sources.py +6 -6
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/variables.py +7 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/point_data.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/polygon_data.py +2 -4
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/hfss.py +7 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/materials.py +2 -2
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/modeler.py +8 -11
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/nets.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/padstack.py +72 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/settings.py +24 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/io/siwave.py +26 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/siwave.py +19 -5
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/stackup.py +80 -137
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/heatsink.py +4 -4
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/obj_base.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/simulation_setup.py +1 -1
- pyedb-0.54.0/src/pyedb/dotnet/database/utilities/siwave_cpa_simulation_setup.py +894 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/siwave_simulation_setup.py +15 -0
- pyedb-0.54.0/src/pyedb/dotnet/database/utilities/value.py +116 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/edb.py +58 -45
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/design_types.py +39 -1
- pyedb-0.54.0/src/pyedb/generic/grpc_warnings.py +5 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/components.py +155 -98
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/control_file.py +240 -193
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/materials.py +23 -30
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/package_def.py +15 -15
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/padstack_def.py +51 -51
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definitions.py +7 -5
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/arc_data.py +7 -5
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/point_3d_data.py +8 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/polygon_data.py +3 -2
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/component.py +43 -38
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/pin_pair_model.py +15 -14
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/pingroup.py +9 -9
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layers/stackup_layer.py +45 -44
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/layout.py +9 -8
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/voltage_regulator.py +7 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout_validation.py +13 -12
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/modeler.py +156 -131
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/nets.py +42 -31
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/padstacks.py +270 -175
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/ports/ports.py +5 -6
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/bondwire.py +8 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/circle.py +4 -4
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/padstack_instance.py +18 -18
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/path.py +7 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/polygon.py +3 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/primitive.py +13 -17
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/rectangle.py +13 -13
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +10 -0
- pyedb-0.54.0/src/pyedb/grpc/database/simulation_setup/siwave_cpa_simulation_setup.py +961 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +17 -1
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/siwave.py +44 -24
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/source_excitations.py +333 -229
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/stackup.py +164 -147
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/bundle_terminal.py +17 -7
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/edge_terminal.py +10 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/padstack_instance_terminal.py +15 -4
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/pingroup_terminal.py +11 -10
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/point_terminal.py +4 -3
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/terminal.py +9 -9
- pyedb-0.54.0/src/pyedb/grpc/database/utility/value.py +109 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/edb.py +129 -45
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/edb_init.py +0 -7
- pyedb-0.54.0/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
- pyedb-0.54.0/src/pyedb/siwave_core/cpa/simulation_setup_data_model.py +132 -0
- pyedb-0.54.0/src/pyedb/siwave_core/product_properties.py +198 -0
- pyedb-0.52.0/src/pyedb/configuration/cfg_modeler.py +0 -273
- pyedb-0.52.0/src/pyedb/configuration/cfg_stackup.py +0 -290
- pyedb-0.52.0/src/pyedb/configuration/configuration.py +0 -461
- {pyedb-0.52.0 → pyedb-0.54.0}/LICENSE +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/common/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/common/nets.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_components.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_general.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_nets.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_operations.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_setup.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/clr_module.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/Variables.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/connectable.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/component.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/netlist_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/spice_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/bondwire.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/bundle_terminal.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/edge_terminal.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/voltage_regulator.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/definition_obj.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/definitions.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/control_file.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/design_options.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/edbvalue.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/nets_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/ports.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/simulation_configuration.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/utilities.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/general.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/layout_obj_instance.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/layout_validation.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/net_class.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/sweep_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/io/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/hfss_simulation_setup.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/edb_logger.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/exceptions.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/extensions/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/extensions/via_design_backend.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/constants.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/data_handlers.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/filesystem.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/general_methods.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/plot.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/process.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/settings.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database → pyedb-0.54.0/src/pyedb/grpc}/__init__.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/definition → pyedb-0.54.0/src/pyedb/grpc/database}/__init__.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/geometry → pyedb-0.54.0/src/pyedb/grpc/database/definition}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_def.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_pin.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/n_port_component_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/general.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/hierarchy → pyedb-0.54.0/src/pyedb/grpc/database/geometry}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/point_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hfss.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/layers → pyedb-0.54.0/src/pyedb/grpc/database/hierarchy}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/netlist_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/s_parameter_model.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/spice_model.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/layout → pyedb-0.54.0/src/pyedb/grpc/database/layers}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layers/layer.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/net → pyedb-0.54.0/src/pyedb/grpc/database/layout}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/cell.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/ports → pyedb-0.54.0/src/pyedb/grpc/database/net}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/differential_pair.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/extended_net.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/net.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/net_class.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/simulation_setup → pyedb-0.54.0/src/pyedb/grpc/database/ports}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/__init__.py +0 -0
- {pyedb-0.52.0/src/pyedb/grpc/database/terminal → pyedb-0.54.0/src/pyedb/grpc/database/simulation_setup}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/adaptive_frequency.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_settings_options.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/mesh_operation.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/sweep_data.py +0 -0
- {pyedb-0.52.0/src/pyedb/ipc2581 → pyedb-0.54.0/src/pyedb/grpc/database/terminal}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/constants.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/heat_sink.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/hfss_extent_info.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/layout_statistics.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/rlc.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/sources.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/sweep_data_distribution.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/xml_control_file.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/rpc_session.py +0 -0
- {pyedb-0.52.0/src/pyedb/ipc2581/bom → pyedb-0.54.0/src/pyedb/ipc2581}/__init__.py +0 -0
- {pyedb-0.52.0/src/pyedb/ipc2581/content → pyedb-0.54.0/src/pyedb/ipc2581/bom}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
- {pyedb-0.52.0/src/pyedb/ipc2581/ecad → pyedb-0.54.0/src/pyedb/ipc2581/content}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/color.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/content.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/fill.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
- {pyedb-0.52.0/src/pyedb/ipc2581/ecad/cad_data → pyedb-0.54.0/src/pyedb/ipc2581/ecad}/__init__.py +0 -0
- {pyedb-0.52.0/src/pyedb/misc → pyedb-0.54.0/src/pyedb/ipc2581/ecad/cad_data}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/history_record.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
- {pyedb-0.52.0/src/pyedb/misc/siw_feature_config → pyedb-0.54.0/src/pyedb/misc}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/downloads.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/misc.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
- {pyedb-0.52.0/src/pyedb/misc/siw_feature_config/emc → pyedb-0.54.0/src/pyedb/misc/siw_feature_config}/__init__.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/utilities.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/modeler/geometry_operators.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/siwave.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/siwave_core/icepak.py +0 -0
- {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.54.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>
|
|
@@ -15,25 +15,26 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
License-File: LICENSE
|
|
18
19
|
Requires-Dist: cffi>=1.16.0,<1.18; platform_system=='Linux'
|
|
19
20
|
Requires-Dist: pywin32 >= 303;platform_system=='Windows'
|
|
20
21
|
Requires-Dist: ansys-pythonnet >= 3.1.0rc4
|
|
21
22
|
Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
|
|
22
23
|
Requires-Dist: numpy>=1.20.0,<3
|
|
23
|
-
Requires-Dist: pandas>=1.1.0,<2.
|
|
24
|
-
Requires-Dist: pydantic>=2.6.4,<2.
|
|
24
|
+
Requires-Dist: pandas>=1.1.0,<2.4
|
|
25
|
+
Requires-Dist: pydantic>=2.6.4,<2.12
|
|
25
26
|
Requires-Dist: Rtree >= 1.2.0
|
|
26
27
|
Requires-Dist: toml == 0.10.2
|
|
27
28
|
Requires-Dist: shapely
|
|
28
29
|
Requires-Dist: scikit-rf
|
|
29
|
-
Requires-Dist: ansys-edb-core>=0.2.0
|
|
30
|
-
Requires-Dist: ansys-api-edb>=0.2.0
|
|
30
|
+
Requires-Dist: ansys-edb-core>=0.2.0
|
|
31
|
+
Requires-Dist: ansys-api-edb>=0.2.0
|
|
31
32
|
Requires-Dist: psutil
|
|
32
33
|
Requires-Dist: ansys-sphinx-theme>=1.0.0,<1.5 ; extra == "doc"
|
|
33
|
-
Requires-Dist: imageio>=2.30.0,<2.
|
|
34
|
+
Requires-Dist: imageio>=2.30.0,<2.38 ; extra == "doc"
|
|
34
35
|
Requires-Dist: ipython>=8.13.0,<8.32 ; extra == "doc"
|
|
35
|
-
Requires-Dist: jupyterlab>=4.0.0,<4.
|
|
36
|
-
Requires-Dist: jupytext>=1.16.0,<1.
|
|
36
|
+
Requires-Dist: jupyterlab>=4.0.0,<4.5 ; extra == "doc"
|
|
37
|
+
Requires-Dist: jupytext>=1.16.0,<1.18 ; extra == "doc"
|
|
37
38
|
Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "doc"
|
|
38
39
|
Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
|
|
39
40
|
Requires-Dist: nbconvert < 7.17 ; extra == "doc"
|
|
@@ -44,15 +45,15 @@ Requires-Dist: Sphinx>=7.1.0,<8.2 ; extra == "doc"
|
|
|
44
45
|
Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
|
|
45
46
|
Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc" and ( python_version > '3.8')
|
|
46
47
|
Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
|
|
47
|
-
Requires-Dist: sphinx-gallery>=0.14.0,<0.
|
|
48
|
+
Requires-Dist: sphinx-gallery>=0.14.0,<0.20 ; extra == "doc"
|
|
48
49
|
Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
|
|
49
50
|
Requires-Dist: shapely ; extra == "doc"
|
|
50
51
|
Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "full"
|
|
51
52
|
Requires-Dist: shapely ; extra == "full"
|
|
52
53
|
Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "tests"
|
|
53
|
-
Requires-Dist: mock>=5.1.0,<5.
|
|
54
|
-
Requires-Dist: pytest>=7.4.0,<8.
|
|
55
|
-
Requires-Dist: pytest-cov>=4.0.0,<6.
|
|
54
|
+
Requires-Dist: mock>=5.1.0,<5.3 ; extra == "tests"
|
|
55
|
+
Requires-Dist: pytest>=7.4.0,<8.5 ; extra == "tests"
|
|
56
|
+
Requires-Dist: pytest-cov>=4.0.0,<6.3 ; extra == "tests"
|
|
56
57
|
Requires-Dist: pytest-xdist>=3.5.0,<3.7 ; extra == "tests"
|
|
57
58
|
Requires-Dist: scikit-rf ; extra == "tests"
|
|
58
59
|
Requires-Dist: shapely ; extra == "tests"
|
|
@@ -77,6 +78,7 @@ Provides-Extra: tests
|
|
|
77
78
|
[](https://docs.pyansys.com/)
|
|
78
79
|
[](https://www.python.org/downloads/)
|
|
79
80
|
[](https://opensource.org/licenses/MIT)
|
|
81
|
+
[](https://deepwiki.com/ansys/pyedb)
|
|
80
82
|
|
|
81
83
|
## What is PyEDB?
|
|
82
84
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
[](https://docs.pyansys.com/)
|
|
11
11
|
[](https://www.python.org/downloads/)
|
|
12
12
|
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
[](https://deepwiki.com/ansys/pyedb)
|
|
13
14
|
|
|
14
15
|
## What is PyEDB?
|
|
15
16
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["flit_core >=3.2,<3.
|
|
2
|
+
requires = ["flit_core >=3.2,<3.13"] # THIS SHOULD BE REVERTED TO '["flit_core >=3.2,<4"]'
|
|
3
3
|
build-backend = "flit_core.buildapi"
|
|
4
4
|
|
|
5
5
|
|
|
@@ -30,33 +30,33 @@ dependencies = [
|
|
|
30
30
|
"ansys-pythonnet >= 3.1.0rc4",
|
|
31
31
|
"dotnetcore2 ==3.1.23;platform_system=='Linux'",
|
|
32
32
|
"numpy>=1.20.0,<3",
|
|
33
|
-
"pandas>=1.1.0,<2.
|
|
34
|
-
"pydantic>=2.6.4,<2.
|
|
33
|
+
"pandas>=1.1.0,<2.4",
|
|
34
|
+
"pydantic>=2.6.4,<2.12",
|
|
35
35
|
"Rtree >= 1.2.0",
|
|
36
36
|
"toml == 0.10.2",
|
|
37
37
|
"shapely",
|
|
38
38
|
"scikit-rf",
|
|
39
|
-
"ansys-edb-core>=0.2.0
|
|
40
|
-
"ansys-api-edb>=0.2.0
|
|
39
|
+
"ansys-edb-core>=0.2.0",
|
|
40
|
+
"ansys-api-edb>=0.2.0",
|
|
41
41
|
"psutil",
|
|
42
42
|
]
|
|
43
43
|
|
|
44
44
|
[project.optional-dependencies]
|
|
45
45
|
tests = [
|
|
46
46
|
"matplotlib>=3.5.0,<3.11",
|
|
47
|
-
"mock>=5.1.0,<5.
|
|
48
|
-
"pytest>=7.4.0,<8.
|
|
49
|
-
"pytest-cov>=4.0.0,<6.
|
|
47
|
+
"mock>=5.1.0,<5.3",
|
|
48
|
+
"pytest>=7.4.0,<8.5",
|
|
49
|
+
"pytest-cov>=4.0.0,<6.3",
|
|
50
50
|
"pytest-xdist>=3.5.0,<3.7",
|
|
51
51
|
"scikit-rf",
|
|
52
52
|
"shapely"
|
|
53
53
|
]
|
|
54
54
|
doc = [
|
|
55
55
|
"ansys-sphinx-theme>=1.0.0,<1.5",
|
|
56
|
-
"imageio>=2.30.0,<2.
|
|
56
|
+
"imageio>=2.30.0,<2.38",
|
|
57
57
|
"ipython>=8.13.0,<8.32",
|
|
58
|
-
"jupyterlab>=4.0.0,<4.
|
|
59
|
-
"jupytext>=1.16.0,<1.
|
|
58
|
+
"jupyterlab>=4.0.0,<4.5",
|
|
59
|
+
"jupytext>=1.16.0,<1.18",
|
|
60
60
|
"matplotlib>=3.5.0,<3.11",
|
|
61
61
|
"nbsphinx>=0.9.0,<0.10",
|
|
62
62
|
"nbconvert < 7.17",
|
|
@@ -68,7 +68,7 @@ doc = [
|
|
|
68
68
|
"sphinx-autobuild==2021.3.14; python_version == '3.8'",
|
|
69
69
|
"sphinx-autobuild==2024.10.3; python_version > '3.8'",
|
|
70
70
|
"sphinx-copybutton>=0.5.0,<0.6",
|
|
71
|
-
"sphinx-gallery>=0.14.0,<0.
|
|
71
|
+
"sphinx-gallery>=0.14.0,<0.20",
|
|
72
72
|
"sphinx_design>=0.4.0,<0.7",
|
|
73
73
|
"shapely",
|
|
74
74
|
|
|
@@ -20,6 +20,10 @@
|
|
|
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 typing import List, Optional, Union
|
|
24
|
+
|
|
25
|
+
from pydantic import BaseModel
|
|
26
|
+
|
|
23
27
|
|
|
24
28
|
class CfgBase:
|
|
25
29
|
protected_attributes = ["pedb", "pyedb_obj", "api"]
|
|
@@ -41,21 +45,14 @@ class CfgBase:
|
|
|
41
45
|
setattr(pedb_object, attr, value)
|
|
42
46
|
|
|
43
47
|
|
|
44
|
-
class CfgVar:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
self.description = kwargs.get("description", "")
|
|
48
|
+
class CfgVar(BaseModel):
|
|
49
|
+
name: str
|
|
50
|
+
value: Union[int, float, str]
|
|
51
|
+
description: Optional[str] = ""
|
|
49
52
|
|
|
50
53
|
|
|
51
|
-
class CfgVariables:
|
|
52
|
-
|
|
53
|
-
self._pedb = pedb
|
|
54
|
-
self.variables = [CfgVar(**i) for i in data]
|
|
54
|
+
class CfgVariables(BaseModel):
|
|
55
|
+
variables: List[CfgVar] = []
|
|
55
56
|
|
|
56
|
-
def
|
|
57
|
-
|
|
58
|
-
if i.name.startswith("$"):
|
|
59
|
-
self._pedb.add_project_variable(i.name, i.value)
|
|
60
|
-
else:
|
|
61
|
-
self._pedb.add_design_variable(i.name, i.value)
|
|
57
|
+
def add_variable(self, name, value, description=""):
|
|
58
|
+
self.variables.append(CfgVar(name=name, value=value, description=description))
|
|
@@ -63,7 +63,7 @@ class CfgData(object):
|
|
|
63
63
|
|
|
64
64
|
self.setups = CfgSetups(self._pedb, setups_data=kwargs.get("setups", []))
|
|
65
65
|
|
|
66
|
-
self.stackup = CfgStackup(
|
|
66
|
+
self.stackup = CfgStackup(**kwargs.get("stackup", {}))
|
|
67
67
|
|
|
68
68
|
self.s_parameters = CfgSParameters(self._pedb, kwargs.get("s_parameters", []), self.general.s_parameter_library)
|
|
69
69
|
|
|
@@ -77,6 +77,6 @@ class CfgData(object):
|
|
|
77
77
|
|
|
78
78
|
self.modeler = CfgModeler(self._pedb, data=kwargs.get("modeler", {}))
|
|
79
79
|
|
|
80
|
-
self.variables = CfgVariables(
|
|
80
|
+
self.variables = CfgVariables(variables=kwargs.get("variables", []))
|
|
81
81
|
|
|
82
82
|
self.probes = CfgProbes(self._pedb, data=kwargs.get("probes", []))
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
23
|
+
from dataclasses import dataclass, field
|
|
24
|
+
from typing import Any, Dict, List, Optional, TypedDict, Union
|
|
25
|
+
|
|
26
|
+
from pyedb.configuration.cfg_components import CfgComponent
|
|
27
|
+
from pyedb.configuration.cfg_padstacks import CfgPadstackDefinition, CfgPadstackInstance
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass
|
|
31
|
+
class CfgTrace:
|
|
32
|
+
name: str
|
|
33
|
+
layer: str
|
|
34
|
+
path: List[List[Union[float, str]]]
|
|
35
|
+
width: str
|
|
36
|
+
net_name: str
|
|
37
|
+
start_cap_style: str
|
|
38
|
+
end_cap_style: str
|
|
39
|
+
corner_style: str
|
|
40
|
+
incremental_path: List[List[Union[float, str]]]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass
|
|
44
|
+
class CfgPlane:
|
|
45
|
+
name: str = ""
|
|
46
|
+
layer: str = ""
|
|
47
|
+
net_name: str = ""
|
|
48
|
+
type: str = "rectangle"
|
|
49
|
+
|
|
50
|
+
# rectangle
|
|
51
|
+
lower_left_point: List[Union[float, str]] = field(default_factory=list)
|
|
52
|
+
upper_right_point: List[Union[float, str]] = field(default_factory=list)
|
|
53
|
+
corner_radius: Union[float, str] = 0
|
|
54
|
+
rotation: Union[float, str] = 0
|
|
55
|
+
voids: List[Any] = field(default_factory=list)
|
|
56
|
+
|
|
57
|
+
# polygon
|
|
58
|
+
points: List[List[float]] = field(default_factory=list)
|
|
59
|
+
|
|
60
|
+
# circle
|
|
61
|
+
radius: Union[float, str] = 0
|
|
62
|
+
position: List[float] = field(default_factory=lambda: [0, 0])
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class PrimitivesToDeleteDict(TypedDict, total=False):
|
|
66
|
+
layer_name: List[str]
|
|
67
|
+
name: List[str]
|
|
68
|
+
net_name: List[str]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@dataclass
|
|
72
|
+
class CfgModeler:
|
|
73
|
+
"""Manage configuration general settings."""
|
|
74
|
+
|
|
75
|
+
traces: List[CfgTrace] = field(default_factory=list)
|
|
76
|
+
planes: List[CfgPlane] = field(default_factory=list)
|
|
77
|
+
|
|
78
|
+
def __init__(self, pedb, data: Dict):
|
|
79
|
+
self._pedb = pedb
|
|
80
|
+
self.traces = []
|
|
81
|
+
self.planes = []
|
|
82
|
+
|
|
83
|
+
self.padstack_defs = [CfgPadstackDefinition(pedb, None, **i) for i in data.get("padstack_definitions", [])]
|
|
84
|
+
self.padstack_instances = [CfgPadstackInstance(pedb, None, **i) for i in data.get("padstack_instances", [])]
|
|
85
|
+
|
|
86
|
+
self.components = [CfgComponent(pedb, None, **i) for i in data.get("components", [])]
|
|
87
|
+
self.primitives_to_delete: PrimitivesToDeleteDict = data.get(
|
|
88
|
+
"primitives_to_delete", {"layer_name": [], "name": [], "net_name": []}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
for trace_data in data.get("traces", []):
|
|
92
|
+
self.add_trace(**trace_data)
|
|
93
|
+
|
|
94
|
+
for plane_data in data.get("planes", []):
|
|
95
|
+
shape = plane_data.pop("type")
|
|
96
|
+
if shape == "rectangle":
|
|
97
|
+
self.add_rectangular_plane(**plane_data)
|
|
98
|
+
elif shape == "circle":
|
|
99
|
+
self.add_circular_plane(**plane_data)
|
|
100
|
+
elif shape == "polygon":
|
|
101
|
+
self.add_polygon_plane(**plane_data)
|
|
102
|
+
|
|
103
|
+
def add_trace(
|
|
104
|
+
self,
|
|
105
|
+
layer: str,
|
|
106
|
+
width: str,
|
|
107
|
+
name: str,
|
|
108
|
+
net_name: str = "",
|
|
109
|
+
start_cap_style: str = "round",
|
|
110
|
+
end_cap_style: str = "round",
|
|
111
|
+
corner_style: str = "sharp",
|
|
112
|
+
path: Optional[Any] = None,
|
|
113
|
+
incremental_path: Optional[Any] = None,
|
|
114
|
+
):
|
|
115
|
+
"""Add a trace from a dictionary of parameters."""
|
|
116
|
+
|
|
117
|
+
trace_obj = CfgTrace(
|
|
118
|
+
name,
|
|
119
|
+
layer,
|
|
120
|
+
path,
|
|
121
|
+
width,
|
|
122
|
+
net_name,
|
|
123
|
+
start_cap_style,
|
|
124
|
+
end_cap_style,
|
|
125
|
+
corner_style,
|
|
126
|
+
incremental_path,
|
|
127
|
+
)
|
|
128
|
+
self.traces.append(trace_obj)
|
|
129
|
+
return name
|
|
130
|
+
|
|
131
|
+
def add_rectangular_plane(
|
|
132
|
+
self,
|
|
133
|
+
layer: str,
|
|
134
|
+
name: str = "",
|
|
135
|
+
net_name: str = "",
|
|
136
|
+
lower_left_point: List[float] = "",
|
|
137
|
+
upper_right_point: List[float] = "",
|
|
138
|
+
corner_radius: float = 0,
|
|
139
|
+
rotation: float = 0,
|
|
140
|
+
voids: Optional[List[Any]] = "",
|
|
141
|
+
):
|
|
142
|
+
plane_obj = CfgPlane(
|
|
143
|
+
name=name,
|
|
144
|
+
layer=layer,
|
|
145
|
+
net_name=net_name,
|
|
146
|
+
type="rectangle",
|
|
147
|
+
lower_left_point=lower_left_point,
|
|
148
|
+
upper_right_point=upper_right_point,
|
|
149
|
+
corner_radius=corner_radius,
|
|
150
|
+
rotation=rotation,
|
|
151
|
+
voids=voids,
|
|
152
|
+
)
|
|
153
|
+
self.planes.append(plane_obj)
|
|
154
|
+
return name
|
|
155
|
+
|
|
156
|
+
def add_circular_plane(
|
|
157
|
+
self,
|
|
158
|
+
layer: str,
|
|
159
|
+
name: str = "",
|
|
160
|
+
net_name: str = "",
|
|
161
|
+
corner_radius: float = 0,
|
|
162
|
+
rotation: float = 0,
|
|
163
|
+
voids: Optional[List[Any]] = "",
|
|
164
|
+
radius: Union[float, str] = 0,
|
|
165
|
+
position: List[Union[float, str]] = "",
|
|
166
|
+
):
|
|
167
|
+
plane_obj = CfgPlane(
|
|
168
|
+
name=name,
|
|
169
|
+
layer=layer,
|
|
170
|
+
net_name=net_name,
|
|
171
|
+
type="circle",
|
|
172
|
+
corner_radius=corner_radius,
|
|
173
|
+
rotation=rotation,
|
|
174
|
+
voids=voids,
|
|
175
|
+
radius=radius,
|
|
176
|
+
position=position,
|
|
177
|
+
)
|
|
178
|
+
self.planes.append(plane_obj)
|
|
179
|
+
return name
|
|
180
|
+
|
|
181
|
+
def add_polygon_plane(
|
|
182
|
+
self,
|
|
183
|
+
layer: str,
|
|
184
|
+
name: str = "",
|
|
185
|
+
net_name: str = "",
|
|
186
|
+
corner_radius: float = 0,
|
|
187
|
+
rotation: float = 0,
|
|
188
|
+
voids: Optional[List[Any]] = "",
|
|
189
|
+
points: List[List[float]] = "",
|
|
190
|
+
):
|
|
191
|
+
plane_obj = CfgPlane(
|
|
192
|
+
name=name,
|
|
193
|
+
layer=layer,
|
|
194
|
+
net_name=net_name,
|
|
195
|
+
type="polygon",
|
|
196
|
+
corner_radius=corner_radius,
|
|
197
|
+
rotation=rotation,
|
|
198
|
+
voids=voids,
|
|
199
|
+
points=points,
|
|
200
|
+
)
|
|
201
|
+
self.planes.append(plane_obj)
|
|
202
|
+
return name
|
|
@@ -58,7 +58,7 @@ class CfgTerminalInfo(CfgBase):
|
|
|
58
58
|
self.contact_type = kwargs.get("contact_type", "default") # options are full, center, quad, inline
|
|
59
59
|
contact_radius = "0.1mm" if kwargs.get("contact_radius") is None else kwargs.get("contact_radius")
|
|
60
60
|
|
|
61
|
-
self.contact_radius = self._pedb.
|
|
61
|
+
self.contact_radius = self._pedb.value(contact_radius)
|
|
62
62
|
self.num_of_contact = kwargs.get("num_of_contact", 4)
|
|
63
63
|
self.contact_expansion = kwargs.get("contact_expansion", 1)
|
|
64
64
|
|
|
@@ -678,11 +678,9 @@ class CfgEdgePort:
|
|
|
678
678
|
def set_parameters_to_edb(self):
|
|
679
679
|
point_on_edge = PointData(self._pedb, x=self.point_on_edge[0], y=self.point_on_edge[1])
|
|
680
680
|
primitive = self._pedb.layout.primitives_by_aedt_name[self.primitive_name]
|
|
681
|
-
pos_edge = self._pedb.
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
pos_edge = convert_py_list_to_net_list(pos_edge, self._pedb.edb_api.cell.terminal.Edge)
|
|
685
|
-
edge_term = self._pedb.edb_api.cell.terminal.EdgeTerminal.Create(
|
|
681
|
+
pos_edge = self._pedb.core.cell.terminal.PrimitiveEdge.Create(primitive._edb_object, point_on_edge._edb_object)
|
|
682
|
+
pos_edge = convert_py_list_to_net_list(pos_edge, self._pedb.core.cell.terminal.Edge)
|
|
683
|
+
edge_term = self._pedb.core.cell.terminal.EdgeTerminal.Create(
|
|
686
684
|
primitive._edb_object.GetLayout(),
|
|
687
685
|
primitive._edb_object.GetNet(),
|
|
688
686
|
self.name,
|
|
@@ -755,9 +753,9 @@ class CfgDiffWavePort:
|
|
|
755
753
|
pos_term = self.positive_port.set_parameters_to_edb()
|
|
756
754
|
neg_term = self.negative_port.set_parameters_to_edb()
|
|
757
755
|
edb_list = convert_py_list_to_net_list(
|
|
758
|
-
[pos_term._edb_object, neg_term._edb_object], self._pedb.
|
|
756
|
+
[pos_term._edb_object, neg_term._edb_object], self._pedb.core.cell.terminal.Terminal
|
|
759
757
|
)
|
|
760
|
-
_edb_boundle_terminal = self._pedb.
|
|
758
|
+
_edb_boundle_terminal = self._pedb.core.cell.terminal.BundleTerminal.Create(edb_list)
|
|
761
759
|
_edb_boundle_terminal.SetName(self.name)
|
|
762
760
|
pos, neg = list(_edb_boundle_terminal.GetTerminals())
|
|
763
761
|
pos.SetName(self.name + ":T1")
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
from typing import List, Optional, Union
|
|
23
|
+
|
|
24
|
+
from pydantic import BaseModel, Field
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CfgMaterialPropertyThermalModifier(BaseModel):
|
|
28
|
+
property_name: str
|
|
29
|
+
basic_quadratic_c1: float = 0
|
|
30
|
+
basic_quadratic_c2: float = 0
|
|
31
|
+
basic_quadratic_temperature_reference: float = 22
|
|
32
|
+
advanced_quadratic_lower_limit: float = -273.15
|
|
33
|
+
advanced_quadratic_upper_limit: float = 1000
|
|
34
|
+
advanced_quadratic_auto_calculate: bool = True
|
|
35
|
+
advanced_quadratic_lower_constant: float = 1
|
|
36
|
+
advanced_quadratic_upper_constant: float = 1
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class MaterialProperties(BaseModel):
|
|
40
|
+
"""Store material properties."""
|
|
41
|
+
|
|
42
|
+
conductivity: Optional[Union[str, float]] = None
|
|
43
|
+
dielectric_loss_tangent: Optional[Union[str, float]] = None
|
|
44
|
+
magnetic_loss_tangent: Optional[Union[str, float]] = None
|
|
45
|
+
mass_density: Optional[Union[str, float]] = None
|
|
46
|
+
permittivity: Optional[Union[str, float]] = None
|
|
47
|
+
permeability: Optional[Union[str, float]] = None
|
|
48
|
+
poisson_ratio: Optional[Union[str, float]] = None
|
|
49
|
+
specific_heat: Optional[Union[str, float]] = None
|
|
50
|
+
thermal_conductivity: Optional[Union[str, float]] = None
|
|
51
|
+
youngs_modulus: Optional[Union[str, float]] = None
|
|
52
|
+
thermal_expansion_coefficient: Optional[Union[str, float]] = None
|
|
53
|
+
dc_conductivity: Optional[Union[str, float]] = None
|
|
54
|
+
dc_permittivity: Optional[Union[str, float]] = None
|
|
55
|
+
dielectric_model_frequency: Optional[Union[str, float]] = None
|
|
56
|
+
loss_tangent_at_frequency: Optional[Union[str, float]] = None
|
|
57
|
+
permittivity_at_frequency: Optional[Union[str, float]] = None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class CfgMaterial(MaterialProperties):
|
|
61
|
+
name: str
|
|
62
|
+
thermal_modifiers: Optional[list[CfgMaterialPropertyThermalModifier]] = None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class RoughnessSideModel(BaseModel):
|
|
66
|
+
model: str
|
|
67
|
+
nodule_radius: Optional[str] = None # e.g., '0.1um'
|
|
68
|
+
surface_ratio: Optional[str] = None # e.g., '1'
|
|
69
|
+
roughness: Optional[str] = None # e.g., '2um' for non-huray
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class RoughnessModel(BaseModel):
|
|
73
|
+
enabled: Optional[bool] = False
|
|
74
|
+
top: Optional[RoughnessSideModel] = None
|
|
75
|
+
bottom: Optional[RoughnessSideModel] = None
|
|
76
|
+
side: Optional[RoughnessSideModel] = None
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class EtchingModel(BaseModel):
|
|
80
|
+
factor: Optional[Union[float, str]] = 0.5
|
|
81
|
+
etch_power_ground_nets: Optional[bool] = False
|
|
82
|
+
enabled: Optional[bool] = False
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class CfgLayer(BaseModel):
|
|
86
|
+
name: Optional[str] = None
|
|
87
|
+
type: Optional[str] = None
|
|
88
|
+
material: Optional[str] = None
|
|
89
|
+
fill_material: Optional[str] = None
|
|
90
|
+
thickness: Optional[Union[float, str]] = None
|
|
91
|
+
roughness: Optional[RoughnessModel] = None
|
|
92
|
+
etching: Optional[EtchingModel] = None
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class CfgStackup(BaseModel):
|
|
96
|
+
materials: List[CfgMaterial] = Field(default_factory=list)
|
|
97
|
+
layers: List[CfgLayer] = Field(default_factory=list)
|
|
98
|
+
|
|
99
|
+
def add_material(self, name, **kwargs):
|
|
100
|
+
self.materials.append(CfgMaterial(name=name, **kwargs))
|
|
101
|
+
|
|
102
|
+
def add_layer_at_bottom(self, name, **kwargs):
|
|
103
|
+
self.layers.append(CfgLayer(name=name, **kwargs))
|