Tue Aug 23 09:35:23 2022 UTC ()
py-sanic: updated to 22.6.2

Version 22.6.0

Features

Introduce HTTP/3 and autogeneration of TLS certificates in DEBUG mode
�汨カ EARLY RELEASE FEATURE: Serving Sanic over HTTP/3 is an early release feature. It does not yet fully cover the HTTP/3 spec, but instead aims for feature parity with Sanic窶冱 existing HTTP/1.1 server. Websockets, WebTransport, push responses are examples of some features not yet implemented.
�沒ヲ EXTRA REQUIREMENT: Not all HTTP clients are capable of interfacing with HTTP/3 servers. You may need to install a HTTP/3 capable client.
�沒ヲ EXTRA REQUIREMENT: In order to use TLS autogeneration, you must install either mkcert or trustme.
Add message to task.cancel
Add exception aliases for more consistent naming with standard HTTP response types (BadRequest, MethodNotAllowed, RangeNotSatisfiable)
Expose ASGI scope as a property on the Request object
Easier access to websocket class for annotation: from sanic import Websocket
New API for reading form values with options: Request.get_form
Add custom loads function
Improved API to support setting cache control headers
Move verbosity filtering to logger
Expose getter for current request using Request.get_current()

Bugfixes

Fix to allow running with pythonw.exe or places where there is no sys.stdout
Trigger http.lifecycle.request signal in ASGI mode
Resolve typing of stacked route definitions
Properly catch websocket CancelledError in websocket handler in Python 3.7

Deprecations and Removals

v22.6 deprecations and changes
Optional application registry
Execution of custom handlers after some part of response was sent
Configuring fallback handlers on the ErrorHandler
Custom LOGO setting
sanic.response.stream
AsyncioServer.init


(adam)
diff -r1.28 -r1.29 pkgsrc/www/py-sanic/Makefile
diff -r1.13 -r1.14 pkgsrc/www/py-sanic/PLIST
diff -r1.24 -r1.25 pkgsrc/www/py-sanic/distinfo
diff -r0 -r1.13 pkgsrc/www/py-sanic/patches/patch-setup.py

cvs diff -r1.28 -r1.29 pkgsrc/www/py-sanic/Makefile (expand / switch to unified diff)

--- pkgsrc/www/py-sanic/Makefile 2022/05/18 13:19:16 1.28
+++ pkgsrc/www/py-sanic/Makefile 2022/08/23 09:35:22 1.29
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.28 2022/05/18 13:19:16 adam Exp $ 1# $NetBSD: Makefile,v 1.29 2022/08/23 09:35:22 adam Exp $
2 2
3DISTNAME= sanic-22.3.2 3DISTNAME= sanic-22.6.2
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
5CATEGORIES= www python 5CATEGORIES= www python
6MASTER_SITES= ${MASTER_SITE_PYPI:=s/sanic/} 6MASTER_SITES= ${MASTER_SITE_PYPI:=s/sanic/}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://github.com/sanic-org/sanic 9HOMEPAGE= https://github.com/sanic-org/sanic
10COMMENT= Microframework based on uvloop, httptools, and learnings of flask 10COMMENT= Microframework based on uvloop, httptools, and learnings of flask
11LICENSE= mit AND apache-2.0 11LICENSE= mit AND apache-2.0
12 12
13DEPENDS+= ${PYPKGPREFIX}-aiofiles>=0.6.0:../../devel/py-aiofiles 13DEPENDS+= ${PYPKGPREFIX}-aiofiles>=0.6.0:../../devel/py-aiofiles
14DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools 14DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools
15DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict 15DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict
16DEPENDS+= ${PYPKGPREFIX}-sanic-routing>=22.3.0:../../www/py-sanic-routing 16DEPENDS+= ${PYPKGPREFIX}-sanic-routing>=22.3.0:../../www/py-sanic-routing

cvs diff -r1.13 -r1.14 pkgsrc/www/py-sanic/PLIST (expand / switch to unified diff)

--- pkgsrc/www/py-sanic/PLIST 2022/04/26 12:36:31 1.13
+++ pkgsrc/www/py-sanic/PLIST 2022/08/23 09:35:22 1.14
@@ -1,45 +1,51 @@ @@ -1,45 +1,51 @@
1@comment $NetBSD: PLIST,v 1.13 2022/04/26 12:36:31 adam Exp $ 1@comment $NetBSD: PLIST,v 1.14 2022/08/23 09:35:22 adam Exp $
2bin/sanic-${PYVERSSUFFIX} 2bin/sanic-${PYVERSSUFFIX}
3${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 3${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
4${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 4${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
5${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 5${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
6${PYSITELIB}/${EGG_INFODIR}/entry_points.txt 6${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
7${PYSITELIB}/${EGG_INFODIR}/requires.txt 7${PYSITELIB}/${EGG_INFODIR}/requires.txt
8${PYSITELIB}/${EGG_INFODIR}/top_level.txt 8${PYSITELIB}/${EGG_INFODIR}/top_level.txt
9${PYSITELIB}/sanic/__init__.py 9${PYSITELIB}/sanic/__init__.py
10${PYSITELIB}/sanic/__init__.pyc 10${PYSITELIB}/sanic/__init__.pyc
11${PYSITELIB}/sanic/__init__.pyo 11${PYSITELIB}/sanic/__init__.pyo
12${PYSITELIB}/sanic/__main__.py 12${PYSITELIB}/sanic/__main__.py
13${PYSITELIB}/sanic/__main__.pyc 13${PYSITELIB}/sanic/__main__.pyc
14${PYSITELIB}/sanic/__main__.pyo 14${PYSITELIB}/sanic/__main__.pyo
15${PYSITELIB}/sanic/__version__.py 15${PYSITELIB}/sanic/__version__.py
16${PYSITELIB}/sanic/__version__.pyc 16${PYSITELIB}/sanic/__version__.pyc
17${PYSITELIB}/sanic/__version__.pyo 17${PYSITELIB}/sanic/__version__.pyo
18${PYSITELIB}/sanic/app.py 18${PYSITELIB}/sanic/app.py
19${PYSITELIB}/sanic/app.pyc 19${PYSITELIB}/sanic/app.pyc
20${PYSITELIB}/sanic/app.pyo 20${PYSITELIB}/sanic/app.pyo
21${PYSITELIB}/sanic/application/__init__.py 21${PYSITELIB}/sanic/application/__init__.py
22${PYSITELIB}/sanic/application/__init__.pyc 22${PYSITELIB}/sanic/application/__init__.pyc
23${PYSITELIB}/sanic/application/__init__.pyo 23${PYSITELIB}/sanic/application/__init__.pyo
 24${PYSITELIB}/sanic/application/constants.py
 25${PYSITELIB}/sanic/application/constants.pyc
 26${PYSITELIB}/sanic/application/constants.pyo
24${PYSITELIB}/sanic/application/ext.py 27${PYSITELIB}/sanic/application/ext.py
25${PYSITELIB}/sanic/application/ext.pyc 28${PYSITELIB}/sanic/application/ext.pyc
26${PYSITELIB}/sanic/application/ext.pyo 29${PYSITELIB}/sanic/application/ext.pyo
27${PYSITELIB}/sanic/application/logo.py 30${PYSITELIB}/sanic/application/logo.py
28${PYSITELIB}/sanic/application/logo.pyc 31${PYSITELIB}/sanic/application/logo.pyc
29${PYSITELIB}/sanic/application/logo.pyo 32${PYSITELIB}/sanic/application/logo.pyo
30${PYSITELIB}/sanic/application/motd.py 33${PYSITELIB}/sanic/application/motd.py
31${PYSITELIB}/sanic/application/motd.pyc 34${PYSITELIB}/sanic/application/motd.pyc
32${PYSITELIB}/sanic/application/motd.pyo 35${PYSITELIB}/sanic/application/motd.pyo
 36${PYSITELIB}/sanic/application/spinner.py
 37${PYSITELIB}/sanic/application/spinner.pyc
 38${PYSITELIB}/sanic/application/spinner.pyo
33${PYSITELIB}/sanic/application/state.py 39${PYSITELIB}/sanic/application/state.py
34${PYSITELIB}/sanic/application/state.pyc 40${PYSITELIB}/sanic/application/state.pyc
35${PYSITELIB}/sanic/application/state.pyo 41${PYSITELIB}/sanic/application/state.pyo
36${PYSITELIB}/sanic/asgi.py 42${PYSITELIB}/sanic/asgi.py
37${PYSITELIB}/sanic/asgi.pyc 43${PYSITELIB}/sanic/asgi.pyc
38${PYSITELIB}/sanic/asgi.pyo 44${PYSITELIB}/sanic/asgi.pyo
39${PYSITELIB}/sanic/base/__init__.py 45${PYSITELIB}/sanic/base/__init__.py
40${PYSITELIB}/sanic/base/__init__.pyc 46${PYSITELIB}/sanic/base/__init__.pyc
41${PYSITELIB}/sanic/base/__init__.pyo 47${PYSITELIB}/sanic/base/__init__.pyo
42${PYSITELIB}/sanic/base/meta.py 48${PYSITELIB}/sanic/base/meta.py
43${PYSITELIB}/sanic/base/meta.pyc 49${PYSITELIB}/sanic/base/meta.pyc
44${PYSITELIB}/sanic/base/meta.pyo 50${PYSITELIB}/sanic/base/meta.pyo
45${PYSITELIB}/sanic/base/root.py 51${PYSITELIB}/sanic/base/root.py
@@ -77,29 +83,50 @@ ${PYSITELIB}/sanic/errorpages.pyc @@ -77,29 +83,50 @@ ${PYSITELIB}/sanic/errorpages.pyc
77${PYSITELIB}/sanic/errorpages.pyo 83${PYSITELIB}/sanic/errorpages.pyo
78${PYSITELIB}/sanic/exceptions.py 84${PYSITELIB}/sanic/exceptions.py
79${PYSITELIB}/sanic/exceptions.pyc 85${PYSITELIB}/sanic/exceptions.pyc
80${PYSITELIB}/sanic/exceptions.pyo 86${PYSITELIB}/sanic/exceptions.pyo
81${PYSITELIB}/sanic/handlers.py 87${PYSITELIB}/sanic/handlers.py
82${PYSITELIB}/sanic/handlers.pyc 88${PYSITELIB}/sanic/handlers.pyc
83${PYSITELIB}/sanic/handlers.pyo 89${PYSITELIB}/sanic/handlers.pyo
84${PYSITELIB}/sanic/headers.py 90${PYSITELIB}/sanic/headers.py
85${PYSITELIB}/sanic/headers.pyc 91${PYSITELIB}/sanic/headers.pyc
86${PYSITELIB}/sanic/headers.pyo 92${PYSITELIB}/sanic/headers.pyo
87${PYSITELIB}/sanic/helpers.py 93${PYSITELIB}/sanic/helpers.py
88${PYSITELIB}/sanic/helpers.pyc 94${PYSITELIB}/sanic/helpers.pyc
89${PYSITELIB}/sanic/helpers.pyo 95${PYSITELIB}/sanic/helpers.pyo
90${PYSITELIB}/sanic/http.py 96${PYSITELIB}/sanic/http/__init__.py
91${PYSITELIB}/sanic/http.pyc 97${PYSITELIB}/sanic/http/__init__.pyc
92${PYSITELIB}/sanic/http.pyo 98${PYSITELIB}/sanic/http/__init__.pyo
 99${PYSITELIB}/sanic/http/constants.py
 100${PYSITELIB}/sanic/http/constants.pyc
 101${PYSITELIB}/sanic/http/constants.pyo
 102${PYSITELIB}/sanic/http/http1.py
 103${PYSITELIB}/sanic/http/http1.pyc
 104${PYSITELIB}/sanic/http/http1.pyo
 105${PYSITELIB}/sanic/http/http3.py
 106${PYSITELIB}/sanic/http/http3.pyc
 107${PYSITELIB}/sanic/http/http3.pyo
 108${PYSITELIB}/sanic/http/stream.py
 109${PYSITELIB}/sanic/http/stream.pyc
 110${PYSITELIB}/sanic/http/stream.pyo
 111${PYSITELIB}/sanic/http/tls/__init__.py
 112${PYSITELIB}/sanic/http/tls/__init__.pyc
 113${PYSITELIB}/sanic/http/tls/__init__.pyo
 114${PYSITELIB}/sanic/http/tls/context.py
 115${PYSITELIB}/sanic/http/tls/context.pyc
 116${PYSITELIB}/sanic/http/tls/context.pyo
 117${PYSITELIB}/sanic/http/tls/creators.py
 118${PYSITELIB}/sanic/http/tls/creators.pyc
 119${PYSITELIB}/sanic/http/tls/creators.pyo
93${PYSITELIB}/sanic/log.py 120${PYSITELIB}/sanic/log.py
94${PYSITELIB}/sanic/log.pyc 121${PYSITELIB}/sanic/log.pyc
95${PYSITELIB}/sanic/log.pyo 122${PYSITELIB}/sanic/log.pyo
96${PYSITELIB}/sanic/mixins/__init__.py 123${PYSITELIB}/sanic/mixins/__init__.py
97${PYSITELIB}/sanic/mixins/__init__.pyc 124${PYSITELIB}/sanic/mixins/__init__.pyc
98${PYSITELIB}/sanic/mixins/__init__.pyo 125${PYSITELIB}/sanic/mixins/__init__.pyo
99${PYSITELIB}/sanic/mixins/exceptions.py 126${PYSITELIB}/sanic/mixins/exceptions.py
100${PYSITELIB}/sanic/mixins/exceptions.pyc 127${PYSITELIB}/sanic/mixins/exceptions.pyc
101${PYSITELIB}/sanic/mixins/exceptions.pyo 128${PYSITELIB}/sanic/mixins/exceptions.pyo
102${PYSITELIB}/sanic/mixins/listeners.py 129${PYSITELIB}/sanic/mixins/listeners.py
103${PYSITELIB}/sanic/mixins/listeners.pyc 130${PYSITELIB}/sanic/mixins/listeners.pyc
104${PYSITELIB}/sanic/mixins/listeners.pyo 131${PYSITELIB}/sanic/mixins/listeners.pyo
105${PYSITELIB}/sanic/mixins/middleware.py 132${PYSITELIB}/sanic/mixins/middleware.py
@@ -186,38 +213,38 @@ ${PYSITELIB}/sanic/server/websockets/con @@ -186,38 +213,38 @@ ${PYSITELIB}/sanic/server/websockets/con
186${PYSITELIB}/sanic/server/websockets/connection.pyo 213${PYSITELIB}/sanic/server/websockets/connection.pyo
187${PYSITELIB}/sanic/server/websockets/frame.py 214${PYSITELIB}/sanic/server/websockets/frame.py
188${PYSITELIB}/sanic/server/websockets/frame.pyc 215${PYSITELIB}/sanic/server/websockets/frame.pyc
189${PYSITELIB}/sanic/server/websockets/frame.pyo 216${PYSITELIB}/sanic/server/websockets/frame.pyo
190${PYSITELIB}/sanic/server/websockets/impl.py 217${PYSITELIB}/sanic/server/websockets/impl.py
191${PYSITELIB}/sanic/server/websockets/impl.pyc 218${PYSITELIB}/sanic/server/websockets/impl.pyc
192${PYSITELIB}/sanic/server/websockets/impl.pyo 219${PYSITELIB}/sanic/server/websockets/impl.pyo
193${PYSITELIB}/sanic/signals.py 220${PYSITELIB}/sanic/signals.py
194${PYSITELIB}/sanic/signals.pyc 221${PYSITELIB}/sanic/signals.pyc
195${PYSITELIB}/sanic/signals.pyo 222${PYSITELIB}/sanic/signals.pyo
196${PYSITELIB}/sanic/simple.py 223${PYSITELIB}/sanic/simple.py
197${PYSITELIB}/sanic/simple.pyc 224${PYSITELIB}/sanic/simple.pyc
198${PYSITELIB}/sanic/simple.pyo 225${PYSITELIB}/sanic/simple.pyo
199${PYSITELIB}/sanic/tls.py 
200${PYSITELIB}/sanic/tls.pyc 
201${PYSITELIB}/sanic/tls.pyo 
202${PYSITELIB}/sanic/touchup/__init__.py 226${PYSITELIB}/sanic/touchup/__init__.py
203${PYSITELIB}/sanic/touchup/__init__.pyc 227${PYSITELIB}/sanic/touchup/__init__.pyc
204${PYSITELIB}/sanic/touchup/__init__.pyo 228${PYSITELIB}/sanic/touchup/__init__.pyo
205${PYSITELIB}/sanic/touchup/meta.py 229${PYSITELIB}/sanic/touchup/meta.py
206${PYSITELIB}/sanic/touchup/meta.pyc 230${PYSITELIB}/sanic/touchup/meta.pyc
207${PYSITELIB}/sanic/touchup/meta.pyo 231${PYSITELIB}/sanic/touchup/meta.pyo
208${PYSITELIB}/sanic/touchup/schemes/__init__.py 232${PYSITELIB}/sanic/touchup/schemes/__init__.py
209${PYSITELIB}/sanic/touchup/schemes/__init__.pyc 233${PYSITELIB}/sanic/touchup/schemes/__init__.pyc
210${PYSITELIB}/sanic/touchup/schemes/__init__.pyo 234${PYSITELIB}/sanic/touchup/schemes/__init__.pyo
 235${PYSITELIB}/sanic/touchup/schemes/altsvc.py
 236${PYSITELIB}/sanic/touchup/schemes/altsvc.pyc
 237${PYSITELIB}/sanic/touchup/schemes/altsvc.pyo
211${PYSITELIB}/sanic/touchup/schemes/base.py 238${PYSITELIB}/sanic/touchup/schemes/base.py
212${PYSITELIB}/sanic/touchup/schemes/base.pyc 239${PYSITELIB}/sanic/touchup/schemes/base.pyc
213${PYSITELIB}/sanic/touchup/schemes/base.pyo 240${PYSITELIB}/sanic/touchup/schemes/base.pyo
214${PYSITELIB}/sanic/touchup/schemes/ode.py 241${PYSITELIB}/sanic/touchup/schemes/ode.py
215${PYSITELIB}/sanic/touchup/schemes/ode.pyc 242${PYSITELIB}/sanic/touchup/schemes/ode.pyc
216${PYSITELIB}/sanic/touchup/schemes/ode.pyo 243${PYSITELIB}/sanic/touchup/schemes/ode.pyo
217${PYSITELIB}/sanic/touchup/service.py 244${PYSITELIB}/sanic/touchup/service.py
218${PYSITELIB}/sanic/touchup/service.pyc 245${PYSITELIB}/sanic/touchup/service.pyc
219${PYSITELIB}/sanic/touchup/service.pyo 246${PYSITELIB}/sanic/touchup/service.pyo
220${PYSITELIB}/sanic/types/__init__.py 247${PYSITELIB}/sanic/types/__init__.py
221${PYSITELIB}/sanic/types/__init__.pyc 248${PYSITELIB}/sanic/types/__init__.pyc
222${PYSITELIB}/sanic/types/__init__.pyo 249${PYSITELIB}/sanic/types/__init__.pyo
223${PYSITELIB}/sanic/types/hashable_dict.py 250${PYSITELIB}/sanic/types/hashable_dict.py

cvs diff -r1.24 -r1.25 pkgsrc/www/py-sanic/distinfo (expand / switch to unified diff)

--- pkgsrc/www/py-sanic/distinfo 2022/05/18 13:19:16 1.24
+++ pkgsrc/www/py-sanic/distinfo 2022/08/23 09:35:22 1.25
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
1$NetBSD: distinfo,v 1.24 2022/05/18 13:19:16 adam Exp $ 1$NetBSD: distinfo,v 1.25 2022/08/23 09:35:22 adam Exp $
2 2
3BLAKE2s (sanic-22.3.2.tar.gz) = 748fcf317f9e0c0fe8d73255ba9497f6602fcb391102d5617d1d98269b087f22 3BLAKE2s (sanic-22.6.2.tar.gz) = d705d004d4e9ee97d19f3e97e705ae024c9e757123fccde9fc458ec841657653
4SHA512 (sanic-22.3.2.tar.gz) = 640e16d8d1b7f58ea9335a6dccc1a1bb9671c1e87065c9fa69291533fba4a2464b753f55abed02a1e484eb05fbe02065db18b5b3c5ed38399c8b0af2037fddba 4SHA512 (sanic-22.6.2.tar.gz) = 7e10fe2c3a9d1b6bcb6caad97db330a341c9bffbdbc5dbacdf8231653bdd818abb2eb5481f9b0d98d65dcabf9af252565445dde68200232808fb1805dab56c06
5Size (sanic-22.3.2.tar.gz) = 231479 bytes 5Size (sanic-22.6.2.tar.gz) = 247186 bytes
 6SHA1 (patch-setup.py) = 08eb9dae154977a800ae29f82bdac42240a649c6

File Added: pkgsrc/www/py-sanic/patches/Attic/patch-setup.py
$NetBSD: patch-setup.py,v 1.13 2022/08/23 09:35:23 adam Exp $

Do not install tests.
https://github.com/sanic-org/sanic/pull/2530/

--- setup.py.orig	2022-08-23 09:13:37.000000000 +0000
+++ setup.py
@@ -61,7 +61,7 @@ setup_kwargs = {
         "Build fast. Run fast."
     ),
     "long_description": long_description,
-    "packages": find_packages(),
+    "packages": find_packages(exclude=["tests", "tests.*"]),
     "package_data": {"sanic": ["py.typed"]},
     "platforms": "any",
     "python_requires": ">=3.7",