pyEDAA.CLITool 0.2.0__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/PKG-INFO +51 -8
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Aldec/ActiveHDL.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Aldec/RivieraPRO.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Aldec/__init__.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Docker.py +2 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/GHDL.py +157 -12
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/GTKWave.py +2 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/IntelFPGA/Quartus.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/IntelFPGA/__init__.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Lattice/Diamond.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Lattice/__init__.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Mentor/ModelSim.py +3 -3
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Mentor/__init__.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Xilinx/ISE.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Xilinx/Vivado.py +3 -2
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/Xilinx/__init__.py +1 -1
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA/CLITool/__init__.py +31 -3
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA.CLITool.egg-info/PKG-INFO +51 -8
- pyedaa_clitool-0.3.0/pyEDAA.CLITool.egg-info/requires.txt +50 -0
- pyedaa_clitool-0.3.0/pyproject.toml +76 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/setup.py +15 -11
- pyEDAA.CLITool-0.2.0/pyEDAA.CLITool.egg-info/requires.txt +0 -22
- pyEDAA.CLITool-0.2.0/pyproject.toml +0 -36
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/LICENSE.md +0 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/README.md +0 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA.CLITool.egg-info/SOURCES.txt +0 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA.CLITool.egg-info/dependency_links.txt +0 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/pyEDAA.CLITool.egg-info/top_level.txt +0 -0
- {pyEDAA.CLITool-0.2.0 → pyedaa_clitool-0.3.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyEDAA.CLITool
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: An abstraction layer of EDA CLI tools.
|
|
5
5
|
Home-page: https://GitHub.com/edaa-org/pyEDAA.CLITool
|
|
6
6
|
Author: Patrick Lehmann
|
|
@@ -10,23 +10,68 @@ Project-URL: Documentation, https://edaa-org.GitHub.io/pyEDAA.CLITool
|
|
|
10
10
|
Project-URL: Source Code, https://GitHub.com/edaa-org/pyEDAA.CLITool
|
|
11
11
|
Project-URL: Issue Tracker, https://GitHub.com/edaa-org/pyEDAA.CLITool/issues
|
|
12
12
|
Keywords: cli,abstraction layer,eda
|
|
13
|
-
Platform: UNKNOWN
|
|
14
13
|
Classifier: Operating System :: OS Independent
|
|
15
14
|
Classifier: Intended Audience :: Developers
|
|
16
15
|
Classifier: Topic :: Utilities
|
|
17
16
|
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
18
17
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
18
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
22
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
23
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
24
|
Classifier: Development Status :: 4 - Beta
|
|
25
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE.md
|
|
28
|
+
Requires-Dist: pyTooling~=8.0
|
|
29
|
+
Requires-Dist: pyVHDLModel~=0.29.2
|
|
30
|
+
Requires-Dist: py-flags~=1.1
|
|
27
31
|
Provides-Extra: doc
|
|
32
|
+
Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "doc"
|
|
33
|
+
Requires-Dist: sphinx_reports~=0.7; extra == "doc"
|
|
34
|
+
Requires-Dist: py-flags~=1.1; extra == "doc"
|
|
35
|
+
Requires-Dist: docutils~=0.21; extra == "doc"
|
|
36
|
+
Requires-Dist: sphinx~=8.1; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
|
|
38
|
+
Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
|
|
39
|
+
Requires-Dist: pyTooling~=8.0; extra == "doc"
|
|
40
|
+
Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
|
|
41
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "doc"
|
|
42
|
+
Requires-Dist: autoapi>=2.0.1; extra == "doc"
|
|
43
|
+
Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
|
|
44
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
|
|
45
|
+
Provides-Extra: test
|
|
46
|
+
Requires-Dist: mypy~=1.13; extra == "test"
|
|
47
|
+
Requires-Dist: Coverage~=7.6; extra == "test"
|
|
48
|
+
Requires-Dist: pytest~=8.3; extra == "test"
|
|
49
|
+
Requires-Dist: py-flags~=1.1; extra == "test"
|
|
50
|
+
Requires-Dist: lxml~=5.3; extra == "test"
|
|
51
|
+
Requires-Dist: pyTooling~=8.0; extra == "test"
|
|
52
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "test"
|
|
53
|
+
Requires-Dist: typing_extensions~=4.12; extra == "test"
|
|
54
|
+
Requires-Dist: pytest-cov~=6.0; extra == "test"
|
|
28
55
|
Provides-Extra: all
|
|
29
|
-
|
|
56
|
+
Requires-Dist: Coverage~=7.6; extra == "all"
|
|
57
|
+
Requires-Dist: sphinx_design~=0.6.1; extra == "all"
|
|
58
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "all"
|
|
59
|
+
Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "all"
|
|
60
|
+
Requires-Dist: docutils~=0.21; extra == "all"
|
|
61
|
+
Requires-Dist: sphinx~=8.1; extra == "all"
|
|
62
|
+
Requires-Dist: pyTooling~=8.0; extra == "all"
|
|
63
|
+
Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
|
|
64
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
|
|
65
|
+
Requires-Dist: pytest~=8.3; extra == "all"
|
|
66
|
+
Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
|
|
67
|
+
Requires-Dist: typing_extensions~=4.12; extra == "all"
|
|
68
|
+
Requires-Dist: mypy~=1.13; extra == "all"
|
|
69
|
+
Requires-Dist: sphinx_reports~=0.7; extra == "all"
|
|
70
|
+
Requires-Dist: py-flags~=1.1; extra == "all"
|
|
71
|
+
Requires-Dist: lxml~=5.3; extra == "all"
|
|
72
|
+
Requires-Dist: sphinx_rtd_theme~=3.0; extra == "all"
|
|
73
|
+
Requires-Dist: autoapi>=2.0.1; extra == "all"
|
|
74
|
+
Requires-Dist: pytest-cov~=6.0; extra == "all"
|
|
30
75
|
|
|
31
76
|
<p align="center">
|
|
32
77
|
<a title="edaa-org.github.io/pyEDAA.CLITool" href="https://edaa-org.github.io/pyEDAA.CLITool"><img height="80px" src="doc/_static/logo.svg"/></a>
|
|
@@ -172,5 +217,3 @@ The accompanying documentation is licensed under [Creative Commons - Attribution
|
|
|
172
217
|
|
|
173
218
|
---
|
|
174
219
|
SPDX-License-Identifier: Apache-2.0
|
|
175
|
-
|
|
176
|
-
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2021-
|
|
14
|
+
# Copyright 2021-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# #
|
|
16
16
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
17
17
|
# you may not use this file except in compliance with the License. #
|
|
@@ -42,6 +42,7 @@ from pyTooling.CLIAbstraction.ValuedTupleFlag import LongTupleFlag
|
|
|
42
42
|
class Docker(Executable):
|
|
43
43
|
_executableNames = {
|
|
44
44
|
"Darwin": "docker",
|
|
45
|
+
"FreeBSD": "docker",
|
|
45
46
|
"Linux": "docker",
|
|
46
47
|
"Windows": "docker.exe"
|
|
47
48
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -30,10 +30,12 @@
|
|
|
30
30
|
# ==================================================================================================================== #
|
|
31
31
|
#
|
|
32
32
|
"""This module contains the CLI abstraction layer for `GHDL <https://github.com/ghdl/ghdl>`__."""
|
|
33
|
-
from
|
|
33
|
+
from re import search as re_search
|
|
34
|
+
from typing import Union, Iterable, Tuple, Optional as Nullable
|
|
34
35
|
|
|
35
|
-
from pyTooling.Decorators
|
|
36
|
-
from
|
|
36
|
+
from pyTooling.Decorators import export
|
|
37
|
+
from pyTooling.MetaClasses import ExtendedType
|
|
38
|
+
from pyVHDLModel import VHDLVersion
|
|
37
39
|
|
|
38
40
|
from pyTooling.CLIAbstraction import CLIArgument, Executable
|
|
39
41
|
from pyTooling.CLIAbstraction.Argument import PathListArgument, StringArgument
|
|
@@ -43,11 +45,133 @@ from pyTooling.CLIAbstraction.BooleanFlag import LongBooleanFlag
|
|
|
43
45
|
from pyTooling.CLIAbstraction.ValuedFlag import ShortValuedFlag, LongValuedFlag
|
|
44
46
|
from pyTooling.CLIAbstraction.KeyValueFlag import ShortKeyValueFlag
|
|
45
47
|
|
|
48
|
+
from pyEDAA.CLITool import CLIToolException
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@export
|
|
52
|
+
class GHDLVersion(metaclass=ExtendedType, slots=True):
|
|
53
|
+
_major: int
|
|
54
|
+
_minor: int
|
|
55
|
+
_micro: int
|
|
56
|
+
_dev: bool
|
|
57
|
+
_commitsSinceLastTag: int
|
|
58
|
+
_gitHash: str
|
|
59
|
+
_dirty: bool
|
|
60
|
+
_edition: str
|
|
61
|
+
_gnatCompiler: Tuple[int, int, int]
|
|
62
|
+
_backend: str
|
|
63
|
+
|
|
64
|
+
VERSION_LINE_PATTERN = (
|
|
65
|
+
r"GHDL"
|
|
66
|
+
r"\s(?P<Major>\d+)\.(?P<Minor>\d+)\.(?P<Micro>\d+)(?:-(?P<Suffix>dev|rc\d+))?"
|
|
67
|
+
r"\s\((?:"
|
|
68
|
+
r"(?:"
|
|
69
|
+
r"(?P<Packaging>tarball)"
|
|
70
|
+
r")|(?:"
|
|
71
|
+
r"(?P<major2>\d+)\.(?P<minor2>\d+)\.(?P<micro2>\d+)\.(?:r(?P<cslt>\d+))\.(?:g(?P<Hash>[0-9a-f]+))(?:\.(?P<Dirty>dirty))?"
|
|
72
|
+
r")|(?:"
|
|
73
|
+
r"Ubuntu\s(?P<UbuntuMajor>\d+)\.(?P<UbuntuMinor>\d+)\.(?P<UbuntuMicro>\d+)\+dfsg-(?P<dfsg>\d+)ubuntu(?P<UbuntuPackage>\d+)"
|
|
74
|
+
r")"
|
|
75
|
+
r")\)"
|
|
76
|
+
r"\s\[(?P<Edition>[\w\s]+)\]"
|
|
77
|
+
)
|
|
78
|
+
GNAT_LINE_PATTERN = (
|
|
79
|
+
r"\s*[\w\s]+:\s"
|
|
80
|
+
r"(?:"
|
|
81
|
+
r"(?:(?P<Major>\d+)\.(?P<Minor>\d+)\.(?P<Micro>\d+))"
|
|
82
|
+
r"|"
|
|
83
|
+
r"(?:Community\s(?P<Year>\d{4})\s\((?P<DateCode>\d{8}-\d{2})\))"
|
|
84
|
+
r")"
|
|
85
|
+
)
|
|
86
|
+
BACKEND_LINE_PATTERN = (
|
|
87
|
+
r"\s*"
|
|
88
|
+
r"(?:static elaboration, )?"
|
|
89
|
+
r"(?P<Backend>llvm|mcode|gcc)"
|
|
90
|
+
r"(?: (?P<LLVMMajor>\d+)\.(?P<LLVMMinor>\d+)\.(?P<LLVMMicro>\d+))?"
|
|
91
|
+
r"(?: JIT)?"
|
|
92
|
+
r" code generator"
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
def __init__(self, versionLine: str, gnatLine: str, backendLine: str):
|
|
96
|
+
match = re_search("^" + self.VERSION_LINE_PATTERN + "$", versionLine)
|
|
97
|
+
if match is None:
|
|
98
|
+
raise CLIToolException(f"Unknown first GHDL version string '{versionLine}'.")
|
|
99
|
+
|
|
100
|
+
self._major = int(match["Major"])
|
|
101
|
+
self._minor = int(match["Minor"])
|
|
102
|
+
self._micro = int(match["Micro"])
|
|
103
|
+
if (suffix := match["Suffix"]) is not None:
|
|
104
|
+
self._dev = suffix == "dev"
|
|
105
|
+
else:
|
|
106
|
+
self._dev = False
|
|
107
|
+
if (cslt := match["cslt"]) is not None:
|
|
108
|
+
self._commitsSinceLastTag = int(cslt)
|
|
109
|
+
else:
|
|
110
|
+
self._commitsSinceLastTag = 0
|
|
111
|
+
self._gitHash = match["Hash"]
|
|
112
|
+
self._dirty = "Dirty" in match.groups()
|
|
113
|
+
self._edition = match["Edition"]
|
|
114
|
+
|
|
115
|
+
match = re_search("^" + self.GNAT_LINE_PATTERN + "$", gnatLine)
|
|
116
|
+
if match is None:
|
|
117
|
+
raise CLIToolException(f"Unknown second GHDL version string '{gnatLine}'.")
|
|
118
|
+
|
|
119
|
+
if match["Year"] is None:
|
|
120
|
+
self._gnatCompiler = (int(match["Major"]), int(match["Minor"]), int(match["Micro"]))
|
|
121
|
+
else:
|
|
122
|
+
self._gnatCompiler = (int(match["Year"]), 0, 0)
|
|
123
|
+
|
|
124
|
+
match = re_search("^" + self.BACKEND_LINE_PATTERN + "$", backendLine)
|
|
125
|
+
if match is None:
|
|
126
|
+
raise CLIToolException(f"Unknown third GHDL version string '{backendLine}'.")
|
|
127
|
+
|
|
128
|
+
self._backend = match["Backend"]
|
|
129
|
+
|
|
130
|
+
@property
|
|
131
|
+
def Major(self) -> int:
|
|
132
|
+
return self._major
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def Minor(self) -> int:
|
|
136
|
+
return self._minor
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def Micro(self) -> int:
|
|
140
|
+
return self._micro
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
def Dev(self) -> bool:
|
|
144
|
+
return self._dev
|
|
145
|
+
|
|
146
|
+
@property
|
|
147
|
+
def CommitsSinceLastTag(self) -> int:
|
|
148
|
+
return self._commitsSinceLastTag
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def GitHash(self) -> str:
|
|
152
|
+
return self._gitHash
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def Dirty(self) -> bool:
|
|
156
|
+
return self._dirty
|
|
157
|
+
|
|
158
|
+
@property
|
|
159
|
+
def Edition(self) -> str:
|
|
160
|
+
return self._edition
|
|
161
|
+
|
|
162
|
+
def __str__(self) -> str:
|
|
163
|
+
dev = f"-dev" if self._dev else ""
|
|
164
|
+
return f"{self._major}.{self._minor}.{self._micro}{dev}"
|
|
165
|
+
|
|
166
|
+
def __repr__(self) -> str:
|
|
167
|
+
return f"{self.__str__()} (Backend: {self._backend}; Git: {self._gitHash})"
|
|
168
|
+
|
|
46
169
|
|
|
47
170
|
@export
|
|
48
171
|
class GHDL(Executable):
|
|
49
172
|
_executableNames = {
|
|
50
173
|
"Darwin": "ghdl",
|
|
174
|
+
"FreeBSD": "ghdl",
|
|
51
175
|
"Linux": "ghdl",
|
|
52
176
|
"Windows": "ghdl.exe"
|
|
53
177
|
}
|
|
@@ -219,16 +343,16 @@ class GHDL(Executable):
|
|
|
219
343
|
"""Warns if an all/others specification does not apply."""
|
|
220
344
|
|
|
221
345
|
@CLIArgument()
|
|
222
|
-
class
|
|
346
|
+
class FlagUnused(ShortFlag, name="unused", pattern="-W{0}"):
|
|
223
347
|
"""Warns for unused subprograms."""
|
|
224
348
|
|
|
225
349
|
@CLIArgument()
|
|
226
|
-
class
|
|
350
|
+
class FlagError(ShortFlag, name="error", pattern="-W{0}"):
|
|
227
351
|
"""Turns warnings into errors."""
|
|
228
352
|
|
|
229
353
|
@CLIArgument()
|
|
230
|
-
class
|
|
231
|
-
"""Add VHDL
|
|
354
|
+
class OptionPaths(PathListArgument):
|
|
355
|
+
"""Add list of VHDL files to analyze."""
|
|
232
356
|
|
|
233
357
|
@CLIArgument()
|
|
234
358
|
class OptionTopLevel(StringArgument):
|
|
@@ -302,14 +426,14 @@ class GHDL(Executable):
|
|
|
302
426
|
else:
|
|
303
427
|
tool.__cliParameters__[key] = key()
|
|
304
428
|
|
|
305
|
-
def _SetParameters(self, tool: "GHDL", std: VHDLVersion = None, ieee: str = None):
|
|
429
|
+
def _SetParameters(self, tool: "GHDL", std: Nullable[VHDLVersion] = None, ieee: Nullable[str] = None):
|
|
306
430
|
if std is not None:
|
|
307
431
|
tool[self.FlagVHDLStandard] = str(std)
|
|
308
432
|
|
|
309
433
|
if ieee is not None:
|
|
310
434
|
tool[self.FlagVHDLStandard] = ieee
|
|
311
435
|
|
|
312
|
-
def GetGHDLAsAnalyzer(self, std: VHDLVersion = None, ieee: str = None):
|
|
436
|
+
def GetGHDLAsAnalyzer(self, std: Nullable[VHDLVersion] = None, ieee: Nullable[str] = None) -> "GHDL":
|
|
313
437
|
tool = GHDL(executablePath=self._executablePath)
|
|
314
438
|
|
|
315
439
|
tool[tool.CommandAnalyze] = True
|
|
@@ -318,7 +442,7 @@ class GHDL(Executable):
|
|
|
318
442
|
|
|
319
443
|
return tool
|
|
320
444
|
|
|
321
|
-
def GetGHDLAsElaborator(self, std: VHDLVersion = None, ieee: str = None):
|
|
445
|
+
def GetGHDLAsElaborator(self, std: Nullable[VHDLVersion] = None, ieee: Nullable[str] = None) -> "GHDL":
|
|
322
446
|
tool = GHDL(executablePath=self._executablePath)
|
|
323
447
|
|
|
324
448
|
tool[tool.CommandElaborate] = True
|
|
@@ -327,7 +451,7 @@ class GHDL(Executable):
|
|
|
327
451
|
|
|
328
452
|
return tool
|
|
329
453
|
|
|
330
|
-
def GetGHDLAsSimulator(self, std: VHDLVersion = None, ieee: str = None):
|
|
454
|
+
def GetGHDLAsSimulator(self, std: Nullable[VHDLVersion] = None, ieee: Nullable[str] = None) -> "GHDL":
|
|
331
455
|
tool = GHDL(executablePath=self._executablePath)
|
|
332
456
|
|
|
333
457
|
tool[tool.CommandRun] = True
|
|
@@ -335,3 +459,24 @@ class GHDL(Executable):
|
|
|
335
459
|
self._SetParameters(tool, std, ieee)
|
|
336
460
|
|
|
337
461
|
return tool
|
|
462
|
+
|
|
463
|
+
def Help(self) -> str:
|
|
464
|
+
tool = GHDL(executablePath=self._executablePath)
|
|
465
|
+
|
|
466
|
+
tool[tool.CommandHelp] = True
|
|
467
|
+
|
|
468
|
+
tool.StartProcess()
|
|
469
|
+
return "\n".join(tool.GetLineReader())
|
|
470
|
+
|
|
471
|
+
def Version(self) -> GHDLVersion:
|
|
472
|
+
tool = GHDL(executablePath=self._executablePath)
|
|
473
|
+
|
|
474
|
+
tool[tool.CommandVersion] = True
|
|
475
|
+
|
|
476
|
+
tool.StartProcess()
|
|
477
|
+
iterator = iter(tool.GetLineReader())
|
|
478
|
+
firstLine = next(iterator)
|
|
479
|
+
secondLine = next(iterator)
|
|
480
|
+
thirdLine = next(iterator)
|
|
481
|
+
|
|
482
|
+
return GHDLVersion(firstLine, secondLine, thirdLine)
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -40,6 +40,7 @@ from pyTooling.CLIAbstraction.ValuedFlag import LongValuedFlag
|
|
|
40
40
|
class GTKWave(Executable):
|
|
41
41
|
_executableNames = {
|
|
42
42
|
"Darwin": "gtkwave",
|
|
43
|
+
"FreeBSD": "gtkwave",
|
|
43
44
|
"Linux": "gtkwave",
|
|
44
45
|
"Windows": "gtkwave.exe"
|
|
45
46
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -75,7 +75,7 @@ class VHDLCompilerCoverageOptions(Flags):
|
|
|
75
75
|
StateMachine = "f"
|
|
76
76
|
Toggle = "t"
|
|
77
77
|
|
|
78
|
-
def __str__(self):
|
|
78
|
+
def __str__(self) -> str:
|
|
79
79
|
return "".join([i.value for i in self])
|
|
80
80
|
|
|
81
81
|
|
|
@@ -86,7 +86,7 @@ class VHDLCompilerFSMVerbosityLevel(Enum):
|
|
|
86
86
|
TransitionTable = "t"
|
|
87
87
|
AnyWarning = "w"
|
|
88
88
|
|
|
89
|
-
def __str__(self):
|
|
89
|
+
def __str__(self) -> str:
|
|
90
90
|
return self.value
|
|
91
91
|
|
|
92
92
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -34,8 +34,9 @@ from pyTooling.Decorators import export
|
|
|
34
34
|
from pyTooling.CLIAbstraction import CLIArgument, Executable
|
|
35
35
|
from pyTooling.CLIAbstraction.Argument import StringArgument, StringListArgument
|
|
36
36
|
from pyTooling.CLIAbstraction.Flag import ShortFlag
|
|
37
|
-
from pyTooling.CLIAbstraction.ValuedFlag
|
|
37
|
+
from pyTooling.CLIAbstraction.ValuedFlag import ShortValuedFlag
|
|
38
38
|
from pyTooling.CLIAbstraction.ValuedTupleFlag import ShortTupleFlag
|
|
39
|
+
|
|
39
40
|
from pyEDAA.CLITool import ToolMixIn
|
|
40
41
|
|
|
41
42
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universitaet Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -32,7 +32,35 @@
|
|
|
32
32
|
"""An abstraction layer of EDA CLI tools."""
|
|
33
33
|
__author__ = "Patrick Lehmann"
|
|
34
34
|
__email__ = "Paebbels@gmail.com"
|
|
35
|
-
__copyright__ = "2014-
|
|
35
|
+
__copyright__ = "2014-2024, Patrick Lehmann, Unai Martinez-Corral"
|
|
36
36
|
__license__ = "Apache License, Version 2.0"
|
|
37
|
-
__version__ = "0.
|
|
37
|
+
__version__ = "0.3.0"
|
|
38
38
|
__keywords__ = ["cli", "abstraction layer", "eda"]
|
|
39
|
+
|
|
40
|
+
from pathlib import Path
|
|
41
|
+
from typing import Any, Optional as Nullable
|
|
42
|
+
|
|
43
|
+
from pyTooling.Decorators import export
|
|
44
|
+
from pyTooling.Exceptions import ExceptionBase
|
|
45
|
+
from pyTooling.MetaClasses import ExtendedType
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@export
|
|
49
|
+
class CLIToolException(ExceptionBase):
|
|
50
|
+
pass
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class ToolMixIn(metaclass=ExtendedType, mixin=True):
|
|
54
|
+
_platform: str
|
|
55
|
+
_dryrun: bool
|
|
56
|
+
_binaryDirectoryPath: Path
|
|
57
|
+
_version: str
|
|
58
|
+
_logger: Any
|
|
59
|
+
|
|
60
|
+
def __init__(self, platform: str, dryrun: bool, binaryDirectoryPath: Path, version: str, logger: Nullable[Any] =None):
|
|
61
|
+
self._platform = platform
|
|
62
|
+
self._dryrun = dryrun
|
|
63
|
+
self._binaryDirectoryPath = binaryDirectoryPath
|
|
64
|
+
self._version = version
|
|
65
|
+
self._logger = logger
|
|
66
|
+
# self._environment = Environment()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyEDAA.CLITool
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: An abstraction layer of EDA CLI tools.
|
|
5
5
|
Home-page: https://GitHub.com/edaa-org/pyEDAA.CLITool
|
|
6
6
|
Author: Patrick Lehmann
|
|
@@ -10,23 +10,68 @@ Project-URL: Documentation, https://edaa-org.GitHub.io/pyEDAA.CLITool
|
|
|
10
10
|
Project-URL: Source Code, https://GitHub.com/edaa-org/pyEDAA.CLITool
|
|
11
11
|
Project-URL: Issue Tracker, https://GitHub.com/edaa-org/pyEDAA.CLITool/issues
|
|
12
12
|
Keywords: cli,abstraction layer,eda
|
|
13
|
-
Platform: UNKNOWN
|
|
14
13
|
Classifier: Operating System :: OS Independent
|
|
15
14
|
Classifier: Intended Audience :: Developers
|
|
16
15
|
Classifier: Topic :: Utilities
|
|
17
16
|
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
18
17
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
18
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
22
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
23
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
24
|
Classifier: Development Status :: 4 - Beta
|
|
25
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE.md
|
|
28
|
+
Requires-Dist: pyTooling~=8.0
|
|
29
|
+
Requires-Dist: pyVHDLModel~=0.29.2
|
|
30
|
+
Requires-Dist: py-flags~=1.1
|
|
27
31
|
Provides-Extra: doc
|
|
32
|
+
Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "doc"
|
|
33
|
+
Requires-Dist: sphinx_reports~=0.7; extra == "doc"
|
|
34
|
+
Requires-Dist: py-flags~=1.1; extra == "doc"
|
|
35
|
+
Requires-Dist: docutils~=0.21; extra == "doc"
|
|
36
|
+
Requires-Dist: sphinx~=8.1; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
|
|
38
|
+
Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
|
|
39
|
+
Requires-Dist: pyTooling~=8.0; extra == "doc"
|
|
40
|
+
Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
|
|
41
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "doc"
|
|
42
|
+
Requires-Dist: autoapi>=2.0.1; extra == "doc"
|
|
43
|
+
Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
|
|
44
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
|
|
45
|
+
Provides-Extra: test
|
|
46
|
+
Requires-Dist: mypy~=1.13; extra == "test"
|
|
47
|
+
Requires-Dist: Coverage~=7.6; extra == "test"
|
|
48
|
+
Requires-Dist: pytest~=8.3; extra == "test"
|
|
49
|
+
Requires-Dist: py-flags~=1.1; extra == "test"
|
|
50
|
+
Requires-Dist: lxml~=5.3; extra == "test"
|
|
51
|
+
Requires-Dist: pyTooling~=8.0; extra == "test"
|
|
52
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "test"
|
|
53
|
+
Requires-Dist: typing_extensions~=4.12; extra == "test"
|
|
54
|
+
Requires-Dist: pytest-cov~=6.0; extra == "test"
|
|
28
55
|
Provides-Extra: all
|
|
29
|
-
|
|
56
|
+
Requires-Dist: Coverage~=7.6; extra == "all"
|
|
57
|
+
Requires-Dist: sphinx_design~=0.6.1; extra == "all"
|
|
58
|
+
Requires-Dist: pyVHDLModel~=0.29.2; extra == "all"
|
|
59
|
+
Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "all"
|
|
60
|
+
Requires-Dist: docutils~=0.21; extra == "all"
|
|
61
|
+
Requires-Dist: sphinx~=8.1; extra == "all"
|
|
62
|
+
Requires-Dist: pyTooling~=8.0; extra == "all"
|
|
63
|
+
Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
|
|
64
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
|
|
65
|
+
Requires-Dist: pytest~=8.3; extra == "all"
|
|
66
|
+
Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
|
|
67
|
+
Requires-Dist: typing_extensions~=4.12; extra == "all"
|
|
68
|
+
Requires-Dist: mypy~=1.13; extra == "all"
|
|
69
|
+
Requires-Dist: sphinx_reports~=0.7; extra == "all"
|
|
70
|
+
Requires-Dist: py-flags~=1.1; extra == "all"
|
|
71
|
+
Requires-Dist: lxml~=5.3; extra == "all"
|
|
72
|
+
Requires-Dist: sphinx_rtd_theme~=3.0; extra == "all"
|
|
73
|
+
Requires-Dist: autoapi>=2.0.1; extra == "all"
|
|
74
|
+
Requires-Dist: pytest-cov~=6.0; extra == "all"
|
|
30
75
|
|
|
31
76
|
<p align="center">
|
|
32
77
|
<a title="edaa-org.github.io/pyEDAA.CLITool" href="https://edaa-org.github.io/pyEDAA.CLITool"><img height="80px" src="doc/_static/logo.svg"/></a>
|
|
@@ -172,5 +217,3 @@ The accompanying documentation is licensed under [Creative Commons - Attribution
|
|
|
172
217
|
|
|
173
218
|
---
|
|
174
219
|
SPDX-License-Identifier: Apache-2.0
|
|
175
|
-
|
|
176
|
-
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
pyTooling~=8.0
|
|
2
|
+
pyVHDLModel~=0.29.2
|
|
3
|
+
py-flags~=1.1
|
|
4
|
+
|
|
5
|
+
[all]
|
|
6
|
+
Coverage~=7.6
|
|
7
|
+
sphinx_design~=0.6.1
|
|
8
|
+
pyVHDLModel~=0.29.2
|
|
9
|
+
sphinx_autodoc_typehints~=2.5
|
|
10
|
+
docutils~=0.21
|
|
11
|
+
sphinx~=8.1
|
|
12
|
+
pyTooling~=8.0
|
|
13
|
+
docutils_stubs~=0.0.22
|
|
14
|
+
sphinx-copybutton>=0.5.2
|
|
15
|
+
pytest~=8.3
|
|
16
|
+
sphinxcontrib-mermaid~=1.0
|
|
17
|
+
typing_extensions~=4.12
|
|
18
|
+
mypy~=1.13
|
|
19
|
+
sphinx_reports~=0.7
|
|
20
|
+
py-flags~=1.1
|
|
21
|
+
lxml~=5.3
|
|
22
|
+
sphinx_rtd_theme~=3.0
|
|
23
|
+
autoapi>=2.0.1
|
|
24
|
+
pytest-cov~=6.0
|
|
25
|
+
|
|
26
|
+
[doc]
|
|
27
|
+
sphinx_autodoc_typehints~=2.5
|
|
28
|
+
sphinx_reports~=0.7
|
|
29
|
+
py-flags~=1.1
|
|
30
|
+
docutils~=0.21
|
|
31
|
+
sphinx~=8.1
|
|
32
|
+
sphinxcontrib-mermaid~=1.0
|
|
33
|
+
sphinx_rtd_theme~=3.0
|
|
34
|
+
pyTooling~=8.0
|
|
35
|
+
docutils_stubs~=0.0.22
|
|
36
|
+
pyVHDLModel~=0.29.2
|
|
37
|
+
autoapi>=2.0.1
|
|
38
|
+
sphinx_design~=0.6.1
|
|
39
|
+
sphinx-copybutton>=0.5.2
|
|
40
|
+
|
|
41
|
+
[test]
|
|
42
|
+
mypy~=1.13
|
|
43
|
+
Coverage~=7.6
|
|
44
|
+
pytest~=8.3
|
|
45
|
+
py-flags~=1.1
|
|
46
|
+
lxml~=5.3
|
|
47
|
+
pyTooling~=8.0
|
|
48
|
+
pyVHDLModel~=0.29.2
|
|
49
|
+
typing_extensions~=4.12
|
|
50
|
+
pytest-cov~=6.0
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools ~= 75.5",
|
|
4
|
+
"wheel ~= 0.45",
|
|
5
|
+
"pyTooling ~= 8.0"
|
|
6
|
+
]
|
|
7
|
+
build-backend = "setuptools.build_meta"
|
|
8
|
+
|
|
9
|
+
[tool.black]
|
|
10
|
+
line-length = 120
|
|
11
|
+
|
|
12
|
+
[tool.mypy]
|
|
13
|
+
files = ["pyEDAA.CLITool"]
|
|
14
|
+
python_version = "3.13"
|
|
15
|
+
#ignore_missing_imports = true
|
|
16
|
+
strict = true
|
|
17
|
+
pretty = true
|
|
18
|
+
show_error_context = true
|
|
19
|
+
show_error_codes = true
|
|
20
|
+
namespace_packages = true
|
|
21
|
+
html_report = "report/typing"
|
|
22
|
+
|
|
23
|
+
[tool.pytest.ini_options]
|
|
24
|
+
addopts = "--tb=native"
|
|
25
|
+
# Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
|
|
26
|
+
# derived from unittest.Testcase
|
|
27
|
+
python_files = "*"
|
|
28
|
+
python_functions = "test_*"
|
|
29
|
+
filterwarnings = [
|
|
30
|
+
"error::DeprecationWarning",
|
|
31
|
+
"error::PendingDeprecationWarning"
|
|
32
|
+
]
|
|
33
|
+
junit_logging = "all"
|
|
34
|
+
|
|
35
|
+
[tool.interrogate]
|
|
36
|
+
color = true
|
|
37
|
+
verbose = 1 # possible values: 0 (minimal output), 1 (-v), 2 (-vv)
|
|
38
|
+
fail-under = 59
|
|
39
|
+
exclude = [
|
|
40
|
+
"build",
|
|
41
|
+
"dist",
|
|
42
|
+
"doc",
|
|
43
|
+
"tests",
|
|
44
|
+
"setup.py"
|
|
45
|
+
]
|
|
46
|
+
ignore-setters = true
|
|
47
|
+
|
|
48
|
+
[tool.coverage.run]
|
|
49
|
+
branch = true
|
|
50
|
+
relative_files = true
|
|
51
|
+
omit = [
|
|
52
|
+
"*site-packages*",
|
|
53
|
+
"setup.py",
|
|
54
|
+
"tests/unit/*"
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.coverage.report]
|
|
58
|
+
skip_covered = false
|
|
59
|
+
skip_empty = true
|
|
60
|
+
exclude_lines = [
|
|
61
|
+
"pragma: no cover",
|
|
62
|
+
"raise NotImplementedError"
|
|
63
|
+
]
|
|
64
|
+
omit = [
|
|
65
|
+
"tests/*"
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
[tool.coverage.xml]
|
|
69
|
+
output = "report/coverage/coverage.xml"
|
|
70
|
+
|
|
71
|
+
[tool.coverage.json]
|
|
72
|
+
output = "report/coverage/coverage.json"
|
|
73
|
+
|
|
74
|
+
[tool.coverage.html]
|
|
75
|
+
directory = "report/coverage/html"
|
|
76
|
+
title="Code Coverage of pyEDAA.CLITool"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# #
|
|
12
12
|
# License: #
|
|
13
13
|
# ==================================================================================================================== #
|
|
14
|
-
# Copyright 2017-
|
|
14
|
+
# Copyright 2017-2024 Patrick Lehmann - Boetzingen, Germany #
|
|
15
15
|
# Copyright 2014-2016 Technische Universität Dresden - Germany, Chair of VLSI-Design, Diagnostics and Architecture #
|
|
16
16
|
# #
|
|
17
17
|
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#
|
|
32
32
|
"""Package installer for 'An abstraction layer of EDA CLI tools'."""
|
|
33
33
|
from pathlib import Path
|
|
34
|
+
from setuptools import setup
|
|
34
35
|
from pyTooling.Packaging import DescribePythonPackageHostedOnGitHub, DEFAULT_CLASSIFIERS
|
|
35
36
|
|
|
36
37
|
gitHubNamespace = "edaa-org"
|
|
@@ -38,13 +39,16 @@ packageName = "pyEDAA.CLITool"
|
|
|
38
39
|
packageDirectory = packageName.replace(".", "/")
|
|
39
40
|
packageInformationFile = Path(f"{packageDirectory}/__init__.py")
|
|
40
41
|
|
|
41
|
-
DescribePythonPackageHostedOnGitHub(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
setup(**DescribePythonPackageHostedOnGitHub(
|
|
43
|
+
packageName=packageName,
|
|
44
|
+
description="An abstraction layer of EDA CLI tools.",
|
|
45
|
+
gitHubNamespace=gitHubNamespace,
|
|
46
|
+
sourceFileWithVersion=packageInformationFile,
|
|
47
|
+
developmentStatus="beta",
|
|
48
|
+
classifiers=list(DEFAULT_CLASSIFIERS) + [
|
|
49
|
+
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)"
|
|
50
|
+
],
|
|
51
|
+
dataFiles={
|
|
52
|
+
packageName: ["py.typed"]
|
|
53
|
+
}
|
|
54
|
+
))
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
pyTooling.CLIAbstraction>=0.4.0
|
|
2
|
-
pyVHDLModel>=0.14.3
|
|
3
|
-
|
|
4
|
-
[all]
|
|
5
|
-
sphinx_autodoc_typehints>=1.17.0
|
|
6
|
-
sphinxcontrib-mermaid>=0.7.1
|
|
7
|
-
sphinx_fontawesome>=0.0.6
|
|
8
|
-
pyVHDLModel>=0.14.3
|
|
9
|
-
pyTooling>=1.9.5
|
|
10
|
-
pyTooling.CLIAbstraction>=0.4.0
|
|
11
|
-
sphinx>=4.4.0
|
|
12
|
-
autoapi>=2.0.1
|
|
13
|
-
|
|
14
|
-
[doc]
|
|
15
|
-
sphinxcontrib-mermaid>=0.7.1
|
|
16
|
-
sphinx_autodoc_typehints>=1.17.0
|
|
17
|
-
sphinx_fontawesome>=0.0.6
|
|
18
|
-
pyVHDLModel>=0.14.3
|
|
19
|
-
pyTooling>=1.9.5
|
|
20
|
-
pyTooling.CLIAbstraction>=0.4.0
|
|
21
|
-
sphinx>=4.4.0
|
|
22
|
-
autoapi>=2.0.1
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = [
|
|
3
|
-
"pyTooling >= 1.9.5",
|
|
4
|
-
"setuptools >= 59.6.0",
|
|
5
|
-
"wheel >= 0.37.0"
|
|
6
|
-
]
|
|
7
|
-
build-backend = "setuptools.build_meta"
|
|
8
|
-
|
|
9
|
-
[tool.black]
|
|
10
|
-
line-length = 120
|
|
11
|
-
|
|
12
|
-
[tool.pytest.ini_options]
|
|
13
|
-
# Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
|
|
14
|
-
# derived from unittest.Testcase
|
|
15
|
-
python_files = "*"
|
|
16
|
-
python_functions = "test_*"
|
|
17
|
-
|
|
18
|
-
[tool.coverage.run]
|
|
19
|
-
branch = true
|
|
20
|
-
omit = [
|
|
21
|
-
"*site-packages*",
|
|
22
|
-
"setup.py"
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
[tool.coverage.report]
|
|
26
|
-
skip_covered = true
|
|
27
|
-
skip_empty = true
|
|
28
|
-
exclude_lines = [
|
|
29
|
-
"raise NotImplementedError"
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
[tool.coverage.html]
|
|
33
|
-
directory = "report/coverage/html"
|
|
34
|
-
|
|
35
|
-
[tool.coverage.xml]
|
|
36
|
-
output = "report/coverage/coverage.xml"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|