From a8df8be76fb5c0f984104b676be66637da4b8dc5 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 8 Oct 2025 18:31:07 +0200 Subject: [PATCH 1/4] Add Python 3.14, drop 3.7 & 3.8 --- .github/workflows/test.yml | 6 ++---- setup.cfg | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6c82799..6bdef63 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,10 +10,6 @@ jobs: strategy: matrix: include: - - python-version: "3.7" - os: ubuntu-22.04 - - python-version: "3.8" - os: ubuntu-22.04 - python-version: "3.9" os: ubuntu-latest - python-version: "3.10" @@ -24,6 +20,8 @@ jobs: os: ubuntu-latest - python-version: "3.13" os: ubuntu-latest + - python-version: "3.14" + os: ubuntu-latest - python-version: "pypy3.9" os: windows-latest diff --git a/setup.cfg b/setup.cfg index 2ecc778..2a82fd7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,13 +13,12 @@ license_file = LICENSE classifiers = License :: OSI Approved :: MIT License Programming Language :: Python :: 3 - 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 Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.13 + Programming Language :: Python :: 3.14 Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: PyPy From 621b2da5b38064611a0dbc3e0c23bb0eed05e184 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 8 Oct 2025 18:34:20 +0200 Subject: [PATCH 2/4] Setuptools is not required anymore --- .github/workflows/test.yml | 4 ++-- setup.cfg | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6bdef63..f1b7efd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,11 +35,11 @@ jobs: - name: Install dependencies (Windows) if: runner.os == 'Windows' - run: pip install pytest pytest-cov python-coveralls coverage flake8 pydocstyle setuptools cryptography<44 + run: pip install pytest pytest-cov python-coveralls coverage flake8 pydocstyle cryptography<44 - name: Install dependencies (Ubuntu) if: runner.os == 'Linux' - run: pip install pytest pytest-cov python-coveralls coverage flake8 pydocstyle setuptools cryptography + run: pip install pytest pytest-cov python-coveralls coverage flake8 pydocstyle cryptography - name: Lint with flake8 run: | diff --git a/setup.cfg b/setup.cfg index 2a82fd7..f5fbbbc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -26,7 +26,6 @@ classifiers = packages = find: include_package_data = true test_suite = tests -setup_requires = setuptools install_requires = requests; cryptography tests_requires = pytest From 19044ee346c72b992246919bb61670065e787d8a Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 8 Oct 2025 18:43:18 +0200 Subject: [PATCH 3/4] Update link to FRITZ! API documentation --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 880f6d4..aa2217e 100644 --- a/README.rst +++ b/README.rst @@ -167,7 +167,7 @@ Add a new user: System -> FRITZ!Box-Benutzer References ---------- -- https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-HTTP-Interface.pdf +- https://fritz.support/resources/AHA-HTTP-Interface.pdf - https://github.com/DerMitch/fritzbox-smarthome From 1192ebf0fe43628656feaecb0b04b3ee27ea0796 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 8 Oct 2025 20:37:50 +0200 Subject: [PATCH 4/4] Remove workaround for older python versions --- pyfritzhome/__init__.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pyfritzhome/__init__.py b/pyfritzhome/__init__.py index 7070cd7..312fead 100644 --- a/pyfritzhome/__init__.py +++ b/pyfritzhome/__init__.py @@ -1,15 +1,13 @@ """Init file for pyfritzhome.""" -try: - from importlib.metadata import version - __version__ = version(__name__) -except ImportError: - __version__ = "dev" +from importlib.metadata import version from .errors import InvalidError, LoginError, NotLoggedInError from .fritzhome import Fritzhome from .fritzhomedevice import FritzhomeDevice +__version__ = version(__name__) + __all__ = ( "Fritzhome", "FritzhomeDevice",