From d3e982b95b483e5037531bd6d3a56a7e6e83e8d7 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Sat, 18 Oct 2025 06:58:06 -0400 Subject: [PATCH] Python version upgrade Support for Python 3.9 has been removed, and support for Python 3.14 has been added. Since the minimum supported version is now 3.10, the code has been updated to use features introduced in that version. --- README.md | 2 +- changelog.d/+87dcfdc6.breaking.md | 3 +++ pyproject.toml | 9 ++++++--- src/jinjanator_plugin_format_xml/plugin.py | 8 ++++---- workflow-support/versions.json | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 changelog.d/+87dcfdc6.breaking.md diff --git a/README.md b/README.md index cf6b72d..18f42f9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Open Source Initiative Approved License logo [![CI](https://github.com/kpfleming/jinjanator-plugin-format-xml/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kpfleming/jinjanator-plugin-format-xml/actions/workflows/ci.yml) -[![Python](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/release/python-3920/) +[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/release/python-31019/) [![License - Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-9400d3.svg)](https://spdx.org/licenses/Apache-2.0.html) [![Code Style - Black](https://img.shields.io/badge/Code%20Style-Black-000000.svg)](https://github.com/psf/black) [![Types - Mypy](https://img.shields.io/badge/Types-Mypy-blue.svg)](https://github.com/python/mypy) diff --git a/changelog.d/+87dcfdc6.breaking.md b/changelog.d/+87dcfdc6.breaking.md new file mode 100644 index 0000000..896fdd3 --- /dev/null +++ b/changelog.d/+87dcfdc6.breaking.md @@ -0,0 +1,3 @@ +Support for Python 3.9 has been removed, and support for Python 3.14 +has been added. Since the minimum supported version is now 3.10, the +code has been updated to use features introduced in that version. diff --git a/pyproject.toml b/pyproject.toml index 6a26040..98583a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ license = { text = "Apache-2.0" } authors = [ { name = "Kevin P. Fleming", email = "jinjanator@kevin.km6g.us" }, ] -requires-python = ">=3.9" +requires-python = ">=3.10" classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", @@ -22,11 +22,11 @@ classifiers = [ "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", - "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", "Typing :: Typed", ] dynamic = [ @@ -209,6 +209,9 @@ lint.unfixable = [ lint.isort.lines-after-imports = 2 lint.isort.lines-between-types = 1 +[tool.pyproject-fmt] +max_supported_python = "3.14" + [tool.pytest.ini_options] minversion = "6.0" xfail_strict = true @@ -264,7 +267,7 @@ name = "Fixes" showcontent = true [tool.mypy] -python_version = 3.9 +python_version = "3.10" namespace_packages = true explicit_package_bases = true check_untyped_defs = true diff --git a/src/jinjanator_plugin_format_xml/plugin.py b/src/jinjanator_plugin_format_xml/plugin.py index ed0ab41..45aefe0 100644 --- a/src/jinjanator_plugin_format_xml/plugin.py +++ b/src/jinjanator_plugin_format_xml/plugin.py @@ -1,5 +1,5 @@ from collections.abc import Iterable, Mapping -from typing import Any, Optional +from typing import Any import xmltodict @@ -11,10 +11,10 @@ class XMLFormat: name = "xml" - suffixes: Optional[Iterable[str]] = ".xml" - option_names: Optional[Iterable[str]] = "process-namespaces" + suffixes: Iterable[str] | None = ".xml" + option_names: Iterable[str] | None = "process-namespaces" - def __init__(self, options: Optional[Iterable[str]]) -> None: + def __init__(self, options: Iterable[str] | None) -> None: self.process_namespaces = False if options: for _option in options: diff --git a/workflow-support/versions.json b/workflow-support/versions.json index 6f1e258..582a602 100644 --- a/workflow-support/versions.json +++ b/workflow-support/versions.json @@ -1 +1 @@ -versions={"python": ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]} +versions={"python": ["3.10", "3.11", "3.12", "3.13", "3.14"]}