gnu: python-httptools: Update to 0.6.4.

* gnu/packages/python-web.scm (python-httptools): Update to 0.6.4.
  [source] <snippet>: Remove vendor.
  [arguments] <test-flags>: Skip only one test.
  <phases>: Remove 'preparation; add 'configure-build-ext.
  [build-system]: Use pyproject.
  [inputs]: Add llhttp.
  [native-inputs]: Add python-setuptools.

Change-Id: I81eaa61c96e2f41519648cccc625f2bc0a731269
This commit is contained in:
Sharlatan Hellseher 2025-08-04 23:23:43 +01:00
parent c7597fbacd
commit c7c3a87237
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

@ -8178,45 +8178,44 @@ and fairly speedy.")
(define-public python-httptools (define-public python-httptools
(package (package
(name "python-httptools") (name "python-httptools")
(version "0.1.1") (version "0.6.4")
(source (source
(origin (origin
;; PyPI tarball comes with a vendored http-parser and no tests. ;; PyPI tarball comes with a vendored http-parser and no tests.
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/MagicStack/httptools") (url "https://github.com/MagicStack/httptools")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0g08128x2ixsiwrzskxc6c8ymgzs39wbzr5mhy0mjk30q9pqqv77")))) (base32 "05zsa77jlm2h9z0vfj6gdqklj3pbzbijhk5s9b3q7iaxl347hwzc"))
(build-system python-build-system) (modules '((guix build utils)))
(snippet
#~(begin (delete-file-recursively "vendor")))))
(build-system pyproject-build-system)
(arguments (arguments
'(#:phases (list
(modify-phases %standard-phases #:test-flags
(add-after 'unpack 'preparations ;; XXX: AssertionError: HttpParserError not raised.
(lambda _ #~(list "-k" "not test_parser_response_leninent_headers_1")
;; Skip a failing test (AssertionError). Bug report: #:phases
;; https://github.com/MagicStack/httptools/issues/10. #~(modify-phases %standard-phases
(substitute* "tests/test_parser.py" (add-after 'unpack 'configure-build-ext
((" def test_parser_response_1") (lambda _
(string-append (with-output-to-file "setup.cfg"
" @unittest.skip(\"Disabled.\")\n" (lambda ()
" def test_parser_response_1"))) (display "\
;; Use packaged http-parser. [build_ext]
(substitute* "setup.py" (("self.use_system_http_parser = False") use_system_llhttp = true
"self.use_system_http_parser = True")) use_system_http_parser = true
;; This path is hardcoded. Hardcode our own. cython_always = true"))))))))
(substitute* "httptools/parser/cparser.pxd"
(("../../vendor/http-parser")
(string-append (assoc-ref %build-inputs "http-parser")
"/include")))
;; Don't force Cython version.
(substitute* "setup.py" (("Cython==") "Cython>="))
#t)))))
(native-inputs (native-inputs
(list python-cython python-pytest)) (list python-cython
python-pytest
python-setuptools))
(inputs (inputs
(list http-parser)) (list http-parser
llhttp))
(home-page "https://github.com/MagicStack/httptools") (home-page "https://github.com/MagicStack/httptools")
(synopsis "Collection of framework independent HTTP protocol utils") (synopsis "Collection of framework independent HTTP protocol utils")
(description (description