From 254b63eb4bf04b788b7037007915d5e0f288279d Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Fri, 26 Sep 2025 15:43:50 +0200 Subject: [PATCH] Drop Python 3.9 --- .github/workflows/build.yml | 2 +- connect/eaas/runner/helpers.py | 8 +------- poetry.lock | 9 +++------ pyproject.toml | 3 +-- tests/test_helpers.py | 12 +++++++----- 5 files changed, 13 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7d58cc5..5a65014 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 with: diff --git a/connect/eaas/runner/helpers.py b/connect/eaas/runner/helpers.py index 385a8b4..f504d9e 100644 --- a/connect/eaas/runner/helpers.py +++ b/connect/eaas/runner/helpers.py @@ -225,13 +225,7 @@ def notify_process_restarted(process_type): def iter_entry_points(group, name=None): eps = entry_points() - - # Support for Python 3.10+ where .select() is available - if hasattr(eps, 'select'): - matches = eps.select(group=group) - else: - # Older versions (pre-3.10) - matches = eps.get(group, []) + matches = eps.select(group=group) for ep in matches: if name is None or ep.name == name: diff --git a/poetry.lock b/poetry.lock index 8257426..3572acb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "anvil-uplink" @@ -1326,7 +1326,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} pytest = "*" [[package]] @@ -1539,7 +1538,6 @@ files = [ [package.dependencies] anyio = ">=3.6.2,<5" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] @@ -1608,7 +1606,6 @@ files = [ ] [package.dependencies] -importlib_metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} typing_extensions = ">=4.10.0" [package.extras] @@ -1915,5 +1912,5 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" -python-versions = ">=3.9,<4" -content-hash = "00f90793c5e404870c78da651f788d913726bc59a622cb6dc0cb15732d5e8e6e" +python-versions = ">=3.10,<3.13" +content-hash = "3d0778daf4fa5840a32d96af1013b3958cd2587831325795292377801eb9fd3a" diff --git a/pyproject.toml b/pyproject.toml index 4caf990..96977ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,6 @@ classifiers = [ "Environment :: Console", "Operating System :: OS Independent", "Intended Audience :: Developers", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -27,7 +26,7 @@ classifiers = [ cextrun = 'connect.eaas.runner.main:main' [tool.poetry.dependencies] -python = ">=3.9,<4" +python = ">=3.10,<3.13" websockets = "13.*" connect-openapi-client = ">=29.0,<38" logzio-python-handler = "^4.1.4" diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 875df7a..c0c9be6 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -6,6 +6,10 @@ import logging import os import subprocess +from importlib.metadata import ( + EntryPoint, + EntryPoints, +) import pytest from freezegun import ( @@ -491,13 +495,11 @@ def test_notify_process_restarted_client_error(mocker, responses, caplog): def test_iter_entry_points(mocker): - ep1 = mocker.MagicMock() - ep1.name = 'ep1' - ep2 = mocker.MagicMock() - ep2.name = 'ep2' + ep1 = EntryPoint('ep1', 'value1', group='ep.group') + ep2 = EntryPoint('ep2', 'value2', group='ep.group') mocker.patch( 'connect.eaas.runner.helpers.entry_points', - return_value={'ep.group': [ep1, ep2]}, + return_value=EntryPoints([ep1, ep2]), ) assert list(iter_entry_points('ep.group', name='ep1')) == [ep1]