pyVHDLModel 0.34.0__tar.gz → 0.35.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.
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/PKG-INFO +24 -23
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/README.md +3 -2
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Base.py +44 -4
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Concurrent.py +24 -24
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Declaration.py +3 -3
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/DesignUnit.py +15 -52
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Expression.py +12 -12
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Instantiation.py +1 -1
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Interface.py +163 -13
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Name.py +7 -7
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Object.py +5 -5
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Sequential.py +22 -22
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Subprogram.py +5 -5
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Type.py +14 -14
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/__init__.py +253 -48
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel.egg-info/PKG-INFO +24 -23
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel.egg-info/requires.txt +20 -20
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/LICENSE.md +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Association.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Common.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Exception.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/IEEE.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Namespace.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/PSLModel.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Predefined.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Regions.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/STD.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/Symbol.py +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel/py.typed +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel.egg-info/SOURCES.txt +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel.egg-info/dependency_links.txt +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyVHDLModel.egg-info/top_level.txt +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/pyproject.toml +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/setup.cfg +0 -0
- {pyvhdlmodel-0.34.0 → pyvhdlmodel-0.35.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyVHDLModel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.35.0
|
|
4
4
|
Summary: An abstract VHDL language model.
|
|
5
5
|
Home-page: https://GitHub.com/VHDL/pyVHDLModel
|
|
6
6
|
Author: Patrick Lehmann
|
|
@@ -28,41 +28,41 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
License-File: LICENSE.md
|
|
29
29
|
Requires-Dist: pyTooling~=8.14
|
|
30
30
|
Provides-Extra: doc
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist: sphinx_autodoc_typehints~=3.10; extra == "doc"
|
|
31
|
+
Requires-Dist: sphinx_design~=0.7.0; extra == "doc"
|
|
33
32
|
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
|
|
33
|
+
Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
|
|
34
34
|
Requires-Dist: sphinx~=9.1; extra == "doc"
|
|
35
|
+
Requires-Dist: autoapi>=2.0.1; extra == "doc"
|
|
36
|
+
Requires-Dist: sphinx_reports~=0.11.0; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinx_autodoc_typehints~=3.11; extra == "doc"
|
|
38
|
+
Requires-Dist: sphinx_rtd_theme~=3.1; extra == "doc"
|
|
35
39
|
Requires-Dist: sphinxcontrib-mermaid~=2.0; extra == "doc"
|
|
36
|
-
Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
|
|
37
|
-
Requires-Dist: sphinx_reports~=0.10.0; extra == "doc"
|
|
38
|
-
Requires-Dist: sphinx_design~=0.7.0; extra == "doc"
|
|
39
40
|
Requires-Dist: pyTooling~=8.14; extra == "doc"
|
|
40
|
-
Requires-Dist: sphinx_rtd_theme~=3.1; extra == "doc"
|
|
41
41
|
Provides-Extra: test
|
|
42
|
-
Requires-Dist:
|
|
42
|
+
Requires-Dist: pytest~=9.0; extra == "test"
|
|
43
43
|
Requires-Dist: pytest-cov~=7.1; extra == "test"
|
|
44
|
-
Requires-Dist: Coverage~=7.
|
|
44
|
+
Requires-Dist: Coverage~=7.14; extra == "test"
|
|
45
45
|
Requires-Dist: typing_extensions~=4.15; extra == "test"
|
|
46
|
+
Requires-Dist: lxml<7.0,>=5.4; extra == "test"
|
|
46
47
|
Requires-Dist: mypy[reports]~=1.19; extra == "test"
|
|
47
|
-
Requires-Dist: pytest~=9.0; extra == "test"
|
|
48
48
|
Requires-Dist: pyTooling~=8.14; extra == "test"
|
|
49
49
|
Provides-Extra: all
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
Requires-Dist:
|
|
50
|
+
Requires-Dist: pytest~=9.0; extra == "all"
|
|
51
|
+
Requires-Dist: sphinx_design~=0.7.0; extra == "all"
|
|
52
52
|
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
|
|
53
|
-
Requires-Dist: sphinx~=9.1; extra == "all"
|
|
54
|
-
Requires-Dist: lxml<7.0,>=5.4; extra == "all"
|
|
55
|
-
Requires-Dist: sphinxcontrib-mermaid~=2.0; extra == "all"
|
|
56
53
|
Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
|
|
57
|
-
Requires-Dist: mypy[reports]~=1.19; extra == "all"
|
|
58
54
|
Requires-Dist: pytest-cov~=7.1; extra == "all"
|
|
59
|
-
Requires-Dist: Coverage~=7.
|
|
55
|
+
Requires-Dist: Coverage~=7.14; extra == "all"
|
|
56
|
+
Requires-Dist: sphinx~=9.1; extra == "all"
|
|
57
|
+
Requires-Dist: mypy[reports]~=1.19; extra == "all"
|
|
58
|
+
Requires-Dist: autoapi>=2.0.1; extra == "all"
|
|
60
59
|
Requires-Dist: typing_extensions~=4.15; extra == "all"
|
|
61
|
-
Requires-Dist: sphinx_reports~=0.
|
|
62
|
-
Requires-Dist:
|
|
63
|
-
Requires-Dist:
|
|
64
|
-
Requires-Dist: pyTooling~=8.14; extra == "all"
|
|
60
|
+
Requires-Dist: sphinx_reports~=0.11.0; extra == "all"
|
|
61
|
+
Requires-Dist: lxml<7.0,>=5.4; extra == "all"
|
|
62
|
+
Requires-Dist: sphinx_autodoc_typehints~=3.11; extra == "all"
|
|
65
63
|
Requires-Dist: sphinx_rtd_theme~=3.1; extra == "all"
|
|
64
|
+
Requires-Dist: sphinxcontrib-mermaid~=2.0; extra == "all"
|
|
65
|
+
Requires-Dist: pyTooling~=8.14; extra == "all"
|
|
66
66
|
Dynamic: author
|
|
67
67
|
Dynamic: author-email
|
|
68
68
|
Dynamic: classifier
|
|
@@ -85,7 +85,7 @@ Dynamic: summary
|
|
|
85
85
|
[](https://github.com/vhdl/pyVHDLModel)
|
|
86
86
|
[](LICENSE.md)
|
|
87
87
|
[](https://vhdl.github.io/pyVHDLModel/)
|
|
88
|
-
[](
|
|
88
|
+
[](doc/Doc-License.rst)
|
|
89
89
|
[](https://gitter.im/hdl/community)
|
|
90
90
|
[](https://pypi.org/project/pyVHDLModel/)
|
|
91
91
|

|
|
@@ -120,6 +120,7 @@ on such a model, while supporting multiple frontends.
|
|
|
120
120
|
|
|
121
121
|
* High-level API for [GHDL's](https://GitHub.com/ghdl/ghdl) `libghdl` offered via `pyghdl`.
|
|
122
122
|
* Code Document-Object-Model (Code-DOM) in [pyVHDLParser](https://GitHub.com/Paebbels/pyVHDLParser).
|
|
123
|
+
* [PyHDLio](https://github.com/amb5l/PyHDLio) based on an ANTLR4 grammar.
|
|
123
124
|
* [pyVHDLModelTreesitter](https://gitlab.com/dawalters/pyVHDLModelTreesitter) based on [tree-sitter-vhdl](https://github.com/jpt13653903/tree-sitter-vhdl).
|
|
124
125
|
|
|
125
126
|
## pyVHDLModel Consumers
|
|
@@ -169,7 +170,7 @@ for entity in document.Entities.values():
|
|
|
169
170
|
|
|
170
171
|
# License
|
|
171
172
|
|
|
172
|
-
This Python package (source code) licensed under [Apache License 2.0](LICENSE.md).
|
|
173
|
+
This Python package (source code) is licensed under [Apache License 2.0](LICENSE.md).
|
|
173
174
|
The accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst).
|
|
174
175
|
|
|
175
176
|
-------------------------
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/vhdl/pyVHDLModel)
|
|
6
6
|
[](LICENSE.md)
|
|
7
7
|
[](https://vhdl.github.io/pyVHDLModel/)
|
|
8
|
-
[](
|
|
8
|
+
[](doc/Doc-License.rst)
|
|
9
9
|
[](https://gitter.im/hdl/community)
|
|
10
10
|
[](https://pypi.org/project/pyVHDLModel/)
|
|
11
11
|

|
|
@@ -40,6 +40,7 @@ on such a model, while supporting multiple frontends.
|
|
|
40
40
|
|
|
41
41
|
* High-level API for [GHDL's](https://GitHub.com/ghdl/ghdl) `libghdl` offered via `pyghdl`.
|
|
42
42
|
* Code Document-Object-Model (Code-DOM) in [pyVHDLParser](https://GitHub.com/Paebbels/pyVHDLParser).
|
|
43
|
+
* [PyHDLio](https://github.com/amb5l/PyHDLio) based on an ANTLR4 grammar.
|
|
43
44
|
* [pyVHDLModelTreesitter](https://gitlab.com/dawalters/pyVHDLModelTreesitter) based on [tree-sitter-vhdl](https://github.com/jpt13653903/tree-sitter-vhdl).
|
|
44
45
|
|
|
45
46
|
## pyVHDLModel Consumers
|
|
@@ -89,7 +90,7 @@ for entity in document.Entities.values():
|
|
|
89
90
|
|
|
90
91
|
# License
|
|
91
92
|
|
|
92
|
-
This Python package (source code) licensed under [Apache License 2.0](LICENSE.md).
|
|
93
|
+
This Python package (source code) is licensed under [Apache License 2.0](LICENSE.md).
|
|
93
94
|
The accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst).
|
|
94
95
|
|
|
95
96
|
-------------------------
|
|
@@ -137,13 +137,13 @@ class ModelEntity(metaclass=ExtendedType, slots=True):
|
|
|
137
137
|
@export
|
|
138
138
|
class NamedEntityMixin(metaclass=ExtendedType, mixin=True):
|
|
139
139
|
"""
|
|
140
|
-
A ``NamedEntityMixin`` is a mixin class for all VHDL entities that have
|
|
140
|
+
A ``NamedEntityMixin`` is a mixin class for all VHDL entities that have an identifier.
|
|
141
141
|
|
|
142
142
|
Protected variables :attr:`_identifier` and :attr:`_normalizedIdentifier` are available to derived classes as well as
|
|
143
143
|
two readonly properties :attr:`Identifier` and :attr:`NormalizedIdentifier` for public access.
|
|
144
144
|
"""
|
|
145
145
|
|
|
146
|
-
_identifier:
|
|
146
|
+
_identifier: str #: The identifier of a model entity.
|
|
147
147
|
_normalizedIdentifier: str #: The normalized (lower case) identifier of a model entity.
|
|
148
148
|
|
|
149
149
|
def __init__(self, identifier: str) -> None:
|
|
@@ -174,6 +174,46 @@ class NamedEntityMixin(metaclass=ExtendedType, mixin=True):
|
|
|
174
174
|
return self._normalizedIdentifier
|
|
175
175
|
|
|
176
176
|
|
|
177
|
+
@export
|
|
178
|
+
class OptionallyNamedEntityMixin(metaclass=ExtendedType, mixin=True):
|
|
179
|
+
"""
|
|
180
|
+
A ``OptionallyNamedEntityMixin`` is a mixin class for all VHDL entities that have an optional identifier.
|
|
181
|
+
|
|
182
|
+
Protected variables :attr:`_identifier` and :attr:`_normalizedIdentifier` are available to derived classes as well as
|
|
183
|
+
two readonly properties :attr:`Identifier` and :attr:`NormalizedIdentifier` for public access.
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
_identifier: Nullable[str] #: The identifier of a model entity.
|
|
187
|
+
_normalizedIdentifier: Nullable[str] #: The normalized (lower case) identifier of a model entity.
|
|
188
|
+
|
|
189
|
+
def __init__(self, identifier: Nullable[str]) -> None:
|
|
190
|
+
"""
|
|
191
|
+
Initializes a named entity.
|
|
192
|
+
|
|
193
|
+
:param identifier: Identifier (name) of the model entity.
|
|
194
|
+
"""
|
|
195
|
+
self._identifier = identifier
|
|
196
|
+
self._normalizedIdentifier = identifier.lower() if identifier is not None else None
|
|
197
|
+
|
|
198
|
+
@readonly
|
|
199
|
+
def Identifier(self) -> Nullable[str]:
|
|
200
|
+
"""
|
|
201
|
+
Returns a model entity's identifier (name).
|
|
202
|
+
|
|
203
|
+
:returns: Name of a model entity.
|
|
204
|
+
"""
|
|
205
|
+
return self._identifier
|
|
206
|
+
|
|
207
|
+
@readonly
|
|
208
|
+
def NormalizedIdentifier(self) -> Nullable[str]:
|
|
209
|
+
"""
|
|
210
|
+
Returns a model entity's normalized identifier (lower case name).
|
|
211
|
+
|
|
212
|
+
:returns: Normalized name of a model entity.
|
|
213
|
+
"""
|
|
214
|
+
return self._normalizedIdentifier
|
|
215
|
+
|
|
216
|
+
|
|
177
217
|
@export
|
|
178
218
|
class MultipleNamedEntityMixin(metaclass=ExtendedType, mixin=True):
|
|
179
219
|
"""
|
|
@@ -401,7 +441,7 @@ class Range(ModelEntity):
|
|
|
401
441
|
_rightBound: ExpressionUnion
|
|
402
442
|
_direction: Direction
|
|
403
443
|
|
|
404
|
-
def __init__(self, leftBound: ExpressionUnion, rightBound: ExpressionUnion, direction: Direction, parent: ModelEntity = None) -> None:
|
|
444
|
+
def __init__(self, leftBound: ExpressionUnion, rightBound: ExpressionUnion, direction: Direction, parent: Nullable[ModelEntity] = None) -> None:
|
|
405
445
|
super().__init__(parent)
|
|
406
446
|
|
|
407
447
|
self._leftBound = leftBound
|
|
@@ -433,7 +473,7 @@ class WaveformElement(ModelEntity):
|
|
|
433
473
|
_expression: ExpressionUnion
|
|
434
474
|
_after: ExpressionUnion
|
|
435
475
|
|
|
436
|
-
def __init__(self, expression: ExpressionUnion, after: Nullable[ExpressionUnion] = None, parent: ModelEntity = None) -> None:
|
|
476
|
+
def __init__(self, expression: ExpressionUnion, after: Nullable[ExpressionUnion] = None, parent: Nullable[ModelEntity] = None) -> None:
|
|
437
477
|
super().__init__(parent)
|
|
438
478
|
|
|
439
479
|
self._expression = expression
|
|
@@ -138,7 +138,7 @@ class Instantiation(ConcurrentStatement):
|
|
|
138
138
|
label: str,
|
|
139
139
|
genericAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
140
140
|
portAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
141
|
-
parent: ModelEntity = None
|
|
141
|
+
parent: Nullable[ModelEntity] = None
|
|
142
142
|
) -> None:
|
|
143
143
|
super().__init__(label, parent)
|
|
144
144
|
|
|
@@ -185,7 +185,7 @@ class ComponentInstantiation(Instantiation):
|
|
|
185
185
|
componentSymbol: ComponentInstantiationSymbol,
|
|
186
186
|
genericAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
187
187
|
portAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
188
|
-
parent: ModelEntity = None
|
|
188
|
+
parent: Nullable[ModelEntity] = None
|
|
189
189
|
) -> None:
|
|
190
190
|
super().__init__(label, genericAssociations, portAssociations, parent)
|
|
191
191
|
|
|
@@ -219,7 +219,7 @@ class EntityInstantiation(Instantiation):
|
|
|
219
219
|
architectureSymbol: Nullable[ArchitectureSymbol] = None,
|
|
220
220
|
genericAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
221
221
|
portAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
222
|
-
parent: ModelEntity = None
|
|
222
|
+
parent: Nullable[ModelEntity] = None
|
|
223
223
|
) -> None:
|
|
224
224
|
super().__init__(label, genericAssociations, portAssociations, parent)
|
|
225
225
|
|
|
@@ -259,7 +259,7 @@ class ConfigurationInstantiation(Instantiation):
|
|
|
259
259
|
configurationSymbol: ConfigurationInstantiationSymbol,
|
|
260
260
|
genericAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
261
261
|
portAssociations: Nullable[Iterable[AssociationItem]] = None,
|
|
262
|
-
parent: ModelEntity = None
|
|
262
|
+
parent: Nullable[ModelEntity] = None
|
|
263
263
|
) -> None:
|
|
264
264
|
super().__init__(label, genericAssociations, portAssociations, parent)
|
|
265
265
|
|
|
@@ -296,7 +296,7 @@ class ProcessStatement(ConcurrentStatement, SequentialDeclarationsMixin, Sequent
|
|
|
296
296
|
statements: Nullable[Iterable[SequentialStatement]] = None,
|
|
297
297
|
sensitivityList: Nullable[Iterable[Name]] = None,
|
|
298
298
|
documentation: Nullable[str] = None,
|
|
299
|
-
parent: ModelEntity = None
|
|
299
|
+
parent: Nullable[ModelEntity] = None
|
|
300
300
|
) -> None:
|
|
301
301
|
super().__init__(label, parent)
|
|
302
302
|
SequentialDeclarationsMixin.__init__(self, declaredItems)
|
|
@@ -323,7 +323,7 @@ class ConcurrentProcedureCall(ConcurrentStatement, ProcedureCallMixin):
|
|
|
323
323
|
label: str,
|
|
324
324
|
procedureName: Name,
|
|
325
325
|
parameterMappings: Nullable[Iterable[ParameterAssociationItem]] = None,
|
|
326
|
-
parent: ModelEntity = None
|
|
326
|
+
parent: Nullable[ModelEntity] = None
|
|
327
327
|
) -> None:
|
|
328
328
|
super().__init__(label, parent)
|
|
329
329
|
ProcedureCallMixin.__init__(self, procedureName, parameterMappings)
|
|
@@ -341,7 +341,7 @@ class ConcurrentBlockStatement(ConcurrentStatement, BlockStatementMixin, Labeled
|
|
|
341
341
|
statements: Iterable['ConcurrentStatement'] = None,
|
|
342
342
|
documentation: Nullable[str] = None,
|
|
343
343
|
allowBlackbox: Nullable[bool] = None,
|
|
344
|
-
parent: ModelEntity = None
|
|
344
|
+
parent: Nullable[ModelEntity] = None
|
|
345
345
|
) -> None:
|
|
346
346
|
super().__init__(label, parent)
|
|
347
347
|
BlockStatementMixin.__init__(self)
|
|
@@ -386,7 +386,7 @@ class GenerateBranch(ModelEntity, ConcurrentDeclarationRegionMixin, ConcurrentSt
|
|
|
386
386
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
387
387
|
alternativeLabel: Nullable[str] = None,
|
|
388
388
|
allowBlackbox: Nullable[bool] = None,
|
|
389
|
-
parent: ModelEntity = None
|
|
389
|
+
parent: Nullable[ModelEntity] = None
|
|
390
390
|
) -> None:
|
|
391
391
|
super().__init__(parent)
|
|
392
392
|
ConcurrentDeclarationRegionMixin.__init__(self, declaredItems)
|
|
@@ -434,7 +434,7 @@ class IfGenerateBranch(GenerateBranch, IfBranchMixin):
|
|
|
434
434
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
435
435
|
alternativeLabel: Nullable[str] = None,
|
|
436
436
|
allowBlackbox: Nullable[bool] = None,
|
|
437
|
-
parent: ModelEntity = None
|
|
437
|
+
parent: Nullable[ModelEntity] = None
|
|
438
438
|
) -> None:
|
|
439
439
|
super().__init__(declaredItems, statements, alternativeLabel, allowBlackbox, parent)
|
|
440
440
|
IfBranchMixin.__init__(self, condition)
|
|
@@ -467,7 +467,7 @@ class ElsifGenerateBranch(GenerateBranch, ElsifBranchMixin):
|
|
|
467
467
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
468
468
|
alternativeLabel: Nullable[str] = None,
|
|
469
469
|
allowBlackbox: Nullable[bool] = None,
|
|
470
|
-
parent: ModelEntity = None
|
|
470
|
+
parent: Nullable[ModelEntity] = None
|
|
471
471
|
) -> None:
|
|
472
472
|
super().__init__(declaredItems, statements, alternativeLabel, allowBlackbox, parent)
|
|
473
473
|
ElsifBranchMixin.__init__(self, condition)
|
|
@@ -499,7 +499,7 @@ class ElseGenerateBranch(GenerateBranch, ElseBranchMixin):
|
|
|
499
499
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
500
500
|
alternativeLabel: Nullable[str] = None,
|
|
501
501
|
allowBlackbox: Nullable[bool] = None,
|
|
502
|
-
parent: ModelEntity = None
|
|
502
|
+
parent: Nullable[ModelEntity] = None
|
|
503
503
|
) -> None:
|
|
504
504
|
super().__init__(declaredItems, statements, alternativeLabel, allowBlackbox, parent)
|
|
505
505
|
ElseBranchMixin.__init__(self)
|
|
@@ -523,7 +523,7 @@ class GenerateStatement(ConcurrentStatement, AllowBlackboxMixin):
|
|
|
523
523
|
self,
|
|
524
524
|
label: Nullable[str] = None,
|
|
525
525
|
allowBlackbox: Nullable[bool] = None,
|
|
526
|
-
parent: ModelEntity = None
|
|
526
|
+
parent: Nullable[ModelEntity] = None
|
|
527
527
|
) -> None:
|
|
528
528
|
super().__init__(label, parent)
|
|
529
529
|
AllowBlackboxMixin.__init__(self, allowBlackbox)
|
|
@@ -575,7 +575,7 @@ class IfGenerateStatement(GenerateStatement):
|
|
|
575
575
|
elsifBranches: Nullable[Iterable[ElsifGenerateBranch]] = None,
|
|
576
576
|
elseBranch: Nullable[ElseGenerateBranch] = None,
|
|
577
577
|
allowBlackbox: Nullable[bool] = None,
|
|
578
|
-
parent: ModelEntity = None
|
|
578
|
+
parent: Nullable[ModelEntity] = None
|
|
579
579
|
) -> None:
|
|
580
580
|
super().__init__(label, allowBlackbox, parent)
|
|
581
581
|
|
|
@@ -630,7 +630,7 @@ class ConcurrentChoice(BaseChoice):
|
|
|
630
630
|
class IndexedGenerateChoice(ConcurrentChoice):
|
|
631
631
|
_expression: ExpressionUnion
|
|
632
632
|
|
|
633
|
-
def __init__(self, expression: ExpressionUnion, parent: ModelEntity = None) -> None:
|
|
633
|
+
def __init__(self, expression: ExpressionUnion, parent: Nullable[ModelEntity] = None) -> None:
|
|
634
634
|
super().__init__(parent)
|
|
635
635
|
|
|
636
636
|
self._expression = expression
|
|
@@ -648,7 +648,7 @@ class IndexedGenerateChoice(ConcurrentChoice):
|
|
|
648
648
|
class RangedGenerateChoice(ConcurrentChoice):
|
|
649
649
|
_range: 'Range'
|
|
650
650
|
|
|
651
|
-
def __init__(self, rng: 'Range', parent: ModelEntity = None) -> None:
|
|
651
|
+
def __init__(self, rng: 'Range', parent: Nullable[ModelEntity] = None) -> None:
|
|
652
652
|
super().__init__(parent)
|
|
653
653
|
|
|
654
654
|
self._range = rng
|
|
@@ -670,7 +670,7 @@ class ConcurrentCase(BaseCase, LabeledEntityMixin, ConcurrentDeclarationRegionMi
|
|
|
670
670
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
671
671
|
alternativeLabel: Nullable[str] = None,
|
|
672
672
|
allowBlackbox: Nullable[bool] = None,
|
|
673
|
-
parent: ModelEntity = None
|
|
673
|
+
parent: Nullable[ModelEntity] = None
|
|
674
674
|
) -> None:
|
|
675
675
|
super().__init__(parent)
|
|
676
676
|
LabeledEntityMixin.__init__(self, alternativeLabel)
|
|
@@ -690,7 +690,7 @@ class GenerateCase(ConcurrentCase):
|
|
|
690
690
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
691
691
|
alternativeLabel: Nullable[str] = None,
|
|
692
692
|
allowBlackbox: Nullable[bool] = None,
|
|
693
|
-
parent: ModelEntity = None
|
|
693
|
+
parent: Nullable[ModelEntity] = None
|
|
694
694
|
) -> None:
|
|
695
695
|
super().__init__(declaredItems, statements, alternativeLabel, allowBlackbox, parent)
|
|
696
696
|
|
|
@@ -744,7 +744,7 @@ class CaseGenerateStatement(GenerateStatement):
|
|
|
744
744
|
expression: ExpressionUnion,
|
|
745
745
|
cases: Iterable[ConcurrentCase],
|
|
746
746
|
allowBlackbox: Nullable[bool] = None,
|
|
747
|
-
parent: ModelEntity = None
|
|
747
|
+
parent: Nullable[ModelEntity] = None
|
|
748
748
|
) -> None:
|
|
749
749
|
super().__init__(label, allowBlackbox, parent)
|
|
750
750
|
|
|
@@ -800,7 +800,7 @@ class ForGenerateStatement(GenerateStatement, ConcurrentDeclarationRegionMixin,
|
|
|
800
800
|
declaredItems: Nullable[Iterable] = None,
|
|
801
801
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
802
802
|
allowBlackbox: Nullable[bool] = None,
|
|
803
|
-
parent: ModelEntity = None
|
|
803
|
+
parent: Nullable[ModelEntity] = None
|
|
804
804
|
) -> None:
|
|
805
805
|
super().__init__(label, allowBlackbox, parent)
|
|
806
806
|
ConcurrentDeclarationRegionMixin.__init__(self, declaredItems)
|
|
@@ -842,7 +842,7 @@ class ConcurrentSignalAssignment(ConcurrentStatement, SignalAssignmentMixin):
|
|
|
842
842
|
* :class:`~pyVHDLModel.Concurrent.ConcurrentSelectedSignalAssignment`
|
|
843
843
|
* :class:`~pyVHDLModel.Concurrent.ConcurrentConditionalSignalAssignment`
|
|
844
844
|
"""
|
|
845
|
-
def __init__(self, label: str, target: Name, parent: ModelEntity = None) -> None:
|
|
845
|
+
def __init__(self, label: str, target: Name, parent: Nullable[ModelEntity] = None) -> None:
|
|
846
846
|
super().__init__(label, parent)
|
|
847
847
|
SignalAssignmentMixin.__init__(self, target)
|
|
848
848
|
|
|
@@ -851,7 +851,7 @@ class ConcurrentSignalAssignment(ConcurrentStatement, SignalAssignmentMixin):
|
|
|
851
851
|
class ConcurrentSimpleSignalAssignment(ConcurrentSignalAssignment):
|
|
852
852
|
_waveform: List[WaveformElement]
|
|
853
853
|
|
|
854
|
-
def __init__(self, label: str, target: Name, waveform: Iterable[WaveformElement], parent: ModelEntity = None) -> None:
|
|
854
|
+
def __init__(self, label: str, target: Name, waveform: Iterable[WaveformElement], parent: Nullable[ModelEntity] = None) -> None:
|
|
855
855
|
super().__init__(label, target, parent)
|
|
856
856
|
|
|
857
857
|
# TODO: extract to mixin
|
|
@@ -868,13 +868,13 @@ class ConcurrentSimpleSignalAssignment(ConcurrentSignalAssignment):
|
|
|
868
868
|
|
|
869
869
|
@export
|
|
870
870
|
class ConcurrentSelectedSignalAssignment(ConcurrentSignalAssignment):
|
|
871
|
-
def __init__(self, label: str, target: Name, expression: ExpressionUnion, parent: ModelEntity = None) -> None:
|
|
871
|
+
def __init__(self, label: str, target: Name, expression: ExpressionUnion, parent: Nullable[ModelEntity] = None) -> None:
|
|
872
872
|
super().__init__(label, target, parent)
|
|
873
873
|
|
|
874
874
|
|
|
875
875
|
@export
|
|
876
876
|
class ConcurrentConditionalSignalAssignment(ConcurrentSignalAssignment):
|
|
877
|
-
def __init__(self, label: str, target: Name, expression: ExpressionUnion, parent: ModelEntity = None) -> None:
|
|
877
|
+
def __init__(self, label: str, target: Name, expression: ExpressionUnion, parent: Nullable[ModelEntity] = None) -> None:
|
|
878
878
|
super().__init__(label, target, parent)
|
|
879
879
|
|
|
880
880
|
|
|
@@ -886,7 +886,7 @@ class ConcurrentAssertStatement(ConcurrentStatement, AssertStatementMixin):
|
|
|
886
886
|
message: ExpressionUnion,
|
|
887
887
|
severity: Nullable[ExpressionUnion] = None,
|
|
888
888
|
label: Nullable[str] = None,
|
|
889
|
-
parent: ModelEntity = None
|
|
889
|
+
parent: Nullable[ModelEntity] = None
|
|
890
890
|
) -> None:
|
|
891
891
|
super().__init__(label, parent)
|
|
892
892
|
AssertStatementMixin.__init__(self, condition, message, severity)
|
|
@@ -103,7 +103,7 @@ class Attribute(ModelEntity, NamedEntityMixin, DocumentedEntityMixin):
|
|
|
103
103
|
identifier: str,
|
|
104
104
|
subtype: Symbol,
|
|
105
105
|
documentation: Nullable[str] = None,
|
|
106
|
-
parent: ModelEntity = None
|
|
106
|
+
parent: Nullable[ModelEntity] = None
|
|
107
107
|
) -> None:
|
|
108
108
|
super().__init__(parent)
|
|
109
109
|
NamedEntityMixin.__init__(self, identifier)
|
|
@@ -141,7 +141,7 @@ class AttributeSpecification(ModelEntity, DocumentedEntityMixin):
|
|
|
141
141
|
entityClass: EntityClass,
|
|
142
142
|
expression: ExpressionUnion,
|
|
143
143
|
documentation: Nullable[str] = None,
|
|
144
|
-
parent: ModelEntity = None
|
|
144
|
+
parent: Nullable[ModelEntity] = None
|
|
145
145
|
) -> None:
|
|
146
146
|
super().__init__(parent)
|
|
147
147
|
DocumentedEntityMixin.__init__(self, documentation)
|
|
@@ -179,7 +179,7 @@ class AttributeSpecification(ModelEntity, DocumentedEntityMixin):
|
|
|
179
179
|
# TODO: move somewhere else
|
|
180
180
|
@export
|
|
181
181
|
class Alias(ModelEntity, NamedEntityMixin, DocumentedEntityMixin):
|
|
182
|
-
def __init__(self, identifier: str, documentation: Nullable[str] = None, parent: ModelEntity = None) -> None:
|
|
182
|
+
def __init__(self, identifier: str, documentation: Nullable[str] = None, parent: Nullable[ModelEntity] = None) -> None:
|
|
183
183
|
"""
|
|
184
184
|
Initializes underlying ``BaseType``.
|
|
185
185
|
|
|
@@ -46,7 +46,7 @@ from pyVHDLModel.Base import ModelEntity, NamedEntityMixin, DocumentedEnti
|
|
|
46
46
|
from pyVHDLModel.Namespace import Namespace
|
|
47
47
|
from pyVHDLModel.Regions import ConcurrentDeclarationRegionMixin
|
|
48
48
|
from pyVHDLModel.Symbol import Symbol, PackageSymbol, EntitySymbol, LibraryReferenceSymbol
|
|
49
|
-
from pyVHDLModel.Interface import GenericInterfaceItemMixin, PortInterfaceItemMixin
|
|
49
|
+
from pyVHDLModel.Interface import GenericInterfaceItemMixin, PortInterfaceItemMixin, WithGenericsMixin, WithPortsMixin
|
|
50
50
|
from pyVHDLModel.Object import DeferredConstant
|
|
51
51
|
from pyVHDLModel.Concurrent import ConcurrentStatement, ConcurrentStatementsMixin
|
|
52
52
|
|
|
@@ -65,7 +65,7 @@ class Reference(ModelEntity):
|
|
|
65
65
|
|
|
66
66
|
_symbols: List[Symbol]
|
|
67
67
|
|
|
68
|
-
def __init__(self, symbols: Iterable[Symbol], parent: ModelEntity = None) -> None:
|
|
68
|
+
def __init__(self, symbols: Iterable[Symbol], parent: Nullable[ModelEntity] = None) -> None:
|
|
69
69
|
"""
|
|
70
70
|
Initializes a reference by taking a list of symbols and a parent reference.
|
|
71
71
|
|
|
@@ -187,7 +187,7 @@ class DesignUnit(ModelEntity, NamedEntityMixin, DocumentedEntityMixin):
|
|
|
187
187
|
|
|
188
188
|
_namespace: 'Namespace'
|
|
189
189
|
|
|
190
|
-
def __init__(self, identifier: str, contextItems: Nullable[Iterable[ContextUnion]] = None, documentation: Nullable[str] = None, parent: ModelEntity = None) -> None:
|
|
190
|
+
def __init__(self, identifier: str, contextItems: Nullable[Iterable[ContextUnion]] = None, documentation: Nullable[str] = None, parent: Nullable[ModelEntity] = None) -> None:
|
|
191
191
|
"""
|
|
192
192
|
Initializes a design unit.
|
|
193
193
|
|
|
@@ -373,7 +373,7 @@ class Context(PrimaryUnit):
|
|
|
373
373
|
|
|
374
374
|
_references: List[ContextUnion]
|
|
375
375
|
|
|
376
|
-
def __init__(self, identifier: str, references: Nullable[Iterable[ContextUnion]] = None, documentation: Nullable[str] = None, parent: ModelEntity = None) -> None:
|
|
376
|
+
def __init__(self, identifier: str, references: Nullable[Iterable[ContextUnion]] = None, documentation: Nullable[str] = None, parent: Nullable[ModelEntity] = None) -> None:
|
|
377
377
|
super().__init__(identifier, None, documentation, parent)
|
|
378
378
|
|
|
379
379
|
self._references = []
|
|
@@ -414,7 +414,7 @@ class Context(PrimaryUnit):
|
|
|
414
414
|
|
|
415
415
|
|
|
416
416
|
@export
|
|
417
|
-
class Package(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegionMixin, AllowBlackboxMixin):
|
|
417
|
+
class Package(PrimaryUnit, DesignUnitWithContextMixin, WithGenericsMixin, ConcurrentDeclarationRegionMixin, AllowBlackboxMixin):
|
|
418
418
|
"""
|
|
419
419
|
Represents a package declaration.
|
|
420
420
|
|
|
@@ -429,8 +429,6 @@ class Package(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegi
|
|
|
429
429
|
|
|
430
430
|
_packageBody: Nullable["PackageBody"]
|
|
431
431
|
|
|
432
|
-
_genericItems: List[GenericInterfaceItemMixin]
|
|
433
|
-
|
|
434
432
|
_deferredConstants: Dict[str, DeferredConstant]
|
|
435
433
|
_components: Dict[str, 'Component']
|
|
436
434
|
|
|
@@ -442,7 +440,7 @@ class Package(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegi
|
|
|
442
440
|
declaredItems: Nullable[Iterable] = None,
|
|
443
441
|
documentation: Nullable[str] = None,
|
|
444
442
|
allowBlackbox: Nullable[bool] = None,
|
|
445
|
-
parent: ModelEntity = None
|
|
443
|
+
parent: Nullable[ModelEntity] = None
|
|
446
444
|
) -> None:
|
|
447
445
|
"""
|
|
448
446
|
Initialize a package.
|
|
@@ -457,18 +455,12 @@ class Package(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegi
|
|
|
457
455
|
"""
|
|
458
456
|
super().__init__(identifier, contextItems, documentation, parent)
|
|
459
457
|
DesignUnitWithContextMixin.__init__(self)
|
|
458
|
+
WithGenericsMixin.__init__(self, genericItems)
|
|
460
459
|
ConcurrentDeclarationRegionMixin.__init__(self, declaredItems)
|
|
461
460
|
AllowBlackboxMixin.__init__(self, allowBlackbox)
|
|
462
461
|
|
|
463
462
|
self._packageBody = None
|
|
464
463
|
|
|
465
|
-
# TODO: extract to mixin
|
|
466
|
-
self._genericItems = [] # TODO: convert to dict
|
|
467
|
-
if genericItems is not None:
|
|
468
|
-
for generic in genericItems:
|
|
469
|
-
self._genericItems.append(generic)
|
|
470
|
-
generic._parent = self
|
|
471
|
-
|
|
472
464
|
self._deferredConstants = {}
|
|
473
465
|
self._components = {}
|
|
474
466
|
|
|
@@ -476,10 +468,6 @@ class Package(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegi
|
|
|
476
468
|
def PackageBody(self) -> Nullable["PackageBody"]:
|
|
477
469
|
return self._packageBody
|
|
478
470
|
|
|
479
|
-
@property
|
|
480
|
-
def GenericItems(self) -> List[GenericInterfaceItemMixin]:
|
|
481
|
-
return self._genericItems
|
|
482
|
-
|
|
483
471
|
@property
|
|
484
472
|
def DeclaredItems(self) -> List:
|
|
485
473
|
return self._declaredItems
|
|
@@ -534,7 +522,7 @@ class PackageBody(SecondaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarati
|
|
|
534
522
|
contextItems: Nullable[Iterable[ContextUnion]] = None,
|
|
535
523
|
declaredItems: Nullable[Iterable] = None,
|
|
536
524
|
documentation: Nullable[str] = None,
|
|
537
|
-
parent: ModelEntity = None
|
|
525
|
+
parent: Nullable[ModelEntity] = None
|
|
538
526
|
) -> None:
|
|
539
527
|
super().__init__(packageSymbol.Name.Identifier, contextItems, documentation, parent)
|
|
540
528
|
DesignUnitWithContextMixin.__init__(self)
|
|
@@ -566,7 +554,7 @@ class PackageBody(SecondaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarati
|
|
|
566
554
|
|
|
567
555
|
|
|
568
556
|
@export
|
|
569
|
-
class Entity(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegionMixin, ConcurrentStatementsMixin, AllowBlackboxMixin):
|
|
557
|
+
class Entity(PrimaryUnit, DesignUnitWithContextMixin, WithGenericsMixin, WithPortsMixin, ConcurrentDeclarationRegionMixin, ConcurrentStatementsMixin, AllowBlackboxMixin):
|
|
570
558
|
"""
|
|
571
559
|
Represents an entity declaration.
|
|
572
560
|
|
|
@@ -579,9 +567,6 @@ class Entity(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegio
|
|
|
579
567
|
end entity;
|
|
580
568
|
"""
|
|
581
569
|
|
|
582
|
-
_genericItems: List[GenericInterfaceItemMixin]
|
|
583
|
-
_portItems: List[PortInterfaceItemMixin]
|
|
584
|
-
|
|
585
570
|
_architectures: Dict[str, 'Architecture']
|
|
586
571
|
|
|
587
572
|
def __init__(
|
|
@@ -594,40 +579,18 @@ class Entity(PrimaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarationRegio
|
|
|
594
579
|
statements: Nullable[Iterable[ConcurrentStatement]] = None,
|
|
595
580
|
documentation: Nullable[str] = None,
|
|
596
581
|
allowBlackbox: Nullable[bool] = None,
|
|
597
|
-
parent: ModelEntity = None
|
|
582
|
+
parent: Nullable[ModelEntity] = None
|
|
598
583
|
) -> None:
|
|
599
584
|
super().__init__(identifier, contextItems, documentation, parent)
|
|
600
585
|
DesignUnitWithContextMixin.__init__(self)
|
|
586
|
+
WithGenericsMixin.__init__(self, genericItems)
|
|
587
|
+
WithPortsMixin.__init__(self, portItems)
|
|
601
588
|
ConcurrentDeclarationRegionMixin.__init__(self, declaredItems)
|
|
602
589
|
ConcurrentStatementsMixin.__init__(self, statements)
|
|
603
590
|
AllowBlackboxMixin.__init__(self, allowBlackbox)
|
|
604
591
|
|
|
605
|
-
# TODO: extract to mixin
|
|
606
|
-
self._genericItems = []
|
|
607
|
-
if genericItems is not None:
|
|
608
|
-
for item in genericItems:
|
|
609
|
-
self._genericItems.append(item)
|
|
610
|
-
item._parent = self
|
|
611
|
-
|
|
612
|
-
# TODO: extract to mixin
|
|
613
|
-
self._portItems = []
|
|
614
|
-
if portItems is not None:
|
|
615
|
-
for item in portItems:
|
|
616
|
-
self._portItems.append(item)
|
|
617
|
-
item._parent = self
|
|
618
|
-
|
|
619
592
|
self._architectures = {}
|
|
620
593
|
|
|
621
|
-
# TODO: extract to mixin for generics
|
|
622
|
-
@property
|
|
623
|
-
def GenericItems(self) -> List[GenericInterfaceItemMixin]:
|
|
624
|
-
return self._genericItems
|
|
625
|
-
|
|
626
|
-
# TODO: extract to mixin for ports
|
|
627
|
-
@property
|
|
628
|
-
def PortItems(self) -> List[PortInterfaceItemMixin]:
|
|
629
|
-
return self._portItems
|
|
630
|
-
|
|
631
594
|
@property
|
|
632
595
|
def Architectures(self) -> Dict[str, 'Architecture']:
|
|
633
596
|
return self._architectures
|
|
@@ -672,7 +635,7 @@ class Architecture(SecondaryUnit, DesignUnitWithContextMixin, ConcurrentDeclarat
|
|
|
672
635
|
statements: Iterable['ConcurrentStatement'] = None,
|
|
673
636
|
documentation: Nullable[str] = None,
|
|
674
637
|
allowBlackbox: Nullable[bool] = None,
|
|
675
|
-
parent: ModelEntity = None
|
|
638
|
+
parent: Nullable[ModelEntity] = None
|
|
676
639
|
) -> None:
|
|
677
640
|
super().__init__(identifier, contextItems, documentation, parent)
|
|
678
641
|
DesignUnitWithContextMixin.__init__(self)
|
|
@@ -728,7 +691,7 @@ class Component(ModelEntity, NamedEntityMixin, DocumentedEntityMixin, AllowBlack
|
|
|
728
691
|
portItems: Nullable[Iterable[PortInterfaceItemMixin]] = None,
|
|
729
692
|
documentation: Nullable[str] = None,
|
|
730
693
|
allowBlackbox: Nullable[bool] = None,
|
|
731
|
-
parent: ModelEntity = None
|
|
694
|
+
parent: Nullable[ModelEntity] = None
|
|
732
695
|
) -> None:
|
|
733
696
|
super().__init__(parent)
|
|
734
697
|
NamedEntityMixin.__init__(self, identifier)
|
|
@@ -811,7 +774,7 @@ class Configuration(PrimaryUnit, DesignUnitWithContextMixin):
|
|
|
811
774
|
identifier: str,
|
|
812
775
|
contextItems: Nullable[Iterable[Context]] = None,
|
|
813
776
|
documentation: Nullable[str] = None,
|
|
814
|
-
parent: ModelEntity = None
|
|
777
|
+
parent: Nullable[ModelEntity] = None
|
|
815
778
|
) -> None:
|
|
816
779
|
super().__init__(identifier, contextItems, documentation, parent)
|
|
817
780
|
DesignUnitWithContextMixin.__init__(self)
|