pyedb 0.18.0__py3-none-any.whl → 0.20.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 (54) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_data.py +8 -11
  3. pyedb/configuration/cfg_nets.py +14 -0
  4. pyedb/configuration/cfg_pin_groups.py +57 -20
  5. pyedb/configuration/cfg_ports_sources.py +248 -60
  6. pyedb/configuration/configuration.py +51 -17
  7. pyedb/dotnet/edb.py +156 -236
  8. pyedb/dotnet/edb_core/cell/connectable.py +64 -0
  9. pyedb/dotnet/edb_core/cell/hierarchy/component.py +12 -10
  10. pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +1 -1
  11. pyedb/dotnet/edb_core/cell/layout.py +271 -76
  12. pyedb/dotnet/edb_core/cell/layout_obj.py +4 -49
  13. pyedb/dotnet/edb_core/cell/primitive.py +14 -2
  14. pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +10 -0
  15. pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +5 -0
  16. pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +1 -12
  17. pyedb/dotnet/edb_core/cell/terminal/terminal.py +36 -20
  18. pyedb/dotnet/edb_core/cell/voltage_regulator.py +2 -16
  19. pyedb/dotnet/edb_core/components.py +88 -31
  20. pyedb/dotnet/edb_core/dotnet/database.py +5 -10
  21. pyedb/dotnet/edb_core/dotnet/primitive.py +20 -7
  22. pyedb/dotnet/edb_core/edb_data/control_file.py +2 -12
  23. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +28 -37
  24. pyedb/dotnet/edb_core/edb_data/ports.py +0 -18
  25. pyedb/dotnet/edb_core/edb_data/primitives_data.py +1 -1
  26. pyedb/dotnet/edb_core/general.py +6 -9
  27. pyedb/dotnet/edb_core/hfss.py +4 -8
  28. pyedb/dotnet/edb_core/layout_obj_instance.py +30 -0
  29. pyedb/dotnet/edb_core/materials.py +4 -11
  30. pyedb/dotnet/edb_core/{layout.py → modeler.py} +153 -7
  31. pyedb/dotnet/edb_core/net_class.py +7 -8
  32. pyedb/dotnet/edb_core/nets.py +3 -9
  33. pyedb/dotnet/edb_core/padstack.py +23 -10
  34. pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +42 -3
  35. pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +92 -158
  36. pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +22 -22
  37. pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +5 -2
  38. pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +76 -76
  39. pyedb/dotnet/edb_core/siwave.py +5 -6
  40. pyedb/dotnet/edb_core/stackup.py +18 -23
  41. pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +23 -94
  42. pyedb/dotnet/edb_core/utilities/simulation_setup.py +40 -41
  43. pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +26 -17
  44. pyedb/generic/filesystem.py +2 -8
  45. pyedb/generic/general_methods.py +4 -10
  46. pyedb/generic/plot.py +26 -29
  47. pyedb/generic/process.py +2 -6
  48. pyedb/misc/downloads.py +3 -40
  49. pyedb/siwave.py +2 -5
  50. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/METADATA +8 -8
  51. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/RECORD +53 -52
  52. pyedb/dotnet/edb_core/dotnet/layout.py +0 -260
  53. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/LICENSE +0 -0
  54. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/WHEEL +0 -0
pyedb/misc/downloads.py CHANGED
@@ -24,15 +24,10 @@
24
24
  import os
25
25
  import shutil
26
26
  import tempfile
27
+ import urllib.request
27
28
  import zipfile
28
29
 
29
- from pyedb.generic.general_methods import is_ironpython, is_linux, settings
30
- from pyedb.misc.misc import list_installed_ansysem
31
-
32
- if is_ironpython:
33
- import urllib
34
- else:
35
- import urllib.request
30
+ from pyedb.generic.general_methods import is_linux, settings
36
31
 
37
32
  tmpfold = tempfile.gettempdir()
38
33
  EXAMPLE_REPO = "https://github.com/ansys/example-data/raw/master/"
@@ -62,8 +57,7 @@ def _retrieve_file(url, filename, directory, destination=None, local_paths=[]):
62
57
  local_paths.append(local_path_no_zip)
63
58
 
64
59
  # grab the correct url retriever
65
- if not is_ironpython:
66
- urlretrieve = urllib.request.urlretrieve
60
+ urlretrieve = urllib.request.urlretrieve
67
61
  destination_dir = os.path.join(destination, directory)
68
62
  if not os.path.isdir(destination_dir):
69
63
  os.makedirs(destination_dir)
@@ -71,35 +65,6 @@ def _retrieve_file(url, filename, directory, destination=None, local_paths=[]):
71
65
  if is_linux:
72
66
  command = "wget {} -O {}".format(url, local_path)
73
67
  os.system(command)
74
- elif is_ironpython:
75
- versions = list_installed_ansysem()
76
- if versions:
77
- cpython = os.listdir(os.path.join(os.getenv(versions[0]), "commonfiles", "CPython"))
78
- command = (
79
- '"'
80
- + os.path.join(
81
- os.getenv(versions[0]),
82
- "commonfiles",
83
- "CPython",
84
- cpython[0],
85
- "winx64",
86
- "Release",
87
- "python",
88
- "python.exe",
89
- )
90
- + '"'
91
- )
92
- commandargs = os.path.join(os.path.dirname(local_path), "download.py")
93
- command += ' "' + commandargs + '"'
94
- with open(os.path.join(os.path.dirname(local_path), "download.py"), "w") as f:
95
- f.write("import urllib.request\n")
96
- f.write("urlretrieve = urllib.request.urlretrieve\n")
97
- f.write("import urllib.request\n")
98
- f.write('url = r"{}"\n'.format(url))
99
- f.write('local_path = r"{}"\n'.format(local_path))
100
- f.write("urlretrieve(url, local_path)\n")
101
- print(command)
102
- os.system(command)
103
68
  else:
104
69
  _, resp = urlretrieve(url, local_path)
105
70
  local_paths.append(local_path)
@@ -118,8 +83,6 @@ def _retrieve_folder(url, directory, destination=None, local_paths=[]): # pragm
118
83
  else:
119
84
  local_path = os.path.join(destination, directory)
120
85
 
121
- if is_ironpython:
122
- return False
123
86
  _get_dir = _get_file_url(directory)
124
87
  with urllib.request.urlopen(_get_dir) as response: # nosec
125
88
  data = response.read().decode("utf-8").split("\n")
pyedb/siwave.py CHANGED
@@ -16,7 +16,7 @@ import warnings
16
16
 
17
17
  from pyedb.dotnet.clr_module import _clr
18
18
  from pyedb.edb_logger import pyedb_logger
19
- from pyedb.generic.general_methods import _pythonver, is_ironpython, is_windows
19
+ from pyedb.generic.general_methods import _pythonver, is_windows
20
20
  from pyedb.misc.misc import list_installed_ansysem
21
21
  from pyedb.siwave_core.icepak import Icepak
22
22
 
@@ -80,10 +80,7 @@ class Siwave(object): # pragma no cover
80
80
 
81
81
  def __init__(self, specified_version=None):
82
82
  self._logger = pyedb_logger
83
- if is_ironpython:
84
- _com = "pythonnet"
85
- import System
86
- elif is_windows: # pragma: no cover
83
+ if is_windows: # pragma: no cover
87
84
  modules = [tup[1] for tup in pkgutil.iter_modules()]
88
85
  if _clr:
89
86
  import win32com.client
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.18.0
3
+ Version: 0.20.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>
@@ -19,16 +19,19 @@ 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.8
23
- Requires-Dist: toml == 0.10.2
24
- Requires-Dist: Rtree >= 1.2.0
25
22
  Requires-Dist: numpy>=1.20.0,<2
23
+ Requires-Dist: pandas>=1.1.0,<2.3
24
+ Requires-Dist: pydantic>=2.6.4,<2.9
25
+ Requires-Dist: Rtree >= 1.2.0
26
+ Requires-Dist: toml == 0.10.2
26
27
  Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.17 ; extra == "doc"
27
28
  Requires-Dist: imageio>=2.30.0,<2.35 ; extra == "doc"
28
- Requires-Dist: ipython>=8.13.0,<8.26 ; extra == "doc"
29
+ Requires-Dist: ipython>=8.13.0,<8.27 ; extra == "doc"
29
30
  Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
31
+ Requires-Dist: jupytext>=1.16.0,<1.17 ; extra == "doc"
30
32
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "doc"
31
33
  Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
34
+ Requires-Dist: nbconvert < 7.17 ; extra == "doc"
32
35
  Requires-Dist: numpydoc>=1.5.0,<1.8 ; extra == "doc"
33
36
  Requires-Dist: pypandoc>=1.10.0,<1.14 ; extra == "doc"
34
37
  Requires-Dist: recommonmark ; extra == "doc"
@@ -39,11 +42,8 @@ Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
39
42
  Requires-Dist: sphinx-gallery>=0.14.0,<0.17 ; extra == "doc"
40
43
  Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
41
44
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
42
- Requires-Dist: pandas>=1.1.0,<2.3 ; extra == "full"
43
45
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
44
- Requires-Dist: numpy>=1.20.0,<2 ; extra == "tests"
45
46
  Requires-Dist: mock>=5.1.0,<5.2 ; extra == "tests"
46
- Requires-Dist: pandas>=1.1.0,<2.3 ; extra == "tests"
47
47
  Requires-Dist: pytest>=7.4.0,<8.3 ; extra == "tests"
48
48
  Requires-Dist: pytest-cov>=4.0.0,<5.1 ; extra == "tests"
49
49
  Requires-Dist: pytest-xdist>=3.5.0,<3.7 ; extra == "tests"
@@ -1,50 +1,52 @@
1
- pyedb/__init__.py,sha256=BSUJbVwFX_rOFP9jdHFQgIGVs2HQjbF06YjEnDyk_48,1521
1
+ pyedb/__init__.py,sha256=Fc62Ry9Jbd85qNtZhstEXZXdbivdXZ5b7tMp-N5JXWM,1521
2
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=p-j2AmJ3RPG9IKieDxiVPRhzRlXbjpxENP9GHAgT6l8,13086
4
+ pyedb/siwave.py,sha256=_AxkSZ-7P9aVmizWUWmwcqI07rpGsIZ_fYsd1WNjR6w,12986
5
5
  pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
6
6
  pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  pyedb/configuration/cfg_boundaries.py,sha256=ckb-OfaObItwy-xc0LqkHJyeCfKC5vg668olPjZbaKo,6647
8
8
  pyedb/configuration/cfg_common.py,sha256=5ne78TTA0wHpbi804nsUd9SPxNKZvut_X_Miu-xDRgk,1982
9
9
  pyedb/configuration/cfg_components.py,sha256=YPmaoVG0PO92yNKTbpi3LZNt01aNO75VHFJuY7DM94k,7684
10
- pyedb/configuration/cfg_data.py,sha256=ENvPsPWYD-crwyHWkB0LBAfz9mHjxoVrszwVS_EL0i8,3772
10
+ pyedb/configuration/cfg_data.py,sha256=eSwdJ7ECP85oNGmmn3_1dK3lRQp4fS_uSYXD5TlNees,3631
11
11
  pyedb/configuration/cfg_general.py,sha256=0dtd-rkQt2aYR3EOL0c3sNuDuJs7htRos1OWck3rxaI,1626
12
- pyedb/configuration/cfg_nets.py,sha256=SCiBTUVHX3Ub91MEU88m0xcHIot_axT9QTFJ8LawppI,1880
12
+ pyedb/configuration/cfg_nets.py,sha256=18NezeNh0ZOwk2ehz3zWJF_xYR7IYCqGlpDfDt7Ilho,2349
13
13
  pyedb/configuration/cfg_operations.py,sha256=OzktdjLgHUm6_kCbMeuZ2mhUXfOIP6gXslmbkB7nZOM,3130
14
14
  pyedb/configuration/cfg_package_definition.py,sha256=f_RRT9R-3H5kHBlc4QSpjq9uQgYbaKQ78XXXrc_r3kg,5296
15
15
  pyedb/configuration/cfg_padstacks.py,sha256=5t799x_mfwLjCAic-B13v3I6FgDswysXdcKmeOxz4Uo,5571
16
- pyedb/configuration/cfg_pin_groups.py,sha256=aidsOXTHhEyE8UGRiT1nvyn-3sD0CU_n8RR19AmhQrk,2877
17
- pyedb/configuration/cfg_ports_sources.py,sha256=Wzs9hmEnOIPtiVXIfZgPM7TGsqV_t6ELbB71wSWG5_g,8166
16
+ pyedb/configuration/cfg_pin_groups.py,sha256=Aq5rlUU2z9iNMv5cBBwHHTlSglw5Upm8EA4g7CQwD5o,3823
17
+ pyedb/configuration/cfg_ports_sources.py,sha256=bhpQB-WXxH0nAksYCxIn8q08U8KswWKv4Ui9p5jwskA,15741
18
18
  pyedb/configuration/cfg_s_parameter_models.py,sha256=NzS3eBjBSnd7ZDk_TsX04dqRcRXompjx1DxCe1UzWMw,2855
19
19
  pyedb/configuration/cfg_setup.py,sha256=SPpNRLJusB-Cz2fDQkc6gkdilUqIlbNngoxF3zySt6g,10115
20
20
  pyedb/configuration/cfg_spice_models.py,sha256=tBY3okFiEffMGvBkpmZQrCrovpt-d62k51_WkkV4jqo,2435
21
21
  pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7FG0VKU,6589
22
- pyedb/configuration/configuration.py,sha256=YIhmW9rDVvWUH9-gyjhKoohjia2dL-jptUviS0MT83s,11565
22
+ pyedb/configuration/configuration.py,sha256=coJU6y-y7VOGmH_NPXdEdoBdD_aZzYFx7sgvLKNm02E,12629
23
23
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
25
- pyedb/dotnet/edb.py,sha256=fRS00MYlaMPRJi7YnhNB72odsne-GiOpZ1AnysqKQoc,182382
25
+ pyedb/dotnet/edb.py,sha256=eSIavcUxT810bXQ3o5rPUrCWxvbw7AR7Wq-TFvRli-E,178534
26
26
  pyedb/dotnet/application/Variables.py,sha256=v_fxFJ6xjyyhk4uaMzWAbP-1FhXGuKsVNuyV1huaPME,77867
27
27
  pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
29
- pyedb/dotnet/edb_core/components.py,sha256=9p7Aiq3mv5yDDpZGq0ym1aagJzAFfFTtOkXi0uC2j4Y,103687
30
- pyedb/dotnet/edb_core/general.py,sha256=f-WuyJY1nkfMEXm_fvU7poLfIi4axV1ha5Am1_m2eQ0,4572
31
- pyedb/dotnet/edb_core/hfss.py,sha256=paHUyp1QtnBHYtswiWEgeaYRvqDT-HdtFG6rmmkD2_w,68815
32
- pyedb/dotnet/edb_core/layout.py,sha256=OqhkmrKTLlIRVd74SBAjW3Wnb4uNhp6kwWtJI86j-98,50852
29
+ pyedb/dotnet/edb_core/components.py,sha256=9IkBhWaevfxKF6MdSxQQ4L4LcWA-UEEwVxB8jLAvHbU,106796
30
+ pyedb/dotnet/edb_core/general.py,sha256=1g2bUekyUbu8p8zCinT4eI7uqRGIK8tY8mfuFePGRGg,4415
31
+ pyedb/dotnet/edb_core/hfss.py,sha256=Sh417lko4COeeod1C8sbBp6GkoTENEbALdYFOePnOcg,68535
32
+ pyedb/dotnet/edb_core/layout_obj_instance.py,sha256=Pd8rfdO3b6HLFGwXBMw-tfE4LPIcW_9_X5KEdFaiito,1407
33
33
  pyedb/dotnet/edb_core/layout_validation.py,sha256=aOYgttlJ007uGG94NnhZR_iNHTuCI5CHkHWWTcm9n-E,12617
34
- pyedb/dotnet/edb_core/materials.py,sha256=9HTDzxraPjAl3Jc7beHQfxe6axQY-tw6hDW1A05O2GM,43426
35
- pyedb/dotnet/edb_core/net_class.py,sha256=fAQoXsjn-Ae3gVYnUJO7yGZ6zEDEf_Zx5Mzq_h0UH7k,11582
36
- pyedb/dotnet/edb_core/nets.py,sha256=U1GhGJE1Ybd3IWJ7tn5chKW1E23EEZYiSiCK6ds76nk,43373
37
- pyedb/dotnet/edb_core/padstack.py,sha256=-17eWSsUnh5Af_nZes505_on8Hy4GkWsP7vFBssqZ5Q,62760
38
- pyedb/dotnet/edb_core/siwave.py,sha256=FxhvigCavS-9ldSrcu2KEuYrNF30Ra4RT7NZPUlDMY4,64328
39
- pyedb/dotnet/edb_core/stackup.py,sha256=BbfamGczV7j0B2knGPT4SJPZPGz7Rb1jgXTgMr-Yd1o,120808
34
+ pyedb/dotnet/edb_core/materials.py,sha256=0a5RxfuJ-tzkyDLxfSIv1cBf-Di7JMrTsW_uBRjUQgw,43079
35
+ pyedb/dotnet/edb_core/modeler.py,sha256=riS4ynU6KGZM2dwnaW06nkyQATGkpEvuqtaqEpm0Z3o,55674
36
+ pyedb/dotnet/edb_core/net_class.py,sha256=4U6Cc1Gn7ZJ_ub9uKmtrsoz5wD1XS42afci3Y3ewRp0,11354
37
+ pyedb/dotnet/edb_core/nets.py,sha256=CnZxnK_-WwOMzmJAEalxj_Xo3KlTSJNtf7Fn9x093Ak,43147
38
+ pyedb/dotnet/edb_core/padstack.py,sha256=KSWFHgZK8r1BOOil6e7ZOjVHg-1TAX1IeiiInndjvzE,63178
39
+ pyedb/dotnet/edb_core/siwave.py,sha256=qhPTgFHaBThvlvch1po8uGsZdmOi1rVzEFHYv19DHPU,64317
40
+ pyedb/dotnet/edb_core/stackup.py,sha256=k_bU1ZmboISncZXD4dn8oPJF-ZQS-zZSAUTcOUYViSM,120510
40
41
  pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- pyedb/dotnet/edb_core/cell/layout.py,sha256=xzlcR8kgU3v-8VOuQkagqg71DbKrVD7qgfYMzSZ7IiQ,4343
42
- pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=xFqY4FAHdiNZWexQRRGHYqWcQ5SvFR9kDxMBGXBqbW8,4180
43
- pyedb/dotnet/edb_core/cell/primitive.py,sha256=b_Uyu1cwO9Bf_vSazYLeBWSNaz-67pS-n7TCxKoFUyU,11379
44
- pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=NQsM-0VnswjMokxsF2-cikobQ8MRoK_cWHYmEg9zi38,5714
42
+ pyedb/dotnet/edb_core/cell/connectable.py,sha256=rKWPATg0GCHi4d1ftu2V7WWhkDONjloCSPujssie5a8,2310
43
+ pyedb/dotnet/edb_core/cell/layout.py,sha256=g9vMzja9VT9iLFJDz75zYWuE5FfdjquYWysoaIgu1kY,11877
44
+ pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=fVLjHMsokK2eEILTBo_9lEpjJCP0bkdk5RFZclnTi4o,3088
45
+ pyedb/dotnet/edb_core/cell/primitive.py,sha256=WHiX5ROLMYf71ZuX-4TrOUhRcI6RLiUPap7AzajO2YA,11704
46
+ pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=-uAzuyERV6ca0bFRzdH4SllcpGY2D9JEdpS7RYaQt6c,5387
45
47
  pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=vLJnPuJkGYafMBR-Cub_i2JDAmqWIeWPY14mGBLzvq4,33858
47
- pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=FLQeUqwW-VSvG8iaLeU50dSknfe-kEQB4s-GgVEFrFM,1895
48
+ pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=jvS1VXhm58zkSSPOBUazL67JxMGQjMGSC6pE4Hw_4DM,33859
49
+ pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=QZhkoSxRnewxvX8HJKHx-jcw-eIR3eudmDqFQbvltfM,1896
48
50
  pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
49
51
  pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
50
52
  pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py,sha256=4zo2ut6UAeJqxw70n1luWg2QGEeuMRoVcEcdC9bYG50,3846
@@ -53,10 +55,10 @@ pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCs
53
55
  pyedb/dotnet/edb_core/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
56
  pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=TRPlsLH3_QOlDa5s8-tx399fkpJ3eJ8ictuCvlgkai0,2050
55
57
  pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=MvmKA0JGVeqGx7smuMOVPaQ_PESJmi34oUL9OH5oKiY,2137
56
- pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py,sha256=uvs12S5jFxBnosc3F3n1CMEoEh81nnNApXJGff5T330,3433
57
- pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py,sha256=hId1p-s5Vf7pwY3uKyjv9jWWc5BLHM485ecMaaz44Qo,2397
58
- pyedb/dotnet/edb_core/cell/terminal/point_terminal.py,sha256=gOElCZnP2kZEVngA0t5TNwXnSStkXzI8gVdBrLZlSTI,2728
59
- pyedb/dotnet/edb_core/cell/terminal/terminal.py,sha256=yB3NhyHNzvf3esNAS_UVad2Idyt7SxfguwZ3jOhj-ZM,18677
58
+ pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py,sha256=HOMNvSj8thN3RgSg2eDb_CE8PpqkcVLrIYPZGOW-IQk,3803
59
+ pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py,sha256=M5qZNH-MLDkgSJABNVKmnBLyLgezm2fqJGl70EyPVUo,2586
60
+ pyedb/dotnet/edb_core/cell/terminal/point_terminal.py,sha256=DafZBGjUx_OE8gZWcUKPh4cH3BRkJSj9XolhzIPOE3I,2400
61
+ pyedb/dotnet/edb_core/cell/terminal/terminal.py,sha256=eeM9peo4Jfu9WWwCoRX8X0dRdW3rM_aqXRuqWw_8fi8,19228
60
62
  pyedb/dotnet/edb_core/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
63
  pyedb/dotnet/edb_core/definition/component_def.py,sha256=tYZ4L6DigwSjdQJ5AlqEbordPVZyJ6hYFNc6b3QnJ18,6514
62
64
  pyedb/dotnet/edb_core/definition/component_model.py,sha256=PhT5voy3qk8fsp94dK6TN_Zxz5aXwO_mmeIwWm7C_Hs,1944
@@ -64,20 +66,19 @@ pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=QKlR8DNpNaOd00sY1ybEZA
64
66
  pyedb/dotnet/edb_core/definition/definitions.py,sha256=9Zjl5LNidDBk07m-QGpducWfFsyE52pScI8PC5f0doU,2383
65
67
  pyedb/dotnet/edb_core/definition/package_def.py,sha256=UoYNdfrB5j0rG4OK94yE25dCTzHcpDjSEn4L2yF10YY,6145
66
68
  pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
- pyedb/dotnet/edb_core/dotnet/database.py,sha256=m8QgX1E5elOoBTHt5zCsUKUFRuwru5r-31PmUE6rQr0,37653
68
- pyedb/dotnet/edb_core/dotnet/layout.py,sha256=_3lKFvEqA5S66yF_FSX5HbLsFNFpsigRsaN3Rj02pFk,8904
69
- pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=grhQ1YO0PaoCGTPqeydP703tfca2_gvi_m4a8CSqpPo,53424
69
+ pyedb/dotnet/edb_core/dotnet/database.py,sha256=xyISmY691ItgM_Fqos3Bra4BRnxCJVU4M1Ueg4V9ixg,37324
70
+ pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=k9ltBCWtekt-iiZj8r0yEDp2dWSxKm19SaMqDGkL-ac,54135
70
71
  pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=Z837yN4ZDWbtCW3eTWewVq_d_iY2jBSYx2QlL70-qog,48341
72
+ pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfpQK4PnLkjmntIYvW8E,48217
72
73
  pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
73
74
  pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
74
75
  pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=hKFHWUl0_OCMEZJbQn5c8Y1a-BYKr8nAycIlrCoeufk,13005
75
76
  pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
77
  pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=SBx2IKtbSn4AvySw4b6IGu3rbb6F-nEoaiqhUwarpLY,25706
77
78
  pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=ICF61kgST9Rm4hUqU3KUh8FMNlrZEVQO1LqZR1VADkA,9979
78
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=eQCuZdYd5Q2_7jPoCQ5jsOE12kteKRB4rDyiUnUvMnU,79240
79
- pyedb/dotnet/edb_core/edb_data/ports.py,sha256=rKRlF0ugl34vi7oQbZuF1o8KLqddfbyk-NSt4EYdh8Q,9413
80
- pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=k2H0uZO4g02g81_7cwbOVdIUQ0nIv6sIAn6xIgf2j5E,43427
79
+ pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=CcDbP9tko2m88oJ4RPPPsd5kujSUR57RDdZxGo7XLfc,78359
80
+ pyedb/dotnet/edb_core/edb_data/ports.py,sha256=wr2RQi8VExuNIVmnp7c4VpTIhODgthmJmHr01zO4ueo,8873
81
+ pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=i6mC-y19iiO9Tr4w3A4Usrd_flyeUSPnxLCz980qFyA,43442
81
82
  pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
82
83
  pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=w-fxyuj5LX5JwraM-3ONkXcqmsTBDzYto-0PUwF1974,101021
83
84
  pyedb/dotnet/edb_core/edb_data/sources.py,sha256=jzC6p-fiuPEvZn3b9z1-X5UexW5jd48jZRamXillnXI,15700
@@ -91,26 +92,26 @@ pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-z
91
92
  pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
92
93
  pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py,sha256=bWKZTMqROiXvG6T3i7EcapcQBcL0gOChDu4tksdk1xo,8073
93
94
  pyedb/dotnet/edb_core/sim_setup_data/data/settings.py,sha256=u2EhL_netNF4FTQicWysPeXzkFBqBZhFjdwpu4LuBlk,27624
94
- pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py,sha256=GcFfwifjAUQ-Ck4mz2vAFqkt_ubkpoH_V42Vb7K5q4U,2996
95
- pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py,sha256=xEVQ_vj1La3zr3B0PjaenllkynsxLrHrNeL-ROUkacc,14242
96
- pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py,sha256=b7Zpg6nNQArYxvdxlVhXDzvvCSC5sKFvdt10b0MHkvc,8605
97
- pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=YeFy9YoYVaieaBTnoXwzo66LyAOrEb5LnNDKv-FAlh8,17970
95
+ pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py,sha256=yfSIsI7G5qgTqkc7UzWvw2-phZG2kawtQAxsXMiEvOE,4479
96
+ pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py,sha256=9ji4UQzgTTOExgGMpCB8zgvovBjhedwqLoN1MzUHOks,10727
97
+ pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py,sha256=caRhPnon_jN5xXznLy57JPD5lGC7DS8KqYtXSC19nJ4,8627
98
+ pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=jPxWKRyszCrw9iqiJ5VldVTCxrCC0cIxjihe0BsDNEw,18074
98
99
  pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py,sha256=XOGBUtFuBJ61lsyylmW0mR_FDbnmwJ7s58r36peREhE,31311
100
+ pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py,sha256=92iEZrhA2CUTZ7wynL5nxVVwi2XKKqppx7AcvvoqK6E,31387
100
101
  pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
101
102
  pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
102
- pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=uyS9wstK0nuLnjETuweuedS4j7bXurfDvz_YMI0ONqo,16484
103
+ pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=_0H_7ypwrR5kj4LFhJLRvG9PV1lemvRnxRBJuOcGeXM,14074
103
104
  pyedb/dotnet/edb_core/utilities/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
104
- pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=7iavXVKeEqR2HwJdr17lO3WUqZQ75UZIpkDaO-n5mR0,12484
105
- pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py,sha256=s24jfphD88c1Ru_bN2R-Hl70VdPzusBz7d75oYujtl4,12383
105
+ pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=5-lpTiErVpRI6Os5iNpa1SIrGCjgHHUgJ0ozI5pVLIs,12236
106
+ pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py,sha256=BXuYJ7KQMgKiQnw6_Dft2aT11PYz6M7C-NJrMS8ZFX0,12764
106
107
  pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
108
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
108
109
  pyedb/generic/data_handlers.py,sha256=rfqNe2tPCJRqhXZBCyWxRFu5SjQ92Cdzq4l0TDC4Pvw,6905
109
110
  pyedb/generic/design_types.py,sha256=qHyIaz-Vd3ra4CP9xER76-nGRonYmSAiI3Dr8YPUeH8,4354
110
- pyedb/generic/filesystem.py,sha256=SwvXv1T05SrC9TPtK88joQoU5Ab7hYjrp5NncFeH7kM,3941
111
- pyedb/generic/general_methods.py,sha256=DzVyfAseL33vGip4oWbQya_n_sGzrrsnTPD7xK4ZRXc,43123
112
- pyedb/generic/plot.py,sha256=VWnTB2C9161gJNZb6sRhhz2hjenkJccboHPyKmvFRDc,4904
113
- pyedb/generic/process.py,sha256=9goCXrW3Su-8WuV5f6YqzY-Pl9EMFEd50KFN5AJXZGc,11206
111
+ pyedb/generic/filesystem.py,sha256=gqYh3xet_JjBOFopxCJldgeUItFRbBpVVi2ACnveCYw,3757
112
+ pyedb/generic/general_methods.py,sha256=HfDQEiQkNng4apFUbStsEfvKDbPkZ0Oz9Wjlqqz5LSI,42798
113
+ pyedb/generic/plot.py,sha256=0x2-v_xNSoy07rILKGQStQMTUIYrvJEvFO1n9KuSfAc,4717
114
+ pyedb/generic/process.py,sha256=DiOanqNq5APYryBYo3Wt4mQ54cBR9-ULrrIOqGE4S8c,11107
114
115
  pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
115
116
  pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
117
  pyedb/ipc2581/history_record.py,sha256=s1GjcIgnZHlNCBOeEERBDX7xDuqhXmh2Ctt3ccFDWso,2739
@@ -162,7 +163,7 @@ pyedb/ipc2581/ecad/cad_data/stackup_layer.py,sha256=SMkX9wrHdxbVn6hcPqlAbWz14IKi
162
163
  pyedb/ipc2581/ecad/cad_data/step.py,sha256=p4X0LGECdI4dTtxgh0oAkjQtd6G7FrZYwW-qrsRyrMM,12296
163
164
  pyedb/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
165
  pyedb/misc/aedtlib_personalib_install.py,sha256=eCVAdEoriMU92bZwPzY9Aig85cBbUO0J8J4RMtMkY_o,1759
165
- pyedb/misc/downloads.py,sha256=90OxzuVSeJzz4m8tDLsxsnSipj6DUldG2E_3BW7oXMo,12223
166
+ pyedb/misc/downloads.py,sha256=j9jJhwGTTJwm4WWaCSEhGZzOGyOyHhBAFexx0NtD4Uw,10824
166
167
  pyedb/misc/misc.py,sha256=3vyQ-l7lKUxdpdc_kGc7QNwu_EkmD8rRxe01Zx5Drr4,3315
167
168
  pyedb/misc/pyedb.runtimeconfig.json,sha256=2xof-Vl0hY2VOs1KkMSReTMZACsZhcmPmyHXukfb-oY,301
168
169
  pyedb/misc/utilities.py,sha256=w8mSGtgBlakcdOtWyP_NY0hUu_hxannOQOBvVxn02Fc,465
@@ -181,7 +182,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
181
182
  pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
182
183
  pyedb/modeler/geometry_operators.py,sha256=iXNGfp3oMAxc6Ij_jatawR9NAKksMfnmWTaoHQVGX80,72699
183
184
  pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
184
- pyedb-0.18.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
185
- pyedb-0.18.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
186
- pyedb-0.18.0.dist-info/METADATA,sha256=k3nrmKYmQSCRdkJUsyLfawvYXzqg8aaPfrFYoGtPjOw,8336
187
- pyedb-0.18.0.dist-info/RECORD,,
185
+ pyedb-0.20.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
186
+ pyedb-0.20.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
187
+ pyedb-0.20.0.dist-info/METADATA,sha256=RmQ1mTuULbWi0_7ZYKEyMpH2mHCIFDQB5yishriZz8c,8318
188
+ pyedb-0.20.0.dist-info/RECORD,,
@@ -1,260 +0,0 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
- # SPDX-License-Identifier: MIT
3
- #
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
22
-
23
- from pyedb.dotnet.edb_core.dotnet.database import NetDotNet
24
- from pyedb.dotnet.edb_core.dotnet.primitive import cast
25
- from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
26
-
27
-
28
- class LayoutDotNet:
29
- """Layout."""
30
-
31
- def __init__(self, app):
32
- """Initialize a new layout.
33
-
34
- Parameters
35
- ----------
36
- msg : EDBObjMessage
37
- """
38
- self._app = app
39
- self._cell = app._active_cell
40
- self._edb_api = app._edb
41
- self._layout = self._cell.GetLayout()
42
- self._layout_instance = None
43
-
44
- @property
45
- def cell(self):
46
- """:class:`Cell <ansys.edb.layout.Cell>`: Owning cell for this layout.
47
-
48
- Read-Only.
49
- """
50
- return self._cell
51
-
52
- @property
53
- def layer_collection(self):
54
- """:class:`LayerCollection <ansys.edb.layer.LayerCollection>` : Layer collection of this layout."""
55
- return self._layout.GetLayerCollection()
56
-
57
- @layer_collection.setter
58
- def layer_collection(self, layer_collection):
59
- """Set layer collection."""
60
- self._layout.SetLayerCollection(layer_collection)
61
-
62
- @property
63
- def primitives(self):
64
- """List of primitives.Read-Only.
65
-
66
- Returns
67
- -------
68
- list of :class:`dotnet.edb_core.dotnet.primitive.PrimitiveDotNet` cast objects.
69
- """
70
- return [cast(self._app, i) for i in list(self._layout.Primitives)]
71
-
72
- @property
73
- def padstack_instances(self):
74
- """:obj:`list` of :class:`PadstackInstance <ansys.edb.primitive.PadstackInstance>` : List of all padstack \
75
- instances in this layout.
76
-
77
- Read-Only.
78
- """
79
- return list(self._layout.PadstackInstances)
80
-
81
- @property
82
- def terminals(self):
83
- """:obj:`list` of :class:`Terminal <ansys.edb.terminal.Terminal>` : List of all the terminals in this layout.
84
-
85
- Read-Only.
86
- """
87
- return list(self._layout.Terminals)
88
-
89
- @property
90
- def cell_instances(self):
91
- """:obj:`list` of :class:`CellInstance <ansys.edb.hierarchy.CellInstances>` : List of the cell instances in \
92
- this layout.
93
-
94
- Read-Only.
95
- """
96
- return list(self._layout.CellInstances)
97
-
98
- @property
99
- def nets(self):
100
- """:obj:`list` of :class:`Net <ansys.edb.net.Net>` : List of all the nets in this layout.
101
-
102
- Read-Only.
103
- """
104
- return [NetDotNet(self._app, i) for i in self._layout.Nets]
105
-
106
- @property
107
- def groups(self):
108
- """:obj:`list` of :class:`Group <ansys.edb.hierarchy.Group>` : List of all the groups in this layout.
109
-
110
- Read-Only.
111
- """
112
- return list(self._layout.Groups)
113
-
114
- @property
115
- def net_classes(self):
116
- """:obj:`list` of :class:`NetClass <ansys.edb.net.NetClass>` : List of all the netclasses in this layout.
117
-
118
- Read-Only.
119
- """
120
- return list(self._layout.NetClasses)
121
-
122
- @property
123
- def differential_pairs(self):
124
- """:obj:`list` of :class:`DifferentialPair <ansys.edb.net.DifferentialPair>` : List of all the differential \
125
- pairs in this layout.
126
-
127
- Read-Only.
128
- """
129
- return list(self._layout.DifferentialPairs)
130
-
131
- @property
132
- def pin_groups(self):
133
- """:obj:`list` of :class:`PinGroup <ansys.edb.hierarchy.PinGroup>` : List of all the pin groups in this \
134
- layout.
135
-
136
- Read-Only.
137
- """
138
- return list(self._layout.PinGroups)
139
-
140
- @property
141
- def voltage_regulators(self):
142
- """:obj:`list` of :class:`VoltageRegulator <ansys.edb.hierarchy.VoltageRegulator>` : List of all the voltage \
143
- regulators in this layout.
144
-
145
- Read-Only.
146
- """
147
- return list(self._layout.VoltageRegulators)
148
-
149
- @property
150
- def extended_nets(self):
151
- """
152
- Get the list of extended nets in the layout. Read-Only.
153
-
154
- Returns
155
- -------
156
- List[:class:`ExtendedNet <ansys.edb.net.ExtendedNet>`]
157
- A list of extended nets.
158
-
159
- """
160
- return list(self._layout.ExtendedNets)
161
-
162
- def expanded_extent(self, nets, extent, expansion_factor, expansion_unitless, use_round_corner, num_increments):
163
- """Get an expanded polygon for the Nets collection.
164
-
165
- Parameters
166
- ----------
167
- nets : list[:class:`Net <ansys.edb.net.Net>`]
168
- A list of nets.
169
- extent : :class:`ExtentType <ansys.edb.geometry.ExtentType>`
170
- Geometry extent type for expansion.
171
- expansion_factor : float
172
- Expansion factor for the polygon union. No expansion occurs if the `expansion_factor` is less than or \
173
- equal to 0.
174
- expansion_unitless : bool
175
- When unitless, the distance by which the extent expands is the factor multiplied by the longer dimension\
176
- (X or Y distance) of the expanded object/net.
177
- use_round_corner : bool
178
- Whether to use round or sharp corners.
179
- For round corners, this returns a bounding box if its area is within 10% of the rounded expansion's area.
180
- num_increments : int
181
- Number of iterations desired to reach the full expansion.
182
-
183
- Returns
184
- -------
185
- :class:`PolygonData <ansys.edb.geometry.PolygonData>`
186
-
187
- Notes
188
- -----
189
- Method returns the expansion of the contour, so any voids within expanded objects are ignored.
190
- """
191
- return self._layout.GetExpandedExtentFromNets(
192
- convert_py_list_to_net_list(nets),
193
- extent,
194
- expansion_factor,
195
- expansion_unitless,
196
- use_round_corner,
197
- num_increments,
198
- )
199
-
200
- def convert_primitives_to_vias(self, primitives, is_pins=False):
201
- """Convert a list of primitives into vias or pins.
202
-
203
- Parameters
204
- ----------
205
- primitives : list[:class:`Primitive <ansys.edb.primitive.Primitive>`]
206
- List of primitives to convert.
207
- is_pins : bool, optional
208
- True for pins, false for vias (default).
209
- """
210
- self._layout.ConvertPrimitivesToVias(convert_py_list_to_net_list(primitives), is_pins)
211
-
212
- @property
213
- def port_reference_terminals_connected(self):
214
- """:obj:`bool`: Determine if port reference terminals are connected, applies to lumped ports and circuit ports.
215
-
216
- True if they are connected, False otherwise.
217
- Read-Only.
218
- """
219
- return self._layout.ArePortReferenceTerminalsConnected()
220
-
221
- @property
222
- def zone_primitives(self):
223
- """:obj:`list` of :class:`Primitive <ansys.edb.primitive.Primitive>` : List of all the primitives in \
224
- :term:`zones <Zone>`.
225
-
226
- Read-Only.
227
- """
228
- return list(self._layout.GetZonePrimitives())
229
-
230
- @property
231
- def fixed_zone_primitive(self):
232
- """:class:`Primitive <ansys.edb.primitive.Primitive>` : Fixed :term:`zones <Zone>` primitive."""
233
- return list(self._layout.GetFixedZonePrimitive())
234
-
235
- @fixed_zone_primitive.setter
236
- def fixed_zone_primitive(self, value):
237
- self._layout.SetFixedZonePrimitives(value)
238
-
239
- @property
240
- def board_bend_defs(self):
241
- """:obj:`list` of :class:`BoardBendDef <ansys.edb.primitive.BoardBendDef>` : List of all the board bend \
242
- definitions in this layout.
243
-
244
- Read-Only.
245
- """
246
- return list(self._layout.GetBoardBendDefs())
247
-
248
- def synchronize_bend_manager(self):
249
- """Synchronize bend manager."""
250
- self._layout.SynchronizeBendManager()
251
-
252
- @property
253
- def layout_instance(self):
254
- """:class:`LayoutInstance <ansys.edb.layout_instance.LayoutInstance>` : Layout instance of this layout.
255
-
256
- Read-Only.
257
- """
258
- if not self._layout_instance:
259
- self._layout_instance = self._layout.GetLayoutInstance()
260
- return self._layout_instance
File without changes