me
/
guix
Archived
1
0
Fork 0

gnu: Add python-httpcore.

* gnu/packages/python-web.scm (python-httpcore): New variable.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
master
Vinicius Monego 2020-09-06 02:46:52 -03:00 committed by Mathieu Othacehe
parent 6cdf102ac5
commit 7a8025016d
No known key found for this signature in database
GPG Key ID: 8354763531769CA6
1 changed files with 75 additions and 0 deletions

View File

@ -4306,6 +4306,81 @@ and serve updated contents upon changes to the directory.")
@acronym{TLS, Transport Layer Security} support.")
(license license:bsd-2)))
(define-public python-httpcore
(package
(name "python-httpcore")
(version "0.10.2")
(source
(origin
;; PyPI tarball does not contain tests.
(method git-fetch)
(uri (git-reference
(url "https://github.com/encode/httpcore")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "00gn8nfv814rg6fj7xv97mrra3fvx6fzjcgx9y051ihm6hxljdsi"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-unavailable-tests
(lambda _
;; These tests require 'mitmproxy' which is not packaged.
(for-each (lambda (f)
(delete-file f))
'("tests/conftest.py"
"tests/sync_tests/test_interfaces.py"
"tests/async_tests/test_interfaces.py"))
#t))
(add-after 'remove-unavailable-tests 'force-h11-version
;; Allow build with h11 >= 0.10.
(lambda _
(substitute* "setup.py" (("h11>=0.8,<0.10") "h11"))
#t))
(replace 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "--cov=httpcore"
"--cov=tests" "tests"))))))
(native-inputs
`(;; ("mitmproxy" ,mitmproxy) ;; TODO: Package this.
("python-autoflake" ,python-autoflake)
("python-flake8" ,python-flake8)
("python-flake8-bugbear" ,python-flake8-bugbear)
("python-flake8-pie" ,python-flake8-pie)
("python-isort" ,python-isort)
("python-mypy" ,python-mypy)
("python-pytest" ,python-pytest)
("python-pytest-asyncio" ,python-pytest-asyncio)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-trio" ,python-pytest-trio)
("python-uvicorn" ,python-uvicorn)
("python-trustme" ,python-trustme)))
(propagated-inputs
`(("python-h11" ,python-h11)
("python-h2" ,python-h2)
("python-sniffio" ,python-sniffio)
("python-trio" ,python-trio)
("python-trio-typing" ,python-trio-typing)))
(home-page "https://github.com/encode/httpcore")
(synopsis "Minimal, low-level HTTP client")
(description
"HTTP Core provides a minimal and low-level HTTP client, which does one
thing only: send HTTP requests.
Some things HTTP Core does do:
@itemize
@item Sending HTTP requests.
@item Provides both sync and async interfaces.
@item Supports HTTP/1.1 and HTTP/2.
@item Async backend support for asyncio and trio.
@item Automatic connection pooling.
@item HTTP(S) proxy support.
@end itemize")
(license license:bsd-3)))
(define-public python-websockets
(package
(name "python-websockets")