pyedb 0.44.0__py3-none-any.whl → 0.45.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.

Files changed (37) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_boundaries.py +1 -1
  3. pyedb/configuration/cfg_components.py +7 -7
  4. pyedb/configuration/cfg_general.py +8 -2
  5. pyedb/configuration/cfg_modeler.py +7 -0
  6. pyedb/configuration/cfg_operations.py +40 -1
  7. pyedb/configuration/cfg_pin_groups.py +1 -1
  8. pyedb/configuration/cfg_ports_sources.py +159 -51
  9. pyedb/configuration/cfg_s_parameter_models.py +51 -1
  10. pyedb/configuration/cfg_setup.py +77 -16
  11. pyedb/configuration/configuration.py +13 -3
  12. pyedb/dotnet/database/cell/primitive/path.py +12 -0
  13. pyedb/dotnet/database/geometry/point_data.py +26 -0
  14. pyedb/dotnet/database/geometry/polygon_data.py +9 -0
  15. pyedb/dotnet/database/nets.py +13 -3
  16. pyedb/dotnet/edb.py +41 -18
  17. pyedb/grpc/database/components.py +1 -2
  18. pyedb/grpc/database/definition/component_def.py +1 -1
  19. pyedb/grpc/database/hfss.py +10 -1
  20. pyedb/grpc/database/layout_validation.py +2 -2
  21. pyedb/grpc/database/padstacks.py +15 -9
  22. pyedb/grpc/database/ports/ports.py +3 -3
  23. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +18 -13
  24. pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +73 -30
  25. pyedb/grpc/database/simulation_setup/sweep_data.py +12 -1
  26. pyedb/grpc/database/siwave.py +10 -1
  27. pyedb/grpc/database/source_excitations.py +12 -2
  28. pyedb/grpc/database/stackup.py +12 -4
  29. pyedb/grpc/database/terminal/edge_terminal.py +93 -0
  30. pyedb/grpc/database/terminal/pingroup_terminal.py +14 -1
  31. pyedb/grpc/edb.py +13 -9
  32. pyedb/grpc/edb_init.py +19 -15
  33. pyedb/grpc/rpc_session.py +11 -8
  34. {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/METADATA +6 -6
  35. {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/RECORD +37 -37
  36. {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/LICENSE +0 -0
  37. {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/WHEEL +0 -0
@@ -138,15 +138,23 @@ class LayerCollection(GrpcLayerCollection):
138
138
 
139
139
  """
140
140
  thickness = GrpcValue(0.0)
141
+ layer_type_map = {"dielectric": GrpcLayerType.DIELECTRIC_LAYER, "signal": GrpcLayerType.SIGNAL_LAYER}
141
142
  if "thickness" in kwargs:
142
143
  thickness = GrpcValue(kwargs["thickness"])
143
144
  elevation = GrpcValue(0.0)
144
- _layer_type = GrpcLayerType.SIGNAL_LAYER
145
- if layer_type.lower() == "dielectric":
146
- _layer_type = GrpcLayerType.DIELECTRIC_LAYER
145
+ if "type" in kwargs:
146
+ _layer_type = layer_type_map[kwargs["type"]]
147
+ else:
148
+ _layer_type = layer_type_map[layer_type]
149
+ if "material" in kwargs:
150
+ _material = kwargs["material"]
151
+ else:
152
+ _material = "copper"
147
153
  layer = GrpcStackupLayer.create(
148
- name=name, layer_type=_layer_type, thickness=thickness, material="copper", elevation=elevation
154
+ name=name, layer_type=_layer_type, thickness=thickness, material=_material, elevation=elevation
149
155
  )
156
+ if "fill_material" in kwargs:
157
+ layer.set_fill_material(kwargs["fill_material"])
150
158
  return self._layer_collection.add_layer_bottom(layer)
151
159
 
152
160
  def add_layer_below(self, name, base_layer_name, layer_type="signal", **kwargs):
@@ -20,6 +20,8 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
+ import re
24
+
23
25
  from ansys.edb.core.terminal.bundle_terminal import BundleTerminal as GrpcBundleTerminal
24
26
  from ansys.edb.core.terminal.edge_terminal import EdgeTerminal as GrpcEdgeTerminal
25
27
 
@@ -29,6 +31,65 @@ class EdgeTerminal(GrpcEdgeTerminal):
29
31
  super().__init__(edb_object.msg)
30
32
  self._pedb = pedb
31
33
  self._edb_object = edb_object
34
+ self._hfss_type = "Gap"
35
+
36
+ @property
37
+ def _edb_properties(self):
38
+ from ansys.edb.core.database import ProductIdType as GrpcProductIdType
39
+
40
+ try:
41
+ p = self._edb_object.get_product_property(GrpcProductIdType.DESIGNER, 1)
42
+ except:
43
+ p = ""
44
+ return p
45
+
46
+ @_edb_properties.setter
47
+ def _edb_properties(self, value):
48
+ from ansys.edb.core.database import ProductIdType as GrpcProductIdType
49
+
50
+ self._edb_object.set_product_property(GrpcProductIdType.DESIGNER, 1, value)
51
+
52
+ @property
53
+ def is_wave_port(self):
54
+ if self._hfss_port_property:
55
+ return True
56
+ return False
57
+
58
+ @property
59
+ def _hfss_port_property(self):
60
+ """HFSS port property."""
61
+ hfss_prop = re.search(r"HFSS\(.*?\)", self._edb_properties)
62
+ p = {}
63
+ if hfss_prop:
64
+ hfss_type = re.search(r"'HFSS Type'='([^']+)'", hfss_prop.group())
65
+ orientation = re.search(r"'Orientation'='([^']+)'", hfss_prop.group())
66
+ horizontal_ef = re.search(r"'Horizontal Extent Factor'='([^']+)'", hfss_prop.group())
67
+ vertical_ef = re.search(r"'Vertical Extent Factor'='([^']+)'", hfss_prop.group())
68
+ radial_ef = re.search(r"'Radial Extent Factor'='([^']+)'", hfss_prop.group())
69
+ pec_w = re.search(r"'PEC Launch Width'='([^']+)'", hfss_prop.group())
70
+
71
+ p["HFSS Type"] = hfss_type.group(1) if hfss_type else ""
72
+ p["Orientation"] = orientation.group(1) if orientation else ""
73
+ p["Horizontal Extent Factor"] = float(horizontal_ef.group(1)) if horizontal_ef else ""
74
+ p["Vertical Extent Factor"] = float(vertical_ef.group(1)) if vertical_ef else ""
75
+ p["Radial Extent Factor"] = float(radial_ef.group(1)) if radial_ef else ""
76
+ p["PEC Launch Width"] = pec_w.group(1) if pec_w else ""
77
+ else:
78
+ p["HFSS Type"] = ""
79
+ p["Orientation"] = ""
80
+ p["Horizontal Extent Factor"] = ""
81
+ p["Vertical Extent Factor"] = ""
82
+ p["Radial Extent Factor"] = ""
83
+ p["PEC Launch Width"] = ""
84
+ return p
85
+
86
+ @_hfss_port_property.setter
87
+ def _hfss_port_property(self, value):
88
+ txt = []
89
+ for k, v in value.items():
90
+ txt.append("'{}'='{}'".format(k, v))
91
+ txt = ",".join(txt)
92
+ self._edb_properties = "HFSS({})".format(txt)
32
93
 
33
94
  def couple_ports(self, port):
34
95
  """Create a bundle wave port.
@@ -49,3 +110,35 @@ class EdgeTerminal(GrpcEdgeTerminal):
49
110
  temp.extend([i for i in port])
50
111
  bundle_terminal = GrpcBundleTerminal.create(temp)
51
112
  return self._pedb.ports[bundle_terminal.name]
113
+
114
+ @property
115
+ def is_port(self):
116
+ return True
117
+
118
+ @property
119
+ def ref_terminal(self):
120
+ """Return refeference terminal.
121
+
122
+ ..deprecated:: 0.44.0
123
+ Use: func:`reference_terminal` property instead.
124
+
125
+ """
126
+ self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal property instead.")
127
+ return self.reference_terminal
128
+
129
+ @ref_terminal.setter
130
+ def ref_terminal(self, value):
131
+ self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal property instead.")
132
+ self.reference_terminal = value
133
+
134
+ @property
135
+ def hfss_type(self):
136
+ return self._hfss_type
137
+
138
+ @hfss_type.setter
139
+ def hfss_type(self, value):
140
+ self._hfss_type = value
141
+
142
+ @property
143
+ def terminal_type(self):
144
+ return "EdgeTerminal"
@@ -184,12 +184,25 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
184
184
 
185
185
  """
186
186
  self._pedb.logger.warning("ref_terminal property is deprecated, use reference_terminal property instead.")
187
- return self.reference_terminal
187
+ return PinGroupTerminal(self._pedb, self.reference_terminal)
188
188
 
189
189
  @ref_terminal.setter
190
190
  def ref_terminal(self, value):
191
+ self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal instead.")
191
192
  self.reference_terminal = value
192
193
 
193
194
  @property
194
195
  def hfss_type(self):
195
196
  return "circuit"
197
+
198
+ @property
199
+ def is_current_source(self):
200
+ if self.boundary_type == "current_source":
201
+ return True
202
+ return False
203
+
204
+ @property
205
+ def is_voltage_source(self):
206
+ if self.boundary_type == "voltage_source":
207
+ return True
208
+ return False
pyedb/grpc/edb.py CHANGED
@@ -198,7 +198,6 @@ class Edb(EdbInit):
198
198
  use_ppe=False,
199
199
  technology_file=None,
200
200
  restart_rpc_server=False,
201
- kill_all_instances=False,
202
201
  ):
203
202
  edbversion = get_string_version(edbversion)
204
203
  self._clean_variables()
@@ -273,9 +272,9 @@ class Edb(EdbInit):
273
272
  self.logger.info("EDB %s was created correctly from %s file.", self.edbpath, edbpath[-2:])
274
273
  elif edbpath.endswith("edb.def"):
275
274
  self.edbpath = os.path.dirname(edbpath)
276
- self.open_edb(restart_rpc_server=restart_rpc_server, kill_all_instances=kill_all_instances)
275
+ self.open_edb(restart_rpc_server=restart_rpc_server)
277
276
  elif not os.path.exists(os.path.join(self.edbpath, "edb.def")):
278
- self.create_edb(restart_rpc_server=restart_rpc_server, kill_all_instances=kill_all_instances)
277
+ self.create_edb(restart_rpc_server=restart_rpc_server)
279
278
  self.logger.info("EDB %s created correctly.", self.edbpath)
280
279
  elif ".aedb" in edbpath:
281
280
  self.edbpath = edbpath
@@ -290,8 +289,7 @@ class Edb(EdbInit):
290
289
  return self
291
290
 
292
291
  def __exit__(self, ex_type, ex_value, ex_traceback):
293
- if ex_type:
294
- self.edb_exception(ex_value, ex_traceback)
292
+ self._signal_handler(ex_type, ex_value)
295
293
 
296
294
  def __getitem__(self, variable_name):
297
295
  """Get a variable to the Edb project. The variable can be project using ``$`` prefix or
@@ -493,7 +491,9 @@ class Edb(EdbInit):
493
491
  """
494
492
  terminals = [term for term in self.layout.terminals if not term.is_reference_terminal]
495
493
  ports = {}
494
+ from pyedb.grpc.database.ports.ports import WavePort
496
495
  from pyedb.grpc.database.terminal.bundle_terminal import BundleTerminal
496
+ from pyedb.grpc.database.terminal.edge_terminal import EdgeTerminal
497
497
  from pyedb.grpc.database.terminal.padstack_instance_terminal import (
498
498
  PadstackInstanceTerminal,
499
499
  )
@@ -504,6 +504,11 @@ class Edb(EdbInit):
504
504
  ports[bundle_ter.name] = bundle_ter
505
505
  elif isinstance(t, PadstackInstanceTerminal):
506
506
  ports[t.name] = CoaxPort(self, t)
507
+ elif isinstance(t, EdgeTerminal):
508
+ if t.is_wave_port:
509
+ ports[t.name] = WavePort(self, t)
510
+ else:
511
+ ports[t.name] = EdgeTerminal(self, t)
507
512
  else:
508
513
  ports[t.name] = GapPort(self, t)
509
514
  return ports
@@ -572,7 +577,6 @@ class Edb(EdbInit):
572
577
  self.edbpath,
573
578
  self.isreadonly,
574
579
  restart_rpc_server=restart_rpc_server,
575
- kill_all_instances=kill_all_instances,
576
580
  )
577
581
  n_try -= 1
578
582
  except Exception as e:
@@ -613,7 +617,7 @@ class Edb(EdbInit):
613
617
  n_try = 10
614
618
  while not self.db and n_try:
615
619
  try:
616
- self.create(self.edbpath, restart_rpc_server=restart_rpc_server, kill_all_instances=kill_all_instances)
620
+ self.create(self.edbpath, restart_rpc_server=restart_rpc_server)
617
621
  n_try -= 1
618
622
  except Exception as e:
619
623
  self.logger.error(e.args[0])
@@ -2015,8 +2019,8 @@ class Edb(EdbInit):
2015
2019
  nets_to_preserve.extend(el.nets)
2016
2020
  if include_pingroups:
2017
2021
  for pingroup in self.layout.pin_groups:
2018
- for pin in pingroup.pins:
2019
- if pin.net_name in reference_list:
2022
+ for pin_name, pin in pingroup.pins.items():
2023
+ if pin_name in reference_list:
2020
2024
  pins_to_preserve.append(pin.edb_uid)
2021
2025
  if check_terminals:
2022
2026
  terms = [
pyedb/grpc/edb_init.py CHANGED
@@ -22,7 +22,9 @@
22
22
 
23
23
 
24
24
  """Database."""
25
+ import atexit
25
26
  import os
27
+ import signal
26
28
  import sys
27
29
 
28
30
  import ansys.edb.core.database as database
@@ -68,13 +70,22 @@ class EdbInit(object):
68
70
  oa_directory = os.path.join(self.base_path, "common", "oa")
69
71
  os.environ["ANSYS_OADIR"] = oa_directory
70
72
  os.environ["PATH"] = "{};{}".format(os.environ["PATH"], self.base_path)
73
+ # register server kill
74
+ atexit.register(self._signal_handler)
75
+ # register signal handlers
76
+ signal.signal(signal.SIGTERM, self._signal_handler)
77
+ signal.signal(signal.SIGINT, self._signal_handler)
78
+
79
+ @staticmethod
80
+ def _signal_handler(signum=None, frame=None):
81
+ RpcSession.kill()
71
82
 
72
83
  @property
73
84
  def db(self):
74
85
  """Active database object."""
75
86
  return self._db
76
87
 
77
- def create(self, db_path, port=0, restart_rpc_server=False, kill_all_instances=False):
88
+ def create(self, db_path, port=0, restart_rpc_server=False):
78
89
  """Create a Database at the specified file location.
79
90
 
80
91
  Parameters
@@ -82,12 +93,12 @@ class EdbInit(object):
82
93
  db_path : str
83
94
  Path to top-level database folder
84
95
 
96
+ port : int
97
+ grpc port number.
98
+
85
99
  restart_rpc_server : optional, bool
86
100
  Force restarting RPC server when `True`.Default value is `False`
87
101
 
88
- kill_all_instances : optional, bool.
89
- Force killing all RPC server instances, must be used with caution. Default value is `False`.
90
-
91
102
  Returns
92
103
  -------
93
104
  Database
@@ -97,7 +108,6 @@ class EdbInit(object):
97
108
  edb_version=self.edbversion,
98
109
  port=port,
99
110
  restart_server=restart_rpc_server,
100
- kill_all_instances=kill_all_instances,
101
111
  )
102
112
  if not RpcSession.pid:
103
113
  self.logger.error("Failed to start RPC server.")
@@ -105,7 +115,7 @@ class EdbInit(object):
105
115
  self._db = database.Database.create(db_path)
106
116
  return self._db
107
117
 
108
- def open(self, db_path, read_only, port=0, restart_rpc_server=False, kill_all_instances=False):
118
+ def open(self, db_path, read_only, port=0, restart_rpc_server=False):
109
119
  """Open an existing Database at the specified file location.
110
120
 
111
121
  Parameters
@@ -115,11 +125,9 @@ class EdbInit(object):
115
125
  read_only : bool
116
126
  Obtain read-only access.
117
127
  port : optional, int.
118
- Specify the port number.If not provided a randon free one is selected. Default value is `0`.
128
+ Specify the port number. If not provided a randon free one is selected. Default value is `0`.
119
129
  restart_rpc_server : optional, bool
120
130
  Force restarting RPC server when `True`. Default value is `False`.
121
- kill_all_instances : optional, bool.
122
- Force killing all RPC server instances, must be used with caution. Default value is `False`.
123
131
 
124
132
  Returns
125
133
  -------
@@ -133,7 +141,6 @@ class EdbInit(object):
133
141
  edb_version=self.edbversion,
134
142
  port=port,
135
143
  restart_server=restart_rpc_server,
136
- kill_all_instances=kill_all_instances,
137
144
  )
138
145
  if not RpcSession.pid:
139
146
  self.logger.error("Failed to start RPC server.")
@@ -154,7 +161,7 @@ class EdbInit(object):
154
161
  """Save any changes into a file."""
155
162
  return self._db.save()
156
163
 
157
- def close(self, terminate_rpc_session=True, kill_all_instances=False):
164
+ def close(self, terminate_rpc_session=True):
158
165
  """Close the database.
159
166
 
160
167
  Parameters
@@ -167,10 +174,7 @@ class EdbInit(object):
167
174
  """
168
175
  self._db.close()
169
176
  self._db = None
170
- if kill_all_instances:
171
- RpcSession._kill_all_instances()
172
- RpcSession.pid = 0
173
- elif terminate_rpc_session:
177
+ if terminate_rpc_session:
174
178
  RpcSession.rpc_session.disconnect()
175
179
  RpcSession.pid = 0
176
180
  return True
pyedb/grpc/rpc_session.py CHANGED
@@ -50,7 +50,7 @@ class RpcSession:
50
50
  port = 10000
51
51
 
52
52
  @staticmethod
53
- def start(edb_version, port=0, restart_server=False, kill_all_instances=False):
53
+ def start(edb_version, port=0, restart_server=False):
54
54
  """Start RPC-server, the server must be started before opening EDB.
55
55
 
56
56
  Parameters
@@ -107,10 +107,7 @@ class RpcSession:
107
107
  if RpcSession.pid:
108
108
  if restart_server:
109
109
  pyedb_logger.logger.info("Restarting RPC server")
110
- if kill_all_instances:
111
- RpcSession.__kill_all_instances()
112
- else:
113
- RpcSession.__kill()
110
+ RpcSession.kill()
114
111
  RpcSession.__start_rpc_server()
115
112
  else:
116
113
  pyedb_logger.info(f"Server already running on port {RpcSession.port}")
@@ -141,13 +138,18 @@ class RpcSession:
141
138
  pyedb_logger.logger.info("Grpc session started")
142
139
 
143
140
  @staticmethod
144
- def __kill():
141
+ def kill():
145
142
  p = psutil.Process(RpcSession.pid)
146
143
  time.sleep(latency_delay)
147
- p.terminate()
144
+ try:
145
+ p.terminate()
146
+ print(f"RPC session pid: {RpcSession.pid} killed due to execution failure.")
147
+ RpcSession.pid = 0
148
+ except:
149
+ print("RPC session closed.")
148
150
 
149
151
  @staticmethod
150
- def _kill_all_instances():
152
+ def kill_all_instances():
151
153
  proc = [p.pid for p in list(psutil.process_iter()) if "edb_rpc" in p.name().lower()]
152
154
  time.sleep(latency_delay)
153
155
  for pid in proc:
@@ -163,6 +165,7 @@ class RpcSession:
163
165
  end_managing()
164
166
  RpcSession.rpc_session.disconnect()
165
167
  time.sleep(latency_delay)
168
+ RpcSession.__get_process_id()
166
169
 
167
170
  @staticmethod
168
171
  def __get_random_free_port():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.44.0
3
+ Version: 0.45.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>
@@ -127,15 +127,15 @@ Documentation for the latest stable release of PyEDB is hosted at
127
127
  [PyEDB documentation](https://edb.docs.pyansys.com/version/stable/index.html).
128
128
  The documentation has five sections:
129
129
 
130
- - [Getting started](https://edb.docs.pyansys.com/version/version/stable/getting_started/index.html): Describes
130
+ - [Getting started](https://edb.docs.pyansys.com/version/stable/getting_started/index.html): Describes
131
131
  how to install PyEDB in user mode.
132
- - [User guide](https://edb.docs.pyansys.com/version/version/stable/user_guide/index.html): Describes how to
132
+ - [User guide](https://edb.docs.pyansys.com/version/stable/user_guide/index.html#user-guide): Describes how to
133
133
  use PyEDB.
134
- - [API reference](https://edb.docs.pyansys.com/version/version/stable/api/index.html): Provides API member descriptions
134
+ - [API reference](https://edb.docs.pyansys.com/version/stable/api/index.html): Provides API member descriptions
135
135
  and usage examples.
136
- - [Examples](https://edb.docs.pyansys.com/version/version/stable/examples/index.html): Provides examples showing
136
+ - [Examples](https://examples.aedt.docs.pyansys.com/version/dev/examples/high_frequency/layout/index.html): Provides examples showing
137
137
  end-to-end workflows for using PyEDB.
138
- - [Contribute](https://edb.docs.pyansys.com/version/version/stable/contribute.html): Describes how to install
138
+ - [Contribute](https://edb.docs.pyansys.com/version/stable/contributing.html): Describes how to install
139
139
  PyEDB in developer mode and how to contribute to this PyAnsys library.
140
140
 
141
141
  In the upper right corner of the documentation's title bar, there is an option
@@ -1,4 +1,4 @@
1
- pyedb/__init__.py,sha256=OfcwgYCq0Ye_OZg00Kv35J_bGdEQNVagDIyZ6s1dSkI,1525
1
+ pyedb/__init__.py,sha256=jPfquPDdV0IJjTtldZ3mliXjMnIiYmW12PqLoINlJP8,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
@@ -7,26 +7,26 @@ pyedb/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
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
- pyedb/configuration/cfg_boundaries.py,sha256=2LjCVWMxNvzvkz3Nh87mZOgMn7lv_lbYR2tUohGDi1o,11222
10
+ pyedb/configuration/cfg_boundaries.py,sha256=-CEUVF3_mnRJv9otavjMKX6iOsLSo1X03nfxnrrApmo,11216
11
11
  pyedb/configuration/cfg_common.py,sha256=U45p2qksEwMY_woVFaSwn5qjib9QQJDShajZZ-IZV0Y,2575
12
- pyedb/configuration/cfg_components.py,sha256=l8on20YN1M6koc4GPfGH34xxGhsYd6H504UcMuJZwFE,26064
12
+ pyedb/configuration/cfg_components.py,sha256=LFciizI0GIkny-A3PE2_KPnhf1VDjkQph7QNa35fN24,26082
13
13
  pyedb/configuration/cfg_data.py,sha256=sy1xUrfhRA3jorbR60qGExaMxQ1nQGGAbZYJ0xXYktE,3860
14
- pyedb/configuration/cfg_general.py,sha256=7bfpntHOeU21urpNYPeP-73HmYJedUIUdmNqsqntBaM,2896
15
- pyedb/configuration/cfg_modeler.py,sha256=RlK7doPgp0dlTE0n9wgs1rGPV5Y6OqRfL445yb-f3KM,10221
14
+ pyedb/configuration/cfg_general.py,sha256=RvBG9DnGB7700fDTa8eEZpOUgI2wwS3GoPXOUzmaDNQ,3200
15
+ pyedb/configuration/cfg_modeler.py,sha256=ytuGzb3Do4ZO793TkIk0nRfc27SkYcv9CnCJsPncJAU,10567
16
16
  pyedb/configuration/cfg_nets.py,sha256=vAtp3tTTuTDSDZw6uay4qXjbThqcCoyEXf7fNKW64DY,2900
17
- pyedb/configuration/cfg_operations.py,sha256=jaujF-M7EiGPf_DoePoIwqk_qtGzcbC9qIF1-3sgsak,5802
17
+ pyedb/configuration/cfg_operations.py,sha256=20CUt8-HYhMusaIH_iLOkrfcHF7eflFAXpxzrHBbWiA,8078
18
18
  pyedb/configuration/cfg_package_definition.py,sha256=aNA3ympBjvxtw9hVehF9PQWaEvNLVB8cwb-r7MtZtzY,7844
19
19
  pyedb/configuration/cfg_padstacks.py,sha256=RxCmRe4qbIefuKYaPCPhZ6fJ3-Tz9sektvXnswljQwU,39801
20
- pyedb/configuration/cfg_pin_groups.py,sha256=FS0Mc5mi56s3XNyjWcdV7rNJVZTPm8hXsQK2NS-rWUg,5580
21
- pyedb/configuration/cfg_ports_sources.py,sha256=TNoNbP5QM_u5dr2MR3ZUu79WYS0ZLT8lRu7H5Z82a2o,35397
22
- pyedb/configuration/cfg_s_parameter_models.py,sha256=DasTft7KFfyAty24rBip0H4nCrM4B6vSHzS32ZPO9nI,7794
23
- pyedb/configuration/cfg_setup.py,sha256=idpJ5s3WwnEiOu1EJSikz2A11Cxjw-qU8Yqx5YJ2Prk,14814
20
+ pyedb/configuration/cfg_pin_groups.py,sha256=UkDgJNAa6E9bv2Jo0K4vY2eTuqC61qcgqszrZ_bUcEg,5595
21
+ pyedb/configuration/cfg_ports_sources.py,sha256=4_t88bqAQzfypFH95Ro9ATBFz1ZJenZBjKpDfeb4lfk,39821
22
+ pyedb/configuration/cfg_s_parameter_models.py,sha256=UBrCOt69AQof5r2OqpoSJ7E8G52jo0lAcSfYvJhm8hU,10224
23
+ pyedb/configuration/cfg_setup.py,sha256=A8fm2Qqy9SFi8peToI55rfh0jxPESmOM6ecNBWHCggA,17526
24
24
  pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
25
25
  pyedb/configuration/cfg_stackup.py,sha256=1tRO2xCKm6J0wBQOokrUcrt4WJ3XoKT_pL_RV1Oy1KU,10643
26
- pyedb/configuration/configuration.py,sha256=0_KHtgZHC8yAHLtKVb22FRlpNRQvQGC3YFdcmbrM-8c,22535
26
+ pyedb/configuration/configuration.py,sha256=yw9pTjUMwFaU8Q8DvytJ3Fx9Fz4RKwhXZebPXedL8QA,22960
27
27
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  pyedb/dotnet/clr_module.py,sha256=EabqZgZgBZOhJD9_V8Ll8sEKgBFj9xe9zARNYIvYM_s,5304
29
- pyedb/dotnet/edb.py,sha256=TiM3VWBZx5iCG2cBKcWLN-YMqGFXR1drIsZKz2BDBAc,186032
29
+ pyedb/dotnet/edb.py,sha256=ayw86yMIOXlmri2Q4xbs3z_SdgnqOmsSTBSrz0mXFx8,186587
30
30
  pyedb/dotnet/database/Variables.py,sha256=CX12X6u-2tbcgjYJU643TVjIJEGB58a2nM4f4wMVTR8,77687
31
31
  pyedb/dotnet/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
32
32
  pyedb/dotnet/database/components.py,sha256=9HldXwn2xV7RPD-C9u_zpHTd6b5SKZkDled-NKrbweo,109471
@@ -37,7 +37,7 @@ pyedb/dotnet/database/layout_validation.py,sha256=kanRMaFz7Xv_3jFUwdbbzc1d6Rj6ka
37
37
  pyedb/dotnet/database/materials.py,sha256=lR3LwHpK9UUBuL542M7jw5mLlmgwn5n4d4kHcmBF2AU,44234
38
38
  pyedb/dotnet/database/modeler.py,sha256=ygY-9E3sIfFhHpk19-_J7xlLbQXB1Iw5xhXnW1Eoalw,55675
39
39
  pyedb/dotnet/database/net_class.py,sha256=NxRX8feIaJyf3NmRfSzZ08ItDbZOucOyAnTHZh-LkUI,11354
40
- pyedb/dotnet/database/nets.py,sha256=R--2ETa3-nc1RU5AqW4UjKXvA8oYKYLt06mQEsyi2j4,25213
40
+ pyedb/dotnet/database/nets.py,sha256=bs7aX6a3xWWNzxsX471omu17_4jmC1HmNH9q8fefBJc,25614
41
41
  pyedb/dotnet/database/padstack.py,sha256=maddMpEB07E408TNkoiBP4xWvmbpfHWDpv0zOM09Coo,73340
42
42
  pyedb/dotnet/database/siwave.py,sha256=yq6sRdJofKgXGMd2gvq7SpS-hXRqL_OPQCmOgwgkBfY,64366
43
43
  pyedb/dotnet/database/stackup.py,sha256=y-lrZWwK3BVLuV1WR3pP3o6IppioaQkzeO5QPiN_KKY,120035
@@ -56,7 +56,7 @@ pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py,sha256=o7Omw4R9uQGCBDj
56
56
  pyedb/dotnet/database/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCskkqZ3rdVHMSS_fGlAfwJSk,1443
57
57
  pyedb/dotnet/database/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
58
58
  pyedb/dotnet/database/cell/primitive/bondwire.py,sha256=3Wqn_9a54xhfPw38Vyo4ekzCF8NoU-WN_mNlhS8lFvw,7322
59
- pyedb/dotnet/database/cell/primitive/path.py,sha256=Vdkjvm2qv-gib4L4JaMbhT36vUmvIopqbRnnT-iirDs,12543
59
+ pyedb/dotnet/database/cell/primitive/path.py,sha256=NsbGXaXmWJjpZEvAHWp8wcEbNgGaHZ8fak_2m5rbnHI,13096
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
@@ -90,8 +90,8 @@ pyedb/dotnet/database/edb_data/sources.py,sha256=PEJXUwHALV3P6n8_OldlFrgeBfGlXq3
90
90
  pyedb/dotnet/database/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
91
91
  pyedb/dotnet/database/edb_data/variables.py,sha256=mJvOXT9A5rlxZamizCsC77QPWyt0zO_tUpPPl61xqcE,3501
92
92
  pyedb/dotnet/database/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- pyedb/dotnet/database/geometry/point_data.py,sha256=hC9cRuSnX4cwg09Jr0ZK7ZTjFf_4NwXJMGbZ3s-ULpQ,1590
94
- pyedb/dotnet/database/geometry/polygon_data.py,sha256=pvfGSVsQWiQp_GzdgidNaqFLwQen21tq7Ox7wHqfITA,5335
93
+ pyedb/dotnet/database/geometry/point_data.py,sha256=Cbs2849-Q6KC2nSr8AqFyhQrt2SSDFaTaZLRDeyP1EM,2174
94
+ pyedb/dotnet/database/geometry/polygon_data.py,sha256=_dj-6bgFrUZWg5SCA-9SYkrXX6yknfvGGA2SQtUSF18,5752
95
95
  pyedb/dotnet/database/sim_setup_data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
96
96
  pyedb/dotnet/database/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
97
97
  pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
@@ -119,24 +119,24 @@ 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=rg9FXWVuTawzEYATrvmA1BU9fjGOdNzoTo6fDFiPWcg,160258
123
- pyedb/grpc/edb_init.py,sha256=7uhG2VjHvS9N8CU-zDyW8jh_dWe8MWkfyU2k4-B8sX8,14513
124
- pyedb/grpc/rpc_session.py,sha256=UvxDSXuJFvemFJbQQtbI6nhYI9KBN366fw-jjoWysmE,6979
122
+ pyedb/grpc/edb.py,sha256=6PuJCp7R9jN_edjMw0SeM7C92m0s9paGt2u6FIXXo6E,160387
123
+ pyedb/grpc/edb_init.py,sha256=APv7vPNSoW9FMqwyaUYfmMnYHYtyvy9UejIURIiDjnI,14320
124
+ pyedb/grpc/rpc_session.py,sha256=HEGyWpmF8bvRcS_33C7-cOGPUdtiu3PMDTFOgP1LSSQ,7065
125
125
  pyedb/grpc/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
126
- pyedb/grpc/database/components.py,sha256=-7v6AewVnBt9s7VuJHXsnADLx0SUNAvwt1I1pNjTqQ8,83920
126
+ pyedb/grpc/database/components.py,sha256=dO4ZHgi0dEgc8f_o7emJ3inSeGrrovGeY7hHAhHIoWY,83849
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
- pyedb/grpc/database/hfss.py,sha256=pHOkPHHviRVf93pv3vNqEb88wO95BB6_CcURoaXQ0f4,45670
131
- pyedb/grpc/database/layout_validation.py,sha256=GuDjxDQnIdUglk-yq7HCMP74V_1L5upPbVsE_g8dHHg,13494
130
+ pyedb/grpc/database/hfss.py,sha256=-BS-Gm-Ytyj3FRgs7rOK9H7QiD_yNnHX18nut2GCX14,46033
131
+ pyedb/grpc/database/layout_validation.py,sha256=3XNjX6VX942fRPfSqIhGvRACmsQnbrbiXtW0elPwC50,13492
132
132
  pyedb/grpc/database/modeler.py,sha256=PT06tPaHh0ILY36HbGKfTwr45AHsxZRUfZFlizzaBnM,55065
133
133
  pyedb/grpc/database/nets.py,sha256=aBGhSzudYcq_heAyOX9ucAmLXY4nwOPrnRegRJ3lcHc,21234
134
- pyedb/grpc/database/padstacks.py,sha256=NedumZMv4BNoYYmNnhdGZCQEbGf9kFMwRzjcBzo9wHw,64881
135
- pyedb/grpc/database/siwave.py,sha256=XOc_nvsIKKSAbYj27GLBE0NhwpAJfzecJ_TQIKJGy6k,35157
136
- pyedb/grpc/database/source_excitations.py,sha256=HqpaBoclMvRQ6ZE2_J2CC1fSbBXu2k2wNBJAcLlNRsA,107187
137
- pyedb/grpc/database/stackup.py,sha256=TDtyFRPef_s8hOTf-eg5O65KPNGJ0uPqS5B_WVMUbXU,109235
134
+ pyedb/grpc/database/padstacks.py,sha256=sHzuCuqeckS0ModCVEFNLV6uCr33nUbAaRHgHZb64h4,64997
135
+ pyedb/grpc/database/siwave.py,sha256=sjiJ4D4CCK8WQO9b9vzrETbaCVWKOAjnK7kMW2ZHS3A,35472
136
+ pyedb/grpc/database/source_excitations.py,sha256=syOk88rcLKaPTJUYR3sX1Bo7jbr5rM5g6jLUykNoLJ8,107619
137
+ pyedb/grpc/database/stackup.py,sha256=BieO4aYOb9FwPTlCtpBhuWhRjvhaqERSibaKxOyZgHU,109568
138
138
  pyedb/grpc/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
- pyedb/grpc/database/definition/component_def.py,sha256=xbB7SY3c1BYfyC2wFRqGI1fTzxzn3KjSGjqRq2e_2Xs,7386
139
+ pyedb/grpc/database/definition/component_def.py,sha256=hc9Rh0E_QB7axgNtUvimLYkKxzRKxEWZsfMjQE0g1G4,7383
140
140
  pyedb/grpc/database/definition/component_model.py,sha256=9TRfILC3FfmgSrnYRwEdF2kbY4jFcC5rSeR9xeeb3wg,1689
141
141
  pyedb/grpc/database/definition/component_pin.py,sha256=PfwTv6ILn6irJ4P5nB0PNtz2U5dR4NPevsw6P33pAfQ,1493
142
142
  pyedb/grpc/database/definition/materials.py,sha256=sN8jkqImW8us6UKI1eSYqwPbb0E1AEGimaH7xj7hfDw,45253
@@ -169,7 +169,7 @@ pyedb/grpc/database/net/extended_net.py,sha256=DeK1vwsx_kuCWhORitL_z2APTigdtWZZf
169
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
- pyedb/grpc/database/ports/ports.py,sha256=boa3pfu-qLHsBi3-JqO5YxfWws21gWZHjLSPm63xocM,10199
172
+ pyedb/grpc/database/ports/ports.py,sha256=LCBfkFqhUpib-VMz7cY2BrPV4sVGVKq70RTUTy_8Hqw,10231
173
173
  pyedb/grpc/database/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
174
174
  pyedb/grpc/database/primitive/bondwire.py,sha256=IpDhf1z7GtaXZ12wbK172YNGCKkDB6sQ-7wH8HAXMnA,6238
175
175
  pyedb/grpc/database/primitive/circle.py,sha256=clKkYUTuQ-Cwbdmk7Uc6x4zi-QN53lVN2C2jKcGTF-8,2514
@@ -186,7 +186,7 @@ pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py,sha256=H_aqDcxATHK8yeJ
186
186
  pyedb/grpc/database/simulation_setup/hfss_general_settings.py,sha256=gL39zOgV0ZKDWDlclXwGHiyqKlq35b3TgGpQ5dGi85o,2433
187
187
  pyedb/grpc/database/simulation_setup/hfss_settings_options.py,sha256=QqSYROingDWwxdUX1QTMdxrUjqg4-fofxWyR_49mC48,2929
188
188
  pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py,sha256=GbToEtsZ5tiYZodcAsUuLzzRd7GrSuVjmRQnT9dWT4s,3946
189
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py,sha256=oDyzGGzi5h-Zqz2VQWSgPN7Z8UbLJyxndOKW_Qx1w2k,14882
189
+ pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py,sha256=Z-RZFEX4iEY0PYVAQ_8lrjr-391XbMC-CXPerG3Q4T4,15306
190
190
  pyedb/grpc/database/simulation_setup/hfss_solver_settings.py,sha256=Xi4N-cCO_8-JxMkI_tGyJ3SGcJrP5_rLvdbXx7P-uJI,1474
191
191
  pyedb/grpc/database/simulation_setup/mesh_operation.py,sha256=Ejf9v9njc-Ll3jw_DdA26CAT1WreludC6CwBrpoS16A,1439
192
192
  pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py,sha256=mo2zHBsdxHG9N81FNefulKjUv-Oi_VkV49kvKKXrhrs,1505
@@ -194,13 +194,13 @@ pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py,sha256=Sp-r6W8
194
194
  pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py,sha256=Ovl7CNmSBtC7lxgWfZV-aI2DoCmBWjI4fdwq2bSPvnE,2359
195
195
  pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py,sha256=La0fgP9w5iEbDhzTRXzm6NU1Bj8fMJbgWI96r1FOvO0,4783
196
196
  pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py,sha256=--LrmRx54PkvgzKEc7HbmVtttir3uOAjJaehilasMaA,1524
197
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=zNAI4JxgyNfjbHOaUDGRk1-bIfySzBUWGJN1SpiLkNg,4615
198
- pyedb/grpc/database/simulation_setup/sweep_data.py,sha256=iEl_Uy9DwI7wfoufFEECvsWXVEp0FOL5KaAgkVl9TtY,1572
197
+ pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=LtFl14cy4M5lynrqb0cLr9WMV9iur9dGpoiKI4hJU0g,6484
198
+ pyedb/grpc/database/simulation_setup/sweep_data.py,sha256=NfoUdUdgRFTw9SqR0UZhxaFA13MLpicDa7JXhgkBsug,1897
199
199
  pyedb/grpc/database/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
200
  pyedb/grpc/database/terminal/bundle_terminal.py,sha256=hr5FpAuH1gMsDO6CnJBgFU07m5t0XrUOcjhuQ_9tib8,6505
201
- pyedb/grpc/database/terminal/edge_terminal.py,sha256=LO5W6jrdnL_KmYlt0sMSmPMyDqzilzVsn1D7qYo-t5Y,2189
201
+ pyedb/grpc/database/terminal/edge_terminal.py,sha256=6Ea7vZjWVBEt0BR9LyJhOg8n2DDm4Ic_fiGQkFLOJwI,5429
202
202
  pyedb/grpc/database/terminal/padstack_instance_terminal.py,sha256=p5EKecNtzN8Zo4exsYA_IGDYRaGyM_3VrmcEnZ5VP2A,6067
203
- pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=PBVa0oq37oAT05uHtTgdwsSwbjxPfKRrctSWRygcshY,5324
203
+ pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=ysQCdCq2k6xivXO_0N4_swNCPKqEAbJxqa6wXul49Ms,5739
204
204
  pyedb/grpc/database/terminal/point_terminal.py,sha256=gwYJ1UP3Ny1BjcKEBOSPvLf4N3r2ZSIjRsUNkoRShPY,3469
205
205
  pyedb/grpc/database/terminal/terminal.py,sha256=n5W7fdcvbWcLH5CeItrZl8DJkGDUtZF080XqBIwkUKA,17008
206
206
  pyedb/grpc/database/utility/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
@@ -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.44.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
286
- pyedb-0.44.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
287
- pyedb-0.44.0.dist-info/METADATA,sha256=64TbEAtKk83e7uwYTFLg8JwGUps7-pXu7j-OUcItyOQ,8617
288
- pyedb-0.44.0.dist-info/RECORD,,
285
+ pyedb-0.45.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
286
+ pyedb-0.45.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
287
+ pyedb-0.45.0.dist-info/METADATA,sha256=YKDuYdhY4PMac09SQ9J7d3coe57XivALh3vmIh6xkgg,8619
288
+ pyedb-0.45.0.dist-info/RECORD,,
File without changes