Tue Apr 26 12:36:32 2022 UTC ()
py-sanic: updated to 22.3.1

Version 22.3.1

Add fall back for Windows even loop fetching

Version 22.3.0

Features

* API for multi-application server
�泅ィ BREAKING CHANGE: The old sanic.worker.GunicornWorker has been removed. To run Sanic with gunicorn, you should use it thru uvicorn as described in their docs.
�洫� SIDE EFFECT: Named background tasks are now supported, even in Python 3.7
* Parse Authorization header as Request.credentials
* Add config option to skip Touchup step in application startup
* Updates to CLI help messaging
* Downgrade warnings to backwater debug messages
* Allow for multidict v0.6
* Upgrade CLI catching for alternative application run types
* Conditionally inject CLI arguments into factory
* Add new start and stop event listeners to reloader process
* Remove loop as required listener arg
* Better exception for bad URL parsing
sanic-routing#47 Add a new extention parameter type: <file:ext>, <file:ext=jpg>, <file:ext=jpg|png|gif|svg>, <file=int:ext>, <file=int:ext=jpg|png|gif|svg>, <file=float:ext=tar.gz>
�汨カ BETA FEATURE: This feature will not work with path type matching, and is being released as a beta feature only.
sanic-routing#57 Change register_pattern to accept a str or Pattern
sanic-routing#58 Default matching on non-empty strings only, and new strorempty pattern type
�泅ィ BREAKING CHANGE: Previously a route with a dynamic string parameter (/<foo> or /<foo:str>) would match on any string, including empty strings. It will now only match a non-empty string. To retain the old behavior, you should use the new parameter type: /<foo:strorempty>.

Bugfixes

* Remove error_logger on websockets
* Fix newly assigned None in task registry
sanic-routing#52 Add type casting to regex route matching
sanic-routing#60 Add requirements check on regex routes (this resolves, for example, multiple static directories with differing host values)

Deprecations and Removals

* 22.3 Deprecations and changes

debug=True and --debug do NOT automatically run auto_reload
Default error render is with plain text (browsers still get HTML by default because auto looks at headers)
config is required for ErrorHandler.finalize
ErrorHandler.lookup requires two positional args
Unused websocket protocol args removed
* Deprecate loading of lowercase environment variables

Developer infrastructure

* Revert code coverage back to Codecov
* Upgrade tests for sanic-routing changes
sanic-testing#35 Allow for httpx v0.22

Improved Documentation

* Fix link in README for ASGI
* Document middleware on_request and on_response
* Add missing documentation for Request.respond

Miscellaneous

* Fix typing for ListenerMixin.listener
* Clear deprecation warning in asyncio.wait
* Cleanup __slots__ implementations
* Clear deprecation warning in asyncio.get_event_loop


(adam)
diff -r1.26 -r1.27 pkgsrc/www/py-sanic/Makefile
diff -r1.12 -r1.13 pkgsrc/www/py-sanic/PLIST
diff -r1.22 -r1.23 pkgsrc/www/py-sanic/distinfo
diff -r1.11 -r0 pkgsrc/www/py-sanic/patches/patch-setup.py

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

--- pkgsrc/www/py-sanic/Makefile 2022/01/27 09:57:08 1.26
+++ pkgsrc/www/py-sanic/Makefile 2022/04/26 12:36:31 1.27
@@ -1,30 +1,29 @@ @@ -1,30 +1,29 @@
1# $NetBSD: Makefile,v 1.26 2022/01/27 09:57:08 wiz Exp $ 1# $NetBSD: Makefile,v 1.27 2022/04/26 12:36:31 adam Exp $
2 2
3DISTNAME= sanic-21.12.1 3DISTNAME= sanic-22.3.1
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
5PKGREVISION= 1 
6CATEGORIES= www python 5CATEGORIES= www python
7MASTER_SITES= ${MASTER_SITE_PYPI:=s/sanic/} 6MASTER_SITES= ${MASTER_SITE_PYPI:=s/sanic/}
8 7
9MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= https://github.com/sanic-org/sanic 9HOMEPAGE= https://github.com/sanic-org/sanic
11COMMENT= Microframework based on uvloop, httptools, and learnings of flask 10COMMENT= Microframework based on uvloop, httptools, and learnings of flask
12LICENSE= mit AND apache-2.0 11LICENSE= mit AND apache-2.0
13 12
14DEPENDS+= ${PYPKGPREFIX}-aiofiles>=0.6.0:../../devel/py-aiofiles 13DEPENDS+= ${PYPKGPREFIX}-aiofiles>=0.6.0:../../devel/py-aiofiles
15DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools 14DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools
16DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict 15DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict
17DEPENDS+= ${PYPKGPREFIX}-sanic-routing>=0.7.0:../../www/py-sanic-routing 16DEPENDS+= ${PYPKGPREFIX}-sanic-routing>=22.3.0:../../www/py-sanic-routing
18DEPENDS+= ${PYPKGPREFIX}-ujson>=1.35:../../textproc/py-ujson 17DEPENDS+= ${PYPKGPREFIX}-ujson>=1.35:../../textproc/py-ujson
19DEPENDS+= ${PYPKGPREFIX}-uvloop>=0.5.3:../../devel/py-uvloop 18DEPENDS+= ${PYPKGPREFIX}-uvloop>=0.5.3:../../devel/py-uvloop
20DEPENDS+= ${PYPKGPREFIX}-websockets>=10.0:../../www/py-websockets 19DEPENDS+= ${PYPKGPREFIX}-websockets>=10.0:../../www/py-websockets
21 20
22#TEST_DEPENDS+= ${PYPKGPREFIX}-bandit-[0-9]*:../../wip/py-bandit 21#TEST_DEPENDS+= ${PYPKGPREFIX}-bandit-[0-9]*:../../wip/py-bandit
23TEST_DEPENDS+= ${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4 22TEST_DEPENDS+= ${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
24TEST_DEPENDS+= ${PYPKGPREFIX}-black-[0-9]*:../../textproc/py-black 23TEST_DEPENDS+= ${PYPKGPREFIX}-black-[0-9]*:../../textproc/py-black
25TEST_DEPENDS+= ${PYPKGPREFIX}-chardet-[0-9]*:../../converters/py-chardet 24TEST_DEPENDS+= ${PYPKGPREFIX}-chardet-[0-9]*:../../converters/py-chardet
26TEST_DEPENDS+= ${PYPKGPREFIX}-coverage-[0-9]*:../../devel/py-coverage 25TEST_DEPENDS+= ${PYPKGPREFIX}-coverage-[0-9]*:../../devel/py-coverage
27TEST_DEPENDS+= ${PYPKGPREFIX}-docutils-[0-9]*:../../textproc/py-docutils 26TEST_DEPENDS+= ${PYPKGPREFIX}-docutils-[0-9]*:../../textproc/py-docutils
28TEST_DEPENDS+= ${PYPKGPREFIX}-flake8-[0-9]*:../../devel/py-flake8 27TEST_DEPENDS+= ${PYPKGPREFIX}-flake8-[0-9]*:../../devel/py-flake8
29TEST_DEPENDS+= ${PYPKGPREFIX}-gunicorn-[0-9]*:../../www/py-gunicorn 28TEST_DEPENDS+= ${PYPKGPREFIX}-gunicorn-[0-9]*:../../www/py-gunicorn
30TEST_DEPENDS+= ${PYPKGPREFIX}-isort-[0-9]*:../../devel/py-isort 29TEST_DEPENDS+= ${PYPKGPREFIX}-isort-[0-9]*:../../devel/py-isort

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

--- pkgsrc/www/py-sanic/PLIST 2022/01/13 18:23:57 1.12
+++ pkgsrc/www/py-sanic/PLIST 2022/04/26 12:36:31 1.13
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.12 2022/01/13 18:23:57 adam Exp $ 1@comment $NetBSD: PLIST,v 1.13 2022/04/26 12:36:31 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
@@ -98,41 +98,47 @@ ${PYSITELIB}/sanic/mixins/__init__.pyc @@ -98,41 +98,47 @@ ${PYSITELIB}/sanic/mixins/__init__.pyc
98${PYSITELIB}/sanic/mixins/__init__.pyo 98${PYSITELIB}/sanic/mixins/__init__.pyo
99${PYSITELIB}/sanic/mixins/exceptions.py 99${PYSITELIB}/sanic/mixins/exceptions.py
100${PYSITELIB}/sanic/mixins/exceptions.pyc 100${PYSITELIB}/sanic/mixins/exceptions.pyc
101${PYSITELIB}/sanic/mixins/exceptions.pyo 101${PYSITELIB}/sanic/mixins/exceptions.pyo
102${PYSITELIB}/sanic/mixins/listeners.py 102${PYSITELIB}/sanic/mixins/listeners.py
103${PYSITELIB}/sanic/mixins/listeners.pyc 103${PYSITELIB}/sanic/mixins/listeners.pyc
104${PYSITELIB}/sanic/mixins/listeners.pyo 104${PYSITELIB}/sanic/mixins/listeners.pyo
105${PYSITELIB}/sanic/mixins/middleware.py 105${PYSITELIB}/sanic/mixins/middleware.py
106${PYSITELIB}/sanic/mixins/middleware.pyc 106${PYSITELIB}/sanic/mixins/middleware.pyc
107${PYSITELIB}/sanic/mixins/middleware.pyo 107${PYSITELIB}/sanic/mixins/middleware.pyo
108${PYSITELIB}/sanic/mixins/routes.py 108${PYSITELIB}/sanic/mixins/routes.py
109${PYSITELIB}/sanic/mixins/routes.pyc 109${PYSITELIB}/sanic/mixins/routes.pyc
110${PYSITELIB}/sanic/mixins/routes.pyo 110${PYSITELIB}/sanic/mixins/routes.pyo
 111${PYSITELIB}/sanic/mixins/runner.py
 112${PYSITELIB}/sanic/mixins/runner.pyc
 113${PYSITELIB}/sanic/mixins/runner.pyo
111${PYSITELIB}/sanic/mixins/signals.py 114${PYSITELIB}/sanic/mixins/signals.py
112${PYSITELIB}/sanic/mixins/signals.pyc 115${PYSITELIB}/sanic/mixins/signals.pyc
113${PYSITELIB}/sanic/mixins/signals.pyo 116${PYSITELIB}/sanic/mixins/signals.pyo
114${PYSITELIB}/sanic/models/__init__.py 117${PYSITELIB}/sanic/models/__init__.py
115${PYSITELIB}/sanic/models/__init__.pyc 118${PYSITELIB}/sanic/models/__init__.pyc
116${PYSITELIB}/sanic/models/__init__.pyo 119${PYSITELIB}/sanic/models/__init__.pyo
117${PYSITELIB}/sanic/models/asgi.py 120${PYSITELIB}/sanic/models/asgi.py
118${PYSITELIB}/sanic/models/asgi.pyc 121${PYSITELIB}/sanic/models/asgi.pyc
119${PYSITELIB}/sanic/models/asgi.pyo 122${PYSITELIB}/sanic/models/asgi.pyo
120${PYSITELIB}/sanic/models/futures.py 123${PYSITELIB}/sanic/models/futures.py
121${PYSITELIB}/sanic/models/futures.pyc 124${PYSITELIB}/sanic/models/futures.pyc
122${PYSITELIB}/sanic/models/futures.pyo 125${PYSITELIB}/sanic/models/futures.pyo
123${PYSITELIB}/sanic/models/handler_types.py 126${PYSITELIB}/sanic/models/handler_types.py
124${PYSITELIB}/sanic/models/handler_types.pyc 127${PYSITELIB}/sanic/models/handler_types.pyc
125${PYSITELIB}/sanic/models/handler_types.pyo 128${PYSITELIB}/sanic/models/handler_types.pyo
 129${PYSITELIB}/sanic/models/http_types.py
 130${PYSITELIB}/sanic/models/http_types.pyc
 131${PYSITELIB}/sanic/models/http_types.pyo
126${PYSITELIB}/sanic/models/protocol_types.py 132${PYSITELIB}/sanic/models/protocol_types.py
127${PYSITELIB}/sanic/models/protocol_types.pyc 133${PYSITELIB}/sanic/models/protocol_types.pyc
128${PYSITELIB}/sanic/models/protocol_types.pyo 134${PYSITELIB}/sanic/models/protocol_types.pyo
129${PYSITELIB}/sanic/models/server_types.py 135${PYSITELIB}/sanic/models/server_types.py
130${PYSITELIB}/sanic/models/server_types.pyc 136${PYSITELIB}/sanic/models/server_types.pyc
131${PYSITELIB}/sanic/models/server_types.pyo 137${PYSITELIB}/sanic/models/server_types.pyo
132${PYSITELIB}/sanic/py.typed 138${PYSITELIB}/sanic/py.typed
133${PYSITELIB}/sanic/reloader_helpers.py 139${PYSITELIB}/sanic/reloader_helpers.py
134${PYSITELIB}/sanic/reloader_helpers.pyc 140${PYSITELIB}/sanic/reloader_helpers.pyc
135${PYSITELIB}/sanic/reloader_helpers.pyo 141${PYSITELIB}/sanic/reloader_helpers.pyo
136${PYSITELIB}/sanic/request.py 142${PYSITELIB}/sanic/request.py
137${PYSITELIB}/sanic/request.pyc 143${PYSITELIB}/sanic/request.pyc
138${PYSITELIB}/sanic/request.pyo 144${PYSITELIB}/sanic/request.pyo
@@ -213,16 +219,13 @@ ${PYSITELIB}/sanic/touchup/service.pyc @@ -213,16 +219,13 @@ ${PYSITELIB}/sanic/touchup/service.pyc
213${PYSITELIB}/sanic/touchup/service.pyo 219${PYSITELIB}/sanic/touchup/service.pyo
214${PYSITELIB}/sanic/types/__init__.py 220${PYSITELIB}/sanic/types/__init__.py
215${PYSITELIB}/sanic/types/__init__.pyc 221${PYSITELIB}/sanic/types/__init__.pyc
216${PYSITELIB}/sanic/types/__init__.pyo 222${PYSITELIB}/sanic/types/__init__.pyo
217${PYSITELIB}/sanic/types/hashable_dict.py 223${PYSITELIB}/sanic/types/hashable_dict.py
218${PYSITELIB}/sanic/types/hashable_dict.pyc 224${PYSITELIB}/sanic/types/hashable_dict.pyc
219${PYSITELIB}/sanic/types/hashable_dict.pyo 225${PYSITELIB}/sanic/types/hashable_dict.pyo
220${PYSITELIB}/sanic/utils.py 226${PYSITELIB}/sanic/utils.py
221${PYSITELIB}/sanic/utils.pyc 227${PYSITELIB}/sanic/utils.pyc
222${PYSITELIB}/sanic/utils.pyo 228${PYSITELIB}/sanic/utils.pyo
223${PYSITELIB}/sanic/views.py 229${PYSITELIB}/sanic/views.py
224${PYSITELIB}/sanic/views.pyc 230${PYSITELIB}/sanic/views.pyc
225${PYSITELIB}/sanic/views.pyo 231${PYSITELIB}/sanic/views.pyo
226${PYSITELIB}/sanic/worker.py 
227${PYSITELIB}/sanic/worker.pyc 
228${PYSITELIB}/sanic/worker.pyo 

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

--- pkgsrc/www/py-sanic/distinfo 2022/01/27 09:57:08 1.22
+++ pkgsrc/www/py-sanic/distinfo 2022/04/26 12:36:31 1.23
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
1$NetBSD: distinfo,v 1.22 2022/01/27 09:57:08 wiz Exp $ 1$NetBSD: distinfo,v 1.23 2022/04/26 12:36:31 adam Exp $
2 2
3BLAKE2s (sanic-21.12.1.tar.gz) = 32986c1fc1452c29f1c491f15b789b6bc25fd378f9a7a182e125b24c164f6591 3BLAKE2s (sanic-22.3.1.tar.gz) = 42423375eb0dc2d899190d0faeba27748c913be67520bc85e38dcccff95f70bf
4SHA512 (sanic-21.12.1.tar.gz) = 922446fce87be6b043bf9b88dd0e1c4776b8bec1f2d12bec2f3bc7d659d602f555892d66689c511bfa2884a437bd83b661d6f2aead5a41e9c612fe9ed6c212b2 4SHA512 (sanic-22.3.1.tar.gz) = 039d45aebcb6bbe5598449d6602275df8b53230b05f7744faec86a49eab5ad5ef9c57699edd10c984bd314370c7938feee0da5ed8e07ca906cfa9798d7d22eca
5Size (sanic-21.12.1.tar.gz) = 225688 bytes 5Size (sanic-22.3.1.tar.gz) = 231454 bytes
6SHA1 (patch-setup.py) = d67e265a1b6c7b11eac5eca07b780223722250e6 

File Deleted: pkgsrc/www/py-sanic/patches/Attic/patch-setup.py