[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70858] [PATCH python-team v2 01/32] guix: import: pypi: Ignore pypi
From: |
Nicolas Graves |
Subject: |
[bug#70858] [PATCH python-team v2 01/32] guix: import: pypi: Ignore pypi-ignored-inputs. |
Date: |
Sat, 1 Jun 2024 17:36:33 +0200 |
* 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: I774e526c5a090026e778ee44049637174a1dca95
---
guix/import/pypi.scm | 21 ++++++++++++++++++---
guix/lint.scm | 12 +++++++-----
tests/pypi.scm | 3 ++-
3 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 6719fde330a..d4b70061e86 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -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.
;;;
@@ -61,6 +62,7 @@ (define-module (guix import pypi)
#: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
@@ -77,6 +79,18 @@ (define %pypi-base-url
;; 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" ; native
+ "tox" ; test wrapper for other environments
+ "codecov" "coverage" ; coverage
+ "black" "isort" "pycodestyle" "pep8" ; style
+ "pyflakes" "flake8" "pylint" "mypy" ; style+lint
+ "coveralls" "twine" ; upload integration tools
+ "pytest-isort" "pytest-flake8" "pytest-cov" "pytest-black"
+ "pytest-pep8" "pytest-mypy" "pytest-pep8" "pre-commit")) ; variants
+
(define non-empty-string-or-false
(match-lambda
("" #f)
@@ -424,9 +438,10 @@ (define (compute-inputs source-url wheel-url archive)
"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
+ (filter-map (lambda (name)
+ (if (member name pypi-ignored-inputs)
+ #f
+ (upstream-input
(name name)
(downstream-name (python->package-name name))
(type type))))
diff --git a/guix/lint.scm b/guix/lint.scm
index 68d532968de..f689cc2a2a8 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -71,6 +71,7 @@ (define-module (guix lint)
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)
@@ -557,14 +558,12 @@ (define (check-inputs-should-be-native package)
"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"
@@ -586,9 +585,12 @@ (define (check-inputs-should-be-native package)
(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-setuptools"
- "python-pip"
- "python-pre-commit")))
+ (let ((input-names (append
+ '("python-setuptools"
+ "python-pip"
+ "pre-commit")
+ (map (cut string-append "python-" <>)
+ pypi-ignored-inputs))))
(map (lambda (input)
(make-warning
package
diff --git a/tests/pypi.scm b/tests/pypi.scm
index 42b39cde730..fe01ab3beb3 100644
--- a/tests/pypi.scm
+++ b/tests/pypi.scm
@@ -97,6 +97,7 @@ (define test-requires.txt "\
[test]
pytest (>=2.5.0)
+pytest-cov # read but ignored
")
;; Beaker contains only optional dependencies.
@@ -244,7 +245,7 @@ (define-syntax-rule (with-pypi responses body ...)
(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)))
--
2.41.0
- [bug#70858] [PATCH python-team v2 00/32] Remove unwanted native-inputs., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 02/32] build-system/pyproject: Ignore unwanted pytest flags., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 01/32] guix: import: pypi: Ignore pypi-ignored-inputs.,
Nicolas Graves <=
- [bug#70858] [PATCH python-team v2 03/32] build-system/pyproject: Remove python-black input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 04/32] build-system/pyproject: Remove python-pylint native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 05/32] build-system/pyproject: Remove python-flake8 inputs., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 06/32] build-system/pyproject: Remove python-coverage input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 10/32] gnu: python-openid: Remove python-coverage native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 11/32] build-system/pyproject: Remove python-coveralls native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 09/32] gnu: python-aiosqlite: Remove python-coverage native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 08/32] gnu: u-boot-tools: Remove python-coverage native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 16/32] build-system/pyproject: Remove python-codecov native-input., Nicolas Graves, 2024/06/01
- [bug#70858] [PATCH python-team v2 12/32] build-system/pyproject: Remove python-pycodestyle native-input., Nicolas Graves, 2024/06/01