Sun Jan 3 22:41:44 2021 UTC ()
py-sanic: updated to 20.12.0

Version 20.12.0

Features

* Static route more verbose if file not found
* Fix static routes registration on a blueprint
* Add Python 3.9 support
* Sanic CLI upgrade
* Update aiofile version requirements
* Update multidict version requirements
* Add py.typed file
* Speed optimization in request handler
* Add app registry and Sanic class level app retrieval

Bugfixes

* Fix Chunked Transport-Encoding in ASGI streaming
response

Deprecations and Removals

* Cleanup and remove deprecated code

Developer infrastructure

* Fix load module test
* Transition Travis from .org to .com
* Update tox requirements

Improved Documentation

* Documentation improvements
* Remove duplicate contents in testing.rst
* Fix typo in routing.rst


(adam)
diff -r1.16 -r1.17 pkgsrc/www/py-sanic/Makefile
diff -r1.9 -r1.10 pkgsrc/www/py-sanic/PLIST
diff -r1.13 -r1.14 pkgsrc/www/py-sanic/distinfo
diff -r1.8 -r1.9 pkgsrc/www/py-sanic/patches/patch-setup.py

cvs diff -r1.16 -r1.17 pkgsrc/www/py-sanic/Makefile (switch to unified diff)

--- pkgsrc/www/py-sanic/Makefile 2020/10/27 23:07:42 1.16
+++ pkgsrc/www/py-sanic/Makefile 2021/01/03 22:41:44 1.17
@@ -1,31 +1,31 @@ @@ -1,31 +1,31 @@
1# $NetBSD: Makefile,v 1.16 2020/10/27 23:07:42 adam Exp $ 1# $NetBSD: Makefile,v 1.17 2021/01/03 22:41:44 adam Exp $
2 2
3DISTNAME= sanic-20.9.1 3DISTNAME= sanic-20.12.0
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/channelcat/sanic 9HOMEPAGE= https://github.com/channelcat/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.3.0:../../devel/py-aiofiles 13DEPENDS+= ${PYPKGPREFIX}-aiofiles>=0.3.0:../../devel/py-aiofiles
14DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools 14DEPENDS+= ${PYPKGPREFIX}-httptools>=0.0.10:../../www/py-httptools
15DEPENDS+= ${PYPKGPREFIX}-httpx>=0.15.4:../../www/py-httpx 15DEPENDS+= ${PYPKGPREFIX}-httpx>=0.15.4:../../www/py-httpx
16DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict 16DEPENDS+= ${PYPKGPREFIX}-multidict>=5.0.0:../../databases/py-multidict
17DEPENDS+= ${PYPKGPREFIX}-ujson>=1.35:../../textproc/py-ujson 17DEPENDS+= ${PYPKGPREFIX}-ujson>=1.35:../../textproc/py-ujson
18DEPENDS+= ${PYPKGPREFIX}-uvloop>=0.5.3:../../devel/py-uvloop 18DEPENDS+= ${PYPKGPREFIX}-uvloop>=0.5.3:../../devel/py-uvloop
19DEPENDS+= ${PYPKGPREFIX}-websockets>=8.1:../../www/py-websockets 19DEPENDS+= ${PYPKGPREFIX}-websockets>=8.1:../../www/py-websockets
20TEST_DEPENDS+= ${PYPKGPREFIX}-uvicorn-[0-9]*:../../www/py-uvicorn 20TEST_DEPENDS+= ${PYPKGPREFIX}-uvicorn-[0-9]*:../../www/py-uvicorn
21 21
22USE_LANGUAGES= # none 22USE_LANGUAGES= # none
23 23
24PYTHON_VERSIONS_INCOMPATIBLE= 27 24PYTHON_VERSIONS_INCOMPATIBLE= 27
25 25
26post-install: 26post-install:
27 cd ${DESTDIR}${PREFIX}/bin && \ 27 cd ${DESTDIR}${PREFIX}/bin && \
28 ${MV} sanic sanic-${PYVERSSUFFIX} || ${TRUE} 28 ${MV} sanic sanic-${PYVERSSUFFIX} || ${TRUE}
29 29
30.include "../../lang/python/egg.mk" 30.include "../../lang/python/egg.mk"
31.include "../../mk/bsd.pkg.mk" 31.include "../../mk/bsd.pkg.mk"

cvs diff -r1.9 -r1.10 pkgsrc/www/py-sanic/PLIST (switch to unified diff)

--- pkgsrc/www/py-sanic/PLIST 2020/10/01 06:53:12 1.9
+++ pkgsrc/www/py-sanic/PLIST 2021/01/03 22:41:44 1.10
@@ -1,95 +1,96 @@ @@ -1,95 +1,96 @@
1@comment $NetBSD: PLIST,v 1.9 2020/10/01 06:53:12 adam Exp $ 1@comment $NetBSD: PLIST,v 1.10 2021/01/03 22:41:44 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/asgi.py 21${PYSITELIB}/sanic/asgi.py
22${PYSITELIB}/sanic/asgi.pyc 22${PYSITELIB}/sanic/asgi.pyc
23${PYSITELIB}/sanic/asgi.pyo 23${PYSITELIB}/sanic/asgi.pyo
24${PYSITELIB}/sanic/blueprint_group.py 24${PYSITELIB}/sanic/blueprint_group.py
25${PYSITELIB}/sanic/blueprint_group.pyc 25${PYSITELIB}/sanic/blueprint_group.pyc
26${PYSITELIB}/sanic/blueprint_group.pyo 26${PYSITELIB}/sanic/blueprint_group.pyo
27${PYSITELIB}/sanic/blueprints.py 27${PYSITELIB}/sanic/blueprints.py
28${PYSITELIB}/sanic/blueprints.pyc 28${PYSITELIB}/sanic/blueprints.pyc
29${PYSITELIB}/sanic/blueprints.pyo 29${PYSITELIB}/sanic/blueprints.pyo
30${PYSITELIB}/sanic/compat.py 30${PYSITELIB}/sanic/compat.py
31${PYSITELIB}/sanic/compat.pyc 31${PYSITELIB}/sanic/compat.pyc
32${PYSITELIB}/sanic/compat.pyo 32${PYSITELIB}/sanic/compat.pyo
33${PYSITELIB}/sanic/config.py 33${PYSITELIB}/sanic/config.py
34${PYSITELIB}/sanic/config.pyc 34${PYSITELIB}/sanic/config.pyc
35${PYSITELIB}/sanic/config.pyo 35${PYSITELIB}/sanic/config.pyo
36${PYSITELIB}/sanic/constants.py 36${PYSITELIB}/sanic/constants.py
37${PYSITELIB}/sanic/constants.pyc 37${PYSITELIB}/sanic/constants.pyc
38${PYSITELIB}/sanic/constants.pyo 38${PYSITELIB}/sanic/constants.pyo
39${PYSITELIB}/sanic/cookies.py 39${PYSITELIB}/sanic/cookies.py
40${PYSITELIB}/sanic/cookies.pyc 40${PYSITELIB}/sanic/cookies.pyc
41${PYSITELIB}/sanic/cookies.pyo 41${PYSITELIB}/sanic/cookies.pyo
42${PYSITELIB}/sanic/deprecated.py 42${PYSITELIB}/sanic/deprecated.py
43${PYSITELIB}/sanic/deprecated.pyc 43${PYSITELIB}/sanic/deprecated.pyc
44${PYSITELIB}/sanic/deprecated.pyo 44${PYSITELIB}/sanic/deprecated.pyo
45${PYSITELIB}/sanic/errorpages.py 45${PYSITELIB}/sanic/errorpages.py
46${PYSITELIB}/sanic/errorpages.pyc 46${PYSITELIB}/sanic/errorpages.pyc
47${PYSITELIB}/sanic/errorpages.pyo 47${PYSITELIB}/sanic/errorpages.pyo
48${PYSITELIB}/sanic/exceptions.py 48${PYSITELIB}/sanic/exceptions.py
49${PYSITELIB}/sanic/exceptions.pyc 49${PYSITELIB}/sanic/exceptions.pyc
50${PYSITELIB}/sanic/exceptions.pyo 50${PYSITELIB}/sanic/exceptions.pyo
51${PYSITELIB}/sanic/handlers.py 51${PYSITELIB}/sanic/handlers.py
52${PYSITELIB}/sanic/handlers.pyc 52${PYSITELIB}/sanic/handlers.pyc
53${PYSITELIB}/sanic/handlers.pyo 53${PYSITELIB}/sanic/handlers.pyo
54${PYSITELIB}/sanic/headers.py 54${PYSITELIB}/sanic/headers.py
55${PYSITELIB}/sanic/headers.pyc 55${PYSITELIB}/sanic/headers.pyc
56${PYSITELIB}/sanic/headers.pyo 56${PYSITELIB}/sanic/headers.pyo
57${PYSITELIB}/sanic/helpers.py 57${PYSITELIB}/sanic/helpers.py
58${PYSITELIB}/sanic/helpers.pyc 58${PYSITELIB}/sanic/helpers.pyc
59${PYSITELIB}/sanic/helpers.pyo 59${PYSITELIB}/sanic/helpers.pyo
60${PYSITELIB}/sanic/log.py 60${PYSITELIB}/sanic/log.py
61${PYSITELIB}/sanic/log.pyc 61${PYSITELIB}/sanic/log.pyc
62${PYSITELIB}/sanic/log.pyo 62${PYSITELIB}/sanic/log.pyo
 63${PYSITELIB}/sanic/py.typed
63${PYSITELIB}/sanic/reloader_helpers.py 64${PYSITELIB}/sanic/reloader_helpers.py
64${PYSITELIB}/sanic/reloader_helpers.pyc 65${PYSITELIB}/sanic/reloader_helpers.pyc
65${PYSITELIB}/sanic/reloader_helpers.pyo 66${PYSITELIB}/sanic/reloader_helpers.pyo
66${PYSITELIB}/sanic/request.py 67${PYSITELIB}/sanic/request.py
67${PYSITELIB}/sanic/request.pyc 68${PYSITELIB}/sanic/request.pyc
68${PYSITELIB}/sanic/request.pyo 69${PYSITELIB}/sanic/request.pyo
69${PYSITELIB}/sanic/response.py 70${PYSITELIB}/sanic/response.py
70${PYSITELIB}/sanic/response.pyc 71${PYSITELIB}/sanic/response.pyc
71${PYSITELIB}/sanic/response.pyo 72${PYSITELIB}/sanic/response.pyo
72${PYSITELIB}/sanic/router.py 73${PYSITELIB}/sanic/router.py
73${PYSITELIB}/sanic/router.pyc 74${PYSITELIB}/sanic/router.pyc
74${PYSITELIB}/sanic/router.pyo 75${PYSITELIB}/sanic/router.pyo
75${PYSITELIB}/sanic/server.py 76${PYSITELIB}/sanic/server.py
76${PYSITELIB}/sanic/server.pyc 77${PYSITELIB}/sanic/server.pyc
77${PYSITELIB}/sanic/server.pyo 78${PYSITELIB}/sanic/server.pyo
78${PYSITELIB}/sanic/static.py 79${PYSITELIB}/sanic/static.py
79${PYSITELIB}/sanic/static.pyc 80${PYSITELIB}/sanic/static.pyc
80${PYSITELIB}/sanic/static.pyo 81${PYSITELIB}/sanic/static.pyo
81${PYSITELIB}/sanic/testing.py 82${PYSITELIB}/sanic/testing.py
82${PYSITELIB}/sanic/testing.pyc 83${PYSITELIB}/sanic/testing.pyc
83${PYSITELIB}/sanic/testing.pyo 84${PYSITELIB}/sanic/testing.pyo
84${PYSITELIB}/sanic/utils.py 85${PYSITELIB}/sanic/utils.py
85${PYSITELIB}/sanic/utils.pyc 86${PYSITELIB}/sanic/utils.pyc
86${PYSITELIB}/sanic/utils.pyo 87${PYSITELIB}/sanic/utils.pyo
87${PYSITELIB}/sanic/views.py 88${PYSITELIB}/sanic/views.py
88${PYSITELIB}/sanic/views.pyc 89${PYSITELIB}/sanic/views.pyc
89${PYSITELIB}/sanic/views.pyo 90${PYSITELIB}/sanic/views.pyo
90${PYSITELIB}/sanic/websocket.py 91${PYSITELIB}/sanic/websocket.py
91${PYSITELIB}/sanic/websocket.pyc 92${PYSITELIB}/sanic/websocket.pyc
92${PYSITELIB}/sanic/websocket.pyo 93${PYSITELIB}/sanic/websocket.pyo
93${PYSITELIB}/sanic/worker.py 94${PYSITELIB}/sanic/worker.py
94${PYSITELIB}/sanic/worker.pyc 95${PYSITELIB}/sanic/worker.pyc
95${PYSITELIB}/sanic/worker.pyo 96${PYSITELIB}/sanic/worker.pyo

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

--- pkgsrc/www/py-sanic/distinfo 2020/10/27 23:07:42 1.13
+++ pkgsrc/www/py-sanic/distinfo 2021/01/03 22:41:44 1.14
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
1$NetBSD: distinfo,v 1.13 2020/10/27 23:07:42 adam Exp $ 1$NetBSD: distinfo,v 1.14 2021/01/03 22:41:44 adam Exp $
2 2
3SHA1 (sanic-20.9.1.tar.gz) = 5ef6504b4ceebedbe6fd86b82eb498765420476d 3SHA1 (sanic-20.12.0.tar.gz) = d8ca9fda845bebcd0edd4909f4c747b590c2b47b
4RMD160 (sanic-20.9.1.tar.gz) = 9e300d42d4d7806e331d5ab43ae17b0ab9e0fbcb 4RMD160 (sanic-20.12.0.tar.gz) = fa1fee7d32a5530980aed09204c4f80fc01d5993
5SHA512 (sanic-20.9.1.tar.gz) = 3e4ee0fbce0f5369038bfdd83abd9d3d485a915ae3ef91364e03c8e6a46dce2b7e5eba48c0680490bb175873f77454ed6ce584836b60192480cfd29e03ab4a48 5SHA512 (sanic-20.12.0.tar.gz) = 046ab35003217668bbf32ad8314a956e82839c3b6ba481ecb416e6007c5c194ec932cd233f961d998518dcf13cc4fe556c435a7e73e6efc3117ef36db8d7f3a4
6Size (sanic-20.9.1.tar.gz) = 147581 bytes 6Size (sanic-20.12.0.tar.gz) = 147866 bytes
7SHA1 (patch-setup.py) = 18d343962a7b0d3a312518fd10181f5dd5653524 7SHA1 (patch-setup.py) = bcd9b4baaff7c6ffc08d34d0ed2db1e35e97dd7f

cvs diff -r1.8 -r1.9 pkgsrc/www/py-sanic/patches/Attic/patch-setup.py (switch to unified diff)

--- pkgsrc/www/py-sanic/patches/Attic/patch-setup.py 2020/10/27 23:07:42 1.8
+++ pkgsrc/www/py-sanic/patches/Attic/patch-setup.py 2021/01/03 22:41:44 1.9
@@ -1,17 +1,26 @@ @@ -1,17 +1,26 @@
1$NetBSD: patch-setup.py,v 1.8 2020/10/27 23:07:42 adam Exp $ 1$NetBSD: patch-setup.py,v 1.9 2021/01/03 22:41:44 adam Exp $
2 2
3Allow newer versions. 3Allow newer versions.
4 4
5--- setup.py.orig 2020-10-25 13:09:05.000000000 +0000 5--- setup.py.orig 2020-12-28 21:58:53.000000000 +0000
6+++ setup.py 6+++ setup.py
7@@ -80,8 +80,8 @@ requirements = [ 7@@ -89,15 +89,15 @@ requirements = [
8 ujson, 8 "aiofiles>=0.6.0",
9 "aiofiles>=0.3.0", 
10 "websockets>=8.1,<9.0", 9 "websockets>=8.1,<9.0",
11- "multidict==5.0.0", 10 "multidict>=5.0,<6.0",
12- "httpx==0.15.4", 11- "httpx==0.15.4",
13+ "multidict>=5.0.0", 
14+ "httpx>=0.15.4", 12+ "httpx>=0.15.4",
15 ] 13 ]
16  14
17 tests_require = [ 15 tests_require = [
 16- "pytest==5.2.1",
 17+ "pytest>=5.2.1",
 18 "multidict>=5.0,<6.0",
 19- "gunicorn==20.0.4",
 20+ "gunicorn>=20.0.4",
 21 "pytest-cov",
 22- "httpcore==0.11.*",
 23+ "httpcore>=0.11.*",
 24 "beautifulsoup4",
 25 uvloop,
 26 ujson,