Skip to content

Commit 13857e4

Browse files
authored
v0.4.1
2 parents 736a5dd + f5b50f3 commit 13857e4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+882
-769
lines changed

.github/pull_request_template.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# New Features
2+
23
* tbd
34

45
# Changes
6+
57
* tbd
68

79
# Bug Fixes
10+
811
* tbd

.github/workflows/Pipeline.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ name: Pipeline
33
on:
44
push:
55
workflow_dispatch:
6-
7-
defaults:
8-
run:
9-
shell: bash
6+
schedule:
7+
- cron: '0 0 * * 5'
108

119
jobs:
1210

@@ -119,6 +117,7 @@ jobs:
119117
- StaticTypeCheck
120118
- BuildTheDocs
121119
- PublishToGitHubPages
120+
- PublishTestResults
122121
with:
123122
package: ${{ fromJson(needs.Params.outputs.params).artifacts.package }}
124123
remaining: |

.gitignore

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ coverage.xml
1616
!requirements.txt
1717

1818
# Sphinx
19-
doc/_build/
20-
doc/pyEDAA.ProjectModel/**/*.*
21-
!doc/pyEDAA.ProjectModel/index.rst
19+
/doc/_build/
20+
/doc/_theme/
21+
/doc/pyEDAA.ProjectModel/**/*.*
22+
!/doc/pyEDAA.ProjectModel/index.rst
2223

23-
# BuildTheDocs
24-
doc/_theme/**/*.*
25-
26-
# IntelliJ project files
24+
# PyCharm project files
2725
/.idea/workspace.xml

.idea/pyEDAA.ProjectModel.iml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"files.trimTrailingWhitespace": false,
3+
}

README.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyEDAA.ProjectModel?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)
1313
[![GitHub Workflow - Build and Test Status](https://img.shields.io/github/workflow/status/edaa-org/pyEDAA.ProjectModel/Pipeline/main?longCache=true&style=flat-square&label=Build%20and%20test&logo=GitHub%20Actions&logoColor=FFFFFF)](https://GitHub.com/edaa-org/pyEDAA.ProjectModel/actions/workflows/Pipeline.yml)
1414
[![Libraries.io status for latest release](https://img.shields.io/librariesio/release/pypi/pyEDAA.ProjectModel?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff)](https://libraries.io/github/edaa-org/pyEDAA.ProjectModel)
15-
[![Codacy - Quality](https://img.shields.io/codacy/grade/c2635df20fa840bc85639ca2fa1d9cb4?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/manual/edaa-org/pyEDAA.ProjectModel)
16-
[![Codacy - Coverage](https://img.shields.io/codacy/coverage/c2635df20fa840bc85639ca2fa1d9cb4?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/manual/edaa-org/pyEDAA.ProjectModel)
15+
[![Codacy - Quality](https://img.shields.io/codacy/grade/c2635df20fa840bc85639ca2fa1d9cb4?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/gh/edaa-org/pyEDAA.ProjectModel)
16+
[![Codacy - Coverage](https://img.shields.io/codacy/coverage/c2635df20fa840bc85639ca2fa1d9cb4?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/gh/edaa-org/pyEDAA.ProjectModel)
1717
[![Codecov - Branch Coverage](https://img.shields.io/codecov/c/github/edaa-org/pyEDAA.ProjectModel?longCache=true&style=flat-square&logo=Codecov)](https://codecov.io/gh/edaa-org/pyEDAA.ProjectModel)
1818

1919
<!--
@@ -31,7 +31,7 @@ a concrete project model for their tools.
3131
Frameworks consuming this model can build higher level features and services on top of
3232
such a model, while supporting multiple input sources.
3333

34-
## Data Model
34+
# Data Model
3535

3636
1. The toplevel element is a `Project`, which contains one or multiple designs.
3737
2. A `Design` is a variant of a project and contains filesets.
@@ -41,37 +41,39 @@ such a model, while supporting multiple input sources.
4141

4242
![img.png](doc/datamodel.png)
4343

44-
## Features
44+
# Features
4545

4646
* Construct a project model:
4747
* top-down (project &rarr; design &rarr; fileset &rarr; file) or
4848
* bottom-up (file &rarr; fileset &rarr; design &rarr; project) or
4949
* parsing a project file.
50+
5051
* Designs, filesets and files can use absolute or relative paths.
5152
* `ResolvedPath` returns the resolved absolute path to an object.
53+
5254
* Projects, designs, filesets and files can be validated (e.g. if the path exists).
55+
5356
* Projects, designs, filesets and files can have user-defined attributes.
5457
* User-defined attributes are resolved bottom-up.
5558

59+
# Project File Readers
5660

57-
## Project File Readers
58-
59-
### OSVVM `*.pro` File Reader
61+
## OSVVM `*.pro` File Reader
6062

6163
ProjectModel can read `*.pro` files and extract source files. Included `*.pro` files
6264
are represented as sub-filesets.
6365

64-
### Xilinx Vivado `*.xpr` Reader
66+
## Xilinx Vivado `*.xpr` Reader
6567

6668
ProjectModel can read `*.xpr` files and extract source, constraint and simulation
6769
files while preserving the fileset structure.
6870

69-
## Use Cases
71+
# Use Cases
72+
7073
* Reading OSVVM's `*.pro` files.
7174
* Reading Xilinx Vivado's `*.xpr` files.
7275

73-
74-
## Examples
76+
# Examples
7577

7678
```python
7779
from pathlib import Path
@@ -96,28 +98,25 @@ for file in designA.Files(fileType=VHDLSourceFile):
9698
print(f" {file.Path}")
9799
```
98100

99-
100101
# References
101102

102-
- [Paebbels/pyIPCMI: pyIPCMI/Base/Project.py](https://GitHub.com/Paebbels/pyIPCMI/blob/master/pyIPCMI/Base/Project.py)
103-
- [VUnit/vunit: vunit/project.py](https://GitHub.com/VUnit/vunit/blob/master/vunit/project.py)
104-
- [PyFPGA/pyfpga: fpga/project.py](https://GitHub.com/PyFPGA/pyfpga/blob/main/fpga/project.py)
105-
- [olofk/fusesoc: fusesoc/capi2/core.py](https://GitHub.com/olofk/fusesoc/blob/master/fusesoc/capi2/core.py)
106-
- [XedaHQ/xeda: xeda/flows/flow.py](https://GitHub.com/XedaHQ/xeda/blob/master/xeda/flows/flow.py)
107-
- [tsfpga/tsfpga: tsfpga/build_project_list.py](https://gitlab.com/tsfpga/tsfpga/-/blob/master/tsfpga/build_project_list.py)
108-
- [hdl-make: hdlmake/](https://ohwr.org/project/hdl-make/tree/master/hdlmake)
109-
- [OSVVM/OSVVM-Scripts: OsvvmProjectScripts.tcl](https://GitHub.com/OSVVM/OSVVM-Scripts/blob/master/OsvvmProjectScripts.tcl)
103+
* [Paebbels/pyIPCMI: pyIPCMI/Base/Project.py](https://GitHub.com/Paebbels/pyIPCMI/blob/master/pyIPCMI/Base/Project.py)
104+
* [VUnit/vunit: vunit/project.py](https://GitHub.com/VUnit/vunit/blob/master/vunit/project.py)
105+
* [PyFPGA/pyfpga: fpga/project.py](https://GitHub.com/PyFPGA/pyfpga/blob/main/fpga/project.py)
106+
* [olofk/fusesoc: fusesoc/capi2/core.py](https://GitHub.com/olofk/fusesoc/blob/master/fusesoc/capi2/core.py)
107+
* [XedaHQ/xeda: xeda/flows/flow.py](https://GitHub.com/XedaHQ/xeda/blob/master/xeda/flows/flow.py)
108+
* [tsfpga/tsfpga: tsfpga/build_project_list.py](https://gitlab.com/tsfpga/tsfpga/-/blob/master/tsfpga/build_project_list.py)
109+
* [hdl-make: hdlmake/](https://ohwr.org/project/hdl-make/tree/master/hdlmake)
110+
* [OSVVM/OSVVM-Scripts: OsvvmProjectScripts.tcl](https://GitHub.com/OSVVM/OSVVM-Scripts/blob/master/OsvvmProjectScripts.tcl)
110111

112+
# Contributors
111113

112-
113-
## Contributors
114114
* [Patrick Lehmann](https://GitHub.com/Paebbels) (Maintainer)
115115
* [Unai Martinez-Corral](https://GitHub.com/umarcor)
116116
* [Stefan Unrein](https://GitHub.com/stefanunrein)
117117
* [and more...](https://GitHub.com/edaa-org/pyEDAA.ProjectModel/graphs/contributors)
118118

119-
120-
## License
119+
# License
121120

122121
This Python package (source code) licensed under [Apache License 2.0](LICENSE.md).
123122
The accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst).

doc/Dependency.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ pyEDAA.ProjectModel Package
2727
+----------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
2828
| **Package** | **Version** | **License** | **Dependencies** |
2929
+==========================================================+=============+===========================================================================================+=================================================================================================================================+
30-
| `pyTooling <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.7.0 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling/blob/main/LICENSE.txt>`__ | *None* |
30+
| `pyTooling <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.8.1 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling/blob/main/LICENSE.txt>`__ | *None* |
3131
+----------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
3232
| `pyVHDLModel <https://GitHub.com/VHDL/pyVHDLModel>`__ | ≥0.13.0 | `Apache License, 2.0 <https://GitHub.com/VHDL/pyVHDLModel/blob/master/LICENSE>`__ | |
3333
+----------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
@@ -65,7 +65,7 @@ the mandatory dependencies too.
6565
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
6666
| `Coverage <https://GitHub.com/nedbat/coveragepy>`__ | ≥6.2 | `Apache License, 2.0 <https://GitHub.com/nedbat/coveragepy/blob/master/LICENSE.txt>`__ | *Not yet evaluated.* |
6767
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
68-
| `mypy <https://GitHub.com/python/mypy>`__ | ≥0.910 | `MIT <https://GitHub.com/python/mypy/blob/master/LICENSE>`__ | *Not yet evaluated.* |
68+
| `mypy <https://GitHub.com/python/mypy>`__ | ≥0.930 | `MIT <https://GitHub.com/python/mypy/blob/master/LICENSE>`__ | *Not yet evaluated.* |
6969
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
7070
| `lxml <https://GitHub.com/lxml/lxml>`__ | ≥4.6.4 | `BSD 3-Clause <https://GitHub.com/lxml/lxml/blob/master/LICENSE.txt>`__ | *Not yet evaluated.* |
7171
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
@@ -95,7 +95,7 @@ the mandatory dependencies too.
9595
+-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
9696
| **Package** | **Version** | **License** | **Dependencies** |
9797
+=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+
98-
| `pyTooling.Packaging <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.7.0 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling.Packaging/blob/main/LICENSE.md>`__ | *None* |
98+
| `pyTooling <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.8.1 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling/blob/main/LICENSE.md>`__ | *None* |
9999
+-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
100100
| `Sphinx <https://GitHub.com/sphinx-doc/sphinx>`__ | ≥4.3.0 | `BSD 3-Clause <https://GitHub.com/sphinx-doc/sphinx/blob/master/LICENSE>`__ | *Not yet evaluated.* |
101101
+-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -131,7 +131,7 @@ install the mandatory dependencies too.
131131
+----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
132132
| **Package** | **Version** | **License** | **Dependencies** |
133133
+============================================================================+==============+==========================================================================================================+======================================================================================================================================================+
134-
| `pyTooling.Packaging <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.7.0 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling.Packaging/blob/main/LICENSE.md>`__ | *None* |
134+
| `pyTooling <https://GitHub.com/pyTooling/pyTooling>`__ | ≥1.8.1 | `Apache License, 2.0 <https://GitHub.com/pyTooling/pyTooling/blob/main/LICENSE.md>`__ | *None* |
135135
+----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
136136
| `wheel <https://GitHub.com/pypa/wheel>`__ | any | `MIT <https://github.com/pypa/wheel/blob/main/LICENSE.txt>`__ | *Not yet evaluated.* |
137137
+----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+

doc/Makefile

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
CP=cp
2-
3-
# Sphinx options.
41
SPHINXOPTS =
52
SPHINXBUILD = sphinx-build
63
PAPER =
@@ -10,19 +7,5 @@ PAPEROPT_a4 = -D latex_paper_size=a4
107
PAPEROPT_letter = -D latex_paper_size=letter
118
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees -T -D language=en $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
129

13-
all: html latex
14-
15-
#---
16-
17-
man:
18-
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
19-
20-
#---
21-
22-
html:
23-
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
24-
25-
#---
26-
27-
latex:
28-
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
10+
%:
11+
$(SPHINXBUILD) -b $@ $(ALLSPHINXOPTS) $(BUILDDIR)/$@

doc/index.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,8 @@ License
175175
:caption: Appendix
176176
:hidden:
177177

178-
coverage/index
179-
typing/index
180-
ChangeLog/index
178+
Coverage Report ➚ <https://edaa-org.GitHub.io/pyEDAA.ProjectModel/coverage/>
179+
Static Type Check Report ➚ <https://edaa-org.GitHub.io/pyEDAA.ProjectModel/typing/>
181180
License
182181
Doc-License
183182
Glossary

doc/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-r ../requirements.txt
22

3-
pyTooling>=1.7.0
3+
pyTooling>=1.8.1
44

55
# Enforce latest version on ReadTheDocs
66
sphinx>=4.3.0

0 commit comments

Comments
 (0)