pyedb 0.39.0__py3-none-any.whl → 0.40.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 +11 -2
- pyedb/configuration/cfg_components.py +2 -0
- pyedb/configuration/cfg_padstacks.py +1 -1
- pyedb/configuration/cfg_ports_sources.py +63 -11
- pyedb/configuration/cfg_stackup.py +22 -1
- pyedb/dotnet/database/cell/terminal/edge_terminal.py +55 -0
- pyedb/dotnet/database/components.py +14 -12
- pyedb/dotnet/database/edb_data/ports.py +0 -55
- pyedb/dotnet/database/materials.py +40 -11
- pyedb/dotnet/database/modeler.py +11 -4
- pyedb/grpc/database/components.py +24 -72
- pyedb/grpc/database/definition/materials.py +16 -1
- pyedb/grpc/database/layout/layout.py +43 -4
- pyedb/grpc/database/layout_validation.py +164 -143
- pyedb/grpc/database/net/net.py +5 -8
- pyedb/grpc/database/padstacks.py +184 -31
- pyedb/grpc/database/primitive/padstack_instance.py +1 -1
- pyedb/grpc/database/source_excitations.py +83 -105
- pyedb/grpc/edb.py +42 -198
- {pyedb-0.39.0.dist-info → pyedb-0.40.0.dist-info}/METADATA +2 -1
- {pyedb-0.39.0.dist-info → pyedb-0.40.0.dist-info}/RECORD +24 -24
- {pyedb-0.39.0.dist-info → pyedb-0.40.0.dist-info}/LICENSE +0 -0
- {pyedb-0.39.0.dist-info → pyedb-0.40.0.dist-info}/WHEEL +0 -0
pyedb/grpc/edb.py
CHANGED
|
@@ -46,6 +46,7 @@ from ansys.edb.core.utility.value import Value as GrpcValue
|
|
|
46
46
|
import rtree
|
|
47
47
|
|
|
48
48
|
from pyedb.configuration.configuration import Configuration
|
|
49
|
+
from pyedb.generic.constants import unit_converter
|
|
49
50
|
from pyedb.generic.general_methods import (
|
|
50
51
|
generate_unique_name,
|
|
51
52
|
get_string_version,
|
|
@@ -192,6 +193,7 @@ class Edb(EdbInit):
|
|
|
192
193
|
edbversion=None,
|
|
193
194
|
isaedtowned=False,
|
|
194
195
|
oproject=None,
|
|
196
|
+
student_version: bool = False,
|
|
195
197
|
use_ppe=False,
|
|
196
198
|
technology_file=None,
|
|
197
199
|
restart_rpc_server=False,
|
|
@@ -2816,189 +2818,6 @@ class Edb(EdbInit):
|
|
|
2816
2818
|
layout_bbox = GrpcPolygonData.bbox_of_polygons(lay_inst_polygon_data)
|
|
2817
2819
|
return [[layout_bbox[0].x.value, layout_bbox[0].y.value], [layout_bbox[1].x.value, layout_bbox[1].y.value]]
|
|
2818
2820
|
|
|
2819
|
-
# def build_simulation_project(self, simulation_setup):
|
|
2820
|
-
# # type: (SimulationConfiguration) -> bool
|
|
2821
|
-
# """Build a ready-to-solve simulation project.
|
|
2822
|
-
#
|
|
2823
|
-
# Parameters
|
|
2824
|
-
# ----------
|
|
2825
|
-
# simulation_setup : :class:`pyedb.dotnet.database.edb_data.simulation_configuration.SimulationConfiguration`.
|
|
2826
|
-
# SimulationConfiguration object that can be instantiated or directly loaded with a
|
|
2827
|
-
# configuration file.
|
|
2828
|
-
#
|
|
2829
|
-
# Returns
|
|
2830
|
-
# -------
|
|
2831
|
-
# bool
|
|
2832
|
-
# ``True`` when successful, False when ``Failed``.
|
|
2833
|
-
#
|
|
2834
|
-
# Examples
|
|
2835
|
-
# --------
|
|
2836
|
-
#
|
|
2837
|
-
# >>> from pyedb import Edb
|
|
2838
|
-
# >>> from pyedb.dotnet.database.edb_data.simulation_configuration import SimulationConfiguration
|
|
2839
|
-
# >>> config_file = path_configuration_file
|
|
2840
|
-
# >>> source_file = path_to_edb_folder
|
|
2841
|
-
# >>> edb = Edb(source_file)
|
|
2842
|
-
# >>> sim_setup = SimulationConfiguration(config_file)
|
|
2843
|
-
# >>> edb.build_simulation_project(sim_setup)
|
|
2844
|
-
# >>> edb.save_edb()
|
|
2845
|
-
# >>> edb.close_edb()
|
|
2846
|
-
# """
|
|
2847
|
-
# self.logger.info("Building simulation project.")
|
|
2848
|
-
# from ansys.edb.core.layout.cell import CellType as GrpcCellType
|
|
2849
|
-
#
|
|
2850
|
-
# legacy_name = self.edbpath
|
|
2851
|
-
# if simulation_setup.output_aedb:
|
|
2852
|
-
# self.save_edb_as(simulation_setup.output_aedb)
|
|
2853
|
-
# if simulation_setup.signal_layer_etching_instances:
|
|
2854
|
-
# for layer in simulation_setup.signal_layer_etching_instances:
|
|
2855
|
-
# if layer in self.stackup.layers:
|
|
2856
|
-
# idx = simulation_setup.signal_layer_etching_instances.index(layer)
|
|
2857
|
-
# if len(simulation_setup.etching_factor_instances) > idx:
|
|
2858
|
-
# self.stackup[layer].etch_factor = float(simulation_setup.etching_factor_instances[idx])
|
|
2859
|
-
#
|
|
2860
|
-
# if not simulation_setup.signal_nets and simulation_setup.components:
|
|
2861
|
-
# nets_to_include = []
|
|
2862
|
-
# pnets = list(self.nets.power.keys())[:]
|
|
2863
|
-
# for el in simulation_setup.components:
|
|
2864
|
-
# nets_to_include.append([i for i in self.components[el].nets if i not in pnets])
|
|
2865
|
-
# simulation_setup.signal_nets = [
|
|
2866
|
-
# i
|
|
2867
|
-
# for i in list(set.intersection(*map(set, nets_to_include)))
|
|
2868
|
-
# if i not in simulation_setup.power_nets and i != ""
|
|
2869
|
-
# ]
|
|
2870
|
-
# self.nets.classify_nets(simulation_setup.power_nets, simulation_setup.signal_nets)
|
|
2871
|
-
# if not simulation_setup.power_nets or not simulation_setup.signal_nets:
|
|
2872
|
-
# self.logger.info("Disabling cutout as no signals or power nets have been defined.")
|
|
2873
|
-
# simulation_setup.do_cutout_subdesign = False
|
|
2874
|
-
# if simulation_setup.do_cutout_subdesign:
|
|
2875
|
-
# self.logger.info(f"Cutting out using method: {simulation_setup.cutout_subdesign_type}")
|
|
2876
|
-
# if simulation_setup.use_default_cutout:
|
|
2877
|
-
# old_cell_name = self.active_cell.name
|
|
2878
|
-
# if self.cutout(
|
|
2879
|
-
# signal_list=simulation_setup.signal_nets,
|
|
2880
|
-
# reference_list=simulation_setup.power_nets,
|
|
2881
|
-
# expansion_size=simulation_setup.cutout_subdesign_expansion,
|
|
2882
|
-
# use_round_corner=simulation_setup.cutout_subdesign_round_corner,
|
|
2883
|
-
# extent_type=simulation_setup.cutout_subdesign_type,
|
|
2884
|
-
# use_pyaedt_cutout=False,
|
|
2885
|
-
# use_pyaedt_extent_computing=False,
|
|
2886
|
-
# ):
|
|
2887
|
-
# self.logger.info("Cutout processed.")
|
|
2888
|
-
# old_cell = self.active_cell.find_by_name(
|
|
2889
|
-
# self.db,
|
|
2890
|
-
# GrpcCellType.CIRCUIT_CELL,
|
|
2891
|
-
# old_cell_name,
|
|
2892
|
-
# )
|
|
2893
|
-
# if old_cell:
|
|
2894
|
-
# old_cell.delete()
|
|
2895
|
-
# else: # pragma: no cover
|
|
2896
|
-
# self.logger.error("Cutout failed.")
|
|
2897
|
-
# else:
|
|
2898
|
-
# self.logger.info(f"Cutting out using method: {simulation_setup.cutout_subdesign_type}")
|
|
2899
|
-
# self.cutout(
|
|
2900
|
-
# signal_list=simulation_setup.signal_nets,
|
|
2901
|
-
# reference_list=simulation_setup.power_nets,
|
|
2902
|
-
# expansion_size=simulation_setup.cutout_subdesign_expansion,
|
|
2903
|
-
# use_round_corner=simulation_setup.cutout_subdesign_round_corner,
|
|
2904
|
-
# extent_type=simulation_setup.cutout_subdesign_type,
|
|
2905
|
-
# use_pyaedt_cutout=True,
|
|
2906
|
-
# use_pyaedt_extent_computing=True,
|
|
2907
|
-
# remove_single_pin_components=True,
|
|
2908
|
-
# )
|
|
2909
|
-
# self.logger.info("Cutout processed.")
|
|
2910
|
-
# else:
|
|
2911
|
-
# if simulation_setup.include_only_selected_nets:
|
|
2912
|
-
# included_nets = simulation_setup.signal_nets + simulation_setup.power_nets
|
|
2913
|
-
# nets_to_remove = [net.name for net in list(self.nets.nets.values()) if not net.name in included_nets]
|
|
2914
|
-
# self.nets.delete(nets_to_remove)
|
|
2915
|
-
# self.logger.info("Deleting existing ports.")
|
|
2916
|
-
# map(lambda port: port.Delete(), self.layout.terminals)
|
|
2917
|
-
# map(lambda pg: pg.delete(), self.layout.pin_groups)
|
|
2918
|
-
# if simulation_setup.solver_type == SolverType.Hfss3dLayout:
|
|
2919
|
-
# if simulation_setup.generate_excitations:
|
|
2920
|
-
# self.logger.info("Creating HFSS ports for signal nets.")
|
|
2921
|
-
# source_type = SourceType.CoaxPort
|
|
2922
|
-
# if not simulation_setup.generate_solder_balls:
|
|
2923
|
-
# source_type = SourceType.CircPort
|
|
2924
|
-
# for cmp in simulation_setup.components:
|
|
2925
|
-
# if isinstance(cmp, str): # keep legacy component
|
|
2926
|
-
# self.components.create_port_on_component(
|
|
2927
|
-
# cmp,
|
|
2928
|
-
# net_list=simulation_setup.signal_nets,
|
|
2929
|
-
# do_pingroup=False,
|
|
2930
|
-
# reference_net=simulation_setup.power_nets,
|
|
2931
|
-
# port_type=source_type,
|
|
2932
|
-
# )
|
|
2933
|
-
# elif isinstance(cmp, dict):
|
|
2934
|
-
# if "refdes" in cmp:
|
|
2935
|
-
# if not "solder_balls_height" in cmp: # pragma no cover
|
|
2936
|
-
# cmp["solder_balls_height"] = None
|
|
2937
|
-
# if not "solder_balls_size" in cmp: # pragma no cover
|
|
2938
|
-
# cmp["solder_balls_size"] = None
|
|
2939
|
-
# cmp["solder_balls_mid_size"] = None
|
|
2940
|
-
# if not "solder_balls_mid_size" in cmp: # pragma no cover
|
|
2941
|
-
# cmp["solder_balls_mid_size"] = None
|
|
2942
|
-
# self.components.create_port_on_component(
|
|
2943
|
-
# cmp["refdes"],
|
|
2944
|
-
# net_list=simulation_setup.signal_nets,
|
|
2945
|
-
# do_pingroup=False,
|
|
2946
|
-
# reference_net=simulation_setup.power_nets,
|
|
2947
|
-
# port_type=source_type,
|
|
2948
|
-
# solder_balls_height=cmp["solder_balls_height"],
|
|
2949
|
-
# solder_balls_size=cmp["solder_balls_size"],
|
|
2950
|
-
# solder_balls_mid_size=cmp["solder_balls_mid_size"],
|
|
2951
|
-
# )
|
|
2952
|
-
# if simulation_setup.generate_solder_balls and not self.hfss.set_coax_port_attributes(
|
|
2953
|
-
# simulation_setup
|
|
2954
|
-
# ): # pragma: no cover
|
|
2955
|
-
# self.logger.error("Failed to configure coaxial port attributes.")
|
|
2956
|
-
# self.logger.info(f"Number of ports: {self.hfss.get_ports_number()}")
|
|
2957
|
-
# self.logger.info("Configure HFSS extents.")
|
|
2958
|
-
# if simulation_setup.generate_solder_balls and simulation_setup.trim_reference_size:
|
|
2959
|
-
# self.logger.info(
|
|
2960
|
-
# f"Trimming the reference plane for coaxial ports: {bool(simulation_setup.trim_reference_size)}"
|
|
2961
|
-
# )
|
|
2962
|
-
# self.hfss.trim_component_reference_size(simulation_setup) # pragma: no cover
|
|
2963
|
-
# self.hfss.configure_hfss_extents(simulation_setup)
|
|
2964
|
-
# if not self.hfss.configure_hfss_analysis_setup(simulation_setup):
|
|
2965
|
-
# self.logger.error("Failed to configure HFSS simulation setup.")
|
|
2966
|
-
# if simulation_setup.solver_type == SolverType.SiwaveSYZ:
|
|
2967
|
-
# if simulation_setup.generate_excitations:
|
|
2968
|
-
# for cmp in simulation_setup.components:
|
|
2969
|
-
# if isinstance(cmp, str): # keep legacy
|
|
2970
|
-
# self.components.create_port_on_component(
|
|
2971
|
-
# cmp,
|
|
2972
|
-
# net_list=simulation_setup.signal_nets,
|
|
2973
|
-
# do_pingroup=simulation_setup.do_pingroup,
|
|
2974
|
-
# reference_net=simulation_setup.power_nets,
|
|
2975
|
-
# port_type=SourceType.CircPort,
|
|
2976
|
-
# )
|
|
2977
|
-
# elif isinstance(cmp, dict):
|
|
2978
|
-
# if "refdes" in cmp: # pragma no cover
|
|
2979
|
-
# self.components.create_port_on_component(
|
|
2980
|
-
# cmp["refdes"],
|
|
2981
|
-
# net_list=simulation_setup.signal_nets,
|
|
2982
|
-
# do_pingroup=simulation_setup.do_pingroup,
|
|
2983
|
-
# reference_net=simulation_setup.power_nets,
|
|
2984
|
-
# port_type=SourceType.CircPort,
|
|
2985
|
-
# )
|
|
2986
|
-
# self.logger.info("Configuring analysis setup.")
|
|
2987
|
-
# if not self.siwave.configure_siw_analysis_setup(simulation_setup): # pragma: no cover
|
|
2988
|
-
# self.logger.error("Failed to configure Siwave simulation setup.")
|
|
2989
|
-
# if simulation_setup.solver_type == SolverType.SiwaveDC:
|
|
2990
|
-
# if simulation_setup.generate_excitations:
|
|
2991
|
-
# self.components.create_source_on_component(simulation_setup.sources)
|
|
2992
|
-
# if not self.siwave.configure_siw_analysis_setup(simulation_setup): # pragma: no cover
|
|
2993
|
-
# self.logger.error("Failed to configure Siwave simulation setup.")
|
|
2994
|
-
# self.padstacks.check_and_fix_via_plating()
|
|
2995
|
-
# self.save_edb()
|
|
2996
|
-
# if not simulation_setup.open_edb_after_build and simulation_setup.output_aedb:
|
|
2997
|
-
# self.close_edb()
|
|
2998
|
-
# self.edbpath = legacy_name
|
|
2999
|
-
# self.open_edb()
|
|
3000
|
-
# return True
|
|
3001
|
-
|
|
3002
2821
|
def get_statistics(self, compute_area=False):
|
|
3003
2822
|
"""Get the EDBStatistics object.
|
|
3004
2823
|
|
|
@@ -3095,21 +2914,6 @@ class Edb(EdbInit):
|
|
|
3095
2914
|
# If the intersections are non-zero, the terminal references are connected.
|
|
3096
2915
|
return True if len(iDintersection) > 0 else False
|
|
3097
2916
|
|
|
3098
|
-
# def new_simulation_configuration(self, filename=None):
|
|
3099
|
-
# # type: (str) -> SimulationConfiguration
|
|
3100
|
-
# """New SimulationConfiguration Object.
|
|
3101
|
-
#
|
|
3102
|
-
# Parameters
|
|
3103
|
-
# ----------
|
|
3104
|
-
# filename : str, optional
|
|
3105
|
-
# Input config file.
|
|
3106
|
-
#
|
|
3107
|
-
# Returns
|
|
3108
|
-
# -------
|
|
3109
|
-
# :class:`legacy.database.edb_data.simulation_configuration.SimulationConfiguration`
|
|
3110
|
-
# """
|
|
3111
|
-
# return SimulationConfiguration(filename, self)
|
|
3112
|
-
|
|
3113
2917
|
@property
|
|
3114
2918
|
def setups(self):
|
|
3115
2919
|
"""Get the dictionary of all EDB HFSS and SIwave setups.
|
|
@@ -4149,3 +3953,43 @@ class Edb(EdbInit):
|
|
|
4149
3953
|
:class:`Workflow <pyedb.workflow.Workflow>`
|
|
4150
3954
|
"""
|
|
4151
3955
|
return Workflow(self)
|
|
3956
|
+
|
|
3957
|
+
def export_gds_comp_xml(self, comps_to_export, gds_comps_unit="mm", control_path=None):
|
|
3958
|
+
"""Exports an XML file with selected components information for use in a GDS import.
|
|
3959
|
+
Parameters
|
|
3960
|
+
----------
|
|
3961
|
+
comps_to_export : list
|
|
3962
|
+
List of components whose information will be exported to xml file.
|
|
3963
|
+
gds_comps_unit : str, optional
|
|
3964
|
+
GDS_COMPONENTS section units. Default is ``"mm"``.
|
|
3965
|
+
control_path : str, optional
|
|
3966
|
+
Path for outputting the XML file.
|
|
3967
|
+
Returns
|
|
3968
|
+
-------
|
|
3969
|
+
bool
|
|
3970
|
+
``True`` when successful, ``False`` when failed.
|
|
3971
|
+
"""
|
|
3972
|
+
from pyedb.generic.general_methods import ET
|
|
3973
|
+
|
|
3974
|
+
components = ET.Element("GDS_COMPONENTS")
|
|
3975
|
+
components.set("LengthUnit", gds_comps_unit)
|
|
3976
|
+
if not comps_to_export:
|
|
3977
|
+
comps_to_export = self.components
|
|
3978
|
+
for comp in comps_to_export:
|
|
3979
|
+
ocomp = self.components[comp]
|
|
3980
|
+
gds_component = ET.SubElement(components, "GDS_COMPONENT")
|
|
3981
|
+
for pin_name, pin in ocomp.pins.items():
|
|
3982
|
+
pins_position_unit = unit_converter(pin.position, output_units=gds_comps_unit)
|
|
3983
|
+
gds_pin = ET.SubElement(gds_component, "GDS_PIN")
|
|
3984
|
+
gds_pin.set("Name", pin_name)
|
|
3985
|
+
gds_pin.set("x", str(pins_position_unit[0]))
|
|
3986
|
+
gds_pin.set("y", str(pins_position_unit[1]))
|
|
3987
|
+
gds_pin.set("Layer", pin.placement_layer)
|
|
3988
|
+
component = ET.SubElement(gds_component, "Component")
|
|
3989
|
+
component.set("RefDes", ocomp.refdes)
|
|
3990
|
+
component.set("PartName", ocomp.partname)
|
|
3991
|
+
component.set("PartType", ocomp.type)
|
|
3992
|
+
tree = ET.ElementTree(components)
|
|
3993
|
+
ET.indent(tree, space="\t", level=0)
|
|
3994
|
+
tree.write(control_path)
|
|
3995
|
+
return True if os.path.exists(control_path) else False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.40.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>
|
|
@@ -24,6 +24,7 @@ Requires-Dist: pandas>=1.1.0,<2.3
|
|
|
24
24
|
Requires-Dist: pydantic>=2.6.4,<2.11
|
|
25
25
|
Requires-Dist: Rtree >= 1.2.0
|
|
26
26
|
Requires-Dist: toml == 0.10.2
|
|
27
|
+
Requires-Dist: shapely
|
|
27
28
|
Requires-Dist: scikit-rf
|
|
28
29
|
Requires-Dist: ansys-edb-core
|
|
29
30
|
Requires-Dist: ansys-api-edb
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=BRJLpM2hZO7sdF_z0jRQy40961hhF4M8Y3h7yreF4h0,1525
|
|
2
2
|
pyedb/edb_logger.py,sha256=7KXPvAMCKzlzJ5zioiNO5A3zkqbpCHhWHB4aXKfgu5Y,14959
|
|
3
3
|
pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
|
|
4
4
|
pyedb/siwave.py,sha256=Mgg5ZGzOUOtNdlePHcnrgN3rletQ7jrqRi3WfxF58uU,17727
|
|
5
5
|
pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
|
|
6
6
|
pyedb/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
pyedb/common/nets.py,sha256=
|
|
7
|
+
pyedb/common/nets.py,sha256=a6w_U-dCrWA4l0GUC9mf1nio91BGGOKh3K6cqd4I5vM,17877
|
|
8
8
|
pyedb/component_libraries/ansys_components.py,sha256=O3ypt832IHY9zG2AD_yrRrbH2KH9P1yFaoi1EO6Zllw,4830
|
|
9
9
|
pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
pyedb/configuration/cfg_boundaries.py,sha256=5_v6HD0VgkFCJHgx5zTIn_nxPv3KpcCuGz9P4Kk4ywM,6246
|
|
11
11
|
pyedb/configuration/cfg_common.py,sha256=U45p2qksEwMY_woVFaSwn5qjib9QQJDShajZZ-IZV0Y,2575
|
|
12
|
-
pyedb/configuration/cfg_components.py,sha256=
|
|
12
|
+
pyedb/configuration/cfg_components.py,sha256=6K-bK0FuCcf-Tl2o4v-p54Z37eZghUPxye2aOUuebRU,14302
|
|
13
13
|
pyedb/configuration/cfg_data.py,sha256=sy1xUrfhRA3jorbR60qGExaMxQ1nQGGAbZYJ0xXYktE,3860
|
|
14
14
|
pyedb/configuration/cfg_general.py,sha256=TIiitITvHFHE-zUCmRCdHSnaMKRecwRHf00cykNYMA0,2148
|
|
15
15
|
pyedb/configuration/cfg_modeler.py,sha256=lR19tt5WdjpQ4IN5qCr1X1iykZqAivwViMNgUYOpoz4,5939
|
|
16
16
|
pyedb/configuration/cfg_nets.py,sha256=18NezeNh0ZOwk2ehz3zWJF_xYR7IYCqGlpDfDt7Ilho,2349
|
|
17
17
|
pyedb/configuration/cfg_operations.py,sha256=CFLBdM2kQBsW6f7W0NHWbV56RDMHSnaNQl3BmqDWQWo,4707
|
|
18
18
|
pyedb/configuration/cfg_package_definition.py,sha256=bnwS6p8oaHsD6ia3C7MmjQvQMyOJteK5i7EnbN84bJY,5296
|
|
19
|
-
pyedb/configuration/cfg_padstacks.py,sha256=
|
|
19
|
+
pyedb/configuration/cfg_padstacks.py,sha256=r8sn2eQJweKbZbUnn26SfSkAHC9j26P5OllPS0qzHl8,20781
|
|
20
20
|
pyedb/configuration/cfg_pin_groups.py,sha256=zNKfVP-fd1qUxS2wNb0ZTLGonkUnBmiXb4Rss1Rr7sE,3714
|
|
21
|
-
pyedb/configuration/cfg_ports_sources.py,sha256=
|
|
21
|
+
pyedb/configuration/cfg_ports_sources.py,sha256=Ym0l_J1pu3i3LVra-uIsTT4FS7GKFCJ3Eg8RqWi9BjM,33248
|
|
22
22
|
pyedb/configuration/cfg_s_parameter_models.py,sha256=DgBprcEYR2r_3BY4f_CuwuhJw_QFEag3xaAlLTRfMuE,5356
|
|
23
23
|
pyedb/configuration/cfg_setup.py,sha256=QGKQHAEeo196TYtKMvIMb2-p8KC4U8fmHx0yn0SpgMo,10351
|
|
24
24
|
pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
|
|
25
|
-
pyedb/configuration/cfg_stackup.py,sha256=
|
|
25
|
+
pyedb/configuration/cfg_stackup.py,sha256=nrjbjArkV4edkgbmpfm4FBWizM7qlN6DKTiNFRevGqk,7507
|
|
26
26
|
pyedb/configuration/configuration.py,sha256=c6SViP7I0Ex7cH12ueDow0DPVKXHIvkg3RZX9qSgnFA,16751
|
|
27
27
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
pyedb/dotnet/clr_module.py,sha256=EabqZgZgBZOhJD9_V8Ll8sEKgBFj9xe9zARNYIvYM_s,5304
|
|
29
29
|
pyedb/dotnet/edb.py,sha256=KPaIxHyhsx0lWNU27tcuuLnG8SuybsPHgQHxqT82-oQ,186767
|
|
30
30
|
pyedb/dotnet/database/Variables.py,sha256=CX12X6u-2tbcgjYJU643TVjIJEGB58a2nM4f4wMVTR8,77687
|
|
31
31
|
pyedb/dotnet/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
32
|
-
pyedb/dotnet/database/components.py,sha256=
|
|
32
|
+
pyedb/dotnet/database/components.py,sha256=9HldXwn2xV7RPD-C9u_zpHTd6b5SKZkDled-NKrbweo,109471
|
|
33
33
|
pyedb/dotnet/database/general.py,sha256=k2Bcr5VV-QUzEZlYorqYCX1ZchHBH7WqUvc8maMxId0,4716
|
|
34
34
|
pyedb/dotnet/database/hfss.py,sha256=9UuTuEZwFKAw9E2HJXuzb4uH4kNrp3t00dJjgY1Ymug,68671
|
|
35
35
|
pyedb/dotnet/database/layout_obj_instance.py,sha256=se6eJ2kfQOAZfAwObCBdr0A7CCD3st4aiPPVJR9eQoA,1407
|
|
36
36
|
pyedb/dotnet/database/layout_validation.py,sha256=kanRMaFz7Xv_3jFUwdbbzc1d6Rj6kaHAjM4eNOTrYIk,13597
|
|
37
|
-
pyedb/dotnet/database/materials.py,sha256=
|
|
38
|
-
pyedb/dotnet/database/modeler.py,sha256=
|
|
37
|
+
pyedb/dotnet/database/materials.py,sha256=lR3LwHpK9UUBuL542M7jw5mLlmgwn5n4d4kHcmBF2AU,44234
|
|
38
|
+
pyedb/dotnet/database/modeler.py,sha256=ygY-9E3sIfFhHpk19-_J7xlLbQXB1Iw5xhXnW1Eoalw,55675
|
|
39
39
|
pyedb/dotnet/database/net_class.py,sha256=NxRX8feIaJyf3NmRfSzZ08ItDbZOucOyAnTHZh-LkUI,11354
|
|
40
40
|
pyedb/dotnet/database/nets.py,sha256=R--2ETa3-nc1RU5AqW4UjKXvA8oYKYLt06mQEsyi2j4,25213
|
|
41
41
|
pyedb/dotnet/database/padstack.py,sha256=lYIHF_GXBBP2sIacq7wP0-0-lwj4J0cB2UnWYtzdRjs,73219
|
|
@@ -60,7 +60,7 @@ pyedb/dotnet/database/cell/primitive/path.py,sha256=Vdkjvm2qv-gib4L4JaMbhT36vUmv
|
|
|
60
60
|
pyedb/dotnet/database/cell/primitive/primitive.py,sha256=KvzC_EdC2qbxWVyFLSAKON5grqFLaIb5i0NHtqOqqoQ,28796
|
|
61
61
|
pyedb/dotnet/database/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
62
|
pyedb/dotnet/database/cell/terminal/bundle_terminal.py,sha256=6wKbXqnyCCoYsBQGkHga-40brmGzGv4zly45OB33HJM,1977
|
|
63
|
-
pyedb/dotnet/database/cell/terminal/edge_terminal.py,sha256=
|
|
63
|
+
pyedb/dotnet/database/cell/terminal/edge_terminal.py,sha256=uyoemVyEzez8WjI9Fyqh-RbtmkJHjjUM5F1CsUErSOY,3970
|
|
64
64
|
pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py,sha256=xQ331XSzd8IYeO5tlny7G-1KI54ysSCN-A0GH44PC_o,4417
|
|
65
65
|
pyedb/dotnet/database/cell/terminal/pingroup_terminal.py,sha256=60DUrszHP7QUVPSxoqTYrkOUukZsGiGNE3zd2Wa-2zQ,2753
|
|
66
66
|
pyedb/dotnet/database/cell/terminal/point_terminal.py,sha256=n-QQcN9xfge63Xe1U8fGkKv3yWHHE6UWbn2pUxJ7Kj4,3015
|
|
@@ -82,7 +82,7 @@ pyedb/dotnet/database/edb_data/hfss_extent_info.py,sha256=Ydzle6moatP89kQdjnzyNa
|
|
|
82
82
|
pyedb/dotnet/database/edb_data/layer_data.py,sha256=4Z_eaHSfGfwQBKETEmGSwMvwGzvirtwYw4G4TwonNiA,34314
|
|
83
83
|
pyedb/dotnet/database/edb_data/nets_data.py,sha256=siq2w5CT5D5PeK9tC_vaGM54UOyqnYkcP4kUts459es,10009
|
|
84
84
|
pyedb/dotnet/database/edb_data/padstacks_data.py,sha256=18VZaivT9tT7-KCXbXsEZbokRRi_CQCTqCQFcAj-FtU,78343
|
|
85
|
-
pyedb/dotnet/database/edb_data/ports.py,sha256
|
|
85
|
+
pyedb/dotnet/database/edb_data/ports.py,sha256=ycOETLruRl4wwL372Jftm_rFg2vfluyb_Rv39C5OSKA,7061
|
|
86
86
|
pyedb/dotnet/database/edb_data/primitives_data.py,sha256=gBW7GiaPxDWBUj1wgOIiNHJ3QKM2ZDU0SJh0JWUlFHc,16826
|
|
87
87
|
pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py,sha256=f_09VvuDHeaIuTivSi2OiAEv8aJ52vBasuBoSS9sCQE,20953
|
|
88
88
|
pyedb/dotnet/database/edb_data/simulation_configuration.py,sha256=epMOclqz9nyewh2zEHFzylSS6e4-10dAqKzzZYbkgaw,100432
|
|
@@ -119,27 +119,27 @@ pyedb/generic/general_methods.py,sha256=Lg4k53Ny9LraiU6AQX5WwBiPFqtvGaZ3Ik7LcWil
|
|
|
119
119
|
pyedb/generic/plot.py,sha256=4zCA5lpk-FhPmWR7xi6yecc5lZtRpxJdd3B8FLGXmxE,4705
|
|
120
120
|
pyedb/generic/process.py,sha256=i0poMbEnFFAsnNOPWN-myMnUaG7hMClKi9kGPMFyvCM,11148
|
|
121
121
|
pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
|
|
122
|
-
pyedb/grpc/edb.py,sha256=
|
|
122
|
+
pyedb/grpc/edb.py,sha256=eZ88P7SXtnhyPHyJt4-SbpsbbJ7Cx35SrFPHKicP-ac,159519
|
|
123
123
|
pyedb/grpc/edb_init.py,sha256=7uhG2VjHvS9N8CU-zDyW8jh_dWe8MWkfyU2k4-B8sX8,14513
|
|
124
124
|
pyedb/grpc/rpc_session.py,sha256=UvxDSXuJFvemFJbQQtbI6nhYI9KBN366fw-jjoWysmE,6979
|
|
125
125
|
pyedb/grpc/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
126
|
-
pyedb/grpc/database/components.py,sha256=
|
|
126
|
+
pyedb/grpc/database/components.py,sha256=EYlvcj5S47Zzga3Ns5dtXBgB3hG2cYbWo9HsrD2vuug,83913
|
|
127
127
|
pyedb/grpc/database/control_file.py,sha256=rEsdYykh5-GcYTrZW32nk3IPpdNjlhlQ2PYgbkBgQ_8,48217
|
|
128
128
|
pyedb/grpc/database/definitions.py,sha256=jtfg2crkmwqn9rEe8pSn1F-TtyBDLl8U6hs7ZmNbXA8,2922
|
|
129
129
|
pyedb/grpc/database/general.py,sha256=QBZlMO4Tzec00HcaLVQ8fDTLox-pHjOcH2wpWge2sZw,1633
|
|
130
130
|
pyedb/grpc/database/hfss.py,sha256=pHOkPHHviRVf93pv3vNqEb88wO95BB6_CcURoaXQ0f4,45670
|
|
131
|
-
pyedb/grpc/database/layout_validation.py,sha256=
|
|
131
|
+
pyedb/grpc/database/layout_validation.py,sha256=GuDjxDQnIdUglk-yq7HCMP74V_1L5upPbVsE_g8dHHg,13494
|
|
132
132
|
pyedb/grpc/database/modeler.py,sha256=DHKHbR8h9tzvI0ECj_ryb-dGHL_L4kgzYqXJHs8VVO4,55086
|
|
133
133
|
pyedb/grpc/database/nets.py,sha256=aBGhSzudYcq_heAyOX9ucAmLXY4nwOPrnRegRJ3lcHc,21234
|
|
134
|
-
pyedb/grpc/database/padstacks.py,sha256=
|
|
134
|
+
pyedb/grpc/database/padstacks.py,sha256=NedumZMv4BNoYYmNnhdGZCQEbGf9kFMwRzjcBzo9wHw,64881
|
|
135
135
|
pyedb/grpc/database/siwave.py,sha256=XOc_nvsIKKSAbYj27GLBE0NhwpAJfzecJ_TQIKJGy6k,35157
|
|
136
|
-
pyedb/grpc/database/source_excitations.py,sha256=
|
|
136
|
+
pyedb/grpc/database/source_excitations.py,sha256=Sgw8HScDg1ooVf-JuBw_qNBJdLE1PIYoNV26nEnXNbI,107169
|
|
137
137
|
pyedb/grpc/database/stackup.py,sha256=hT9krLiP5yajlZ0gRl72G4yp_PMUe2MeFNolF3reDGw,108882
|
|
138
138
|
pyedb/grpc/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
139
|
pyedb/grpc/database/definition/component_def.py,sha256=3QSORWKKQZ50hPMuodX_aVyfSf_RlRwCJSOShDXRofE,6939
|
|
140
140
|
pyedb/grpc/database/definition/component_model.py,sha256=9TRfILC3FfmgSrnYRwEdF2kbY4jFcC5rSeR9xeeb3wg,1689
|
|
141
141
|
pyedb/grpc/database/definition/component_pin.py,sha256=zvE82RByhWC8rIkqL3rjYQyZuk9JfVsJ6Bw43xZH8zM,1489
|
|
142
|
-
pyedb/grpc/database/definition/materials.py,sha256=
|
|
142
|
+
pyedb/grpc/database/definition/materials.py,sha256=WQVCNuWLvKBK6KWLoOiT8XJG80n6UKmP6s31QQjx4EM,44387
|
|
143
143
|
pyedb/grpc/database/definition/n_port_component_model.py,sha256=8dC636At0iyfAWShugHGDOerytpoV6cvShPEGkXH89I,1543
|
|
144
144
|
pyedb/grpc/database/definition/package_def.py,sha256=jBgNlr5kBTlkt7gNvo6tdlKkV7Xpjil7nYy5WrYwCSI,7503
|
|
145
145
|
pyedb/grpc/database/definition/padstack_def.py,sha256=58zkH-XPQW7f5fBpTGksHq9tLkGbHJUC1tDEHKs7yqw,29672
|
|
@@ -161,19 +161,19 @@ pyedb/grpc/database/layers/layer.py,sha256=xOOR6ZLJFHd8_QbKZXMAtojhuB_KILoKP8K7Y
|
|
|
161
161
|
pyedb/grpc/database/layers/stackup_layer.py,sha256=qi2oPaJXiszwpSy4oZ-uxzCZFyzE2BsGgi0XSrIleYY,12582
|
|
162
162
|
pyedb/grpc/database/layout/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
163
|
pyedb/grpc/database/layout/cell.py,sha256=5qMqEBvIruIE3Ru1JBYMkGlS31uOJShWm3J3OMd8HiQ,1379
|
|
164
|
-
pyedb/grpc/database/layout/layout.py,sha256=
|
|
164
|
+
pyedb/grpc/database/layout/layout.py,sha256=WoDHTAawUuF5EeoWDq5X9LLIu05B-rdChly6uC6lMpI,8805
|
|
165
165
|
pyedb/grpc/database/layout/voltage_regulator.py,sha256=ObKjdQeLDxNHfW7V1i-yPCdabTzmBgKj0dIHr3TLWNk,5140
|
|
166
166
|
pyedb/grpc/database/net/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
167
|
pyedb/grpc/database/net/differential_pair.py,sha256=DbYbyO0e6bHpqY4lZWU2quHlGBvA5n0ekVvD4MntG5I,4670
|
|
168
168
|
pyedb/grpc/database/net/extended_net.py,sha256=DeK1vwsx_kuCWhORitL_z2APTigdtWZZfbllpt0B0ho,12865
|
|
169
|
-
pyedb/grpc/database/net/net.py,sha256=
|
|
169
|
+
pyedb/grpc/database/net/net.py,sha256=T0i_Q_xhpfZSSIplk8fqQlBJIy_jDbdaB298CQcg50E,7027
|
|
170
170
|
pyedb/grpc/database/net/net_class.py,sha256=ojoEZ_7YJW0cEhRWIc9hLBHILBhrVPuRpRjrrBJux3c,2961
|
|
171
171
|
pyedb/grpc/database/ports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
172
|
pyedb/grpc/database/ports/ports.py,sha256=boa3pfu-qLHsBi3-JqO5YxfWws21gWZHjLSPm63xocM,10199
|
|
173
173
|
pyedb/grpc/database/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
174
174
|
pyedb/grpc/database/primitive/bondwire.py,sha256=_zwMsxOacKzACXaGYr1SVCeHEA_R1hG3iEOMvbcC308,6241
|
|
175
175
|
pyedb/grpc/database/primitive/circle.py,sha256=ABIiF7PgtxMR-DdR8rL6KeEkw2rQeVddP8cBXRi0FTw,2517
|
|
176
|
-
pyedb/grpc/database/primitive/padstack_instance.py,sha256=
|
|
176
|
+
pyedb/grpc/database/primitive/padstack_instance.py,sha256=fh_S-D6BMWgL0maygDEDljeEzTVXnTZT4960Slmb05o,37212
|
|
177
177
|
pyedb/grpc/database/primitive/path.py,sha256=BUsmc8xkaNuh97ym0z8HRSpw0MU1tB6nfpbQiw-UsA0,12056
|
|
178
178
|
pyedb/grpc/database/primitive/polygon.py,sha256=BxuDy7OGSGTA5mw3ChjKxtf8dnO3eecTicg7jj1F2_k,9488
|
|
179
179
|
pyedb/grpc/database/primitive/primitive.py,sha256=0CzG_qHwi0nY1-YvGrOiDeFt9NrTbOE_K3UJc3r7aUw,24784
|
|
@@ -282,7 +282,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
|
|
|
282
282
|
pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
|
|
283
283
|
pyedb/modeler/geometry_operators.py,sha256=YhR-QE0dvIkbp4SsjWp309KDE1OZa6wUzr8a634MuJ4,74195
|
|
284
284
|
pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
|
|
285
|
-
pyedb-0.
|
|
286
|
-
pyedb-0.
|
|
287
|
-
pyedb-0.
|
|
288
|
-
pyedb-0.
|
|
285
|
+
pyedb-0.40.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
286
|
+
pyedb-0.40.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
|
|
287
|
+
pyedb-0.40.0.dist-info/METADATA,sha256=7P1bJJjTnkTqyvvDU_LtCdNtEIzUrkcAQ8rdZZN3374,8617
|
|
288
|
+
pyedb-0.40.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|