8000 Add explicit support or Python 3.13 · pythonarcade/pytiled_parser@cf28bf5 · GitHub
[go: up one dir, main page]

Skip to content

Commit cf28bf5

Browse files
committed
Add explicit support or Python 3.13
1 parent 6d7ccd7 commit cf28bf5

File tree

4 files changed

+30
-42
lines changed

4 files changed

+30
-42
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
matrix:
1818
os: [ubuntu-latest]
19-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
19+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
2020
architecture: ['x64']
2121

2222
steps:

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [2.2.8] - UNRELEASED
88

9+
Add explicit support for 3.13, previous versions work on 3.13 but it was not explicitly labeled as supported or being tested by CI.
10+
911
Converts all file loading to use UTF-8 encoding by default. In most cases, all Tiled files will be exported from Tiled in UTF-8 encoding, however the python `open()` function uses the system default locale. The only case where Tiled would not have used UTF-8 is for JSON files when Tiled was compiled against Qt 5, which is only in some builds of Tiled from older systems. All XML files exported from Tiled will always be UTF-8. If someone happens to have a JSON file which was exported from Tiled on an encoding other than UTF-8, or for some other reason is in a different encoding. This can be switched using a new optional argument named `encoding` in the various public API `parse` functions such as `parse_map()`. This value is handed down through the pipeline of file loading in pytiled-parser, and will apply to every file loaded during the chain from this. This means that every file in a chain(for example, Map, Tileset, and Template File) must share the same encoding. This new argument is a string which is ultimately passed to the Python [open()](https://docs.python.org/3/library/functions.html#open) function. This change does introduce breaking changes in the underlying API which is not intended to be public facing, but if you are going deeper than the top level parse functions, you may need to adjust for this, as many of the underlying internal functions now have a mandatory encoding argument.
1012

1113
## [2.2.7] - 2024-10-03

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ integrate PyTiled Parser and [example code](https://api.arcade.academy/en/latest
1414

1515
## Supported Python Versions
1616

17-
pytiled-parser works on Python 3.6 - 3.12(and should continue to work on new versions). However we are not actively testing on Python 3.6 and 3.7 due to other development tooling not supporting them, however as long as it remains tenable to do so, we will support these versions and fix problems for them.
17+
pytiled-parser works on Python 3.6 - 3.13(and should continue to work on new versions). However we are not actively testing on Python 3.6 and 3.7 due to other development tooling not supporting them, however as long as it remains tenable to do so, we will support these versions and fix problems for them.
1818

1919
## Installation
2020

pyproject.toml

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,36 @@ version = "2.2.7"
44
description = "A library for parsing Tiled Map Editor maps and tilesets"
55
readme = "README.md"
66
authors = [
7-
{name="Benjamin Kirkbride", email="BenjaminKirkbride@gmail.com"},
8-
{name="Darren Eberly", email="Darren.Eberly@gmail.com"},
7+
{ name = "Benjamin Kirkbride", email = "BenjaminKirkbride@gmail.com" },
8+
{ name = "Darren Eberly", email = "Darren.Eberly@gmail.com" },
99
]
10-
maintainers = [
11-
{name="Darren Eberly", email="Darren.Eberly@gmail.com"}
12-
]
13-
license = {file = "LICENSE"}
10+
maintainers = [{ name = "Darren Eberly", email = "Darren.Eberly@gmail.com" }]
11+
license = { file = "LICENSE" }
1412
requires-python = ">=3.6"
1513
classifiers = [
16-
"Development Status :: 5 - Production/Stable",
17-
"Intended Audience :: Developers",
18-
"License :: OSI Approved :: MIT License",
19-
"Operating System :: OS Independent",
20-
"Programming Language :: Python",
21-
"Programming Language :: Python :: 3.6",
22-
"Programming Language :: Python :: 3.7",
23-
"Programming Language :: Python :: 3.8",
24-
"Programming Language :: Python :: 3.9",
25-
"Programming Language :: Python :: 3.10",
26-
"Programming Language :: Python :: 3.11",
27-
"Programming Language :: Python :: 3.12",
28-
"Programming Language :: Python :: Implementation :: CPython",
29-
"Topic :: Software Development :: Libraries :: Python Modules"
30-
]
31-
dependencies = [
32-
"attrs >= 18.2.0",
33-
"typing-extensions"
14+
"Development Status :: 5 - Production/Stable",
15+
"Intended Audience :: Developers",
16+
"License :: OSI Approved :: MIT License",
17+
"Operating System :: OS Independent",
18+
"Programming Language :: Python",
19+
"Programming Language :: Python :: 3.6",
20+
"Programming Language :: Python :: 3.7",
21+
"Programming Language :: Python :: 3.8",
22+
"Programming Language :: Python :: 3.9",
23+
"Programming Language :: Python :: 3.10",
24+
"Programming Language :: Python :: 3.11",
25+
"Programming Language :: Python :: 3.12",
26+
"Programming Language :: Python :: 3.13",
27+
"Programming Language :: Python :: Implementation :: CPython",
28+
"Topic :: Software Development :: Libraries :: Python Modules",
3429
]
30+
dependencies = ["attrs >= 18.2.0", "typing-extensions"]
3531

3632
[project.urls]
3733
homepage = "https://github.com/pythonarcade/pytiled_parser"
3834

3935
[project.optional-dependencies]
40-
zstd = [
41-
"zstd"
42-
]
36+
zstd = ["zstd"]
4337

4438
dev = [
4539
"pytest",
@@ -50,20 +44,12 @@ dev = [
5044
"sphinx",
5145
"sphinx-sitemap",
5246
"myst-parser",
53-
"furo"
47+
"furo",
5448
]
5549

56-
tests = [
57-
"pytest",
58-
"pytest-cov",
59-
"black",
60-
"ruff",
61-
"mypy"
62-
]
50+
tests = ["pytest", "pytest-cov", "black", "ruff", "mypy"]
6351

64-
build = [
65-
"build"
66-
]
52+
build = ["build"]
6753

6854
[tool.setuptools.packages.find]
6955
include = ["pytiled_parser", "pytiled_parser.*"]
@@ -82,7 +68,7 @@ branch = true
8268
show_missing = true
8369

8470
[tool.mypy]
85-
python_version = 3.11
71+
python_version = "3.13"
8672
warn_unused_configs = true
8773
warn_redundant_casts = true
8874
ignore_missing_imports = true
@@ -93,4 +79,4 @@ ignore_errors = true
9379

9480
[tool.ruff]
9581
exclude = ["__init__.py"]
96-
ignore = ["E501"]
82+
ignore = ["E501"]

0 commit comments

Comments
 (0)
0