;;; Copyright © 2020 Noisytoot <noisytoot@gmail.com>
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
(base32
"1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq"))))
(build-system python-build-system)
- (inputs
+ (propagated-inputs
`(("python-pycares" ,python-pycares)))
(arguments
`(#:tests? #f)) ;tests require internet access
"Purl is a Python package for handling URLs.")
(license license:expat)))
+(define-public python-apiron
+ (package
+ (name "python-apiron")
+ (version "5.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "apiron" version))
+ (sha256
+ (base32 "1qwbqn47sf0aqznj1snbv37v8ijx476qqkjf5l9pac7xjkxsr8qk"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv" "--cov" "-k"
+ ;; This test tries to connect to the internet.
+ "not test_call"))))))
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/ithaka/apiron")
+ (synopsis "Python wrapper for interacting with RESTful APIs")
+ (description
+ "@code{apiron} provides a declarative, structured configuration of
+services and endpoints with a unified interface for interacting with RESTful
+APIs.")
+ (license license:expat)))
+
+(define-public python-beren
+ (package
+ (name "python-beren")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "beren" version))
+ (sha256
+ (base32 "1v3mdwfqsyza892zvs124ym9w1bkng1j56b7l4dwfjir3723xcgf"))))
+ (build-system python-build-system)
+ (arguments
+ ;; The test tries to open a connection to a remote server.
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-apiron" ,python-apiron)))
+ (home-page "https://github.com/teffalump/beren")
+ (synopsis "REST client for Orthanc DICOM servers")
+ (description
+ "@code{beren} provides a REST client for Orthanc, a DICOM server.")
+ (license license:gpl3+)))
+
(define-public python-requests
(package
(name "python-requests")
`(;; FIXME: Some tests require network access.
#:tests? #f))))
+(define-public python-requests-ftp
+ (package
+ (name "python-requests-ftp")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "requests-ftp" version))
+ (sha256
+ (base32
+ "0yh5v21v36dsjsgv4y9dx4mmz35741l5jf6pbq9w19d8rfsww13m"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (home-page
+ "https://github.com/Lukasa/requests-ftp")
+ (synopsis "FTP Transport Adapter for Requests")
+ (description
+ "Requests-FTP is an implementation of a simple FTP transport
+adapter for use with the Requests library.")
+ (license license:asl2.0)))
+
(define-public python-oauthlib
(package
(name "python-oauthlib")
@end itemize")
(license license:bsd-3)))
+(define-public python-httpx
+ (package
+ (name "python-httpx")
+ (version "0.14.3")
+ (source
+ (origin
+ ;; PyPI tarball does not contain tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/encode/httpx")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mn8gqkgaij3s2pbwgrih20iq34f3f82dfvypaw3nnh7n63vna43"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv" "-k"
+ ;; This test tries to open an outgoing connection.
+ "not test_connect_timeout[asyncio]"))))))
+ (native-inputs
+ `(("python-autoflake" ,python-autoflake)
+ ("python-black" ,python-black)
+ ("python-cryptography" ,python-cryptography)
+ ("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-trio" ,python-pytest-trio)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-trio" ,python-trio)
+ ("python-trio-typing" ,python-trio-typing)
+ ("python-trustme" ,python-trustme)
+ ("python-uvicorn" ,python-uvicorn)))
+ (propagated-inputs
+ `(("python-brotli" ,python-brotli)
+ ("python-certifi" ,python-certifi)
+ ("python-chardet" ,python-chardet)
+ ("python-httpcore" ,python-httpcore)
+ ("python-idna" ,python-idna)
+ ("python-rfc3986" ,python-rfc3986)
+ ("python-sniffio" ,python-sniffio)))
+ (home-page "https://github.com/encode/httpx")
+ (synopsis "HTTP client for Python")
+ (description
+ "HTTPX is a fully featured HTTP client for Python 3, which provides sync
+and async APIs, and support for both HTTP/1.1 and HTTP/2.
+
+HTTPX builds on the well-established usability of requests, and gives you:
+
+@itemize
+@item A broadly requests-compatible API.
+@item Standard synchronous interface, but with async support if you need it.
+@item HTTP/1.1 and HTTP/2 support.
+@item Ability to make requests directly to WSGI applications or ASGI applications.
+@item Strict timeouts everywhere.
+@item Fully type annotated.
+@item 99% test coverage.
+@end itemize
+
+Plus all the standard features of requests:
+
+@itemize
+@item International Domains and URLs
+@item Keep-Alive & Connection Pooling
+@item Sessions with Cookie Persistence
+@item Browser-style SSL Verification
+@item Basic/Digest Authentication
+@item Elegant Key/Value Cookies
+@item Automatic Decompression
+@item Automatic Content Decoding
+@item Unicode Response Bodies
+@item Multipart File Uploads
+@item HTTP(S) Proxy Support
+@item Connection Timeouts
+@item Streaming Downloads
+@item .netrc Support
+@item Chunked Requests
+@end itemize")
+ (license license:bsd-3)))
+
(define-public python-websockets
(package
(name "python-websockets")