From 2e41e783672597e2e0c7b2842b5934d879374028 Mon Sep 17 00:00:00 2001 From: Andriy Ivaneyko Date: Wed, 6 Dec 2023 18:59:13 -0500 Subject: [PATCH] Support for Python 3.12 #2836 --- .github/workflows/tests.yml | 1 + sanic/compat.py | 4 ++-- tox.ini | 7 ++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b071e7e4e3..531ca5d149 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -41,6 +41,7 @@ jobs: - { python-version: "3.10", tox-env: py310, max-attempts: 3 } - { python-version: "3.10", tox-env: py310-no-ext, max-attempts: 3 } - { python-version: "3.11", tox-env: py311, max-attempts: 3 } + - { python-version: "3.12", tox-env: py312, max-attempts: 3 } - { python-version: "3.11", tox-env: py311-no-ext, max-attempts: 3 } - { python-version: "3.8", tox-env: py38-no-ext, platform: windows-latest, ignore-errors: true } - { python-version: "3.9", tox-env: py39-no-ext, platform: windows-latest, ignore-errors: true } diff --git a/sanic/compat.py b/sanic/compat.py index 62a5df9536..d7695a3136 100644 --- a/sanic/compat.py +++ b/sanic/compat.py @@ -126,11 +126,11 @@ def __getattr__(self, key: str) -> str: if key.startswith("_"): return self.__getattribute__(key) key = key.rstrip("_").replace("_", "-") - return ",".join(self.getall(key, default=[])) + return ",".join(self.getall(key, [])) def get_all(self, key: str): """Convenience method mapped to ``getall()``.""" - return self.getall(key, default=[]) + return self.getall(key, []) use_trio = sys.argv[0].endswith("hypercorn") and "trio" in sys.argv diff --git a/tox.ini b/tox.ini index 43ba40dd7e..487b4aeef8 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,15 @@ [tox] -envlist = py38, py39, py310, py311, pyNightly, pypy310, {py38,py39,py310,py311,pyNightly,pypy310}-no-ext, lint, check, security, docs, type-checking +envlist = py38, py39, py310, py311, py312, pyNightly, pypy310, {py38,py39,py310,py311,py312,pyNightly,pypy310}-no-ext, lint, check, security, docs, type-checking [testenv] usedevelop = true setenv = - {py38,py39,py310,py311,pyNightly}-no-ext: SANIC_NO_UJSON=1 - {py38,py39,py310,py311,pyNightly}-no-ext: SANIC_NO_UVLOOP=1 + {py38,py39,py310,py311,py312,pyNightly}-no-ext: SANIC_NO_UJSON=1 + {py38,py39,py310,py311,py312,pyNightly}-no-ext: SANIC_NO_UVLOOP=1 extras = test, http3 deps = httpx>=0.23 + setuptools allowlist_externals = pytest coverage