summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-10-01 11:00:51 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-11-11 12:18:11 -0500
commit95878336881eaa5383348712b11087029e943b92 (patch)
tree704f829f2cd7098a356c6d98f867c5716bde241a
parentb734ce06e142a6fa29c40919f4cda93d4d8ad700 (diff)
gnu: Add python-flit-core.
* gnu/packages/python-build.scm (python-flit-core): New variable.
-rw-r--r--gnu/packages/python-build.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index e55044d982..44edb2d097 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -27,6 +27,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix packages))
;;; Commentary:
@@ -298,3 +299,44 @@ implementation developed for Poetry. This project is intended to be
a light weight, fully compliant, self-contained package allowing PEP 517
compatible build front-ends to build Poetry managed projects.")
(license license:expat)))
+
+(define-public python-flit-core
+ (package
+ (name "python-flit-core")
+ (version "3.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flit" version))
+ (sha256
+ (base32 "10vjqnybvjdqdbmyc0asbhhvq51yjnnj00645yiq9849gnr8h0ir"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-toml" ,python-toml)))
+ (arguments
+ ;; flit-core has a test suite, but it requires Pytest. Disable it so
+ ;; as to not pull pytest as an input.
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ ;; flit-core requires itself to build. Luckily, a
+ ;; bootstrapping script exists, which does so using just
+ ;; the checkout sources and Python.
+ (lambda _
+ (invoke "python" "flit_core/build_dists.py")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (whl (car (find-files "." "\\.whl$"))))
+ (invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--no-deps" "--prefix" out whl))))
+ ;; The sanity-check phase fails because flit depends on tomli at
+ ;; run-time, but this core variant avoids it to avoid a cycle.
+ (delete 'sanity-check))))
+ (home-page "https://github.com/takluyver/flit")
+ (synopsis "Core package of the Flit Python build system")
+ (description "This package provides @code{flit-core}, a PEP 517 build
+backend for packages using Flit. The only public interface is the API
+specified by PEP 517, @code{flit_core.buildapi}.")
+ (license license:bsd-3)))