Add Python3.14 support, Increase minimum to Python3.12

This commit is contained in:
Griatch 2026-02-14 16:31:05 +01:00
parent c3b01d0aec
commit aa82f2f692
4 changed files with 27 additions and 27 deletions

View file

@ -2,8 +2,9 @@
## Main branch
- Dependency updates: Python 3.12, 3.13, 3.14 (dropping support for Python 3.11)
- Security dependency updates: Django >5.2.8 (<5.3), Django RestFramework 3.16
- [Feat][pull3599]: Make at_pre_cmd
- [Feat][pull3599]: Make `at_pre_cmd` testable in unit tests (blongden)
- [Fix]: API /openapi/setattribute endpoints were both POST and PUT, causing schema
errors; now changed to PUT only. (Griatch)
- [Fix][pull3799]: Fix typo in `basic_tc.py` contrib for beginner tutorial (Tharic99)

View file

@ -3,8 +3,8 @@
# when people upgrade outside regular channels). This file only supports lines of
# `value = number` and only specific names supported by the handler.
PYTHON_MIN = 3.11
PYTHON_MAX_TESTED = 3.13.100
PYTHON_MIN = 3.12
PYTHON_MAX_TESTED = 3.14.100
TWISTED_MIN = 24.11
DJANGO_MIN = 5.2.8
DJANGO_MAX_TESTED = 5.2.100

View file

@ -5,11 +5,10 @@ Building and world design commands
import re
import typing
import evennia
from django.conf import settings
from django.core.paginator import Paginator
from django.db.models import Max, Min, Q
import evennia
from evennia import InterruptCommand
from evennia.commands.cmdhandler import generate_cmdset_providers, get_and_merge_cmdsets
from evennia.locks.lockhandler import LockException
@ -4250,23 +4249,23 @@ class CmdSpawn(COMMAND_DEFAULT_CLASS):
# treat as string
eval_err = err
prototype = utils.to_str(inp)
finally:
# it's possible that the input was a prototype-key, in which case
# it's okay for the LITERAL_EVAL to fail. Only if the result does not
# match the expected type do we have a problem.
if not isinstance(prototype, expect):
if eval_err:
string = (
f"{inp}\n{eval_err}\n|RCritical Python syntax error in argument. Only"
" primitive Python structures are allowed. \nMake sure to use correct"
" Python syntax. Remember especially to put quotes around all strings"
" inside lists and dicts.|n For more advanced uses, embed funcparser"
" callables ($funcs) in the strings."
)
else:
string = f"Expected {expect}, got {type(prototype)}."
self.msg(string)
return
# validation - it's possible that the input was a prototype-key, in which case
# it's okay for the LITERAL_EVAL to fail. Only if the result does not
# match the expected type do we have a problem.
if not isinstance(prototype, expect):
if eval_err:
string = (
f"{inp}\n{eval_err}\n|RCritical Python syntax error in argument. Only"
" primitive Python structures are allowed. \nMake sure to use correct"
" Python syntax. Remember especially to put quotes around all strings"
" inside lists and dicts.|n For more advanced uses, embed funcparser"
" callables ($funcs) in the strings."
)
else:
string = f"Expected {expect}, got {type(prototype)}."
self.msg(string)
return
if expect == dict:
# an actual prototype. We need to make sure it's safe,

View file

@ -7,7 +7,7 @@ name = "evennia"
version = "5.0.1"
maintainers = [{ name = "Griatch", email = "griatch@gmail.com" }]
description = "A full-featured toolkit and server for text-based multiplayer games (MUDs, MU*, etc)."
requires-python = ">=3.11"
requires-python = ">=3.12"
readme = { file = "README.md", content-type = "text/markdown" }
license = { text = "BSD" }
keywords = [
@ -38,9 +38,9 @@ keywords = [
]
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: JavaScript",
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: BSD License",
@ -70,12 +70,12 @@ dependencies = [
"pytz >= 2022.6",
"djangorestframework >= 3.16, < 3.17",
"pyyaml >= 6.0",
"django-filter == 2.4",
"django-filter == 25.2",
"django-sekizai == 2.0.0",
"inflect >= 5.2.0",
"autobahn >= 20.7.1, < 21.0.0",
"lunr == 0.7.0.post1",
"simpleeval <= 1.0",
"simpleeval == 1.0.3",
"uritemplate == 4.1.1",
"tzdata >= 2022.6",
"inflection == 0.5.1",
@ -113,7 +113,7 @@ extra = [
"django-extensions >= 3.1.0",
# xyzroom contrib
"scipy == 1.15.1",
"scipy == 1.17.0",
# Git contrib
"gitpython >= 3.1.27",