Skip to content

feat(python): Toolium is ending support for Python 3.10 - #484

Merged
rgonalo merged 5 commits into
Telefonica:masterfrom
Rcatala18:feat/deprecate-python-310-version
Oct 29, 2026
Merged

rgonalo merged 5 commits into
Telefonica:masterfrom
Rcatala18:feat/deprecate-python-310-version

Conversation

@Rcatala18

Copy link
Copy Markdown
Contributor

Goal

Toolium is ending support for Python 3.10

Summary

This PR removes support for Python 3.10. From this version on, Toolium requires Python 3.11 or later. It follows the same approach used when Python 3.9 support was removed (#440).

The changes are applied on top of master after #483 (Python 3.14 support), which already centralized the CI Python versions in a single job.

Changes

Configuration and packaging (pyproject.toml)

  • requires-python changes from >=3.10 to >=3.11.
  • The Programming Language :: Python :: 3.10 classifier is removed.
  • The ruff target-version changes from py310 to py311.

CI (.github/workflows/ci.yml)

  • 3.10 is removed from the list in the python-versions job. The matrix is now 3.11, 3.12, 3.13 and 3.14, and every job that uses it (tests and examples-*) inherits the change.

Code

  • toolium/test_cases.py: the tearDown branch specific to Python < 3.11 (self._outcome.errors) is removed, together with the get_error_message_from_exception import, which is no longer used. Only the self._outcome.result.failures path remains.
  • toolium/utils/dataset.py and toolium/test/utils/test_dataset_replace_param.py: datetime.timezone.utc is replaced by datetime.UTC (ruff rule UP017 with the new target). This is a mechanical, equivalent change: 31 occurrences applied with ruff check --fix.

Documentation

  • README.rst: the Getting Started section nowres Python 3.11 or later.
  • CHANGELOG.rst: new entry under v3.8.5.

What does not change

  • requirements*.txt and docs/requirements.txt: no dependency had a pin or marker tied to Python 3.10.
  • .readthedocs.yaml: it already uses Python 3.1
    toolium/ (behave, pageelements, etc.): it was reviewed and contains no code specific to Python 3.10.

Impact

This is a breaking change for Python 3.10 users: pip install toolium will no longer resolve this version on a 3.10 interpreter. Anyone who needs 3.10 must stay on the previous release.

Testing

  • ruff check . and ruff format --check . pass with the py311 target.
  • On Python 3.11, 688 tests pass (pytest toolium/test), excluding the toolium/test/utils/ai_utils folder. Those tests, and the runs on Python 3.12 to 3.14, are left to CI.
  • All 110 modules in toolium/ parse without errors or warnings on Python 3.11, 3.12, 3.13 and 3.14.
  • The workflow could not be validated locally, because it only runs on pull_request. The examples-* jobs will be verified in this PR.

Note for maintainers

If the branch protection rules for master require checks from the Python 3.10 matrix (for example tests (3.10) or behave tests results (3.10)), they must be removed from the required checks. Otherwise they will stay pending indefinitely.

@rgonalo
rgonalo merged commit abed2fc into Telefonica:master Oct 29, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants