From e779dc8be048a85fa0e51013b1aed46082284937 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Fri, 13 Nov 2020 09:55:19 +0100 Subject: [PATCH] gnu: Add python-sanic. * gnu/packages/python-web.scm (python-sanic): New variable. Signed-off-by: Leo Famulari --- gnu/packages/python-web.scm | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index b409edc551..f88178ab2c 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2020 Edouard Klein ;;; Copyright © 2020 Vinicius Monego ;;; Copyright © 2020 Konrad Hinsen +;;; Copyright © 2020 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -5674,3 +5675,62 @@ over IMAP: "@code{python-hstspreload} contains Chromium HSTS Preload list as a Python package.") (license license:bsd-3))) + +(define-public python-sanic + (package + (name "python-sanic") + (version "20.9.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sanic" version)) + (sha256 + (base32 + "06p0lsxqbfbka2yaqlpp0bg5pf7ma44zi6kq7qbb6hhry48dp1w6")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-recent-pytest + ;; Allow using recent dependencies. + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("httpcore==0.3.0") "httpcore") + (("pytest==5.2.1") "pytest") + (("multidict==5.0.0") "multidict")) + #t)) + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv" "./tests" "-k" + "not test_zero_downtime and not test_gunicorn_worker")))))) + (propagated-inputs + `(("python-aiofiles" ,python-aiofiles) + ("python-httptools" ,python-httptools) + ("python-httpx" ,python-httpx) + ("python-multidict" ,python-multidict) + ("python-ujson" ,python-ujson) + ("python-uvloop" ,python-uvloop) + ("python-websockets" ,python-websockets))) + (native-inputs + `(("gunicorn" ,gunicorn) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-hstspreload" ,python-hstspreload) + ("python-httpcore" ,python-httpcore) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-benchmark" ,python-pytest-benchmark) + ("python-pytest-sanic" ,python-pytest-sanic) + ("python-pytest-sugar" ,python-pytest-sugar) + ("python-urllib3" ,python-urllib3) + ("python-uvicorn" ,python-uvicorn))) + (home-page + "https://github.com/huge-success/sanic/") + (synopsis + "Async Python 3.6+ web server/framework") + (description + "Sanic is a Python 3.6+ web server and web framework +that's written to go fast. It allows the usage of the +@code{async/await} syntax added in Python 3.5, which makes +your code non-blocking and speedy.") + (license license:expat)))