Skip to content

feat!: adopt Python 3.13 as minimum supported version#61

Merged
jimisola merged 2 commits intomainfrom
feat/python-3-13
Mar 1, 2026
Merged

feat!: adopt Python 3.13 as minimum supported version#61
jimisola merged 2 commits intomainfrom
feat/python-3-13

Conversation

@jimisola
Copy link
Member

@jimisola jimisola commented Feb 28, 2026

Summary

  • Drop support for Python 3.10–3.12; require Python >= 3.13
  • Adopt Python 3.13 type system features throughout the codebase

Note: This PR is stacked on top of #60. The base branch will update to main automatically once #60 is merged.

Breaking change

requires-python bumped from >=3.10 to >=3.13. Users on Python 3.10, 3.11, or 3.12 will no longer be able to install this package.

Changes

  • pyproject.toml: requires-python = ">=3.13", black target py313
  • .python-version: 3.13 (minor only — pyenv resolves to latest 3.13.x)
  • README.md: add Requirements section noting Python >= 3.13
  • decorators.py: generic function syntax [T: Callable] (PEP 695) — type checkers now preserve the decorated callable's type
  • decorator_processor.py:
    • DecoratorInfo, ElementResult TypedDicts with ReadOnly fields (PEP 705, new in 3.13) — result dicts are built once and never mutated
    • FormattedEntry, RequirementAnnotations, FormattedData TypedDicts for format_results return type
    • type Results = list[ElementResult] alias (PEP 695)

Base automatically changed from fix/bug-fixes-and-tests to main March 1, 2026 10:09
@jimisola jimisola self-assigned this Mar 1, 2026
@jimisola
Copy link
Member Author

jimisola commented Mar 1, 2026

@copilot look at src/reqstool_python_decorators/processors/decorator_processor.py and the proposed change on line #130 with split. Is that correct?

Copy link
Contributor

Copilot AI commented Mar 1, 2026

@jimisola I've opened a new pull request, #63, to work on those changes. Once the pull request is ready, I'll request review from you.

jimisola added 2 commits March 1, 2026 11:20
- Bump requires-python to >=3.13 (drops 3.10–3.12 support)
- Add .python-version pinned to 3.13.11 via pyenv
- Update black target-version to py313
- Add README Requirements section noting Python >= 3.13
- decorators.py: use generic function syntax [T: Callable] (PEP 695)
  so type checkers preserve the decorated callable's type
- decorator_processor.py: add DecoratorInfo, ElementResult TypedDicts
  with ReadOnly fields (PEP 705, typing.ReadOnly new in 3.13); add
  FormattedEntry/RequirementAnnotations/FormattedData TypedDicts for
  format_results return type; add `type Results` alias (PEP 695)
@jimisola jimisola merged commit 57dfcac into main Mar 1, 2026
9 checks passed
@jimisola jimisola deleted the feat/python-3-13 branch March 1, 2026 10:24
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.

2 participants