From 8bc91555395472683de8f3e9b31299a7d536714c Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 13:33:18 +0100 Subject: [PATCH 01/24] First set of improvements. --- pyEDAA/Launcher/__init__.py | 43 ++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/pyEDAA/Launcher/__init__.py b/pyEDAA/Launcher/__init__.py index 7a93105..bf489c3 100644 --- a/pyEDAA/Launcher/__init__.py +++ b/pyEDAA/Launcher/__init__.py @@ -41,6 +41,7 @@ from pathlib import Path from textwrap import dedent import time +from typing import NoReturn sub_path_bat = Path("bin/vivado.bat") sub_path_vvgl = Path("bin/unwrapped/win64.o/vvgl.exe") @@ -68,21 +69,23 @@ def get_version(file_path): def get_vivado_versions(install_path): - return [directory.name for directory in install_path.iterdir()] + return [item.name for item in install_path.iterdir() if item.is_dir()] -def help(): - script_path = Path(sys.argv[0]) - print(f"Run-Path '{script_path}'") - print() - print(dedent("""\ - For using this VivadoManager please bind xpr extension to this executable with: - * Put this executable into the Vivado installation folder. E.g: c:\\Xilinx\\Vivado\\ - * Change *.xpr association: right-click-> open-width-> VivadoManager.exe +def PrintHelp(script_path: Path) -> None: + print(dedent(f"""\ + Run-Path '{script_path}' + + For using this VivadoManager please bind xpr extension to this executable with: + * Put this executable into the Vivado installation folder. E.g: c:\\Xilinx\\Vivado\\ + * Change *.xpr association: right-click-> open-width-> VivadoManager.exe """)) -def main(): + +def main() -> NoReturn: install_path = Path.cwd() + script_path = Path(sys.argv[0]) + if len(sys.argv) > 1: inputArg1 = sys.argv[1] file_path = Path(inputArg1) @@ -103,26 +106,32 @@ def main(): sys.exit(0) else: vivadoPath = install_path / file_version - print(f"ERROR: Vivado version {file_version} not available at path '{vivadoPath}'. Please start manually!") - print("") - print("Press any key to exit.") + print(dedent(f"""\ + ERROR: Vivado version {file_version} not available at path '{vivadoPath}'. Please start manually! + + Press any key to exit. + """)) + + # wait on user interaction input() - sys.exit(-1) + sys.exit(1) else: - help() + PrintHelp(script_path) vivado_versions = get_vivado_versions(install_path) - print(f"Current path '{install_path}' has following Files/Folders in it:") + print(f"Current path '{install_path}' has following files/folders in it:") for version in vivado_versions: print(version) print("") print("Press any key to exit.") + + # wait on user interaction input() sys.exit(0) -# entry point +# Entry point if __name__ == "__main__": main() From 5ced5159bdbeec3ca03be50516e5728933d9a066 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 13:47:32 +0100 Subject: [PATCH 02/24] Added more documentation pages and updated landing page (incl. ToC). Marked functions as exported. --- doc/Usage.rst | 4 ++ doc/index.rst | 132 ++++++++++++++++++++++++++++++++++ doc/pyEDAA.Launcher/index.rst | 3 + pyEDAA/Launcher/__init__.py | 6 ++ 4 files changed, 145 insertions(+) create mode 100644 doc/Usage.rst create mode 100644 doc/pyEDAA.Launcher/index.rst diff --git a/doc/Usage.rst b/doc/Usage.rst new file mode 100644 index 0000000..798b14f --- /dev/null +++ b/doc/Usage.rst @@ -0,0 +1,4 @@ +Usage +##### + +.. todo:: Needs to be documented. diff --git a/doc/index.rst b/doc/index.rst index 17c0a47..2b24dc5 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -40,7 +40,139 @@ The pyEDAA.Launcher Documentation
+one-liner TBD + + +.. _goals: + +Main Goals +********** + +tbd + + +.. _usecase: + +Use Cases +********* + +* tbd + + +.. _news: + +News +**** + +.. only:: html + + Feb. 2022 - Documentation und Unit Test Enhancements + ==================================================== + +.. only:: latex + + .. rubric:: Documentation und Unit Test Enhancements + +* Updated documentation. +* Added simple unit tests. + + +.. only:: html + + Dec. 2021 - Initial Prototype + ============================= + +.. only:: latex + + .. rubric:: Initial Prototype + +* Development of a simple script to start the correct Vivado installation by reading the version from ``*.xpr`` file. + + +.. _contributors: + +Contributors +************ + +* `Patrick Lehmann `__ (Maintainer) +* `Stefan Unrein `__ +* `Unai Martinez-Corral `__ +* `and more... `__ + + +License +******* + +.. only:: html + + This Python package (source code) is licensed under `Apache License 2.0 `__. |br| + The accompanying documentation is licensed under `Creative Commons - Attribution 4.0 (CC-BY 4.0) `__. + +.. only:: latex + + This Python package (source code) is licensed under **Apache License 2.0**. |br| + The accompanying documentation is licensed under **Creative Commons - Attribution 4.0 (CC-BY 4.0)**. + +------------------------------------ + +.. |docdate| date:: %d.%b %Y - %H:%M + +.. only:: html + + This document was generated on |docdate|. + + .. toctree:: :hidden: Used as a layer of EDA² ➚ + + +.. toctree:: + :caption: Introduction + :hidden: + + Installation + Dependency + Usage + + +.. raw:: latex + + \part{Main Documentation} + +.. #toctree:: + :caption: Main Documentation + :hidden: + + LanguageModel/index + + +.. raw:: latex + + \part{References} + +.. toctree:: + :caption: References + :hidden: + + pyEDAA.Launcher/index + + +.. raw:: latex + + \part{Appendix} + +.. toctree:: + :caption: Appendix + :hidden: + + Coverage Report ➚ + Static Type Check Report ➚ + License + Doc-License + Glossary + genindex + +.. # + py-modindex diff --git a/doc/pyEDAA.Launcher/index.rst b/doc/pyEDAA.Launcher/index.rst new file mode 100644 index 0000000..8b933ab --- /dev/null +++ b/doc/pyEDAA.Launcher/index.rst @@ -0,0 +1,3 @@ +.. toctree:: + + pyEDAA.Launcher diff --git a/pyEDAA/Launcher/__init__.py b/pyEDAA/Launcher/__init__.py index bf489c3..6049242 100644 --- a/pyEDAA/Launcher/__init__.py +++ b/pyEDAA/Launcher/__init__.py @@ -43,11 +43,14 @@ import time from typing import NoReturn +from pyTooling.Decorators import export + sub_path_bat = Path("bin/vivado.bat") sub_path_vvgl = Path("bin/unwrapped/win64.o/vvgl.exe") match_line = " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default_dashboard + + + From 2ceaaef7e8e78fe78d84233201b74772a9053673 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 14:14:24 +0100 Subject: [PATCH 04/24] Added minimalistic unit test. --- tests/unit/Vivado.py | 43 ++++++++++++++++++++++++++++++++++++++++++ tests/unit/__init__.py | 31 ++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 tests/unit/Vivado.py create mode 100644 tests/unit/__init__.py diff --git a/tests/unit/Vivado.py b/tests/unit/Vivado.py new file mode 100644 index 0000000..fc63086 --- /dev/null +++ b/tests/unit/Vivado.py @@ -0,0 +1,43 @@ +# ==================================================================================================================== # +# _____ ____ _ _ _ _ # +# _ __ _ _| ____| _ \ / \ / \ | | __ _ _ _ _ __ ___| |__ ___ _ __ # +# | '_ \| | | | _| | | | |/ _ \ / _ \ | | / _` | | | | '_ \ / __| '_ \ / _ \ '__| # +# | |_) | |_| | |___| |_| / ___ \ / ___ \ _| |__| (_| | |_| | | | | (__| | | | __/ | # +# | .__/ \__, |_____|____/_/ \_\/_/ \_(_)_____\__,_|\__,_|_| |_|\___|_| |_|\___|_| # +# |_| |___/ # +# ==================================================================================================================== # +# Authors: # +# Patrick Lehmann # +# # +# License: # +# ==================================================================================================================== # +# Copyright 2017-2022 Patrick Lehmann - Bötzingen, Germany # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# # +# SPDX-License-Identifier: Apache-2.0 # +# ==================================================================================================================== # +# +"""Unit tests for Vivado.""" +from pathlib import Path +from unittest import TestCase + +from pyEDAA.Launcher import get_version + + +class ReadXPRFile(TestCase): + def test_ExtractVersionFromXPRFile(self): + xprFilePath = Path("StopWatch.xpr") + version = get_version(xprFilePath) + + self.assertEqual("2021.2", version) diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py new file mode 100644 index 0000000..5c56eb1 --- /dev/null +++ b/tests/unit/__init__.py @@ -0,0 +1,31 @@ +# ==================================================================================================================== # +# _____ ____ _ _ _ _ # +# _ __ _ _| ____| _ \ / \ / \ | | __ _ _ _ _ __ ___| |__ ___ _ __ # +# | '_ \| | | | _| | | | |/ _ \ / _ \ | | / _` | | | | '_ \ / __| '_ \ / _ \ '__| # +# | |_) | |_| | |___| |_| / ___ \ / ___ \ _| |__| (_| | |_| | | | | (__| | | | __/ | # +# | .__/ \__, |_____|____/_/ \_\/_/ \_(_)_____\__,_|\__,_|_| |_|\___|_| |_|\___|_| # +# |_| |___/ # +# ==================================================================================================================== # +# Authors: # +# Patrick Lehmann # +# # +# License: # +# ==================================================================================================================== # +# Copyright 2017-2022 Patrick Lehmann - Bötzingen, Germany # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# # +# SPDX-License-Identifier: Apache-2.0 # +# ==================================================================================================================== # +# +"""Helper classes for unit tests.""" From 24eb31407938e4be63c206dd7dd79bbdc46a0568 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 17:28:30 +0100 Subject: [PATCH 05/24] Updated README and documentation landing page. --- .idea/pyEDAA.Launcher.iml | 2 ++ README.md | 42 +++++++++++++++++++++++++++------------ doc/index.rst | 35 +++++++++++++++++++++----------- 3 files changed, 54 insertions(+), 25 deletions(-) diff --git a/.idea/pyEDAA.Launcher.iml b/.idea/pyEDAA.Launcher.iml index f6acc51..0d221a4 100644 --- a/.idea/pyEDAA.Launcher.iml +++ b/.idea/pyEDAA.Launcher.iml @@ -7,5 +7,7 @@ + + \ No newline at end of file diff --git a/README.md b/README.md index 0f96ed3..1a44561 100644 --- a/README.md +++ b/README.md @@ -25,23 +25,39 @@ [![Libraries.io SourceRank](https://img.shields.io/librariesio/sourcerank/pypi/pyEDAA.Launcher?longCache=true&style=flat-square)](https://libraries.io/github/edaa-org/pyEDAA.Launcher/sourcerank) --> +**pyEDAA.Launcher** starts the correct Xilinx Vivado version based on the version number written into the ``*.xpr`` file. +If no suitable version was found, an error message is shown. # Main Goals -If one is using the Xilinx Vivado IDE, you will know that you can't just open the xpr project file with a double click if you have installed more then one Vivado version. This is because Xilinx has no Launcher which is checking the version of the project and passing the xpr to the correct Vivado Version. This project addresses exactly this problem. -1. Check with which Vivado Version a xpr was created -1. and pass the xpr to the correct Version. -1. Now you can open every xpr just with a simple double click! -1. It behaves exactly as you would open the xpr directly with Vivado itself. **With one exeption**: - The working dir in Vivado is set to the xpr path and not to AppData, like it should be! +When opening Xilinx Vivado by double-clicking an ``*.xpr`` file in the Windows Explorer, a default Vivado version is +launched by Windows. In many cases, this is the first Vivado version that was installed on a system, but not the latest +version. Anyhow, in most cases, Windows starts the wrong Vivado version, which leeds to a project upgrade question, or a +rejection, because the project file is too new. -# Installation -* Copy the executable from the releases to the Vivado installation Path. For me its `C:\Xilinx\Vivado\`. -* In this Path you should see the installation-folders of all Vivado Versions. E.g: 2018.3, 2019.1, ... -* Change File-association: Right click on `*.xpr` -> open with -> choose another app -> and select the `VivadoLauncher.exe` -* That's it. +**pyEDAA.Launcher** addresses exactly this problem. It will start the correct Xilinx Vivado installation with correct +working directory settings, if that requested Vivado version is found on the system. -Note for Xilinx: Feel free to include this in the next release to stop this version madness. Please inform us then. +## How does it work? + +1. Check with which Vivado version was used to save the ``*.xpr`` file. +2. Scan the Xilinx installation directory for available Vivado versions. +3. If a matching version was found, start Vivado and pass the ``*.xpr`` as a parameter. + +## Differences to opening the ``*.xpr`` from GUI? + +By default, Xilinx Vivado has its working directory in ``AppData``, but the working directory should be in the directory +where the ``*.xpr`` file is located. This is fixed by **pyEDAA.Launcher** as a side effect. Now, Vivado saves log and +journal files to the correct locations. + + +> # Installation +> * Copy the executable from the releases to the Vivado installation Path. For me its `C:\Xilinx\Vivado\`. +> * In this Path you should see the installation-folders of all Vivado Versions. E.g: 2018.3, 2019.1, ... +> * Change File-association: Right click on `*.xpr` -> open with -> choose another app -> and select the `VivadoLauncher.exe` +> * That's it. + +> Note for Xilinx: Feel free to include this in the next release to stop this version madness. Please inform us then. # Contributors @@ -56,4 +72,4 @@ This Python package (source code) licensed under [Apache License 2.0](LICENSE.md The accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst). ------------------------- -SPDX-License-Identifier: Apache-2.0 \ No newline at end of file +SPDX-License-Identifier: Apache-2.0 diff --git a/doc/index.rst b/doc/index.rst index 2b24dc5..2261ff7 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -30,25 +30,36 @@ The pyEDAA.Launcher Documentation ################################# -.. image:: _static/work-in-progress.png - :height: 275 px - :align: center - :target: https://GitHub.com/edaa-org/pyEDAA.Launcher +**pyEDAA.Launcher** starts the correct Xilinx Vivado version based on the version number written into the ``*.xpr`` file. +If no suitable version was found, an error message is shown. -.. raw:: html -
+.. _goals: +Main Goals +********** -one-liner TBD +When opening Xilinx Vivado by double-clicking an ``*.xpr`` file in the Windows Explorer, a default Vivado version is +launched by Windows. In many cases, this is the first Vivado version that was installed on a system, but not the latest +version. Anyhow, in most cases, Windows starts the wrong Vivado version, which leeds to a project upgrade question, or a +rejection, because the project file is too new. +**pyEDAA.Launcher** addresses exactly this problem. It will start the correct Xilinx Vivado installation with correct +working directory settings, if that requested Vivado version is found on the system. -.. _goals: +How does it work? +================= -Main Goals -********** +1. Check with which Vivado version was used to save the ``*.xpr`` file. +2. Scan the Xilinx installation directory for available Vivado versions. +3. If a matching version was found, start Vivado and pass the ``*.xpr`` as a parameter. + +Differences to opening the ``*.xpr`` from GUI? +============================================== -tbd +By default, Xilinx Vivado has its working directory in ``AppData``, but the working directory should be in the directory +where the ``*.xpr`` file is located. This is fixed by **pyEDAA.Launcher** as a side effect. Now, Vivado saves log and +journal files to the correct locations. .. _usecase: @@ -56,7 +67,7 @@ tbd Use Cases ********* -* tbd +* Handle multiple parallel Xilinx Vivado installations. .. _news: From 41378ebde853dd8bfaba5c8e4182d6548bc16374 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 19:01:32 +0100 Subject: [PATCH 06/24] Run with new workflow templates. --- .github/workflows/Pipeline.yml | 37 ++++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 7f0645b..4e3cb9c 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -9,26 +9,20 @@ on: jobs: Params: - uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0 + uses: pyTooling/Actions/.github/workflows/Parameters.yml@typing-junit with: name: pyEDAA.Launcher UnitTesting: - uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r0 + uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@typing-junit needs: - Params with: jobs: ${{ needs.Params.outputs.python_jobs }} - pacboy: >- - msys/git - python-pip:p - python-wheel:p - python-coverage:p - python-lxml:p artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }} Coverage: - uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r0 + uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@typing-junit needs: - Params with: @@ -38,7 +32,7 @@ jobs: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} StaticTypeCheck: - uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r0 + uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@typing-junit needs: - Params with: @@ -46,14 +40,17 @@ jobs: requirements: '-r tests/requirements.txt' commands: | cd pyEDAA - mypy --html-report ../htmlmypy -p Launcher - report: 'htmlmypy' - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} + mypy --junit-xml StaticTypingSummary.xml --html-report ../htmlmypy -p Launcher + html_report: 'htmlmypy' + html_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_html }} + junit_report: 'StaticTypingSummary.xml' + junit_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_junit }} PublishTestResults: - uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r0 + uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@typing-junit needs: - UnitTesting + - StaticTypeCheck Package: uses: pyTooling/Actions/.github/workflows/Package.yml@isolation-modes @@ -65,7 +62,7 @@ jobs: artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.package }} Release: - uses: pyTooling/Actions/.github/workflows/Release.yml@r0 + uses: pyTooling/Actions/.github/workflows/Release.yml@typing-junit if: startsWith(github.ref, 'refs/tags') needs: - UnitTesting @@ -74,7 +71,7 @@ jobs: - Package PublishOnPyPI: - uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r0 + uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@typing-junit if: startsWith(github.ref, 'refs/tags') needs: - Params @@ -88,14 +85,14 @@ jobs: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} # VerifyDocs: -# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r0 +# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@typing-junit # needs: # - Params # with: # python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} BuildTheDocs: - uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r0 + uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@typing-junit needs: - Params # - VerifyDocs @@ -103,7 +100,7 @@ jobs: artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.doc }} PublishToGitHubPages: - uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r0 + uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@typing-junit needs: - Params - BuildTheDocs @@ -115,7 +112,7 @@ jobs: typing: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} ArtifactCleanUp: - uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r0 + uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@typing-junit needs: - Params - UnitTesting From 4ae3ef48159574987200463fac297e4fd3018cbf Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 19:39:03 +0100 Subject: [PATCH 07/24] Create report one level up. --- .github/workflows/Pipeline.yml | 2 +- pyproject.toml | 1 + setup.py | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 4e3cb9c..8c8f71b 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -40,7 +40,7 @@ jobs: requirements: '-r tests/requirements.txt' commands: | cd pyEDAA - mypy --junit-xml StaticTypingSummary.xml --html-report ../htmlmypy -p Launcher + mypy --junit-xml ../StaticTypingSummary.xml --html-report ../htmlmypy -p Launcher html_report: 'htmlmypy' html_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_html }} junit_report: 'StaticTypingSummary.xml' diff --git a/pyproject.toml b/pyproject.toml index 24fd949..ae55440 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ exclude_lines = [ ] [tool.coverage.html] +title = "pyEDAA.Launcher" directory = "report/coverage/html" [tool.coverage.xml] diff --git a/setup.py b/setup.py index ba69fe0..1aa1942 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ # SPDX-License-Identifier: Apache-2.0 # # ==================================================================================================================== # # -"""Package installer for 'Start the correct Vivado Version based on version in `*.xpr`file.'.""" +"""Package installer for 'Start the correct Vivado Version based on version in ``*.xpr`` file.'.""" from pathlib import Path from pyTooling.Packaging import DescribePythonPackageHostedOnGitHub, DEFAULT_CLASSIFIERS @@ -39,7 +39,7 @@ DescribePythonPackageHostedOnGitHub( packageName=packageName, - description="Start the correct Vivado Version based on version in `*.xpr`file.", + description="Start the correct Vivado Version based on version in '*.xpr' file.", gitHubNamespace=gitHubNamespace, sourceFileWithVersion=packageInformationFile, developmentStatus="beta", From 6408645922a679d90dd94d902ea0f6814e702a65 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 28 Feb 2022 22:21:13 +0100 Subject: [PATCH 08/24] Bumped dependencies. --- doc/Dependency.rst | 16 ++++++++-------- doc/requirements.txt | 4 ++-- pyproject.toml | 6 +++--- requirements.txt | 4 ++-- tests/requirements.txt | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 1581577..a2bdea7 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -27,12 +27,12 @@ pyEDAA.Launcher Package +---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +===============================================================+=============+===========================================================================================+========================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.4 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ | `pyAttributes `__ | ≥2.5.0 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | +---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `lxml `__ | ≥4.6.4 | `BSD 3-Clause `__ | *Not yet evaluated.* | +| `lxml `__ | ≥4.8 | `BSD 3-Clause `__ | *Not yet evaluated.* | +---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -60,15 +60,15 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥6.2.5 | `MIT `__ | *Not yet evaluated.* | +| `pytest `__ | ≥7.0.1 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `pytest-cov `__ | ≥3.0.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥6.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Coverage `__ | ≥6.3 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `mypy `__ | ≥0.931 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `lxml `__ | ≥4.6.4 | `BSD 3-Clause `__ | *Not yet evaluated.* | +| `lxml `__ | ≥4.8 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -96,7 +96,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.4 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `Sphinx `__ | ≥4.4.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -104,7 +104,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | !! `sphinx_fontawesome `__ | ≥0.0.6 | `GPL 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `sphinx_autodoc_typehints `__ | ≥1.14.1 | `MIT `__ | *Not yet evaluated.* | +| `sphinx_autodoc_typehints `__ | ≥1.17.0 | `MIT `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -132,7 +132,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.4 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index dfb80cc..fe32d14 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=1.9.4 +pyTooling>=1.9.5 # Enforce latest version on ReadTheDocs sphinx>=4.4.0 @@ -9,4 +9,4 @@ sphinx>=4.4.0 sphinxcontrib-mermaid>=0.7.1 autoapi>=2.0.1 sphinx_fontawesome>=0.0.6 -sphinx_autodoc_typehints>=1.14.1 +sphinx_autodoc_typehints>=1.17.0 diff --git a/pyproject.toml b/pyproject.toml index ae55440..6a8f0de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] requires = [ - "pyTooling >= 1.9.4", - "setuptools >= 35.0.2", - "wheel >= 0.29.0" + "pyTooling >= 1.9.5", + "setuptools >= 60.9.3", + "wheel >= 0.37.1" ] build-backend = "setuptools.build_meta" diff --git a/requirements.txt b/requirements.txt index 39fdbb7..b4dd267 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -pyTooling>=1.9.4 -lxml>=4.6 +pyTooling>=1.9.5 +lxml>=4.8 diff --git a/tests/requirements.txt b/tests/requirements.txt index e71c276..f861877 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,12 @@ -r ../requirements.txt # Coverage collection -Coverage>=6.2 +Coverage>=6.3 # Test Runner -pytest>=6.2.5 +pytest>=7.0.1 pytest-cov>=3.0.0 # Static Type Checking mypy>=0.931 -lxml>=4.6 +lxml>=4.8 From 1b65c8feb133a08a509c13d33fc7ad440a558847 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 1 Mar 2022 00:59:01 +0100 Subject: [PATCH 09/24] Some restructuring. --- doc/Dependency.rst | 2 - doc/index.rst | 12 +-- pyEDAA/Launcher/__init__.py | 188 ++++++++++++++++++++++-------------- requirements.txt | 1 - tests/requirements.txt | 2 +- tests/unit/Vivado.py | 5 +- 6 files changed, 127 insertions(+), 83 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index a2bdea7..ca236bc 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -32,8 +32,6 @@ pyEDAA.Launcher Package | `pyAttributes `__ | ≥2.5.0 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | +---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `lxml `__ | ≥4.8 | `BSD 3-Clause `__ | *Not yet evaluated.* | -+---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _dependency-testing: diff --git a/doc/index.rst b/doc/index.rst index 2261ff7..02e2431 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -54,20 +54,20 @@ How does it work? 2. Scan the Xilinx installation directory for available Vivado versions. 3. If a matching version was found, start Vivado and pass the ``*.xpr`` as a parameter. -Differences to opening the ``*.xpr`` from GUI? -============================================== +Differences to opening the ``*.xpr`` from within Vivado GUI? +============================================================ By default, Xilinx Vivado has its working directory in ``AppData``, but the working directory should be in the directory where the ``*.xpr`` file is located. This is fixed by **pyEDAA.Launcher** as a side effect. Now, Vivado saves log and journal files to the correct locations. -.. _usecase: +.. #_usecase: -Use Cases -********* + Use Cases + ********* -* Handle multiple parallel Xilinx Vivado installations. + * Handle multiple parallel Xilinx Vivado installations. .. _news: diff --git a/pyEDAA/Launcher/__init__.py b/pyEDAA/Launcher/__init__.py index 6049242..a4fb4d6 100644 --- a/pyEDAA/Launcher/__init__.py +++ b/pyEDAA/Launcher/__init__.py @@ -8,6 +8,7 @@ # ==================================================================================================================== # # Authors: # # Stefan Unrein # +# Patrick Lehmann # # # # License: # # ==================================================================================================================== # @@ -36,98 +37,116 @@ __version__ = "0.1.0" __keywords__ = ["launcher", "version selector", "xilinx", "vivado"] -import sys +from re import compile as re_compile + +from sys import exit, argv import subprocess from pathlib import Path from textwrap import dedent -import time -from typing import NoReturn +from time import sleep +from typing import NoReturn, Generator from pyTooling.Decorators import export -sub_path_bat = Path("bin/vivado.bat") -sub_path_vvgl = Path("bin/unwrapped/win64.o/vvgl.exe") -match_line = "") - version = line.split(match_line)[1] - version = version.split(" ")[0] - version = version.split(".") - version_major = version[0] - version_minor = version[1] - project_file.close() - return str(version_major + "." + version_minor) + _projectFilePath: Path -@export -def get_vivado_versions(install_path): - return [item.name for item in install_path.iterdir() if item.is_dir()] + def __init__(self, projectFilePath: Path): + """Initializer. + :param projectFilePath: Path to the ``*.xpr`` file. + :raises Exception: When the given ``*.xpr`` file doesn't exist. + """ + if not projectFilePath.exists(): + raise Exception(f"Vivado project file '{projectFilePath}' not found.") \ + from FileNotFoundError(f"File '{projectFilePath}' not found.") -@export -def PrintHelp(script_path: Path) -> None: - print(dedent(f"""\ - Run-Path '{script_path}' + self._projectFilePath = projectFilePath + + def GetVersion(self) -> str: + """Opens an ``*.xpr`` file and returns the Vivado version used to save this file. + + :returns: Used Vivado version to save the given ``*.xpr`` file. + :raises Exception: When the version information isn't found in the file. + """ + with self._projectFilePath.open("r") as file: + for line in file: + match = self.versionLineRegExp.match(line) + if match is not None: + return f"{match['major']}.{match['minor']}" + else: + raise Exception(f"Pattern not found in '{self._projectFilePath}'.") + + @classmethod + def GetVivadoVersions(self, installPath: Path) -> Generator[str, None, None]: + """Scan a given directory for installed Vivado versions. + + :param installPath: Xilinx installation directory. + :returns: A generator for a sequence of installed Vivado versions. + """ + for item in installPath.iterdir(): + if item.is_dir(): + yield item.name + + def StartVivado(self, xilinxInstallationPath: Path, version: str) -> NoReturn: + """Start the given Vivado version with an ``*.xpr`` file as parameter. - For using this VivadoManager please bind xpr extension to this executable with: - * Put this executable into the Vivado installation folder. E.g: c:\\Xilinx\\Vivado\\ - * Change *.xpr association: right-click-> open-width-> VivadoManager.exe - """)) + :param xilinxInstallationPath: Path to the Xilinx toolchain installations. + :param version: The Vivado version to start. + """ + vivadoInstallationPath = xilinxInstallationPath / version + + vvglWrapperPath = vivadoInstallationPath / self.vvglWrapperFile + vivadoBatchfilePath = vivadoInstallationPath / self.vivadoBatchfile + + cmd = [str(vvglWrapperPath), str(vivadoBatchfilePath), str(self._projectFilePath)] + subprocess.Popen(cmd, cwd=self._projectFilePath.parent) # , creationflags=subprocess.DETACHED_PROCESS) + + print("") + print(f"Opening project with Vivado {version}.") + + sleep(2) + exit(0) + + @classmethod + def PrintHelp(cls, scriptPath: Path) -> None: + """Print a help page. + + :param scriptPath: Path to this script. + """ + print(dedent(f"""\ + Run-Path '{scriptPath}' + + For using this Launcher, please bind the *.xpr file extension to this executable with: + * Put this executable into the Vivado installation folder. E.g: C:\\Xilinx\\Vivado\\ + * Change *.xpr association: right-click -> open with -> VivadoManager.exe + """)) @export def main() -> NoReturn: - install_path = Path.cwd() - script_path = Path(sys.argv[0]) - - if len(sys.argv) > 1: - inputArg1 = sys.argv[1] - file_path = Path(inputArg1) - - file_version = get_version(file_path) - vivado_versions = get_vivado_versions(install_path) - - for version in vivado_versions: - if file_version == str(version): - exec_path1 = install_path / file_version / sub_path_vvgl - exec_path2 = install_path / file_version / sub_path_bat - a = str(file_path) - cmd = [str(exec_path1), str(exec_path2), a] - subprocess.Popen(cmd, cwd=file_path.parent)#, creationflags=subprocess.DETACHED_PROCESS) - print("") - print(f"Open Project with Vivado Version {file_version}.") - time.sleep(2) - sys.exit(0) - else: - vivadoPath = install_path / file_version - print(dedent(f"""\ - ERROR: Vivado version {file_version} not available at path '{vivadoPath}'. Please start manually! + """Entry point function. - Press any key to exit. - """)) + It creates an instance of :class:`Program` and hands over the execution to the OOP world. + """ + xilinxInstallationPath = Path.cwd() + script_path = Path(argv[0]) - # wait on user interaction - input() - sys.exit(1) + if len(argv) == 0: + Program.PrintHelp(script_path) - else: - PrintHelp(script_path) - - vivado_versions = get_vivado_versions(install_path) - print(f"Current path '{install_path}' has following files/folders in it:") - for version in vivado_versions: + print(f"Current path '{xilinxInstallationPath}' has following folders in it:") + for version in Program.GetVivadoVersions(xilinxInstallationPath): print(version) print("") @@ -135,9 +154,36 @@ def main() -> NoReturn: # wait on user interaction input() - sys.exit(0) + exit(0) + + elif len(argv) == 1: + projectFileArgument = argv[1] + projectFilePath = Path(projectFileArgument) + + program = Program(projectFilePath) + + try: + versionFromXPRFile = program.GetVersion() + except Exception as ex: + print(f"[ERROR] {ex}") + exit(1) + + for version in program.GetVivadoVersions(xilinxInstallationPath): + if version == versionFromXPRFile: + program.StartVivado(xilinxInstallationPath, versionFromXPRFile) + else: + vivadoPath = xilinxInstallationPath / versionFromXPRFile + print(dedent(f"""\ + ERROR: Vivado version {versionFromXPRFile} not available at path '{vivadoPath}'. Please start manually! + + Press any key to exit. + """)) + + # wait on user interaction + input() + exit(1) # Entry point if __name__ == "__main__": - main() + main() diff --git a/requirements.txt b/requirements.txt index b4dd267..7fb34c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1 @@ pyTooling>=1.9.5 -lxml>=4.8 diff --git a/tests/requirements.txt b/tests/requirements.txt index f861877..0320e3a 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,7 +1,7 @@ -r ../requirements.txt # Coverage collection -Coverage>=6.3 +Coverage>=6.2 # Test Runner pytest>=7.0.1 diff --git a/tests/unit/Vivado.py b/tests/unit/Vivado.py index fc63086..2298264 100644 --- a/tests/unit/Vivado.py +++ b/tests/unit/Vivado.py @@ -32,12 +32,13 @@ from pathlib import Path from unittest import TestCase -from pyEDAA.Launcher import get_version +from pyEDAA.Launcher import Program class ReadXPRFile(TestCase): def test_ExtractVersionFromXPRFile(self): xprFilePath = Path("StopWatch.xpr") - version = get_version(xprFilePath) + program = Program(xprFilePath) + version = program.GetVersion() self.assertEqual("2021.2", version) From 43a57580194c6788353cc94c91243cdda9c48c44 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 1 Mar 2022 12:05:33 +0100 Subject: [PATCH 10/24] Added headline for Python class reference. --- .github/pull_request_template.md | 3 ++- doc/pyEDAA.Launcher/index.rst | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0838943..ac698f8 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,5 +11,6 @@ * tbd ---------- -Related PRs: +# Related PRs: + * tbd diff --git a/doc/pyEDAA.Launcher/index.rst b/doc/pyEDAA.Launcher/index.rst index 8b933ab..83f250a 100644 --- a/doc/pyEDAA.Launcher/index.rst +++ b/doc/pyEDAA.Launcher/index.rst @@ -1,3 +1,8 @@ +Python Class Reference +###################### + +Reference of all packages and modules: + .. toctree:: pyEDAA.Launcher From 5c7ade2348e58bce57fdac36ab1f77423aefb409 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 1 Mar 2022 17:31:36 +0100 Subject: [PATCH 11/24] Added comment to autoapi template. --- doc/_templates/autoapi/module.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/_templates/autoapi/module.rst b/doc/_templates/autoapi/module.rst index d41ca8a..5f9e361 100644 --- a/doc/_templates/autoapi/module.rst +++ b/doc/_templates/autoapi/module.rst @@ -1,11 +1,11 @@ +.. # Template modified by Patrick Lehmann + * removed automodule on top, because private members are activated for autodoc (no doubled documentation). + * Made sections like 'submodules' bold text, but no headlines to reduce number of ToC levels. + =={{ '=' * node.name|length }}== ``{{ node.name }}`` =={{ '=' * node.name|length }}== -.. #automodule:: {{ node.name }} - - .. contents:: - :local: {##} {%- block modules -%} {%- if subnodes %} From 76ce6d97b290ae4e6ad918e9c36b745e95c17353 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 1 Mar 2022 18:19:01 +0100 Subject: [PATCH 12/24] Fixed banner file name. --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index fec94ed..fcff567 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -94,7 +94,7 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] -html_logo = str(Path(html_static_path[0]) / "logo_on_dark.svg") +html_logo = str(Path(html_static_path[0]) / "logo.svg") html_favicon = str(Path(html_static_path[0]) / "favicon.svg") # Output file base name for HTML help builder. From 7fc259658f8f949f72fdc92bb7b36efa0405ff23 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Thu, 3 Mar 2022 11:52:43 +0100 Subject: [PATCH 13/24] Added dependabot rule for GH actions. Updated dependency table. --- .github/dependabot.yml | 41 +++++++++++++++++++++++----------- .github/workflows/Pipeline.yml | 2 +- doc/Dependency.rst | 27 +++++++++++++++------- 3 files changed, 48 insertions(+), 22 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bc1dfd5..3d13757 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,15 +1,30 @@ version: 2 updates: -- package-ecosystem: pip - directory: "/" - target-branch: dev - commit-message: - prefix: "[Dependabot]" - labels: - - Dependencies - assignees: - - Paebbels - reviewers: - - Paebbels - schedule: - interval: daily + # Maintain Python packages + - package-ecosystem: "pip" + directory: "/" + target-branch: dev + commit-message: + prefix: "[Dependabot]" + labels: + - Dependencies + reviewers: + - Paebbels + - Umarcor + - StefanUnrein + schedule: + interval: "daily" # Checks on Monday trough Friday. + + # Maintain GitHub Action runners + - package-ecosystem: "github-actions" + directory: "/" + target-branch: dev + commit-message: + prefix: "[Dependabot]" + labels: + - Dependencies + reviewers: + - Paebbels + - Umarcor + schedule: + interval: "weekly" diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 8c8f71b..f559393 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -53,7 +53,7 @@ jobs: - StaticTypeCheck Package: - uses: pyTooling/Actions/.github/workflows/Package.yml@isolation-modes + uses: pyTooling/Actions/.github/workflows/Package.yml@r0 needs: - Params - Coverage diff --git a/doc/Dependency.rst b/doc/Dependency.rst index ca236bc..4896061 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -24,14 +24,25 @@ Dependency pyEDAA.Launcher Package *********************** -+---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **Package** | **Version** | **License** | **Dependencies** | -+===============================================================+=============+===========================================================================================+========================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | -+---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `pyAttributes `__ | ≥2.5.0 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | -| | | | * `argcomplete `__ - `Apache License, 2.0 `__ | -+---------------------------------------------------------------+-------------+-------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ ++------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++==================================================================+=============+============================================================================================+================================================================================================================================================================================================+ +| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | ++------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `pyAttributes `__ | ≥2.5.1 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | +| | | | * `argcomplete `__ - `Apache License, 2.0 `__ | ++------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `pyEDAA.CLITool `__ | ≥0.4.0 | `Apache License, 2.0 `__ | * `pyTooling `__ (`Apache License, 2.0 `__) | +| | | | * `pyTooling.CLIAbstraction `__ (`Apache License, 2.0 `__) | +| | | | | +| | | | * `pyTooling `__ (`Apache License, 2.0 `__) | +| | | | * `pyAttributes `__ (`Apache License, 2.0 `__) | +| | | | | +| | | | * `pyTooling `__ (`Apache License, 2.0 `__) | +| | | | * `argcomplete `__ (`Apache License, 2.0 `__) | +| | | | | +| | | | * `pyVHDLModel `__ (`Apache License, 2.0 `__) | ++------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _dependency-testing: From 76ec681c64da28eb2c0dd90559ad41c86801a272 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 22 May 2022 15:13:58 +0200 Subject: [PATCH 14/24] Bumped dependencies. --- doc/Dependency.rst | 6 +++--- doc/conf.py | 2 +- doc/requirements.txt | 2 +- pyproject.toml | 2 +- requirements.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 4896061..9a129f7 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -27,7 +27,7 @@ pyEDAA.Launcher Package +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==================================================================+=============+============================================================================================+================================================================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `pyAttributes `__ | ≥2.5.1 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | @@ -105,7 +105,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `Sphinx `__ | ≥4.4.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -141,7 +141,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥1.9.5 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/doc/conf.py b/doc/conf.py index fcff567..d7df129 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -64,7 +64,7 @@ with open(prologPath, "r") as prologFile: rst_prolog = prologFile.read() except Exception as ex: - print("[ERROR:] While reading '{0!s}'.".format(prologPath)) + print(f"[ERROR:] While reading '{prologPath}'.") print(ex) rst_prolog = "" diff --git a/doc/requirements.txt b/doc/requirements.txt index fe32d14..5c05264 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=1.9.5 +pyTooling>=2.0.1 # Enforce latest version on ReadTheDocs sphinx>=4.4.0 diff --git a/pyproject.toml b/pyproject.toml index 6a8f0de..ff10399 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "pyTooling >= 1.9.5", + "pyTooling >= 2.0.1", "setuptools >= 60.9.3", "wheel >= 0.37.1" ] diff --git a/requirements.txt b/requirements.txt index 7fb34c6..571c5f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pyTooling>=1.9.5 +pyTooling>=2.0.1 From 3c899e917c063ff0deadb64e06f4b6deef03d4be Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 22 May 2022 15:14:11 +0200 Subject: [PATCH 15/24] Fixed Python module index. --- doc/_templates/autoapi/module.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/_templates/autoapi/module.rst b/doc/_templates/autoapi/module.rst index 5f9e361..655beff 100644 --- a/doc/_templates/autoapi/module.rst +++ b/doc/_templates/autoapi/module.rst @@ -6,6 +6,8 @@ ``{{ node.name }}`` =={{ '=' * node.name|length }}== +.. py:module:: {{ node.name }} + {##} {%- block modules -%} {%- if subnodes %} From 86a67dea061c6771dcdcde696ae5bd8104835959 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 7 Nov 2022 00:31:21 +0100 Subject: [PATCH 16/24] Bumped dependencies. --- .idea/pyEDAA.Launcher.iml | 2 +- doc/Dependency.rst | 22 +++++++++++----------- doc/prolog.inc | 26 ++++++++++++++++++++++++++ doc/requirements.txt | 6 +++--- pyproject.toml | 4 ++-- requirements.txt | 2 +- tests/requirements.txt | 10 +++++----- 7 files changed, 49 insertions(+), 23 deletions(-) diff --git a/.idea/pyEDAA.Launcher.iml b/.idea/pyEDAA.Launcher.iml index 0d221a4..32cb05c 100644 --- a/.idea/pyEDAA.Launcher.iml +++ b/.idea/pyEDAA.Launcher.iml @@ -5,7 +5,7 @@ - + diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 9a129f7..765add5 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -27,7 +27,7 @@ pyEDAA.Launcher Package +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==================================================================+=============+============================================================================================+================================================================================================================================================================================================+ -| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `pyAttributes `__ | ≥2.5.1 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | @@ -69,15 +69,15 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥7.0.1 | `MIT `__ | *Not yet evaluated.* | +| `pytest `__ | ≥7.1.3 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `pytest-cov `__ | ≥3.0.0 | `MIT `__ | *Not yet evaluated.* | +| `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥6.3 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Coverage `__ | ≥6.5 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥0.931 | `MIT `__ | *Not yet evaluated.* | +| `mypy `__ | ≥0.981 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `lxml `__ | ≥4.8 | `BSD 3-Clause `__ | *Not yet evaluated.* | +| `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -105,15 +105,15 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `Sphinx `__ | ≥4.4.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +| `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `sphinx_btd_theme `__ | ≥0.5.2 | `MIT `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | !! `sphinx_fontawesome `__ | ≥0.0.6 | `GPL 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `sphinx_autodoc_typehints `__ | ≥1.17.0 | `MIT `__ | *Not yet evaluated.* | +| `sphinx_autodoc_typehints `__ | ≥1.19.5 | `MIT `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -141,7 +141,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -172,7 +172,7 @@ install the mandatory dependencies too. +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==========================================================+==============+===========================================================================================+======================+ -| `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ | `Twine `__ | any | `Apache License, 2.0 `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ diff --git a/doc/prolog.inc b/doc/prolog.inc index a3e09f2..75463a8 100644 --- a/doc/prolog.inc +++ b/doc/prolog.inc @@ -20,7 +20,12 @@ .. role:: bolditalic @@ -29,5 +34,26 @@ .. role:: underline :class: underline +.. role:: strike + :class: strike + .. role:: xlarge :class: xlarge + +.. role:: red + :class: colorred +.. role:: green + :class: colorgreen +.. role:: blue + :class: colorblue +.. role:: purple + :class: colorpurple + +.. role:: deletion + :class: colorred strike +.. role:: addition + :class: colorgreen + +.. role:: pycode(code) + :language: python + :class: highlight diff --git a/doc/requirements.txt b/doc/requirements.txt index 5c05264..dec2deb 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,12 +1,12 @@ -r ../requirements.txt -pyTooling>=2.0.1 +pyTooling>=2.5.0 # Enforce latest version on ReadTheDocs -sphinx>=4.4.0 +sphinx>=5.3.0 # Sphinx Extenstions sphinxcontrib-mermaid>=0.7.1 autoapi>=2.0.1 sphinx_fontawesome>=0.0.6 -sphinx_autodoc_typehints>=1.17.0 +sphinx_autodoc_typehints>=1.19.5 diff --git a/pyproject.toml b/pyproject.toml index ff10399..c737ddf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] requires = [ - "pyTooling >= 2.0.1", + "pyTooling >= 2.5.0", "setuptools >= 60.9.3", - "wheel >= 0.37.1" + "wheel >= 0.38.1" ] build-backend = "setuptools.build_meta" diff --git a/requirements.txt b/requirements.txt index 571c5f6..7f3c5ed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pyTooling>=2.0.1 +pyTooling>=2.5.0 diff --git a/tests/requirements.txt b/tests/requirements.txt index 0320e3a..976fde4 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,12 @@ -r ../requirements.txt # Coverage collection -Coverage>=6.2 +Coverage>=6.5 # Test Runner -pytest>=7.0.1 -pytest-cov>=3.0.0 +pytest>=7.1.3 +pytest-cov>=4.0.0 # Static Type Checking -mypy>=0.931 -lxml>=4.8 +mypy>=0.981 +lxml>=4.9 From d654dbde8bdaf2e4bc3b9342d4fbb4289ed4633f Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 7 Nov 2022 00:31:32 +0100 Subject: [PATCH 17/24] Updated pipeline. --- .github/workflows/Pipeline.yml | 81 ++++++++++++++-------------------- 1 file changed, 33 insertions(+), 48 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index f559393..c06639c 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -9,60 +9,60 @@ on: jobs: Params: - uses: pyTooling/Actions/.github/workflows/Parameters.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev with: name: pyEDAA.Launcher + disable_list: "windows:3.11" UnitTesting: - uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev needs: - Params with: jobs: ${{ needs.Params.outputs.python_jobs }} - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }} + artifact: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }} Coverage: - uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev needs: - Params with: - python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }} + python_version: ${{ needs.Params.outputs.python_version }} + artifact: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} secrets: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} StaticTypeCheck: - uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev needs: - Params with: - python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} + python_version: ${{ needs.Params.outputs.python_version }} requirements: '-r tests/requirements.txt' commands: | cd pyEDAA mypy --junit-xml ../StaticTypingSummary.xml --html-report ../htmlmypy -p Launcher - html_report: 'htmlmypy' - html_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_html }} + html_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} junit_report: 'StaticTypingSummary.xml' - junit_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_junit }} + junit_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_junit }} PublishTestResults: - uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev needs: - UnitTesting - StaticTypeCheck Package: - uses: pyTooling/Actions/.github/workflows/Package.yml@r0 + uses: pyTooling/Actions/.github/workflows/Package.yml@dev needs: - Params - Coverage with: - python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.package }} + python_version: ${{ needs.Params.outputs.python_version }} + artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} Release: - uses: pyTooling/Actions/.github/workflows/Release.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/Release.yml@dev if: startsWith(github.ref, 'refs/tags') needs: - UnitTesting @@ -71,48 +71,48 @@ jobs: - Package PublishOnPyPI: - uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev if: startsWith(github.ref, 'refs/tags') needs: - Params - Release - Package with: - python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} + python_version: ${{ needs.Params.outputs.python_version }} requirements: -r dist/requirements.txt - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.package }} + artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} # VerifyDocs: -# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@typing-junit +# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev # needs: # - Params # with: -# python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} +# python_version: ${{ needs.Params.outputs.python_version }} BuildTheDocs: - uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@dev needs: - Params # - VerifyDocs with: - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.doc }} + artifact: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }} PublishToGitHubPages: - uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev needs: - Params - BuildTheDocs - Coverage - StaticTypeCheck with: - doc: ${{ fromJson(needs.Params.outputs.params).artifacts.doc }} - coverage: ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }} - typing: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} + doc: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }} + coverage: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} + typing: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} ArtifactCleanUp: - uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@typing-junit + uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev needs: - Params - UnitTesting @@ -122,24 +122,9 @@ jobs: - PublishToGitHubPages - PublishTestResults with: - package: ${{ fromJson(needs.Params.outputs.params).artifacts.package }} + package: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} remaining: | - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.6 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.7 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.8 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.9 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.10 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.6 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.7 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.8 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.9 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.10 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-msys2-3.9 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.6 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.7 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.8 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.9 - ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.10 - ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }} - ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} - ${{ fromJson(needs.Params.outputs.params).artifacts.doc }} + ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-* + ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} + ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} + ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }} From bf3914e19a42aec5982215ac938865d8b6c81a71 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 18 Dec 2022 23:16:01 +0100 Subject: [PATCH 18/24] Code cleanup. --- doc/conf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index d7df129..60be15b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -59,10 +59,10 @@ # ============================================================================== # Restructured Text settings # ============================================================================== -prologPath = "prolog.inc" +prologPath = Path("prolog.inc") try: - with open(prologPath, "r") as prologFile: - rst_prolog = prologFile.read() + with prologPath.open("r") as fileHandle: + rst_prolog = fileHandle.read() except Exception as ex: print(f"[ERROR:] While reading '{prologPath}'.") print(ex) From 6a73a00fa08080ff09d2c39d68e4c0b596094b87 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 18 Dec 2022 23:16:25 +0100 Subject: [PATCH 19/24] Bumped dependencies. --- doc/Dependency.rst | 12 ++++++------ doc/requirements.txt | 2 +- pyproject.toml | 2 +- requirements.txt | 2 +- tests/requirements.txt | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 765add5..9e0c265 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -27,7 +27,7 @@ pyEDAA.Launcher Package +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==================================================================+=============+============================================================================================+================================================================================================================================================================================================+ -| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `pyAttributes `__ | ≥2.5.1 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | @@ -69,13 +69,13 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥7.1.3 | `MIT `__ | *Not yet evaluated.* | +| `pytest `__ | ≥7.2.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥6.5 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Coverage `__ | ≥7.0 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥0.981 | `MIT `__ | *Not yet evaluated.* | +| `mypy `__ | ≥0.990 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -105,7 +105,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -141,7 +141,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.5.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index dec2deb..454a182 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=2.5.0 +pyTooling>=2.7.0 # Enforce latest version on ReadTheDocs sphinx>=5.3.0 diff --git a/pyproject.toml b/pyproject.toml index c737ddf..3456b6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "pyTooling >= 2.5.0", + "pyTooling >= 2.7.0", "setuptools >= 60.9.3", "wheel >= 0.38.1" ] diff --git a/requirements.txt b/requirements.txt index 7f3c5ed..7dfcd15 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pyTooling>=2.5.0 +pyTooling>=2.7.0 diff --git a/tests/requirements.txt b/tests/requirements.txt index 976fde4..7719481 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,12 @@ -r ../requirements.txt # Coverage collection -Coverage>=6.5 +Coverage>=7.0 # Test Runner -pytest>=7.1.3 +pytest>=7.2.0 pytest-cov>=4.0.0 # Static Type Checking -mypy>=0.981 +mypy>=0.990 lxml>=4.9 From 60b25a1a91d00e63aa0a855c7ef959aaf5de2816 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 18 Dec 2022 23:16:39 +0100 Subject: [PATCH 20/24] Enabled Windows + Python 3.11 again. --- .github/workflows/Pipeline.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index c06639c..03a0282 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -12,7 +12,6 @@ jobs: uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev with: name: pyEDAA.Launcher - disable_list: "windows:3.11" UnitTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev From ec34509147fdb4e2c34b2d311450d979729ec7fa Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Thu, 6 Jul 2023 00:09:00 +0200 Subject: [PATCH 21/24] Bumped dependencies. --- doc/Dependency.rst | 8 ++++---- doc/requirements.txt | 2 +- pyEDAA/Launcher/__init__.py | 4 ++-- pyproject.toml | 2 +- requirements.txt | 2 +- setup.py | 2 +- tests/requirements.txt | 2 +- tests/unit/Vivado.py | 2 +- tests/unit/__init__.py | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 9e0c265..ed755b8 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -27,7 +27,7 @@ pyEDAA.Launcher Package +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==================================================================+=============+============================================================================================+================================================================================================================================================================================================+ -| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | +------------------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `pyAttributes `__ | ≥2.5.1 | `Apache License, 2.0 `__ | * `pyTooling `__ - `Apache License, 2.0 `__ | | | | | * `argcomplete `__ - `Apache License, 2.0 `__ | @@ -75,7 +75,7 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `Coverage `__ | ≥7.0 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥0.990 | `MIT `__ | *Not yet evaluated.* | +| `mypy `__ | ≥1.2 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -105,7 +105,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -141,7 +141,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.7.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index 454a182..8c65935 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=2.7.0 +pyTooling >= 5.0.0 # Enforce latest version on ReadTheDocs sphinx>=5.3.0 diff --git a/pyEDAA/Launcher/__init__.py b/pyEDAA/Launcher/__init__.py index a4fb4d6..03f01cd 100644 --- a/pyEDAA/Launcher/__init__.py +++ b/pyEDAA/Launcher/__init__.py @@ -12,7 +12,7 @@ # # # License: # # ==================================================================================================================== # -# Copyright 2021-2022 Stefan Unrein - Endingen, Germany # +# Copyright 2021-2023 Stefan Unrein - Endingen, Germany # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # @@ -32,7 +32,7 @@ """Start the correct Vivado Version based on version in `*.xpr`file.""" __author__ = "Stefan Unrein" __email__ = "stefan.unrein@gmx.net" -__copyright__ = "2021-2022, Stefan Unrein" +__copyright__ = "2021-2023, Stefan Unrein" __license__ = "Apache License, Version 2.0" __version__ = "0.1.0" __keywords__ = ["launcher", "version selector", "xilinx", "vivado"] diff --git a/pyproject.toml b/pyproject.toml index 3456b6d..77ae8fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "pyTooling >= 2.7.0", + "pyTooling >= 5.0.0", "setuptools >= 60.9.3", "wheel >= 0.38.1" ] diff --git a/requirements.txt b/requirements.txt index 7dfcd15..07307ec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pyTooling>=2.7.0 +pyTooling >= 5.0.0 diff --git a/setup.py b/setup.py index 1aa1942..a8f3c3e 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ # # # License: # # ==================================================================================================================== # -# Copyright 2021-2022 Stefan Unrein - Endingen, Germany # +# Copyright 2021-2023 Stefan Unrein - Endingen, Germany # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # diff --git a/tests/requirements.txt b/tests/requirements.txt index 7719481..6407e55 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -8,5 +8,5 @@ pytest>=7.2.0 pytest-cov>=4.0.0 # Static Type Checking -mypy>=0.990 +mypy >= 1.2 lxml>=4.9 diff --git a/tests/unit/Vivado.py b/tests/unit/Vivado.py index 2298264..eab4563 100644 --- a/tests/unit/Vivado.py +++ b/tests/unit/Vivado.py @@ -11,7 +11,7 @@ # # # License: # # ==================================================================================================================== # -# Copyright 2017-2022 Patrick Lehmann - Bötzingen, Germany # +# Copyright 2017-2023 Patrick Lehmann - Bötzingen, Germany # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py index 5c56eb1..137942a 100644 --- a/tests/unit/__init__.py +++ b/tests/unit/__init__.py @@ -11,7 +11,7 @@ # # # License: # # ==================================================================================================================== # -# Copyright 2017-2022 Patrick Lehmann - Bötzingen, Germany # +# Copyright 2017-2023 Patrick Lehmann - Bötzingen, Germany # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # From 2e477b2dc32b19125a1144cfcfa8befdc4510f7b Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 15 Jul 2023 22:52:18 +0200 Subject: [PATCH 22/24] Bumped dependencies. --- doc/Dependency.rst | 6 +++--- pyproject.toml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index ed755b8..23ae1d5 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -143,7 +143,7 @@ install the mandatory dependencies too. +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ | `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `wheel `__ | any | `MIT `__ | *Not yet evaluated.* | +| `wheel `__ | ≥0.40.0 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -172,7 +172,7 @@ install the mandatory dependencies too. +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==========================================================+==============+===========================================================================================+======================+ -| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | +| `wheel `__ | ≥0.40.0 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ -| `Twine `__ | any | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Twine `__ | ≥4.0.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ diff --git a/pyproject.toml b/pyproject.toml index 77ae8fd..b4dbab2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] requires = [ "pyTooling >= 5.0.0", - "setuptools >= 60.9.3", - "wheel >= 0.38.1" + "setuptools >= 68.0.0", + "wheel >= 0.40.0" ] build-backend = "setuptools.build_meta" From f1861358889e673f43a784f8fe7daeecabc3c5d2 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 29 Jul 2023 23:26:02 +0200 Subject: [PATCH 23/24] Updated pyproject file. --- pyproject.toml | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b4dbab2..7ad98c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,37 +1,55 @@ [build-system] requires = [ - "pyTooling >= 5.0.0", - "setuptools >= 68.0.0", - "wheel >= 0.40.0" + "setuptools >= 68.0.0", + "wheel >= 0.40.0", + "pyTooling >= 5.0.0" ] build-backend = "setuptools.build_meta" [tool.black] line-length = 120 +[tool.mypy] +python_version = "3.11" +namespace_packages = true + +pretty = true +show_error_context = true + +html_report = "report/typing" + [tool.pytest.ini_options] # Don't set 'python_classes = *' otherwise, pytest doesn't search for classes # derived from unittest.Testcase python_files = "*" python_functions = "test_*" +filterwarnings = [ + "error::DeprecationWarning", + "error::PendingDeprecationWarning" +] [tool.coverage.run] branch = true omit = [ "*site-packages*", - "setup.py" + "setup.py", + "tests/*" ] [tool.coverage.report] -skip_covered = true +skip_covered = false skip_empty = true exclude_lines = [ + "pragma: no cover", "raise NotImplementedError" ] +omit = [ + "tests/*" +] [tool.coverage.html] -title = "pyEDAA.Launcher" directory = "report/coverage/html" +title="Code Coverage of pyEDAA.Launcher" [tool.coverage.xml] output = "report/coverage/coverage.xml" From b325a9fc5f96eab73f44a6e74d7e3c7e09470d61 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 13 Aug 2023 23:25:31 +0200 Subject: [PATCH 24/24] Bumped dependencies. --- doc/Dependency.rst | 28 +++++++++++++++------------- tests/requirements.txt | 9 +++++---- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 23ae1d5..1e90287 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -66,19 +66,21 @@ the mandatory dependencies too. .. rubric:: Dependency List -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| **Package** | **Version** | **License** | **Dependencies** | -+===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥7.2.0 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥7.0 | `Apache License, 2.0 `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥1.2 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++=====================================================================+=============+========================================================================================+======================+ +| `pytest `__ | ≥7.4.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `pytest-cov `__ | ≥4.1.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `Coverage `__ | ≥7.3 | `Apache License, 2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `mypy `__ | ≥1.5 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `typing-extensions `__ | ≥4.7.1 | `PSF-2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ .. _dependency-documentation: diff --git a/tests/requirements.txt b/tests/requirements.txt index 6407e55..6904298 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,13 @@ -r ../requirements.txt # Coverage collection -Coverage>=7.0 +Coverage >= 7.3 # Test Runner -pytest>=7.2.0 -pytest-cov>=4.0.0 +pytest >= 7.4.0 +pytest-cov >= 4.1.0 # Static Type Checking -mypy >= 1.2 +mypy >= 1.5 +typing_extensions >= 4.7.1 lxml>=4.9