@@ -155,9 +155,29 @@ saving time. Almost all of the Olson timezones are supported.")
(sha256
(base32 "01zjc245w08j0xryrgrq9vng59q1cl5ry0hcpw5rj774pyhhqsmh"))))
(build-system python-build-system)
- ;; XXX: The PyPI distribution lacks tests, and the upstream repository
- ;; lacks a setup.py!
- (arguments '(#:tests? #f))
+ (arguments `(#:phases
+ (modify-phases %standard-phases
+ ;; Add setup.py to fix the build. Otherwise, the build will
+ ;; fail with "no setup.py found".
+ ;;
+ ;; Upstream uses Poetry to build python-pendulum, including
+ ;; parts written in C. Here, we simply add a setup.py file
+ ;; and do not build the parts written in C. This is possible
+ ;; because python-pendulum falls back on pure Python code
+ ;; when the C parts are not available (reference: build.py).
+ (add-after 'unpack 'add-setup.py
+ (lambda _
+ (call-with-output-file "setup.py"
+ (lambda (port)
+ (format port
+ "from setuptools import find_packages, setup
+setup(name='pendulum',
+ version='~a',
+ packages=find_packages())
+"
+ ,version))))))
+ ;; XXX: The PyPI distribution lacks tests.
+ #:tests? #f))
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
("python-pytzdata" ,python-pytzdata)))