mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
import: pypi: Ignore pypi-ignored-inputs.
* guix/import/pypi.scm (pypi-ignored-inputs): New variable. (compute-inputs): Use it. * tests/pypi.scm (parse-requires.txt): Add ignored input to test the feature. * guix/lint.scm (check-inputs-should-be-native): Adapt list. (check-inputs-should-not-be-an-input-at-all): Use pypi-ignored-list. Change-Id: I297793b71f9ffdfbe7cc4e883777f8823941adf0 Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
f6d35227b8
commit
f7d8af0622
3 changed files with 30 additions and 13 deletions
|
|
@ -14,6 +14,7 @@
|
|||
;;; Copyright © 2022 Vivien Kraus <vivien@planete-kraus.eu>
|
||||
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
@ -68,6 +69,7 @@
|
|||
#:use-module (guix upstream)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:export (%pypi-base-url
|
||||
pypi-ignored-inputs
|
||||
parse-requires.txt
|
||||
parse-wheel-metadata
|
||||
specification->requirement-name
|
||||
|
|
@ -84,6 +86,18 @@
|
|||
;; Base URL of the PyPI API.
|
||||
(make-parameter "https://pypi.org/pypi/"))
|
||||
|
||||
(define pypi-ignored-inputs
|
||||
;; This list contains packages that are useful for development or quality
|
||||
;; testing, but that most of the time are not necessary to have as an input.
|
||||
(list "argparse" "wheel" "import-metadata" ; native, backports
|
||||
"nox" "tox" ; test wrapper for other environments
|
||||
"codecov" "coverage" ; test coverage reporting
|
||||
"black" "isort" "pycodestyle" "pep8" ; style
|
||||
"check-manifest" "pyflakes" "flake8" "pylint" "mypy" ; style+lint
|
||||
"coveralls" "twine" ; upload integration tools
|
||||
"pytest-isort" "pytest-flake8" "pytest-cov" "pytest-black" ; variants
|
||||
"pytest-pep8" "pytest-mypy" "pytest-pep8" "pre-commit")) ;
|
||||
|
||||
(define non-empty-string-or-false
|
||||
(match-lambda
|
||||
("" #f)
|
||||
|
|
@ -499,12 +513,12 @@ cannot determine package dependencies from source archive: ~a~%")
|
|||
"Given the SOURCE-URL and WHEEL-URL of an already downloaded ARCHIVE, return
|
||||
the corresponding list of <upstream-input> records."
|
||||
(define (requirements->upstream-inputs deps type)
|
||||
(filter-map (match-lambda
|
||||
("argparse" #f)
|
||||
(name (upstream-input
|
||||
(name name)
|
||||
(downstream-name (python->package-name name))
|
||||
(type type))))
|
||||
(filter-map (lambda (name)
|
||||
(and (not (member name pypi-ignored-inputs))
|
||||
(upstream-input
|
||||
(name name)
|
||||
(downstream-name (python->package-name name))
|
||||
(type type))))
|
||||
(sort deps string-ci<?)))
|
||||
|
||||
(define (add-missing-native-inputs inputs)
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@
|
|||
hg-reference-url)
|
||||
#:autoload (guix bzr-download) (bzr-reference?
|
||||
bzr-reference-url)
|
||||
#:use-module ((guix import pypi) #:select (pypi-ignored-inputs))
|
||||
#:use-module (guix import stackage)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
|
|
@ -602,14 +603,12 @@ of a package, and INPUT-NAMES, a list of package specifications such as
|
|||
"m4"
|
||||
"qttools-5"
|
||||
"yasm" "nasm" "fasm"
|
||||
"python-coverage"
|
||||
"python-cython"
|
||||
"python-docutils"
|
||||
"python-mock"
|
||||
"python-nose"
|
||||
"python-pbr"
|
||||
"python-pytest"
|
||||
"python-pytest-cov"
|
||||
"python-setuptools-scm"
|
||||
"python-sphinx"
|
||||
"scdoc"
|
||||
|
|
@ -631,10 +630,13 @@ of a package, and INPUT-NAMES, a list of package specifications such as
|
|||
(define (check-inputs-should-not-be-an-input-at-all package)
|
||||
;; Emit a warning if some inputs of PACKAGE are likely to should not be
|
||||
;; an input at all.
|
||||
(let ((input-names '("python-pip"
|
||||
"python-pre-commit"
|
||||
"tzdata"
|
||||
"nss-certs")))
|
||||
(let ((input-names (append
|
||||
'("python-pip"
|
||||
"python-pre-commit"
|
||||
"tzdata"
|
||||
"nss-certs")
|
||||
(map (cut string-append "python-" <>)
|
||||
pypi-ignored-inputs))))
|
||||
(map (lambda (input)
|
||||
(make-warning
|
||||
package
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ bar != 2
|
|||
|
||||
[test]
|
||||
pytest (>=2.5.0)
|
||||
pytest-cov # read but ignored
|
||||
")
|
||||
|
||||
;; Beaker contains only optional dependencies.
|
||||
|
|
@ -258,7 +259,7 @@ files specified by SPECS. Return its file name."
|
|||
(map specification->requirement-name test-specifications))
|
||||
|
||||
(test-equal "parse-requires.txt"
|
||||
(list '("foo" "bar") '("pytest"))
|
||||
(list '("foo" "bar") '("pytest" "pytest-cov"))
|
||||
(mock ((ice-9 ports) call-with-input-file
|
||||
call-with-input-string)
|
||||
(parse-requires.txt test-requires.txt)))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue