pyEDAA.ProjectModel 0.4.2__tar.gz → 0.5.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.
Files changed (29) hide show
  1. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/PKG-INFO +49 -9
  2. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Altera/Quartus.py +1 -1
  3. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Altera/__init__.py +1 -1
  4. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Attributes.py +2 -2
  5. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/GHDL.py +1 -1
  6. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Intel/QuartusPrime.py +1 -1
  7. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Intel/__init__.py +1 -1
  8. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/MentorGraphics/ModelSim.py +1 -1
  9. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/MentorGraphics/QuestaSim.py +1 -1
  10. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/MentorGraphics/__init__.py +1 -1
  11. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/OSVVM.py +7 -7
  12. pyedaa_projectmodel-0.5.0/pyEDAA/ProjectModel/VHDL.py +0 -0
  13. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Verilog.py +1 -1
  14. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Xilinx/ISE.py +1 -1
  15. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Xilinx/Vivado.py +26 -25
  16. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/Xilinx/__init__.py +1 -1
  17. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA/ProjectModel/__init__.py +653 -193
  18. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA.ProjectModel.egg-info/PKG-INFO +49 -9
  19. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA.ProjectModel.egg-info/SOURCES.txt +1 -0
  20. pyedaa_projectmodel-0.5.0/pyEDAA.ProjectModel.egg-info/requires.txt +48 -0
  21. pyedaa_projectmodel-0.5.0/pyproject.toml +76 -0
  22. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/setup.py +11 -4
  23. pyEDAA.ProjectModel-0.4.2/pyEDAA.ProjectModel.egg-info/requires.txt +0 -23
  24. pyEDAA.ProjectModel-0.4.2/pyproject.toml +0 -36
  25. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/LICENSE.md +0 -0
  26. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/README.md +0 -0
  27. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA.ProjectModel.egg-info/dependency_links.txt +0 -0
  28. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/pyEDAA.ProjectModel.egg-info/top_level.txt +0 -0
  29. {pyEDAA.ProjectModel-0.4.2 → pyedaa_projectmodel-0.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyEDAA.ProjectModel
3
- Version: 0.4.2
3
+ Version: 0.5.0
4
4
  Summary: An abstract model of EDA tool projects.
5
5
  Home-page: https://GitHub.com/edaa-org/pyEDAA.ProjectModel
6
6
  Author: Patrick Lehmann
@@ -10,24 +10,66 @@ Project-URL: Documentation, https://edaa-org.GitHub.io/pyEDAA.ProjectModel
10
10
  Project-URL: Source Code, https://GitHub.com/edaa-org/pyEDAA.ProjectModel
11
11
  Project-URL: Issue Tracker, https://GitHub.com/edaa-org/pyEDAA.ProjectModel/issues
12
12
  Keywords: eda project,model,abstract,xilinx,vivado,osvvm,file set,file group,test bench,test harness
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.6
21
- Classifier: Programming Language :: Python :: 3.7
22
- Classifier: Programming Language :: Python :: 3.8
23
19
  Classifier: Programming Language :: Python :: 3.9
24
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
25
24
  Classifier: Development Status :: 4 - Beta
26
- Requires-Python: >=3.6
25
+ Requires-Python: >=3.9
27
26
  Description-Content-Type: text/markdown
27
+ License-File: LICENSE.md
28
+ Requires-Dist: pySVModel~=0.5
29
+ Requires-Dist: pySystemRDLModel~=0.3
30
+ Requires-Dist: pyTooling~=7.0
31
+ Requires-Dist: pyVHDLModel~=0.29.1
28
32
  Provides-Extra: doc
33
+ Requires-Dist: pySystemRDLModel~=0.3; extra == "doc"
34
+ Requires-Dist: sphinx_fontawesome>=0.0.6; extra == "doc"
35
+ Requires-Dist: autoapi>=2.0.1; extra == "doc"
36
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
37
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
38
+ Requires-Dist: pyVHDLModel~=0.29.1; extra == "doc"
39
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "doc"
40
+ Requires-Dist: pySVModel~=0.5; extra == "doc"
41
+ Requires-Dist: docutils~=0.21; extra == "doc"
42
+ Requires-Dist: sphinx~=8.1; extra == "doc"
43
+ Requires-Dist: pyTooling~=7.0; extra == "doc"
44
+ Provides-Extra: test
45
+ Requires-Dist: pySystemRDLModel~=0.3; extra == "test"
46
+ Requires-Dist: typing_extensions~=4.12; extra == "test"
47
+ Requires-Dist: pytest~=8.3; extra == "test"
48
+ Requires-Dist: Coverage~=7.6; extra == "test"
49
+ Requires-Dist: lxml~=5.3; extra == "test"
50
+ Requires-Dist: pyVHDLModel~=0.29.1; extra == "test"
51
+ Requires-Dist: mypy~=1.13; extra == "test"
52
+ Requires-Dist: pySVModel~=0.5; extra == "test"
53
+ Requires-Dist: pytest-cov~=6.0; extra == "test"
54
+ Requires-Dist: pyTooling~=7.0; extra == "test"
29
55
  Provides-Extra: all
30
- License-File: LICENSE.md
56
+ Requires-Dist: pySystemRDLModel~=0.3; extra == "all"
57
+ Requires-Dist: sphinx_fontawesome>=0.0.6; extra == "all"
58
+ Requires-Dist: pytest-cov~=6.0; extra == "all"
59
+ Requires-Dist: typing_extensions~=4.12; extra == "all"
60
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
61
+ Requires-Dist: pytest~=8.3; extra == "all"
62
+ Requires-Dist: Coverage~=7.6; extra == "all"
63
+ Requires-Dist: lxml~=5.3; extra == "all"
64
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
65
+ Requires-Dist: pyVHDLModel~=0.29.1; extra == "all"
66
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "all"
67
+ Requires-Dist: mypy~=1.13; extra == "all"
68
+ Requires-Dist: pySVModel~=0.5; extra == "all"
69
+ Requires-Dist: docutils~=0.21; extra == "all"
70
+ Requires-Dist: sphinx~=8.1; extra == "all"
71
+ Requires-Dist: autoapi>=2.0.1; extra == "all"
72
+ Requires-Dist: pyTooling~=7.0; extra == "all"
31
73
 
32
74
  <p align="center">
33
75
  <a title="edaa-org.github.io/pySVModel" href="https://edaa-org.github.io/pyEDAA.ProjectModel"><img height="80px" src="doc/_static/logo_on_dark.svg"/></a>
@@ -161,5 +203,3 @@ The accompanying documentation is licensed under [Creative Commons - Attribution
161
203
 
162
204
  -------------------------
163
205
  SPDX-License-Identifier: Apache-2.0
164
-
165
-
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -41,7 +41,7 @@ class KeyValueAttribute(Attribute):
41
41
 
42
42
  _keyValuePairs: Dict[str, str]
43
43
 
44
- def __init__(self):
44
+ def __init__(self) -> None:
45
45
  super().__init__()
46
46
 
47
47
  self._keyValuePairs = {}
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -46,9 +46,9 @@ class OSVVMProjectFile(ProjectFile, TCLContent):
46
46
  def __init__(
47
47
  self,
48
48
  path: Path,
49
- project: Project = None,
50
- design: Design = None,
51
- fileSet: FileSet = None
49
+ project: Nullable[Project] = None,
50
+ design: Nullable[Design] = None,
51
+ fileSet: Nullable[FileSet] = None
52
52
  ):
53
53
  super().__init__(path, project, design, fileSet)
54
54
 
@@ -133,7 +133,7 @@ class OSVVMProjectFile(ProjectFile, TCLContent):
133
133
  elif not isinstance(instruction, (OSVVMProjectFile.Empty, OSVVMProjectFile.Comment)):
134
134
  raise Exception(f"Unknown instruction '{instruction.__class__.__name__}' in OSVVM project file '{self._osvvmProjectFile.ResolvedPath}'")
135
135
 
136
- def Parse(self):
136
+ def Parse(self) -> None:
137
137
  projectName = self._path.name
138
138
  self._osvvmProject = Project(projectName, rootDirectory=self._path.parent)
139
139
 
@@ -147,14 +147,14 @@ class OSVVMProjectFile(ProjectFile, TCLContent):
147
147
  elif not isinstance(instruction, (OSVVMProjectFile.Empty, OSVVMProjectFile.Comment)):
148
148
  raise Exception(f"Unknown instruction '{instruction.__class__.__name__}' in OSVVM project file '{self.ResolvedPath}'")
149
149
 
150
- def _Parse(self):
150
+ def _Parse(self) -> List:
151
151
  path = self.ResolvedPath
152
152
  if not path.exists():
153
153
  raise Exception(f"OSVVM project file '{path}' not found.") from FileNotFoundError(f"File '{path}' not found.")
154
154
 
155
155
  instructions: List = []
156
156
  print()
157
- with path.open("r") as file:
157
+ with path.open("r", encoding="utf-8") as file:
158
158
  i = 1
159
159
  for line in file:
160
160
  line = line.lstrip()
File without changes
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #
@@ -30,11 +30,12 @@
30
30
  #
31
31
  """Specific file types and attributes for Xilinx Vivado."""
32
32
  from pathlib import Path
33
- from typing import Iterable
34
-
33
+ from typing import Iterable, Optional as Nullable
35
34
  from xml.dom import minidom, Node
36
- from pyVHDLModel import VHDLVersion
37
- from pyTooling.Decorators import export
35
+
36
+ from pyTooling.Decorators import export
37
+ from pyTooling.MetaClasses import ExtendedType
38
+ from pyVHDLModel import VHDLVersion
38
39
 
39
40
  from pyEDAA.ProjectModel import ProjectFile, XMLFile, XMLContent, SDCContent, Project, FileSet, Attribute, Design
40
41
  from pyEDAA.ProjectModel import File as Model_File
@@ -54,28 +55,28 @@ class File(Model_File):
54
55
  pass
55
56
 
56
57
 
57
- class VivadoFileMixIn:
58
- def _registerAttributes(self):
58
+ class VivadoFileMixIn(metaclass=ExtendedType, mixin=True):
59
+ def _registerAttributes(self) -> None:
59
60
  self._attributes[UsedInAttribute] = []
60
61
 
61
62
 
62
63
  @export
63
64
  class ConstraintFile(Model_ConstraintFile, VivadoFileMixIn):
64
- def _registerAttributes(self):
65
+ def _registerAttributes(self) -> None:
65
66
  super()._registerAttributes()
66
67
  VivadoFileMixIn._registerAttributes(self)
67
68
 
68
69
 
69
70
  @export
70
71
  class VerilogSourceFile(Model_VerilogSourceFile):
71
- def _registerAttributes(self):
72
+ def _registerAttributes(self) -> None:
72
73
  super()._registerAttributes()
73
74
  VivadoFileMixIn._registerAttributes(self)
74
75
 
75
76
 
76
77
  @export
77
78
  class VHDLSourceFile(Model_VHDLSourceFile):
78
- def _registerAttributes(self):
79
+ def _registerAttributes(self) -> None:
79
80
  super()._registerAttributes()
80
81
  VivadoFileMixIn._registerAttributes(self)
81
82
 
@@ -89,10 +90,10 @@ class VivadoProjectFile(ProjectFile, XMLContent):
89
90
  def __init__(
90
91
  self,
91
92
  path: Path,
92
- project: Project = None,
93
- design: Design = None,
94
- fileSet: FileSet = None
95
- ):
93
+ project: Nullable[Project] = None,
94
+ design: Nullable[Design] = None,
95
+ fileSet: Nullable[FileSet] = None
96
+ ) -> None:
96
97
  super().__init__(path, project, design, fileSet)
97
98
 
98
99
  self._xprProject = None
@@ -101,7 +102,7 @@ class VivadoProjectFile(ProjectFile, XMLContent):
101
102
  def ProjectModel(self) -> Project:
102
103
  return self._xprProject
103
104
 
104
- def Parse(self):
105
+ def Parse(self) -> None:
105
106
  if not self._path.exists():
106
107
  raise Exception(f"Vivado project file '{self._path!s}' not found.") from FileNotFoundError(f"File '{self._path!s}' not found.")
107
108
 
@@ -113,18 +114,18 @@ class VivadoProjectFile(ProjectFile, XMLContent):
113
114
  self._xprProject = Project(self._path.stem, rootDirectory=self._path.parent)
114
115
  self._ParseRootElement(root)
115
116
 
116
- def _ParseRootElement(self, root):
117
+ def _ParseRootElement(self, root) -> None:
117
118
  for rootNode in root.childNodes:
118
119
  if rootNode.nodeName == "FileSets":
119
120
  self._ParseFileSets(rootNode)
120
121
  break
121
122
 
122
- def _ParseFileSets(self, filesetsNode):
123
+ def _ParseFileSets(self, filesetsNode) -> None:
123
124
  for fileSetsNode in filesetsNode.childNodes:
124
125
  if fileSetsNode.nodeType == Node.ELEMENT_NODE and fileSetsNode.tagName == "FileSet":
125
126
  self._ParseFileSet(fileSetsNode)
126
127
 
127
- def _ParseFileSet(self, filesetNode):
128
+ def _ParseFileSet(self, filesetNode) -> None:
128
129
  filesetName = filesetNode.getAttribute("Name")
129
130
  fileset = FileSet(filesetName, design=self._xprProject.DefaultDesign)
130
131
 
@@ -135,7 +136,7 @@ class VivadoProjectFile(ProjectFile, XMLContent):
135
136
  elif fileNode.nodeType == Node.ELEMENT_NODE and fileNode.tagName == "Config":
136
137
  self._ParseFileSetConfig(fileNode, fileset)
137
138
 
138
- def _ParseFile(self, fileNode, fileset):
139
+ def _ParseFile(self, fileNode, fileset) -> None:
139
140
  croppedPath = fileNode.getAttribute("Path").replace("$PPRDIR/", "")
140
141
  filePath = Path(croppedPath)
141
142
  if filePath.suffix in (".vhd", ".vhdl"):
@@ -149,7 +150,7 @@ class VivadoProjectFile(ProjectFile, XMLContent):
149
150
  else:
150
151
  self._ParseDefaultFile(fileNode, filePath, fileset)
151
152
 
152
- def _ParseVHDLFile(self, fileNode, path, fileset):
153
+ def _ParseVHDLFile(self, fileNode, path, fileset) -> None:
153
154
  vhdlFile = VHDLSourceFile(path)
154
155
  fileset.AddFile(vhdlFile)
155
156
  usedInAttr = vhdlFile[UsedInAttribute]
@@ -169,19 +170,19 @@ class VivadoProjectFile(ProjectFile, XMLContent):
169
170
  elif fileAttribute.getAttribute("Val") == "UsedIn":
170
171
  usedInAttr.append(fileAttribute.getAttribute("Val"))
171
172
 
172
- def _ParseDefaultFile(self, _, path, fileset):
173
+ def _ParseDefaultFile(self, _, path, fileset) -> None:
173
174
  File(path, fileSet=fileset)
174
175
 
175
- def _ParseXDCFile(self, _, path, fileset):
176
+ def _ParseXDCFile(self, _, path, fileset) -> None:
176
177
  XDCConstraintFile(path, fileSet=fileset)
177
178
 
178
- def _ParseVerilogFile(self, _, path, fileset):
179
+ def _ParseVerilogFile(self, _, path, fileset) -> None:
179
180
  VerilogSourceFile(path, fileSet=fileset)
180
181
 
181
- def _ParseXCIFile(self, _, path, fileset):
182
+ def _ParseXCIFile(self, _, path, fileset) -> None:
182
183
  IPCoreInstantiationFile(path, fileSet=fileset)
183
184
 
184
- def _ParseFileSetConfig(self, fileNode, fileset):
185
+ def _ParseFileSetConfig(self, fileNode, fileset) -> None:
185
186
  for option in fileNode.childNodes:
186
187
  if option.nodeType == Node.ELEMENT_NODE and option.tagName == "Option":
187
188
  if option.getAttribute("Name") == "TopModule":
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2017-2022 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2017-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. #