From d90b8aff6e12e46b61344f28a550446e5dc75cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20T=C3=A4nzer?= Date: Fri, 11 Apr 2025 14:17:46 +0200 Subject: [PATCH 1/4] [issue-839] Drop support for Python 3.7 (we are long past its EOL) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Armin Tänzer --- .github/workflows/check_codestyle.yml | 8 +------- .github/workflows/install_and_test.yml | 8 +------- .github/workflows/prepare_release.yml | 2 +- pyproject.toml | 3 +-- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/.github/workflows/check_codestyle.yml b/.github/workflows/check_codestyle.yml index 4cc16b9c1..08b5e125f 100644 --- a/.github/workflows/check_codestyle.yml +++ b/.github/workflows/check_codestyle.yml @@ -20,13 +20,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ] - exclude: # see https://github.com/actions/runner-images/issues/9770#issuecomment-2085623315 - - python-version: "3.7" - os: macos-latest - include: - - python-version: "3.7" - os: macos-13 + python-version: [ "3.8", "3.9", "3.10", "3.11" ] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/install_and_test.yml b/.github/workflows/install_and_test.yml index 0f66cc73f..2149dd267 100644 --- a/.github/workflows/install_and_test.yml +++ b/.github/workflows/install_and_test.yml @@ -17,13 +17,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ] - exclude: # see https://github.com/actions/runner-images/issues/9770#issuecomment-2085623315 - - python-version: "3.7" - os: macos-latest - include: - - python-version: "3.7" - os: macos-13 + python-version: [ "3.8", "3.9", "3.10", "3.11" ] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/prepare_release.yml b/.github/workflows/prepare_release.yml index 1197a3d1d..cb2f5a67f 100644 --- a/.github/workflows/prepare_release.yml +++ b/.github/workflows/prepare_release.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: '3.7' + python-version: '3.8' - name: Set up dependencies run: | python -m pip install --upgrade pip diff --git a/pyproject.toml b/pyproject.toml index aff57e36b..bab596e20 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,14 +16,13 @@ classifiers = [ "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", ] urls = { Homepage = "https://github.com/spdx/tools-python" } -requires-python = ">=3.7" +requires-python = ">=3.8" dependencies = ["click", "pyyaml", "xmltodict", "rdflib", "beartype", "uritools", "license_expression", "ply", "semantic_version"] dynamic = ["version"] From e3824adc07889fa99458e8ce1de8c5740911be04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20T=C3=A4nzer?= Date: Fri, 11 Apr 2025 15:10:11 +0200 Subject: [PATCH 2/4] Add pyshacl as development dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, pytest will complain. Signed-off-by: Armin Tänzer --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bab596e20..004e67347 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ dynamic = ["version"] test = ["pytest", "pyshacl", "tzdata"] code_style = ["isort", "black", "flake8"] graph_generation = ["pygraphviz", "networkx"] -development = ["black", "flake8", "isort", "networkx", "pytest"] +development = ["black", "flake8", "isort", "networkx", "pytest", "pyshacl"] [project.scripts] pyspdxtools = "spdx_tools.spdx.clitools.pyspdxtools:main" From 3b13bd5af36a2b78f5c87fdbadc3f2601d2dcd8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20T=C3=A4nzer?= Date: Fri, 11 Apr 2025 15:12:56 +0200 Subject: [PATCH 3/4] [issue-844] Update excepted typecheck error after beartype update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Armin Tänzer --- src/spdx_tools/common/typing/dataclass_with_properties.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spdx_tools/common/typing/dataclass_with_properties.py b/src/spdx_tools/common/typing/dataclass_with_properties.py index 3f13950d5..e0b5c9614 100644 --- a/src/spdx_tools/common/typing/dataclass_with_properties.py +++ b/src/spdx_tools/common/typing/dataclass_with_properties.py @@ -4,7 +4,7 @@ from dataclasses import dataclass from beartype import beartype -from beartype.roar import BeartypeCallHintException +from beartype.roar import BeartypeCallHintParamViolation def dataclass_with_properties(cls): @@ -30,7 +30,7 @@ def set_field(self, value: field_type): def set_field_with_error_conversion(self, value: field_type): try: set_field(self, value) - except BeartypeCallHintException as err: + except BeartypeCallHintParamViolation as err: error_message: str = f"SetterError {self.__class__.__name__}: {err}" # As setters are created dynamically, their argument name is always "value". We replace it by the From b1a1f2346c10e90cb19e24a1ceefe5d905350c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20T=C3=A4nzer?= Date: Fri, 11 Apr 2025 15:29:36 +0200 Subject: [PATCH 4/4] Small formatting fixes after black update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Armin Tänzer --- src/spdx_tools/spdx/parser/jsonlikedict/snippet_parser.py | 2 +- src/spdx_tools/spdx3/bump_from_spdx2/relationship.py | 2 +- src/spdx_tools/spdx3/writer/console/__init__.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/spdx_tools/spdx/parser/jsonlikedict/snippet_parser.py b/src/spdx_tools/spdx/parser/jsonlikedict/snippet_parser.py index f00779407..3914e686b 100644 --- a/src/spdx_tools/spdx/parser/jsonlikedict/snippet_parser.py +++ b/src/spdx_tools/spdx/parser/jsonlikedict/snippet_parser.py @@ -127,7 +127,7 @@ def validate_pointer_and_get_type(pointer: Dict) -> RangeType: @staticmethod def convert_range_from_str( - _range: Tuple[Union[int, str], Union[int, str]] + _range: Tuple[Union[int, str], Union[int, str]], ) -> Tuple[Union[int, str], Union[int, str]]: # XML does not support integers, so we have to convert from string (if possible) if not _range: diff --git a/src/spdx_tools/spdx3/bump_from_spdx2/relationship.py b/src/spdx_tools/spdx3/bump_from_spdx2/relationship.py index 918cbdafb..dd6909c49 100644 --- a/src/spdx_tools/spdx3/bump_from_spdx2/relationship.py +++ b/src/spdx_tools/spdx3/bump_from_spdx2/relationship.py @@ -218,7 +218,7 @@ def bump_relationship( def determine_completeness_and_to( - related_spdx_element_id: Union[str, SpdxNone, SpdxNoAssertion] + related_spdx_element_id: Union[str, SpdxNone, SpdxNoAssertion], ) -> Tuple[Optional[RelationshipCompleteness], List[str]]: if isinstance(related_spdx_element_id, SpdxNoAssertion): completeness = RelationshipCompleteness.NOASSERTION diff --git a/src/spdx_tools/spdx3/writer/console/__init__.py b/src/spdx_tools/spdx3/writer/console/__init__.py index 39bbda884..46eabf875 100644 --- a/src/spdx_tools/spdx3/writer/console/__init__.py +++ b/src/spdx_tools/spdx3/writer/console/__init__.py @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2023 spdx contributors # # SPDX-License-Identifier: Apache-2.0 -""" This is a temporary package to write the implemented model of spdx_tools.spdx3.0 to console. As soon as - serialization formats are properly defined this package can be deleted.""" +"""This is a temporary package to write the implemented model of spdx_tools.spdx3.0 to console. As soon as +serialization formats are properly defined this package can be deleted."""