pyedb 0.7.1__py3-none-any.whl → 0.8.1__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 (32) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/dotnet/edb.py +1 -0
  3. pyedb/dotnet/edb_core/cell/hierarchy/model.py +1 -1
  4. pyedb/dotnet/edb_core/components.py +15 -12
  5. pyedb/dotnet/edb_core/configuration.py +37 -5
  6. pyedb/dotnet/edb_core/definition/component_def.py +1 -1
  7. pyedb/dotnet/edb_core/definition/component_model.py +1 -1
  8. pyedb/dotnet/edb_core/definition/definition_obj.py +1 -1
  9. pyedb/dotnet/edb_core/definition/definitions.py +8 -2
  10. pyedb/dotnet/edb_core/definition/package_def.py +34 -15
  11. pyedb/dotnet/edb_core/dotnet/database.py +5 -4
  12. pyedb/dotnet/edb_core/edb_data/components_data.py +1 -1
  13. pyedb/dotnet/edb_core/edb_data/connectable.py +1 -1
  14. pyedb/dotnet/edb_core/edb_data/layer_data.py +3 -2
  15. pyedb/dotnet/edb_core/edb_data/primitives_data.py +4 -2
  16. pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +6 -0
  17. pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
  18. pyedb/dotnet/edb_core/{edb_data/obj_base.py → geometry/point_data.py} +12 -26
  19. pyedb/dotnet/edb_core/geometry/polygon_data.py +77 -0
  20. pyedb/dotnet/edb_core/materials.py +128 -106
  21. pyedb/dotnet/edb_core/nets.py +3 -3
  22. pyedb/dotnet/edb_core/obj_base.py +94 -0
  23. pyedb/dotnet/edb_core/siwave.py +33 -2
  24. pyedb/dotnet/edb_core/stackup.py +49 -42
  25. pyedb/dotnet/sim_setup_data/data/siw_dc_ir_settings.py +46 -0
  26. pyedb/edb_logger.py +15 -1
  27. pyedb/generic/settings.py +20 -9
  28. pyedb/siwave.py +50 -1
  29. {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/METADATA +5 -5
  30. {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/RECORD +32 -28
  31. {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/LICENSE +0 -0
  32. {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/WHEEL +0 -0
@@ -33,8 +33,6 @@ import logging
33
33
  import math
34
34
  import warnings
35
35
 
36
- import matplotlib.colors
37
-
38
36
  from pyedb.dotnet.edb_core.edb_data.layer_data import (
39
37
  LayerEdbClass,
40
38
  StackupLayerEdbClass,
@@ -48,9 +46,15 @@ from pyedb.generic.general_methods import (
48
46
  )
49
47
  from pyedb.misc.aedtlib_personalib_install import write_pretty_xml
50
48
 
49
+ colors = None
51
50
  pd = None
52
51
  np = None
53
52
  if not is_ironpython:
53
+ try:
54
+ import matplotlib.colors as colors
55
+ except ImportError:
56
+ colors = None
57
+
54
58
  try:
55
59
  import numpy as np
56
60
  except ImportError:
@@ -200,7 +204,7 @@ class Stackup(object):
200
204
  inner_layer_thickness="17um",
201
205
  outer_layer_thickness="50um",
202
206
  dielectric_thickness="100um",
203
- dielectric_material="fr4_epoxy",
207
+ dielectric_material="FR4_epoxy",
204
208
  soldermask=True,
205
209
  soldermask_thickness="20um",
206
210
  ): # pragma: no cover
@@ -243,7 +247,7 @@ class Stackup(object):
243
247
  self.add_layer(
244
248
  "D" + str(int(layer_count / 2)),
245
249
  None,
246
- material="fr4_epoxy",
250
+ material="FR4_epoxy",
247
251
  thickness=dielectric_thickness,
248
252
  layer_type="dielectric",
249
253
  fillMaterial=dielectric_material,
@@ -259,7 +263,7 @@ class Stackup(object):
259
263
  self.add_layer(
260
264
  "SMT",
261
265
  None,
262
- material="solder_mask",
266
+ material="SolderMask",
263
267
  thickness=soldermask_thickness,
264
268
  layer_type="dielectric",
265
269
  fillMaterial=dielectric_material,
@@ -267,14 +271,14 @@ class Stackup(object):
267
271
  self.add_layer(
268
272
  "SMB",
269
273
  None,
270
- material="solder_mask",
274
+ material="SolderMask",
271
275
  thickness=soldermask_thickness,
272
276
  layer_type="dielectric",
273
277
  fillMaterial=dielectric_material,
274
278
  method="add_on_bottom",
275
279
  )
276
- self.stackup_layers["TOP"].dielectric_fill = "solder_mask"
277
- self.stackup_layers["BOT"].dielectric_fill = "solder_mask"
280
+ self.stackup_layers["TOP"].dielectric_fill = "SolderMask"
281
+ self.stackup_layers["BOT"].dielectric_fill = "SolderMask"
278
282
 
279
283
  for layer_num in np.arange(int(layer_count / 2), 1, -1):
280
284
  # Generate upper half
@@ -634,6 +638,7 @@ class Stackup(object):
634
638
  else:
635
639
  return False
636
640
 
641
+ # TODO: Update optional argument material into material_name and fillMaterial into fill_material_name
637
642
  @pyedb_function_handler()
638
643
  def add_layer(
639
644
  self,
@@ -642,7 +647,7 @@ class Stackup(object):
642
647
  method="add_on_top",
643
648
  layer_type="signal",
644
649
  material="copper",
645
- fillMaterial="fr4_epoxy",
650
+ fillMaterial="FR4_epoxy",
646
651
  thickness="35um",
647
652
  etch_factor=None,
648
653
  is_negative=False,
@@ -686,25 +691,25 @@ class Stackup(object):
686
691
  if layer_name in self.layers:
687
692
  logger.error("layer {} exists.".format(layer_name))
688
693
  return False
689
- materials_lower = {m.lower(): m for m in list(self._pedb.materials.materials.keys())}
690
694
  if not material:
691
- if layer_type == "signal":
692
- material = "copper"
693
- else:
694
- material = "fr4_epoxy"
695
+ material = "copper" if layer_type == "signal" else "FR4_epoxy"
695
696
  if not fillMaterial:
696
- fillMaterial = "fr4_epoxy"
697
+ fillMaterial = "FR4_epoxy"
697
698
 
698
- if material.lower() not in materials_lower:
699
- logger.error(material + " does not exist in material library")
700
- else:
701
- material = materials_lower[material.lower()]
699
+ materials = self._pedb.materials
700
+ if material not in materials:
701
+ logger.warning(
702
+ f"Material '{material}' does not exist in material library. Intempt to create it from syslib."
703
+ )
704
+ material_properties = self._pedb.materials.read_syslib_material(material)
705
+ materials.add_material(material, **material_properties)
702
706
 
703
- if layer_type != "dielectric":
704
- if fillMaterial.lower() not in materials_lower:
705
- logger.error(fillMaterial + " does not exist in material library")
706
- else:
707
- fillMaterial = materials_lower[fillMaterial.lower()]
707
+ if layer_type != "dielectric" and fillMaterial not in materials:
708
+ logger.warning(
709
+ f"Material '{fillMaterial}' does not exist in material library. Intempt to create it from syslib."
710
+ )
711
+ material_properties = self._pedb.materials.read_syslib_material(fillMaterial)
712
+ materials.add_material(fillMaterial, **material_properties)
708
713
 
709
714
  if layer_type in ["signal", "dielectric"]:
710
715
  new_layer = self._create_stackup_layer(layer_name, thickness, layer_type)
@@ -1716,7 +1721,7 @@ class Stackup(object):
1716
1721
  "name": "default",
1717
1722
  "type": "signal",
1718
1723
  "material": "copper",
1719
- "dielectric_fill": "fr4_epoxy",
1724
+ "dielectric_fill": "FR4_epoxy",
1720
1725
  "thickness": 3.5e-05,
1721
1726
  "etch_factor": 0.0,
1722
1727
  "roughness_enabled": False,
@@ -1747,7 +1752,7 @@ class Stackup(object):
1747
1752
  "name": "default",
1748
1753
  "type": "signal",
1749
1754
  "material": "copper",
1750
- "dielectric_fill": "fr4_epoxy",
1755
+ "dielectric_fill": "FR4_epoxy",
1751
1756
  "thickness": 3.5e-05,
1752
1757
  "etch_factor": 0.0,
1753
1758
  "roughness_enabled": False,
@@ -2072,25 +2077,24 @@ class Stackup(object):
2072
2077
 
2073
2078
  @pyedb_function_handler()
2074
2079
  def _add_materials_from_dictionary(self, material_dict):
2075
- mat_keys = [i.lower() for i in self._pedb.materials.materials.keys()]
2076
- mat_keys_case = [i for i in self._pedb.materials.materials.keys()]
2077
- for name, attr in material_dict.items():
2078
- if not name.lower() in mat_keys:
2079
- if "Conductivity" in attr:
2080
- self._pedb.materials.add_conductor_material(name, attr["Conductivity"])
2080
+ materials = self.self._pedb.materials.materials
2081
+ for name, material_properties in material_dict.items():
2082
+ if not name in materials:
2083
+ if "Conductivity" in material_properties:
2084
+ materials.add_conductor_material(name, material_properties["Conductivity"])
2081
2085
  else:
2082
- self._pedb.materials.add_dielectric_material(
2086
+ materials.add_dielectric_material(
2083
2087
  name,
2084
- attr["Permittivity"],
2085
- attr["DielectricLossTangent"],
2088
+ material_properties["Permittivity"],
2089
+ material_properties["DielectricLossTangent"],
2086
2090
  )
2087
2091
  else:
2088
- local_material = self._pedb.materials[mat_keys_case[mat_keys.index(name.lower())]]
2089
- if "Conductivity" in attr:
2090
- local_material.conductivity = attr["Conductivity"]
2092
+ material = materials[name]
2093
+ if "Conductivity" in material_properties:
2094
+ material.conductivity = material_properties["Conductivity"]
2091
2095
  else:
2092
- local_material.permittivity = attr["Permittivity"]
2093
- local_material.loss_tanget = attr["DielectricLossTangent"]
2096
+ material.permittivity = material_properties["Permittivity"]
2097
+ material.loss_tanget = material_properties["DielectricLossTangent"]
2094
2098
  return True
2095
2099
 
2096
2100
  @pyedb_function_handler()
@@ -2110,6 +2114,9 @@ class Stackup(object):
2110
2114
  bool
2111
2115
  ``True`` when successful, ``False`` when failed.
2112
2116
  """
2117
+ if not colors:
2118
+ self._pedb.logger.error("Matplotlib is needed. Please, install it first.")
2119
+ return False
2113
2120
  tree = ET.parse(file_path)
2114
2121
  root = tree.getroot()
2115
2122
  stackup = root.find("Stackup")
@@ -2130,7 +2137,7 @@ class Stackup(object):
2130
2137
  layer = {"name": l.attrib["Name"]}
2131
2138
  for k, v in l.attrib.items():
2132
2139
  if k == "Color":
2133
- layer[k.lower()] = [int(x * 255) for x in list(matplotlib.colors.to_rgb(v))]
2140
+ layer[k.lower()] = [int(x * 255) for x in list(colors.to_rgb(v))]
2134
2141
  elif k == "Thickness":
2135
2142
  layer[k.lower()] = v + length_unit
2136
2143
  elif v == "conductor":
@@ -2257,7 +2264,7 @@ class Stackup(object):
2257
2264
  >>> edb.stackup.import_stackup("stackup.xml")
2258
2265
  """
2259
2266
 
2260
- self._logger.warning("Method export_stackup is deprecated. Use .export.")
2267
+ self._logger.warning("Method import_stackup is deprecated. Use .load")
2261
2268
  return self.load(file_path)
2262
2269
 
2263
2270
  @pyedb_function_handler()
@@ -0,0 +1,46 @@
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
+
24
+ class SiwaveDCIRSettings:
25
+ """Class for DC IR settings."""
26
+
27
+ def __init__(self, parent):
28
+ self._parent = parent
29
+
30
+ @property
31
+ def export_dc_thermal_data(self):
32
+ """Export DC Thermal Data.
33
+
34
+ Returns
35
+ -------
36
+ bool
37
+ ``True`` when activated, ``False`` deactivated.
38
+ """
39
+ return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData
40
+
41
+ @export_dc_thermal_data.setter
42
+ def export_dc_thermal_data(self, value):
43
+ edb_setup_info = self._parent.get_sim_setup_info
44
+ edb_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData = value
45
+ self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
46
+ self._parent._update_setup()
pyedb/edb_logger.py CHANGED
@@ -415,4 +415,18 @@ class EdbLogger(object):
415
415
  return self._global
416
416
 
417
417
 
418
- pyedb_logger = EdbLogger(to_stdout=settings.enable_screen_logs)
418
+ logger = logging.getLogger("Global")
419
+ if any("aedt_logger" in str(i) for i in logger.filters):
420
+ from pyaedt.generic.settings import settings as pyaedt_settings
421
+
422
+ from pyedb.generic.settings import settings as pyaedb_settings
423
+
424
+ pyedb_logger = pyaedt_settings.logger
425
+ pyaedb_settings.use_pyaedt_log = True
426
+ pyaedb_settings.logger = pyedb_logger
427
+
428
+ else:
429
+ pyedb_logger = EdbLogger(to_stdout=settings.enable_screen_logs)
430
+ from pyedb.generic.settings import settings as pyaedb_settings
431
+
432
+ pyaedb_settings.logger = pyedb_logger
pyedb/generic/settings.py CHANGED
@@ -20,7 +20,6 @@
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 logging
24
23
  import os
25
24
  import time
26
25
 
@@ -59,6 +58,26 @@ class Settings(object):
59
58
  self._global_log_file_size = 10
60
59
  self._lsf_queue = None
61
60
  self._edb_environment_variables = {}
61
+ self._use_pyaedt_log = False
62
+ self._logger = None
63
+
64
+ @property
65
+ def logger(self):
66
+ """Active logger."""
67
+ return self._logger
68
+
69
+ @logger.setter
70
+ def logger(self, val):
71
+ self._logger = val
72
+
73
+ @property
74
+ def use_pyaedt_log(self):
75
+ """Flag that disable Edb log when PyAEDT is used."""
76
+ return self._use_pyaedt_log
77
+
78
+ @use_pyaedt_log.setter
79
+ def use_pyaedt_log(self, value):
80
+ self._use_pyaedt_log = value
62
81
 
63
82
  @property
64
83
  def edb_environment_variables(self):
@@ -130,14 +149,6 @@ class Settings(object):
130
149
  def enable_debug_methods_argument_logger(self, val):
131
150
  self._enable_debug_methods_argument_logger = val
132
151
 
133
- @property
134
- def logger(self):
135
- """Active logger."""
136
- try:
137
- return logging.getLogger("Global")
138
- except: # pragma: no cover
139
- return logging.getLogger(__name__)
140
-
141
152
  @property
142
153
  def enable_error_handler(self):
143
154
  """Flag for enabling and disabling the internal PyEDB error handling."""
pyedb/siwave.py CHANGED
@@ -14,6 +14,7 @@ import sys
14
14
  import time
15
15
 
16
16
  from pyedb.dotnet.clr_module import _clr
17
+ from pyedb.edb_logger import pyedb_logger
17
18
  from pyedb.generic.general_methods import (
18
19
  _pythonver,
19
20
  is_ironpython,
@@ -65,6 +66,7 @@ class Siwave(object): # pragma no cover
65
66
  return self.version_keys[0]
66
67
 
67
68
  def __init__(self, specified_version=None):
69
+ self._logger = pyedb_logger
68
70
  if is_ironpython:
69
71
  _com = "pythonnet"
70
72
  import System
@@ -327,7 +329,6 @@ class Siwave(object): # pragma no cover
327
329
  bkground_color : str, optional
328
330
  Color of the report's background. The default is ``"White"``.
329
331
 
330
-
331
332
  Returns
332
333
  -------
333
334
  bool
@@ -339,3 +340,51 @@ class Siwave(object): # pragma no cover
339
340
  while not os.path.exists(file_path):
340
341
  time.sleep(0.1)
341
342
  return True
343
+
344
+ @pyedb_function_handler
345
+ def run_dc_simulation(self):
346
+ """Run DC simulation."""
347
+ self._logger.info("Running DC simulation.")
348
+ return self.oproject.ScrRunDcSimulation(1)
349
+
350
+ @pyedb_function_handler
351
+ def export_icepak_project(self, file_path, dc_simulation_name):
352
+ """Exports an Icepak project for standalone use.
353
+
354
+ Parameters
355
+ ----------
356
+ file_path : str,
357
+ Path of the Icepak project.
358
+ dc_simulation_name : str
359
+ Name of the DC simulation.
360
+
361
+ Returns
362
+ -------
363
+ bool
364
+ ``True`` when successful, ``False`` when failed.
365
+
366
+ """
367
+
368
+ self.oproject.ScrExportDcPowerDataToIcepak(True)
369
+ self._logger.info("Exporting Icepak project.")
370
+ code = self.oproject.ScrExportIcepakProject(file_path, dc_simulation_name)
371
+ return True if code == 0 else False
372
+
373
+ @pyedb_function_handler
374
+ def run_icepak_simulation(self, icepak_simulation_name, dc_simulation_name):
375
+ """Runs an Icepak simulation.
376
+
377
+ Parameters
378
+ ----------
379
+ icepak_simulation_name : str
380
+ Name of the Icepak simulation.
381
+ dc_simulation_name : str
382
+ Name of the DC simulation.
383
+
384
+ Returns
385
+ -------
386
+ bool
387
+ ``True`` when successful, ``False`` when failed.
388
+
389
+ """
390
+ return self.oproject.ScrRunIcepakSimulation(icepak_simulation_name, dc_simulation_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.7.1
3
+ Version: 0.8.1
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>
@@ -19,9 +19,9 @@ Requires-Dist: cffi>=1.16.0,<1.17; platform_system=='Linux'
19
19
  Requires-Dist: pywin32 >= 303;platform_system=='Windows'
20
20
  Requires-Dist: ansys-pythonnet >= 3.1.0rc3
21
21
  Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
22
- Requires-Dist: pydantic>=2.6.4,<2.7
22
+ Requires-Dist: pydantic>=2.6.4,<2.8
23
23
  Requires-Dist: toml == 0.10.2
24
- Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.15 ; extra == "doc"
24
+ Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.16 ; extra == "doc"
25
25
  Requires-Dist: imageio>=2.30.0,<2.35 ; extra == "doc"
26
26
  Requires-Dist: ipython>=8.13.0,<8.24 ; extra == "doc"
27
27
  Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
@@ -30,8 +30,8 @@ Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
30
30
  Requires-Dist: numpydoc>=1.5.0,<1.8 ; extra == "doc"
31
31
  Requires-Dist: pypandoc>=1.10.0,<1.14 ; extra == "doc"
32
32
  Requires-Dist: recommonmark ; extra == "doc"
33
- Requires-Dist: Sphinx>=7.1.0,<7.3 ; extra == "doc"
34
- Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
33
+ Requires-Dist: Sphinx>=7.1.0,<7.4 ; extra == "doc"
34
+ Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version == '3.8')
35
35
  Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version > '3.8')
36
36
  Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
37
37
  Requires-Dist: sphinx-gallery>=0.14.0,<0.16 ; extra == "doc"
@@ -1,61 +1,65 @@
1
- pyedb/__init__.py,sha256=Ziohb_1Kw3oE3FyJRAhOLfXLe5czlRV7wZBEpih0qio,1520
2
- pyedb/edb_logger.py,sha256=NqxENWU088HzX5aLWU9oM2f64NCDTAaE52nYYRc6kT4,14472
1
+ pyedb/__init__.py,sha256=E32CaYS36_mPebFR8emGgxai-TPaWHCWwE9WpMwLBIs,1520
2
+ pyedb/edb_logger.py,sha256=yNkXnoL2me7ubLT6O6r6ElVnkZ1g8fmfFYC_2XJZ1Sw,14950
3
3
  pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
4
- pyedb/siwave.py,sha256=UY7142oB-eG7JZXRiXHg-K8pM6hHDhJpM6jhc2EzC3I,10056
4
+ pyedb/siwave.py,sha256=ilUsA74QKy7VpRfmfvRrcVZhPAsyfgXHZm0SDDHiGBE,11576
5
5
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
7
- pyedb/dotnet/edb.py,sha256=0eisxTzvJqvWR-02zbgjL3oxlrAj47JWlL6Txd7Ob9M,169918
7
+ pyedb/dotnet/edb.py,sha256=wbzl9083scWVoWkYG5lQshBPuTnQlIiBq0P8x9zblik,169971
8
8
  pyedb/dotnet/application/Variables.py,sha256=nov1kIyJO25iz8pvbU3MK1meMpRLwtISmzYqJhc7Ouo,79042
9
9
  pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
11
- pyedb/dotnet/edb_core/components.py,sha256=j1xPzxfXLKSrlqBIulSESEHz5lcyRZ70bDxC8K2PZWY,103052
12
- pyedb/dotnet/edb_core/configuration.py,sha256=140XHSlTdi-R3-HA5tZArI_nQ_6NmzAFgp5ufbnUhuU,32032
11
+ pyedb/dotnet/edb_core/components.py,sha256=Lo7o_9TN2EhlTEQMtT2KD1e9XW3QMg5i-aAo_Tzg0dY,102985
12
+ pyedb/dotnet/edb_core/configuration.py,sha256=huxXAAfRUFarJQbuoAEhH3JnmNylb2r__lfrEd8oMaA,33626
13
13
  pyedb/dotnet/edb_core/general.py,sha256=QP6lqNEcqCdj_hSKhfKbmJ2hGBOYkhjPtsVEmyrO8KU,4726
14
14
  pyedb/dotnet/edb_core/hfss.py,sha256=O81AB-0it9kIWTfUDaw5Frfq3EVRl0adcAurJZUIDuk,68343
15
15
  pyedb/dotnet/edb_core/layout.py,sha256=Sde2-8E-sGiO0JvjY31ydlq0QZrVkutbT_afp1FkK0w,50907
16
16
  pyedb/dotnet/edb_core/layout_validation.py,sha256=7Wj_VSAJOSA-RKOPgJXO-y9i6vfgJ4V9vxx0M1g1NUI,11798
17
- pyedb/dotnet/edb_core/materials.py,sha256=1uHxKK76FjRPP4eZ4lAQeoWtiLAJPbJfTICpEF1c8UM,43342
17
+ pyedb/dotnet/edb_core/materials.py,sha256=xYfud7EWDmK6O_hvANRqzFjp8ZqJdM0AJ8KYhUBVTyc,44463
18
18
  pyedb/dotnet/edb_core/net_class.py,sha256=lr-7Z0Q1A2fshxwjrIOmQSZnEBYe0NoxuUuJT6vYdyA,11857
19
- pyedb/dotnet/edb_core/nets.py,sha256=OR7D-WerPb-cT2kc-uj7iC9Ds9fr3n7EeyCLHZGgGw0,43851
19
+ pyedb/dotnet/edb_core/nets.py,sha256=EK-jjRFvRX_NtqMQ46ebJbv9HOvP1uYK_EZ3jPnmxB0,43882
20
+ pyedb/dotnet/edb_core/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
20
21
  pyedb/dotnet/edb_core/padstack.py,sha256=XT7S_RgOtYAr4G67EKXbbxsDeb6wMHC6Y_YMDljuMR4,54540
21
- pyedb/dotnet/edb_core/siwave.py,sha256=wdTPV9166jpIitVubJa0BvjfMSEj1Xyvm4mK1Zqaa18,61143
22
- pyedb/dotnet/edb_core/stackup.py,sha256=h2oWWl_LmwA3gXrfU3W0jVg5L3QCCc4rSMZom5xIH20,114967
22
+ pyedb/dotnet/edb_core/siwave.py,sha256=wdLAKiz0Qhiktz3OPekBQtw_y2Kb8Vyk19QdF-FcUVU,62356
23
+ pyedb/dotnet/edb_core/stackup.py,sha256=vFHc9uroqdb193uHHNVRa1rxy-9Oe76eQZ98X2Kfx54,115372
23
24
  pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
25
  pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=5Avq39gZuJhd5gi3o9ZIwTy2wmUQ8Cg8fMgbLTi2qTw,3318
26
+ pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=cJzNJLiuuoesfCL8-jWo8LbgGbfXrTYNQqmeeE38ieM,3309
26
27
  pyedb/dotnet/edb_core/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- pyedb/dotnet/edb_core/definition/component_def.py,sha256=uKIxD9P4b23HSgj2pJnZPCN3w9AH0gLdr9lveAm3eRU,6752
28
- pyedb/dotnet/edb_core/definition/component_model.py,sha256=vWH9AyFgyKDhcMcAOlhcMXmiSBcUn_F4JDdbHupKauw,2038
29
- pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=-SEF9iGeTvwAZOg5-Mjwlnw-vLdpVHSzXziBWOhRHrE,1559
30
- pyedb/dotnet/edb_core/definition/definitions.py,sha256=6McCzGTkXNsj1wc3Jp6xpF04RTitlm2YGmiKCkbl414,2136
31
- pyedb/dotnet/edb_core/definition/package_def.py,sha256=KQgwoo4tjT4mk4jXFGOWo98LDo29Bj9oANdJRkn7YI8,4964
28
+ pyedb/dotnet/edb_core/definition/component_def.py,sha256=2M7ToqN1SE65s9xJHaLDTKlRkPk8pICUBOOn4jBGbDA,6743
29
+ pyedb/dotnet/edb_core/definition/component_model.py,sha256=lKyOsJNYfqUe4ZjEaYJKucBxcgLqNxfrs6BGWvYfjeA,2029
30
+ pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=Z6GDSOvn3xX1p2W3SnXRNDbsOIxrb-I7nS47VQzozKg,1550
31
+ pyedb/dotnet/edb_core/definition/definitions.py,sha256=1KcWb0FTxPBGgFjI9-ksJJpqlr8BkTXiglttwJkiuO4,2476
32
+ pyedb/dotnet/edb_core/definition/package_def.py,sha256=dlXlrrrKhF7xPey8EIuaJbpWwLLffF1HajySU6rStS0,5967
32
33
  pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- pyedb/dotnet/edb_core/dotnet/database.py,sha256=Yeps02zefBKrfM46gujEUlgj4esrjmUqWsZWNoFy8sM,37597
34
+ pyedb/dotnet/edb_core/dotnet/database.py,sha256=m8QgX1E5elOoBTHt5zCsUKUFRuwru5r-31PmUE6rQr0,37653
34
35
  pyedb/dotnet/edb_core/dotnet/layout.py,sha256=_3lKFvEqA5S66yF_FSX5HbLsFNFpsigRsaN3Rj02pFk,8904
35
36
  pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=VGZ_QNfdYhHDU4vq7fRUTinBfDyYTIY7SBysQK0-2SM,48320
36
37
  pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=VNRNTk4WGVj7lC15xUKLzlFZu4h16PcFn4nZFHyjjCE,37235
38
- pyedb/dotnet/edb_core/edb_data/connectable.py,sha256=Mp2JEpHHWWnTGpVSfRfP4ATNqWD1l87ECAOS61Cd5rQ,4265
38
+ pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=MgE6lDjoN1wtdJZDtDlDDm9VImrCcQF-b-gUP9bl8Jo,37225
39
+ pyedb/dotnet/edb_core/edb_data/connectable.py,sha256=4DjU3ZzeZhPkxvaZNM3MgtrHCqI0PJlea92f3wKJk0c,4256
39
40
  pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=2Gfrs8qW3N7y0A8ynAlKQpA6q9RU21zmW7B2MMyTjN0,48425
40
41
  pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
41
42
  pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
42
43
  pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=5koQSKdYC6Deh4haLUDAxnHlRa-j5S6g4eyAfiGgZP8,13190
43
44
  pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py,sha256=FtNyCgJ4ioUxOi6cMgtjsDdLLnETybJJBMizC4ZPeOo,48944
44
- pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=lQRIJsfp3I1SviYwwIRMejFVNf0hjyDIDl8EHP3vJ08,21880
45
+ pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=iLfX7bsMzolxEowjdrN8Q1TMyZTfkLzK5UHklmboH6E,21945
45
46
  pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=iULEOUsn3sfLT5FVY_4lMWTm0KzC-01AZ-aYIkM0U-k,9933
46
- pyedb/dotnet/edb_core/edb_data/obj_base.py,sha256=7Tlc-ieJjnCw5AM2T-Z_csxNxcg0Zf_L7rsyTJEvv6g,1882
47
47
  pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=T7m7s5KAZB-gZ9wrPw6k2Yoon6uwCfJSOeg2hvyX1LI,78754
48
48
  pyedb/dotnet/edb_core/edb_data/ports.py,sha256=FYxB2rDUtN_OsYAbodXbc5mA_d0BUebmin_B5kkUw3U,9223
49
- pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=LpnZoY1tsapxm6mJ3jJrzdwOgTiJKvqIxoq9pkqgAD0,48059
49
+ pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=veMDPCb6T84KZ_xgo52g7vHxObsx-Y2ysWXBS2CqZpQ,48155
50
50
  pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=0U5sHLn8rvQFOveRQE3Y84TGk0-DUfOnbvEO6Iffya4,99967
51
- pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py,sha256=wnSEGZwry6XdvjqpxAs8OpQOUGeEguamM_KfA8m_Y_4,42156
51
+ pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py,sha256=fPmdhh6t6HM2pE_mQCT0ZQYO-PkqhwumwiuRUNEn00Q,42354
52
52
  pyedb/dotnet/edb_core/edb_data/sources.py,sha256=XmdpOdlpBa3QiYFY0cRtVIolt4nvUR9Ptk5YnRVvU4c,15342
53
53
  pyedb/dotnet/edb_core/edb_data/terminals.py,sha256=m2kch7Md-MSGUEbKFW8m8RpBzq6lNMFdgPgOtDUbsMA,25287
54
54
  pyedb/dotnet/edb_core/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
55
55
  pyedb/dotnet/edb_core/edb_data/variables.py,sha256=LS1jZPOYgRvf4cyKf_x8hI9Brs-qbh4wrHu_QGLElrg,3501
56
+ pyedb/dotnet/edb_core/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ pyedb/dotnet/edb_core/geometry/point_data.py,sha256=hC9cRuSnX4cwg09Jr0ZK7ZTjFf_4NwXJMGbZ3s-ULpQ,1590
58
+ pyedb/dotnet/edb_core/geometry/polygon_data.py,sha256=K1jwj6gXm4KFqrPGJmtc49bSDZl1ytmrLdJ81VEJtco,2990
56
59
  pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
57
60
  pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
58
61
  pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=uQMKL4cwWQkPD53BENHF9uyt1NxtPW0dMVAOPdI8gUM,23967
62
+ pyedb/dotnet/sim_setup_data/data/siw_dc_ir_settings.py,sha256=urJvgBJOgF3Td527z98vdqAtBBKC3yomcAL3fOTt7xs,1931
59
63
  pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
64
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
61
65
  pyedb/generic/data_handlers.py,sha256=oyYFwdjt0CxdOxgFDmnBlOFICt2twFLsMyELuQ1kFjE,7137
@@ -64,7 +68,7 @@ pyedb/generic/filesystem.py,sha256=SwvXv1T05SrC9TPtK88joQoU5Ab7hYjrp5NncFeH7kM,3
64
68
  pyedb/generic/general_methods.py,sha256=ifabLBxrYmah2XOMyKrx-G53DJlfPY9hgAW8NT4e73U,43608
65
69
  pyedb/generic/plot.py,sha256=1P9jxzpZDKy7FobBkqezcU8c-Xq5trxS6iBNNLXpFJ0,4901
66
70
  pyedb/generic/process.py,sha256=9goCXrW3Su-8WuV5f6YqzY-Pl9EMFEd50KFN5AJXZGc,11206
67
- pyedb/generic/settings.py,sha256=0iqEJaDec7wHM4br7FNbs_BaK476VKEnQKRVr6gW1Ko,8967
71
+ pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
68
72
  pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
73
  pyedb/ipc2581/history_record.py,sha256=s1GjcIgnZHlNCBOeEERBDX7xDuqhXmh2Ctt3ccFDWso,2739
70
74
  pyedb/ipc2581/ipc2581.py,sha256=Y9d1PdbbMMwTUg0Ai-HKwDhJV0fCy8thRHyCFOPF4Ck,22685
@@ -127,7 +131,7 @@ pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=HVYOQacmaLr6Mvf7FqZhqbhtqJL
127
131
  pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=yUK4w3hequU017E2DbkA4KE2MWIh1R6bfJBrevlDx6g,1557
128
132
  pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=55X-V0OxWq-v7FTiDVjaZif8V_2xxsvJlJ8bs9Bf61I,2521
129
133
  pyedb/modeler/geometry_operators.py,sha256=LDqEaeerw9H8Yva-SJhX3Afdni08OciO9t5G0c_tdqs,66820
130
- pyedb-0.7.1.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
131
- pyedb-0.7.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
132
- pyedb-0.7.1.dist-info/METADATA,sha256=SFs8Tnpk9Z0u0o3nSVUuQRyMXqDSXHjU4U9a8wA9Gpo,8321
133
- pyedb-0.7.1.dist-info/RECORD,,
134
+ pyedb-0.8.1.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
135
+ pyedb-0.8.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
136
+ pyedb-0.8.1.dist-info/METADATA,sha256=msQ9v6ZCjdGNLCwZmjC71Meue38wfQiFsgJhZTJIh3M,8320
137
+ pyedb-0.8.1.dist-info/RECORD,,
File without changes
File without changes