me
/
guix
Archived
1
0
Fork 0

gnu: Move a few Python packages to (gnu packages python-build).

This is in prevision of updating python-pypa-build, which now requires
python-packaging and adding python-tomli, which requires python-six.

* gnu/packages/python-xyz.scm (python-six)
(python-six-bootstrap, python2-six-bootstrap)
(python-pyparsing, python2-pyparsing, python-pyparsing-2.4.7)
(python-packaging-bootstrap, python2-packaging-bootstrap): Move packages to...
* gnu/packages/python-build.scm: ... here.  Update python-parsing to latest.
* gnu/packages/python-xyz.scm (python-six, python-packaging): Adjust to
inherit from their bootstrap versions.
master
Maxim Cournoyer 2021-10-01 15:49:13 -04:00
parent c738a054ca
commit 05e3638bb9
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
7 changed files with 125 additions and 133 deletions

View File

@ -50,6 +50,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)

View File

@ -56,6 +56,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages rrdtool) #:use-module (gnu packages rrdtool)

View File

@ -27,6 +27,7 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)

View File

@ -86,6 +86,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)

View File

@ -23,6 +23,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages python-build) (define-module (gnu packages python-build)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix download) #:use-module (guix download)
@ -107,6 +108,32 @@ Language (TOML) configuration files.")
(description "This package provides a Python parser for TOML-0.4.0.") (description "This package provides a Python parser for TOML-0.4.0.")
(license license:expat))) (license license:expat)))
(define-public python-six-bootstrap
(package
(name "python-six-bootstrap")
(version "1.15.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "six" version))
(sha256
(base32
"0n82108wxn5giff50hd9ykjhd3zl7cndabdasi6568yvbh1rqqrh"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ;to avoid pytest dependency
(home-page "https://pypi.org/project/six/")
(synopsis "Python 2 and 3 compatibility utilities")
(description
"Six is a Python 2 and 3 compatibility library. It provides utility
functions for smoothing over the differences between the Python versions with
the goal of writing Python code that is compatible on both Python versions.
Six supports every Python version since 2.5. It is contained in only one
Python file, so it can be easily copied into your project.")
(license license:x11)))
(define-public python2-six-bootstrap
(package-with-python2 python-six-bootstrap))
(define-public python-pep517-bootstrap (define-public python-pep517-bootstrap
(hidden-package (hidden-package
(package (package
@ -131,6 +158,93 @@ Language (TOML) configuration files.")
"Wrappers to build Python packages using PEP 517 hooks.") "Wrappers to build Python packages using PEP 517 hooks.")
(license license:expat)))) (license license:expat))))
(define-public python-pyparsing
(package
(name "python-pyparsing")
(version "2.4.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyparsing" version))
(sha256
(base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(arguments
`(#:tests? #f ;no test target
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/" ,name "-" ,version))
(html-doc (string-append doc "/html"))
(examples (string-append doc "/examples")))
(mkdir-p html-doc)
(mkdir-p examples)
(for-each
(lambda (dir tgt)
(map (lambda (file)
(install-file file tgt))
(find-files dir ".*")))
(list "docs" "htmldoc" "examples")
(list doc html-doc examples))))))))
(home-page "https://github.com/pyparsing/pyparsing")
(synopsis "Python parsing class library")
(description
"The pyparsing module is an alternative approach to creating and
executing simple grammars, vs. the traditional lex/yacc approach, or the use
of regular expressions. The pyparsing module provides a library of classes
that client code uses to construct the grammar directly in Python code.")
(license license:expat)))
(define-public python-pyparsing-2.4.7
(package
(inherit python-pyparsing)
(version "2.4.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyparsing" version))
(sha256
(base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
(define-public python2-pyparsing
(package-with-python2 python-pyparsing))
(define-public python-packaging-bootstrap
(package
(name "python-packaging-bootstrap")
(version "20.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "packaging" version))
;; XXX: The URL in the patch file is wrong, it should be
;; <https://github.com/pypa/packaging/pull/256>.
(patches (search-patches "python-packaging-test-arch.patch"))
(sha256
(base32
"1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ;disabled to avoid extra dependencies
(propagated-inputs
`(("python-pyparsing" ,python-pyparsing)
("python-six-bootstrap" ,python-six-bootstrap)))
(home-page "https://github.com/pypa/packaging")
(synopsis "Core utilities for Python packages")
(description "Packaging is a Python module for dealing with Python packages.
It offers an interface for working with package versions, names, and dependency
information.")
;; From 'LICENSE': This software is made available under the terms of
;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
;; Contributions to this software is made under the terms of *both* these
;; licenses.
(license (list license:asl2.0 license:bsd-2))))
(define-public python2-packaging-bootstrap
(package-with-python2 python-packaging-bootstrap))
;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid ;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid
;;; a name clash with python-build from (guix build-system python). ;;; a name clash with python-build from (guix build-system python).
(define-public python-pypa-build (define-public python-pypa-build

View File

@ -2424,48 +2424,20 @@ in the current session, Python, and the OS.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python-six (define-public python-six
(package (package/inherit python-six-bootstrap
(name "python-six") (name "python-six")
(version "1.15.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "six" version))
(sha256
(base32
"0n82108wxn5giff50hd9ykjhd3zl7cndabdasi6568yvbh1rqqrh"))))
(build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(invoke "py.test" "-v")))))) (invoke "pytest" "-v"))))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest-bootstrap))) `(("python-pytest" ,python-pytest-bootstrap)))))
(home-page "https://pypi.org/project/six/")
(synopsis "Python 2 and 3 compatibility utilities")
(description
"Six is a Python 2 and 3 compatibility library. It provides utility
functions for smoothing over the differences between the Python versions with
the goal of writing Python code that is compatible on both Python versions.
Six supports every Python version since 2.5. It is contained in only one
Python file, so it can be easily copied into your project.")
(license license:x11)))
(define-public python2-six (define-public python2-six
(package-with-python2 python-six)) (package-with-python2 python-six))
(define-public python-six-bootstrap
(package
(inherit python-six)
(name "python-six-bootstrap")
(native-inputs `())
(arguments `(#:tests? #f))))
(define-public python2-six-bootstrap
(package-with-python2 python-six-bootstrap))
(define-public python-schedule (define-public python-schedule
(package (package
(name "python-schedule") (name "python-schedule")
@ -5907,61 +5879,6 @@ parse and apply unified diffs. It has features such as:
@end itemize") @end itemize")
(license license:expat))) (license license:expat)))
(define-public python-pyparsing
(package
(name "python-pyparsing")
(version "2.4.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyparsing" version))
(sha256
(base32 "17wn5zlijc9m9zj26gy3f541y7smpj8rfhl51d025c2gm210b0sc"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(arguments
`(#:tests? #f ; no test target
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/" ,name "-" ,version))
(html-doc (string-append doc "/html"))
(examples (string-append doc "/examples")))
(mkdir-p html-doc)
(mkdir-p examples)
(for-each
(lambda (dir tgt)
(map (lambda (file)
(install-file file tgt))
(find-files dir ".*")))
(list "docs" "htmldoc" "examples")
(list doc html-doc examples))
#t))))))
(home-page "https://github.com/pyparsing/pyparsing")
(synopsis "Python parsing class library")
(description
"The pyparsing module is an alternative approach to creating and
executing simple grammars, vs. the traditional lex/yacc approach, or the use
of regular expressions. The pyparsing module provides a library of classes
that client code uses to construct the grammar directly in Python code.")
(license license:expat)))
(define-public python2-pyparsing
(package-with-python2 python-pyparsing))
(define-public python-pyparsing-2.4.7
(package
(inherit python-pyparsing)
(version "2.4.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyparsing" version))
(sha256
(base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
(define-public python-numpydoc (define-public python-numpydoc
(package (package
(name "python-numpydoc") (name "python-numpydoc")
@ -18550,28 +18467,15 @@ several utilities, as well as an API for building localization tools.")
(package-with-python2 python-translate-toolkit)) (package-with-python2 python-translate-toolkit))
(define-public python-packaging (define-public python-packaging
(package (package/inherit python-packaging-bootstrap
(name "python-packaging") (name "python-packaging")
(version "20.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "packaging" version))
;; XXX: The URL in the patch file is wrong, it should be
;; <https://github.com/pypa/packaging/pull/256>.
(patches (search-patches "python-packaging-test-arch.patch"))
(sha256
(base32
"1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))
(build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(if tests? (if tests?
(invoke "py.test" "-vv") (invoke "pytest" "-vv")
(format #t "test suite not run~%")) (format #t "test suite not run~%")))))))
#t)))))
(native-inputs (native-inputs
`(("python-pretend" ,python-pretend) `(("python-pretend" ,python-pretend)
("python-pytest" ,python-pytest))) ("python-pytest" ,python-pytest)))
@ -18592,37 +18496,6 @@ information.")
(define-public python2-packaging (define-public python2-packaging
(package-with-python2 python-packaging)) (package-with-python2 python-packaging))
;; Variants with minimal dependencies, for bootstrapping Pytest.
(define-public python-packaging-bootstrap
(hidden-package
(package/inherit
python-packaging
(name "python-packaging-bootstrap")
(arguments
(substitute-keyword-arguments (package-arguments python-packaging)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'fix-dependencies
(lambda* (#:key tests? #:allow-other-keys)
(substitute* "setup.py" (("\"six\"") ""))))))
((#:tests? _ #f) #f)))
(native-inputs '())
(propagated-inputs
`(("python-pyparsing" ,python-pyparsing))))))
(define-public python2-packaging-bootstrap
(hidden-package
(package/inherit
python2-packaging
(name "python2-packaging-bootstrap")
(native-inputs '())
(propagated-inputs
`(("python-pyparsing" ,python2-pyparsing)
("python-six" ,python2-six-bootstrap)))
(arguments
`(#:tests? #f
,@(package-arguments python2-packaging))))))
(define-public python-relatorio (define-public python-relatorio
(package (package
(name "python-relatorio") (name "python-relatorio")

View File

@ -48,6 +48,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)