summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-04-14 23:25:31 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-05-12 12:45:47 -0400
commit6c7834f46aade4771d53434b6fd04c93e8746b7c (patch)
treeb4e938008f697a6473922554b9454dfef2f4a06d
parentefb791ba4f3559ca9306289889af02da96b822f3 (diff)
gnu: Add python-pep621.
* gnu/packages/python-xyz.scm (python-pep621): New variable.
-rw-r--r--gnu/packages/python-xyz.scm52
1 files changed, 51 insertions, 1 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ca293f5f54..23bf8add15 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10813,7 +10813,57 @@ plugin for flake8 to check PEP-8 naming conventions.")
(arguments
`(#:tests? #f
,@(package-arguments base)))
- (native-inputs `()))))
+ (native-inputs `()))))
+
+(define-public python-pep621
+ (package
+ (name "python-pep621")
+ (version "0.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FFY00/python-pep621")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nzig7bmzf0xx5svxlf065mrzihr0ci4p1yaxka9flqjba98flpr"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: PEP 517 manual build/install procedures copied from
+ ;; python-isort.
+ (replace 'build
+ (lambda _
+ ;; ZIP does not support timestamps before 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
+ (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv"
+ ;; Two parameterized test_load tests are currently
+ ;; failing (see:
+ ;; https://github.com/FFY00/python-pep621/issues/14).
+ "-k" "not test_load"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((whl (car (find-files "dist" "\\.whl$"))))
+ (invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--no-deps" "--prefix" #$output whl)))))))
+ (propagated-inputs (list python-packaging))
+ (native-inputs (list python-pypa-build python-pytest python-tomli))
+ (home-page "https://github.com/FFY00/python-pep621")
+ (synopsis "Dataclass for PEP 621 metadata")
+ (description "This project does not implement the parsing of
+@file{pyproject.toml} containing PEP 621 metadata. Instead, given a Python
+data structure representing PEP 621 metadata (already parsed), it will
+validate this input and generate a PEP 643-compliant metadata
+file (e.g. @file{PKG-INFO}).")
+ (license license:expat)))
(define-public python-pyflakes
(package