mirror of
https://github.com/pyTooling/Actions.git
synced 2026-02-14 03:56:56 +08:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1eed538a2d | ||
|
|
c0f5c9f6e1 | ||
|
|
cbd7840707 | ||
|
|
69f521d740 | ||
|
|
c76fed150e | ||
|
|
d650bf7dcf | ||
|
|
d0eae08e12 | ||
|
|
aefbd1cbba | ||
|
|
f7353134cb | ||
|
|
8f604de141 | ||
|
|
be972d3c0e | ||
|
|
0cf94920f2 | ||
|
|
878031f339 | ||
|
|
ce8dc41774 | ||
|
|
37a73ff495 |
59
.github/workflows/ApplicationTesting.yml
vendored
59
.github/workflows/ApplicationTesting.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -37,7 +37,7 @@ on:
|
||||
requirements:
|
||||
description: 'Python dependencies to be installed through pip.'
|
||||
required: false
|
||||
default: '-r tests/requirements.txt'
|
||||
default: '-r ./requirements.txt'
|
||||
type: string
|
||||
pacboy:
|
||||
description: 'MSYS2 dependencies to be installed through pacboy (pacman).'
|
||||
@@ -94,6 +94,39 @@ jobs:
|
||||
name: ${{ inputs.wheel }}
|
||||
path: install
|
||||
|
||||
# TODO: extract step to an Action so package, so code can be shared with UnitTesting.yml
|
||||
- name: Compute path to requirements file
|
||||
id: requirements
|
||||
shell: python
|
||||
run: |
|
||||
from os import getenv
|
||||
from pathlib import Path
|
||||
from sys import version
|
||||
|
||||
print(f"Python: {version}")
|
||||
|
||||
requirements = "${{ inputs.requirements }}"
|
||||
if requirements.startswith("-r"):
|
||||
requirements = requirements[2:].lstrip()
|
||||
if requirements.startswith("./"):
|
||||
requirementsFile = Path("${{ inputs.root_directory || '.' }}") / Path("${{ inputs.tests_directory || '.' }}") / Path("${{ inputs.apptest_directory || '.' }}") / Path(requirements[2:])
|
||||
else:
|
||||
requirementsFile = Path(requirements)
|
||||
|
||||
if not requirementsFile.exists():
|
||||
print(f"::error title=FileNotFoundError::{requirementsFile}")
|
||||
exit(1)
|
||||
|
||||
print(f"requirements file: {requirementsFile.as_posix()}")
|
||||
|
||||
# Write requirements path to special file
|
||||
github_output = Path(getenv("GITHUB_OUTPUT"))
|
||||
print(f"GITHUB_OUTPUT: {github_output}")
|
||||
with github_output.open("a+") as f:
|
||||
f.write(f"requirements=-r {requirementsFile.as_posix()}\n")
|
||||
else:
|
||||
print(f"requirements list: {requirements}")
|
||||
|
||||
# TODO: extract step to an Action so package lists are shared with UnitTesting (and GHDL?)
|
||||
- name: Compute pacman/pacboy packages
|
||||
id: pacboy
|
||||
@@ -122,7 +155,7 @@ jobs:
|
||||
|
||||
return requirements
|
||||
|
||||
requirements = "${{ inputs.requirements }}"
|
||||
requirements = "${{ steps.requirements.outputs.requirements }}"
|
||||
if requirements.startswith("-r"):
|
||||
requirementsFile = Path(requirements[2:].lstrip())
|
||||
try:
|
||||
@@ -134,18 +167,19 @@ jobs:
|
||||
dependencies = [req.strip() for req in requirements.split(" ")]
|
||||
|
||||
packages = {
|
||||
"aiohttp": "python-aiohttp:p",
|
||||
"coverage": "python-coverage:p",
|
||||
"docstr_coverage": "python-pyyaml:p python-types-pyyaml:p",
|
||||
"docstr_coverage": "python-pyaml:p python-types-pyyaml:p",
|
||||
"igraph": "igraph:p",
|
||||
"jinja2": "python-markupsafe:p",
|
||||
"lxml": "python-lxml:p",
|
||||
"numpy": "python-numpy:p",
|
||||
"markupsafe": "python-markupsafe:p",
|
||||
"pip": "python-pip:p",
|
||||
"pyyaml": "python-pyyaml:p python-types-pyyaml:p",
|
||||
"pyyaml": "python-pyaml:p python-types-pyyaml:p",
|
||||
"ruamel.yaml": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
|
||||
"sphinx": "python-markupsafe:p",
|
||||
"tomli": "python-tomli:p",
|
||||
"tomli": "python-tomli:p", # outdated, now part of Python as tomllib
|
||||
"wheel": "python-wheel:p",
|
||||
"pyEDAA.ProjectModel": "python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
|
||||
"pyEDAA.Reports": "python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
|
||||
@@ -154,6 +188,7 @@ jobs:
|
||||
subPackages = {
|
||||
"pytooling": {
|
||||
"yaml": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
|
||||
"pypi": "python-aiohttp:p",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,6 +224,8 @@ jobs:
|
||||
with github_output.open("a+") as f:
|
||||
f.write(f"pacboy_packages={' '.join(pacboyPackages)}\n")
|
||||
|
||||
# Python setup
|
||||
|
||||
- name: '🟦 Setup MSYS2 for ${{ matrix.runtime }}'
|
||||
uses: msys2/setup-msys2@v2
|
||||
if: matrix.system == 'msys2'
|
||||
@@ -205,11 +242,13 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ matrix.python }}
|
||||
|
||||
# Python Dependency steps
|
||||
|
||||
- name: 🔧 Install wheel and pip dependencies (native)
|
||||
if: matrix.system != 'msys2'
|
||||
run: |
|
||||
python -m pip install --disable-pip-version-check -U wheel
|
||||
python -m pip install --disable-pip-version-check ${{ inputs.requirements }}
|
||||
python -m pip install --disable-pip-version-check ${{ steps.requirements.outputs.requirements }}
|
||||
|
||||
- name: 🔧 Install pip dependencies (MSYS2)
|
||||
if: matrix.system == 'msys2'
|
||||
@@ -220,6 +259,8 @@ jobs:
|
||||
python -m pip install --disable-pip-version-check --break-system-packages ${{ inputs.requirements }}
|
||||
fi
|
||||
|
||||
# TODO: Before scripts?
|
||||
|
||||
- name: 🔧 Install wheel from artifact (Ubuntu/macOS)
|
||||
if: ( matrix.system != 'windows' && matrix.system != 'windows-arm' )
|
||||
run: |
|
||||
@@ -230,6 +271,8 @@ jobs:
|
||||
run: |
|
||||
python -m pip install -v --disable-pip-version-check (Get-Item .\install\*.whl).FullName
|
||||
|
||||
# Run pytests
|
||||
|
||||
- name: ✅ Run application tests (Ubuntu/macOS)
|
||||
if: ( matrix.system != 'windows' && matrix.system != 'windows-arm' )
|
||||
run: |
|
||||
@@ -260,6 +303,8 @@ jobs:
|
||||
python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }}
|
||||
}
|
||||
|
||||
# Upload artifacts
|
||||
|
||||
- name: 📤 Upload 'TestReportSummary.xml' artifact
|
||||
if: inputs.apptest_xml_artifact != ''
|
||||
uses: pyTooling/upload-artifact@v6
|
||||
|
||||
2
.github/workflows/ArtifactCleanUp.yml
vendored
2
.github/workflows/ArtifactCleanUp.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/CheckCodeQuality.yml
vendored
2
.github/workflows/CheckCodeQuality.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2025-2025 The pyTooling Authors #
|
||||
# Copyright 2025-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/CheckDocumentation.yml
vendored
2
.github/workflows/CheckDocumentation.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/CompletePipeline.yml
vendored
2
.github/workflows/CompletePipeline.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
12
.github/workflows/ExtractConfiguration.yml
vendored
12
.github/workflows/ExtractConfiguration.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -89,9 +89,9 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ inputs.python_version }}
|
||||
|
||||
- name: 🔧 Install wheel,tomli and pip dependencies (native)
|
||||
- name: 🔧 Install wheel and pip dependencies (native)
|
||||
run: |
|
||||
python -m pip install --disable-pip-version-check -U wheel tomli
|
||||
python -m pip install --disable-pip-version-check -U wheel
|
||||
|
||||
- name: 🔁 Extract configurations from pyproject.toml
|
||||
id: getVariables
|
||||
@@ -105,7 +105,7 @@ jobs:
|
||||
|
||||
print(f"Python: {version} (of default installation)")
|
||||
|
||||
from tomli import load as tomli_load
|
||||
from tomllib import load as toml_load
|
||||
|
||||
unittestXMLFile = Path("./unittest.xml")
|
||||
coverageHTMLDirectory = Path("htmlcov")
|
||||
@@ -121,7 +121,7 @@ jobs:
|
||||
pyProjectFile = Path("pyproject.toml")
|
||||
if pyProjectFile.exists():
|
||||
with pyProjectFile.open("rb") as file:
|
||||
pyProjectSettings = tomli_load(file)
|
||||
pyProjectSettings = toml_load(file)
|
||||
|
||||
toolSection = pyProjectSettings["tool"]
|
||||
if "pytest" in toolSection:
|
||||
@@ -163,7 +163,7 @@ jobs:
|
||||
coverageRCFile = Path(coverageRC)
|
||||
if coverageRCFile.exists():
|
||||
with coverageRCFile.open("rb") as file:
|
||||
coverageRCSettings = tomli_load(file)
|
||||
coverageRCSettings = toml_load(file)
|
||||
|
||||
coverageHTMLDirectory = Path(coverageRCSettings["html"]["directory"])
|
||||
coverageXMLFile = Path(coverageRCSettings["xml"]["output"])
|
||||
|
||||
3
.github/workflows/InstallPackage.yml
vendored
3
.github/workflows/InstallPackage.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2025-2025 The pyTooling Authors #
|
||||
# Copyright 2025-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -70,7 +70,6 @@ jobs:
|
||||
python-markupsafe:p
|
||||
python-pyaml:p python-types-pyyaml:p
|
||||
python-ruamel-yaml:p python-ruamel.yaml.clib:p
|
||||
python-tomli:p
|
||||
|
||||
- name: 🐍 Setup Python ${{ matrix.python }}
|
||||
uses: actions/setup-python@v6
|
||||
|
||||
2
.github/workflows/IntermediateCleanUp.yml
vendored
2
.github/workflows/IntermediateCleanUp.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/LaTeXDocumentation.yml
vendored
2
.github/workflows/LaTeXDocumentation.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/Package.yml
vendored
2
.github/workflows/Package.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
6
.github/workflows/Parameters.yml
vendored
6
.github/workflows/Parameters.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -287,9 +287,9 @@ jobs:
|
||||
exclude_list = "${{ inputs.exclude_list }}".strip()
|
||||
disable_list = "${{ inputs.disable_list }}".strip()
|
||||
|
||||
currentMSYS2Version = "3.12"
|
||||
currentMSYS2Version = "3.13"
|
||||
currentAlphaVersion = "3.15"
|
||||
currentAlphaRelease = "3.15.0-a.1"
|
||||
currentAlphaRelease = "3.15.0-a.4"
|
||||
|
||||
if systems == "":
|
||||
print("::error title=Parameters::system_list is empty.")
|
||||
|
||||
21
.github/workflows/PrepareJob.yml
vendored
21
.github/workflows/PrepareJob.yml
vendored
@@ -1,3 +1,24 @@
|
||||
# ==================================================================================================================== #
|
||||
# Authors: #
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2025-2026 The pyTooling Authors #
|
||||
# #
|
||||
# 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 #
|
||||
# ==================================================================================================================== #
|
||||
name: Prepare Variables
|
||||
|
||||
on:
|
||||
|
||||
7
.github/workflows/PublishCoverageResults.yml
vendored
7
.github/workflows/PublishCoverageResults.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -124,9 +124,9 @@ jobs:
|
||||
run: |
|
||||
tree -pash artifacts
|
||||
|
||||
- name: 🔧 Install coverage and tomli
|
||||
- name: 🔧 Install coverage
|
||||
run: |
|
||||
python -m pip install -U --disable-pip-version-check --break-system-packages coverage[toml] tomli
|
||||
python -m pip install -U --disable-pip-version-check --break-system-packages coverage[toml]
|
||||
|
||||
- name: Rename .coverage files and move them all into 'coverage/'
|
||||
run: |
|
||||
@@ -205,6 +205,7 @@ jobs:
|
||||
continue-on-error: true
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
report_type: "coverage"
|
||||
disable_search: true
|
||||
files: ${{ fromJson(inputs.coverage_report_xml).fullpath }}
|
||||
flags: unittests
|
||||
|
||||
2
.github/workflows/PublishOnPyPI.yml
vendored
2
.github/workflows/PublishOnPyPI.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
10
.github/workflows/PublishReleaseNotes.yml
vendored
10
.github/workflows/PublishReleaseNotes.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -880,11 +880,11 @@ jobs:
|
||||
|
||||
export GH_TOKEN=${{ github.token }}
|
||||
|
||||
if [[ -s __ASSETS__.md ]]; then
|
||||
addNotes=("--notes-file" "__ASSETS__.md")
|
||||
if [[ -s __NOTES__.md ]]; then
|
||||
addNotes=("--notes-file" "__NOTES__.md")
|
||||
else
|
||||
printf " ${ANSI_LIGHT_RED}File '%s' not found.${ANSI_NOCOLOR}\n" "__ASSETS__.md"
|
||||
printf "::error title=%s::%s\n" "InternalError" "File '__ASSETS__.md' not found."
|
||||
printf " ${ANSI_LIGHT_RED}File '%s' not found.${ANSI_NOCOLOR}\n" "__NOTES__.md"
|
||||
printf "::error title=%s::%s\n" "InternalError" "File '__NOTES__.md' not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
5
.github/workflows/PublishTestResults.yml
vendored
5
.github/workflows/PublishTestResults.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -144,12 +144,13 @@ jobs:
|
||||
reporter: java-junit
|
||||
|
||||
- name: 📊 Publish unittest results at CodeCov
|
||||
uses: codecov/test-results-action@v1
|
||||
uses: codecov/codecov-action@v5
|
||||
id: codecov
|
||||
if: inputs.codecov == 'true'
|
||||
continue-on-error: true
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
report_type: "test_results"
|
||||
disable_search: true
|
||||
files: ${{ inputs.merged_junit_filename }}
|
||||
flags: ${{ inputs.codecov_flags }}
|
||||
|
||||
2
.github/workflows/PublishToGitHubPages.yml
vendored
2
.github/workflows/PublishToGitHubPages.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
6
.github/workflows/SphinxDocumentation.yml
vendored
6
.github/workflows/SphinxDocumentation.yml
vendored
@@ -3,7 +3,7 @@
|
||||
# Patrick Lehmann #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ inputs.python_version }}
|
||||
|
||||
- name: 🔧 Install wheel,tomli and pip dependencies (native)
|
||||
- name: 🔧 Install wheel and pip dependencies (native)
|
||||
run: |
|
||||
python -m pip install --disable-pip-version-check -U wheel
|
||||
python -m pip install --disable-pip-version-check ${{ inputs.requirements }}
|
||||
@@ -158,7 +158,7 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ inputs.python_version }}
|
||||
|
||||
- name: 🔧 Install wheel,tomli and pip dependencies (native)
|
||||
- name: 🔧 Install wheel and pip dependencies (native)
|
||||
run: |
|
||||
python -m pip install --disable-pip-version-check -U wheel
|
||||
python -m pip install --disable-pip-version-check ${{ inputs.requirements }}
|
||||
|
||||
2
.github/workflows/StaticTypeCheck.yml
vendored
2
.github/workflows/StaticTypeCheck.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
2
.github/workflows/TagReleaseCommit.yml
vendored
2
.github/workflows/TagReleaseCommit.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
52
.github/workflows/UnitTesting.yml
vendored
52
.github/workflows/UnitTesting.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
@@ -69,13 +69,23 @@ on:
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
windows_before_script:
|
||||
description: 'Scripts to execute before pytest on Windows (x64-64).'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
windows_arm_before_script:
|
||||
description: 'Scripts to execute before pytest on Windows (aarch64).'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
mingw64_before_script:
|
||||
description: 'Scripts to execute before pytest on Windows within MSYS2 MinGW64.'
|
||||
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 MinGW64.'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
ucrt64_before_script:
|
||||
description: 'Scripts to execute before pytest on Windows within MSYS2 UCRT64.'
|
||||
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 UCRT64.'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
@@ -199,12 +209,13 @@ jobs:
|
||||
|
||||
# Compute Dependencies for MSYS2 steps
|
||||
|
||||
- name: 🔧 Install dependencies (system Python for Python shell)
|
||||
if: matrix.system == 'msys2'
|
||||
shell: pwsh
|
||||
run: |
|
||||
py -3.9 -m pip install --disable-pip-version-check --break-system-packages -U tomli
|
||||
# - name: 🔧 Install dependencies (system Python for Python shell)
|
||||
# if: matrix.system == 'msys2'
|
||||
# shell: pwsh
|
||||
# run: |
|
||||
# py -3.12 -m pip install --disable-pip-version-check --break-system-packages -U tomli
|
||||
|
||||
# TODO: extract step to an Action so package, so code can be shared with AppTesting.yml
|
||||
- name: Compute path to requirements file
|
||||
id: requirements
|
||||
shell: python
|
||||
@@ -224,7 +235,7 @@ jobs:
|
||||
requirementsFile = Path(requirements)
|
||||
|
||||
if not requirementsFile.exists():
|
||||
print(f"::error title=FileNotFoundError::{ex}")
|
||||
print(f"::error title=FileNotFoundError::{requirementsFile}")
|
||||
exit(1)
|
||||
|
||||
print(f"requirements file: {requirementsFile.as_posix()}")
|
||||
@@ -237,6 +248,7 @@ jobs:
|
||||
else:
|
||||
print(f"requirements list: {requirements}")
|
||||
|
||||
# TODO: extract step to an Action so package lists are shared with UnitTesting (and GHDL?)
|
||||
- name: Compute pacman/pacboy packages
|
||||
id: pacboy
|
||||
if: matrix.system == 'msys2'
|
||||
@@ -273,6 +285,7 @@ jobs:
|
||||
dependencies = [req.strip() for req in requirements.split(" ")]
|
||||
|
||||
packages = {
|
||||
"aiohttp": "python-aiohttp:p",
|
||||
"coverage": "python-coverage:p",
|
||||
"docstr_coverage": "python-pyaml:p python-types-pyyaml:p",
|
||||
"igraph": "igraph:p",
|
||||
@@ -281,11 +294,11 @@ jobs:
|
||||
"numpy": "python-numpy:p",
|
||||
"markupsafe": "python-markupsafe:p",
|
||||
"pip": "python-pip:p",
|
||||
"pyyaml": "python-pyyaml:p python-types-pyyaml:p",
|
||||
"pyyaml": "python-pyaml:p python-types-pyyaml:p",
|
||||
"ruamel.yaml": "python-ruamel-yaml:p",
|
||||
# "ruamel.yaml": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
|
||||
"sphinx": "python-markupsafe:p",
|
||||
"tomli": "python-tomli:p",
|
||||
"tomli": "python-tomli:p", # outdated, now part of Python as tomllib
|
||||
"wheel": "python-wheel:p",
|
||||
"pyedaa.projectmodel": "python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
|
||||
"pyedaa.reports": "python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
|
||||
@@ -294,6 +307,7 @@ jobs:
|
||||
subPackages = {
|
||||
"pytooling": {
|
||||
"yaml": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
|
||||
"pypi": "python-aiohttp:p",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -349,10 +363,10 @@ jobs:
|
||||
|
||||
# Python Dependency steps
|
||||
|
||||
- name: 🔧 Install wheel,tomli and pip dependencies (native)
|
||||
- name: 🔧 Install wheel and pip dependencies (native)
|
||||
if: matrix.system != 'msys2'
|
||||
run: |
|
||||
python -m pip install --disable-pip-version-check -U wheel tomli
|
||||
python -m pip install --disable-pip-version-check -U wheel
|
||||
python -m pip install --disable-pip-version-check ${{ steps.requirements.outputs.requirements }}
|
||||
|
||||
- name: 🔧 Install pip dependencies (MSYS2)
|
||||
@@ -378,13 +392,19 @@ jobs:
|
||||
if: ( matrix.system == 'ubuntu' || matrix.system == 'ubuntu-arm' ) && inputs.ubuntu_before_script != ''
|
||||
run: ${{ inputs.ubuntu_before_script }}
|
||||
|
||||
# TODO: Windows before script
|
||||
- name: 🪟 Windows (x86-64) before scripts
|
||||
if: matrix.system == 'windows' && inputs.windows_before_script != ''
|
||||
run: ${{ inputs.windows_before_script }}
|
||||
|
||||
- name: 🪟🟦 MinGW64 before scripts
|
||||
- name: 🏢 Windows (aarch64) before scripts
|
||||
if: matrix.system == 'windows-arm' && inputs.windows_arm_before_script != ''
|
||||
run: ${{ inputs.windows_arm_before_script }}
|
||||
|
||||
- name: 🪟🟦 Windows (x86-64) + MinGW64 before scripts
|
||||
if: matrix.system == 'msys2' && matrix.runtime == 'MINGW64' && inputs.mingw64_before_script != ''
|
||||
run: ${{ inputs.mingw64_before_script }}
|
||||
|
||||
- name: 🪟🟨 UCRT64 before scripts
|
||||
- name: 🪟🟨 Windows (x86-64) + UCRT64 before scripts
|
||||
if: matrix.system == 'msys2' && matrix.runtime == 'UCRT64' && inputs.ucrt64_before_script != ''
|
||||
run: ${{ inputs.ucrt64_before_script }}
|
||||
|
||||
|
||||
2
.github/workflows/VerifyDocs.yml
vendored
2
.github/workflows/VerifyDocs.yml
vendored
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
6
.github/workflows/_Checking_Parameters.yml
vendored
6
.github/workflows/_Checking_Parameters.yml
vendored
@@ -73,7 +73,7 @@ jobs:
|
||||
expected-python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
||||
expected-systems: '["ubuntu", "ubuntu-arm", "windows", "windows-arm", "macos", "macos-arm"]'
|
||||
expected-exclude-jobs: '["windows-arm:3.10"]'
|
||||
expected-include-jobs: '["mingw64:3.12", "ucrt64:3.12"]'
|
||||
expected-include-jobs: '["mingw64:3.13", "ucrt64:3.13"]'
|
||||
generated-default-version: ${{ needs.Params_Default.outputs.python_version }}
|
||||
generated-jobmatrix: ${{ needs.Params_Default.outputs.python_jobs }}
|
||||
|
||||
@@ -101,7 +101,7 @@ jobs:
|
||||
expected-python-versions: '["3.12", "3.13", "pypy-3.10", "pypy-3.11"]'
|
||||
expected-systems: '["ubuntu", "ubuntu-arm", "windows", "windows-arm", "macos", "macos-arm"]'
|
||||
expected-exclude-jobs: '["windows-arm:pypy-3.10", "windows-arm:pypy-3.11"]'
|
||||
expected-include-jobs: '["mingw64:3.12", "ucrt64:3.12"]'
|
||||
expected-include-jobs: '["mingw64:3.13", "ucrt64:3.13"]'
|
||||
generated-default-version: ${{ needs.Params_PythonVersions.outputs.python_version }}
|
||||
generated-jobmatrix: ${{ needs.Params_PythonVersions.outputs.python_jobs }}
|
||||
|
||||
@@ -123,7 +123,7 @@ jobs:
|
||||
expected-python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
||||
expected-systems: '["windows"]'
|
||||
expected-exclude-jobs: '[]'
|
||||
expected-include-jobs: '["mingw32:3.12", "mingw64:3.12"]'
|
||||
expected-include-jobs: '["mingw32:3.13", "mingw64:3.13"]'
|
||||
generated-default-version: ${{ needs.Params_Systems.outputs.python_version }}
|
||||
generated-jobmatrix: ${{ needs.Params_Systems.outputs.python_jobs }}
|
||||
|
||||
|
||||
2
dist/requirements.txt
vendored
2
dist/requirements.txt
vendored
@@ -1,2 +1,2 @@
|
||||
wheel ~= 0.45
|
||||
wheel ~= 0.45.0
|
||||
twine ~= 6.2
|
||||
|
||||
@@ -124,7 +124,6 @@ It can be used for simple Python packages as well as namespace packages.
|
||||
* :gh:`actions/setup-python`
|
||||
|
||||
* :pypi:`wheel`
|
||||
* :pypi:`tomli`
|
||||
|
||||
* :ref:`pyTooling/Actions/.github/workflows/UnitTesting.yml <JOBTMPL/UnitTesting>`
|
||||
|
||||
@@ -145,7 +144,6 @@ It can be used for simple Python packages as well as namespace packages.
|
||||
* pip
|
||||
|
||||
* :pypi:`wheel`
|
||||
* :pypi:`tomli`
|
||||
* Python packages specified via :ref:`JOBTMPL/UnitTesting/Input/requirements` or
|
||||
:ref:`JOBTMPL/UnitTesting/Input/mingw_requirements` parameter.
|
||||
|
||||
@@ -203,7 +201,6 @@ It can be used for simple Python packages as well as namespace packages.
|
||||
* pip
|
||||
|
||||
* :pypi:`coverage`
|
||||
* :pypi:`tomli`
|
||||
|
||||
* :gh:`pyTooling/upload-artifact`
|
||||
|
||||
|
||||
@@ -56,7 +56,6 @@ cloud services like :term:`CodeCov` or :term:`Codacy`.
|
||||
* pip
|
||||
|
||||
* :pypi:`coverage`
|
||||
* :pypi:`tomli`
|
||||
|
||||
* :gh:`pyTooling/upload-artifact`
|
||||
|
||||
|
||||
@@ -49,7 +49,6 @@ duplications within jobs.
|
||||
* :gh:`actions/setup-python`
|
||||
|
||||
* :pypi:`wheel`
|
||||
* :pypi:`tomli`
|
||||
|
||||
|
||||
.. _JOBTMPL/ExtractConfiguration/Instantiation:
|
||||
|
||||
@@ -60,7 +60,6 @@ Configuration options to :term:`pytest` should be given via section ``[tool.pyte
|
||||
* pip
|
||||
|
||||
* :pypi:`wheel`
|
||||
* :pypi:`tomli`
|
||||
* Python packages specified via :ref:`JOBTMPL/UnitTesting/Input/requirements` or
|
||||
:ref:`JOBTMPL/UnitTesting/Input/mingw_requirements` parameter.
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ Example Pipelines
|
||||
.. code-block:: toml
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools >= 80.0", "wheel ~= 0.45", "pyTooling ~= 8.8"]
|
||||
requires = ["setuptools >= 80.0", "wheel ~= 0.45.0", "pyTooling ~= 8.11"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.mypy]
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
-r ../requirements.txt
|
||||
|
||||
pyTooling ~= 8.8
|
||||
pyTooling ~= 8.11
|
||||
|
||||
# Enforce latest version on ReadTheDocs
|
||||
sphinx ~= 8.2
|
||||
docutils ~= 0.21
|
||||
sphinx ~= 9.1
|
||||
docutils ~= 0.22.0
|
||||
docutils_stubs ~= 0.0.22
|
||||
|
||||
# ReadTheDocs Theme
|
||||
sphinx_rtd_theme ~= 3.0
|
||||
|
||||
# Sphinx Extenstions
|
||||
sphinxcontrib-mermaid ~= 1.2
|
||||
sphinxcontrib-mermaid ~= 2.0
|
||||
autoapi >= 2.0.1
|
||||
sphinx_design ~= 0.6
|
||||
sphinx-copybutton >= 0.5
|
||||
sphinx_design ~= 0.7.0
|
||||
sphinx-copybutton >= 0.5.0
|
||||
sphinx_autodoc_typehints ~= 3.5 # 3.6 is conflicting with old sphinx_design and rtd theme due to sphinx<9 and docutils<0.22
|
||||
sphinx_reports ~= 0.9
|
||||
sphinx_reports ~= 0.10.0
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
@@ -34,7 +34,7 @@ A module for a set of dummy classes.
|
||||
|
||||
__author__ = "Patrick Lehmann"
|
||||
__email__ = "Paebbels@gmail.com"
|
||||
__copyright__ = "2017-2025, Patrick Lehmann"
|
||||
__copyright__ = "2017-2026, Patrick Lehmann"
|
||||
__license__ = "Apache License, Version 2.0"
|
||||
__version__ = "0.14.8"
|
||||
__keywords__ = ["GitHub Actions"]
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
@@ -34,9 +34,9 @@ A module for a set of dummy classes.
|
||||
|
||||
__author__ = "Patrick Lehmann"
|
||||
__email__ = "Paebbels@gmail.com"
|
||||
__copyright__ = "2017-2025, Patrick Lehmann"
|
||||
__copyright__ = "2017-2026, Patrick Lehmann"
|
||||
__license__ = "Apache License, Version 2.0"
|
||||
__version__ = "7.0.1"
|
||||
__version__ = "7.4.2"
|
||||
__keywords__ = ["GitHub Actions"]
|
||||
__issue_tracker__ = "https://GitHub.com/pyTooling/Actions/issues"
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[build-system]
|
||||
requires = [
|
||||
"setuptools >= 80.0",
|
||||
"wheel ~= 0.45",
|
||||
"pyTooling ~= 8.8"
|
||||
"wheel ~= 0.45.0",
|
||||
"pyTooling ~= 8.11"
|
||||
]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
pyTooling ~= 8.8
|
||||
pyTooling ~= 8.11
|
||||
|
||||
7
run.ps1
7
run.ps1
@@ -116,7 +116,9 @@ $jobs = @()
|
||||
if ($livedoc)
|
||||
{ Write-Host -ForegroundColor DarkYellow "[live][DOC] Building documentation using Sphinx ..."
|
||||
|
||||
.\doc\make.bat html --verbose
|
||||
cd doc
|
||||
py -3.14 -m sphinx.cmd.build -b html . _build/html --doctree-dir _build/doctrees --jobs auto --warning-file _build/sphinx-warnings.log --verbose
|
||||
cd ..
|
||||
|
||||
Write-Host -ForegroundColor DarkYellow "[live][DOC] Documentation finished"
|
||||
}
|
||||
@@ -126,7 +128,8 @@ elseif ($doc)
|
||||
|
||||
# Compile documentation
|
||||
$compileDocFunc = {
|
||||
.\doc\make.bat html --verbose
|
||||
cd doc
|
||||
py -3.14 -m sphinx.cmd.build -b html . _build/html --doctree-dir _build/doctrees --jobs auto --warning-file _build/sphinx-warnings.log --verbose
|
||||
}
|
||||
$docJob = Start-Job -Name "Documentation" -ScriptBlock $compileDocFunc
|
||||
# $jobs += $docJob
|
||||
|
||||
2
setup.py
2
setup.py
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
@@ -44,55 +44,55 @@ if __name__ == "__main__": # pragma: no cover
|
||||
|
||||
class PlatformTesting(TestCase):
|
||||
@mark.skipif(not CurrentPlatform.IsNativeLinux, reason="Skipped, if current platform isn't native Linux.")
|
||||
def test_ApplicationOnNativeLinux(self):
|
||||
def test_ApplicationOnNativeLinux(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(1, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsNativeMacOS, reason="Skipped, if current platform isn't native macOS.")
|
||||
def test_ApplicationOnNativeMacOS(self):
|
||||
def test_ApplicationOnNativeMacOS(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(2, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsNativeWindows, reason="Skipped, if current platform isn't native Windows.")
|
||||
def test_ApplicationOnNativeWindows(self):
|
||||
def test_ApplicationOnNativeWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(3, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsMSYSOnWindows, reason="Skipped, if current platform isn't MSYS on Windows.")
|
||||
def test_ApplicationOnMSYS2OnWindows(self):
|
||||
def test_ApplicationOnMSYS2OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(11, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsMinGW32OnWindows, reason="Skipped, if current platform isn't MinGW32 on Windows.")
|
||||
def test_ApplicationOnMinGW32OnWindows(self):
|
||||
def test_ApplicationOnMinGW32OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(12, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsMinGW64OnWindows, reason="Skipped, if current platform isn't MinGW64 on Windows.")
|
||||
def test_ApplicationOnMinGW64OnWindows(self):
|
||||
def test_ApplicationOnMinGW64OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(13, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsUCRT64OnWindows, reason="Skipped, if current platform isn't UCRT64 on Windows.")
|
||||
def test_ApplicationOnURTC64OnWindows(self):
|
||||
def test_ApplicationOnURTC64OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(14, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsClang32OnWindows, reason="Skipped, if current platform isn't Clang32 on Windows.")
|
||||
def test_ApplicationOnClang32OnWindows(self):
|
||||
def test_ApplicationOnClang32OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(15, app.Value)
|
||||
|
||||
@mark.skipif(not CurrentPlatform.IsClang64OnWindows, reason="Skipped, if current platform isn't Clang64 on Windows.")
|
||||
def test_ApplicationOnClang64OnWindows(self):
|
||||
def test_ApplicationOnClang64OnWindows(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertEqual(16, app.Value)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
@@ -34,7 +34,7 @@ from myPackage import Application
|
||||
|
||||
|
||||
class Instantiation(TestCase):
|
||||
def test_Application(self):
|
||||
def test_Application(self) -> None:
|
||||
app = Application()
|
||||
|
||||
self.assertGreater(app.Value, 0)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# #
|
||||
# License: #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2017-2025 Patrick Lehmann - Bötzingen, Germany #
|
||||
# Copyright 2017-2026 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. #
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Unai Martinez-Corral #
|
||||
# #
|
||||
# ==================================================================================================================== #
|
||||
# Copyright 2020-2025 The pyTooling Authors #
|
||||
# Copyright 2020-2026 The pyTooling Authors #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); #
|
||||
# you may not use this file except in compliance with the License. #
|
||||
|
||||
Reference in New Issue
Block a user