Skip to content

Commit 547694c

Browse files
Update to Python 3.13+ support, focus on freethreaded version
- Change minimum Python version to 3.13 - Remove support for Python 3.10-3.12 and PyPy - Update CI matrix to test 3.13t, 3.14, 3.14t, 3.15.0-alpha.1 - Update classifiers to reflect supported versions - Upgrade code syntax with pyupgrade for 3.13+ - Update lint job to use Python 3.13 - Update AGENT.md documentation Amp-Thread-ID: https://ampcode.com/threads/T-df26d9ea-141e-401a-b305-46bb4870f559 Co-authored-by: Amp <[email protected]>
1 parent e9ccc12 commit 547694c

File tree

4 files changed

+8
-11
lines changed

4 files changed

+8
-11
lines changed

.github/workflows/pythonpackage.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
strategy:
2929
fail-fast: false
3030
matrix:
31-
python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13', '3.14', '3.14t', '3.15.0-alpha.1']
31+
python-version: ['3.13t', '3.14', '3.14t', '3.15.0-alpha.1']
3232
os: [
3333
ubuntu-latest,
3434
windows-latest,
@@ -98,10 +98,10 @@ jobs:
9898
with:
9999
persist-credentials: false
100100

101-
- name: Set up Python 3.12
101+
- name: Set up Python 3.13
102102
uses: actions/[email protected]
103103
with:
104-
python-version: '3.12'
104+
python-version: '3.13'
105105

106106
- name: Install uv
107107
uses: astral-sh/setup-uv@v6

AGENT.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- Clean artifacts: `make clean`
1010

1111
## Architecture
12-
- Main module: `json2xml/` with `json2xml.py` (main converter), `dicttoxml.py` (core conversion), `utils.py` (utilities)
12+
- Main module: `json2xml/` with `json2xml.py` (main converter), `dicttoxml.py` (core conversion), `utils.py` (utilities), `parallel.py` (parallel processing)
1313
- Core functionality: JSON to XML conversion via `Json2xml` class wrapping `dicttoxml`
1414
- Tests: `tests/` with test files following `test_*.py` pattern
1515

@@ -18,5 +18,5 @@
1818
- Use pytest (no unittest), all tests in `./tests/` with typing annotations
1919
- Import typing fixtures when TYPE_CHECKING: `CaptureFixture`, `FixtureRequest`, `LogCaptureFixture`, `MonkeyPatch`, `MockerFixture`
2020
- Ruff formatting: line length 119, ignores E501, F403, E701, F401
21-
- Python 3.10+ required, supports up to 3.14 (including 3.14t freethreaded)
21+
- Python 3.13+ required, supports up to 3.14 (including 3.13t, 3.14t freethreaded)
2222
- Dependencies: defusedxml, urllib3, xmltodict, pytest, pytest-cov

pyproject.toml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "json2xml"
77
version = "5.2.1" # Replace with the dynamic version if needed
88
description = "Simple Python Library to convert JSON to XML"
99
readme = "README.rst"
10-
requires-python = ">=3.10"
10+
requires-python = ">=3.13"
1111
license = { text = "Apache Software License 2.0" }
1212
keywords = ["json2xml"]
1313
authors = [
@@ -18,13 +18,9 @@ classifiers = [
1818
"Intended Audience :: Developers",
1919
"License :: OSI Approved :: Apache Software License",
2020
"Natural Language :: English",
21-
"Programming Language :: Python :: 3.10",
22-
"Programming Language :: Python :: 3.11",
23-
"Programming Language :: Python :: 3.12",
2421
"Programming Language :: Python :: 3.13",
2522
"Programming Language :: Python :: 3.14",
2623
"Programming Language :: Python :: Implementation :: CPython",
27-
"Programming Language :: Python :: Implementation :: PyPy",
2824
"Topic :: Software Development :: Libraries :: Python Modules"
2925
]
3026
dependencies = [

tests/test_parallel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Tests for parallel processing functionality."""
2-
from typing import TYPE_CHECKING, Any, Sequence, cast
2+
from typing import TYPE_CHECKING, Any, cast
3+
from collections.abc import Sequence
34

45
import pytest
56

0 commit comments

Comments
 (0)