[PATCH] gnu: Add python-textual.

  • Done
  • quality assurance status badge
Details
3 participants
  • Björn Höfling
  • Brian Kubisiak
  • Ludovic Courtès
Owner
unassigned
Submitted by
Brian Kubisiak
Severity
normal
B
B
Brian Kubisiak wrote on 25 Sep 2022 14:59
(address . guix-patches@gnu.org)
20220925125924.sifu3hzebvuoc6ay@peregrine
* gnu/packages/python-xyz.scm (python-textual): New variable.
---
gnu/packages/python-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ffcb023d60..5fd7dad8e3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15973,6 +15973,50 @@ (define-public python-rich
syntax highlighting, markdown and more to the terminal.")
(license license:expat)))
+(define-public python-textual
+ (package
+ (name "python-textual")
+ (version "0.1.18")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "textual" version))
+ (sha256
+ (base32
+ "08yg5a51hz1axfj5hx28hx31gq5apcj6vpkkmawmiplisa73z25j"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs tests? #:allow-other-keys)
+ (when tests?
+ (copy-recursively (string-append
+ (assoc-ref inputs "tests") "/tests")
+ "tests")
+ (invoke "python" "-m" "pytest" "-vv")))))))
+ (propagated-inputs
+ (list python-rich python-typing-extensions))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("tests"
+ ;; The release on pypi comes without tests. We can't build from this
+ ;; checkout, though, because installation requires an invocation of
+ ;; poetry.
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Textualize/textual")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b3ycwqhp21mg9fvmadgxhgbvkwq6fd784l2xcmvy77rravrnnax"))))))
+ (home-page "https://github.com/Textualize/textual")
+ (synopsis "Build TUIs in python")
+ (description "Textual is a TUI (Text User Interface) framework for Python
+inspired by modern web development.")
+ (license license:expat)))
+
(define-public python-magic
(package
(name "python-magic")
--
2.37.3
B
B
Björn Höfling wrote on 27 Sep 2022 23:09
(name . Brian Kubisiak)(address . brian@kubisiak.com)(address . 58072@debbugs.gnu.org)
20220927230930.37137e42@alma-ubu.fritz.box
Hi Brian,

On Sun, 25 Sep 2022 05:59:24 -0700
Brian Kubisiak <brian@kubisiak.com> wrote:

Toggle quote (4 lines)
> * gnu/packages/python-xyz.scm (python-textual): New variable.
> ---
> gnu/packages/python-xyz.scm | 44

[..]
Toggle quote (41 lines)
> + (source (origin
> + (method url-fetch)
> + (uri (pypi-uri "textual" version))
> + (sha256
> + (base32
> +
> "08yg5a51hz1axfj5hx28hx31gq5apcj6vpkkmawmiplisa73z25j"))))
> + (build-system python-build-system)
> + (arguments
> + (list #:phases
> + #~(modify-phases %standard-phases
> + (replace 'check
> + (lambda* (#:key inputs tests? #:allow-other-keys)
> + (when tests?
> + (copy-recursively (string-append
> + (assoc-ref inputs "tests")
> "/tests")
> + "tests")
> + (invoke "python" "-m" "pytest" "-vv")))))))
> + (propagated-inputs
> + (list python-rich python-typing-extensions))
> + (native-inputs
> + `(("python-pytest" ,python-pytest)
> + ("tests"
> + ;; The release on pypi comes without tests. We can't build
> from this
> + ;; checkout, though, because installation requires an
> invocation of
> + ;; poetry.
> + ,(origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/Textualize/textual")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> +
> "0b3ycwqhp21mg9fvmadgxhgbvkwq6fd784l2xcmvy77rravrnnax"))))))


You download the sources twice: Once from pypi, and another time from
GitHub as "test" input. I would suggest you use directly the GitHub
sources as main sources. Then you also don't need the modified 'check
phase.

As an example, I found python-identify, which also comments on the
sources that there are no tests in PyPi (please add that comment too,
it makes it clear why not to use PyPi).

Would you like to send an updated patch?

Thanks,

Björn
-----BEGIN PGP SIGNATURE-----

iF0EAREKAB0WIQQiGUP0np8nb5SZM4K/KGy2WT5f/QUCYzNmigAKCRC/KGy2WT5f
/SM7AKCdRRK5+nLy143Waklae+PARTq6wQCeLDwNjR+vZIInKZ2QJz3ANkkqjD8=
=XZRO
-----END PGP SIGNATURE-----


B
B
Brian Kubisiak wrote on 28 Sep 2022 14:30
(name . Björn Höfling)(address . bjoern.hoefling@bjoernhoefling.de)(address . 58072@debbugs.gnu.org)
20220928123006.uy7tevbbft2f36cg@peregrine
Toggle quote (5 lines)
> You download the sources twice: Once from pypi, and another time from
> GitHub as "test" input. I would suggest you use directly the GitHub
> sources as main sources. Then you also don't need the modified 'check
> phase.

The GitHub sources are built with poetry and do not have setup.py or
setup.cfg; in order to use the existing python-build-system, the
package must be built from the PyPi sources. The other option would be
to disable the tests completely instead of downloading them from
GitHub, but I think keeping the tests is a better option.

Toggle quote (3 lines)
> As an example, I found python-identify, which also comments on the
> sources that there are no tests in PyPi

The patch I wrote is based on python-rich (which is a similar package
by the same author).

Toggle quote (3 lines)
> (please add that comment too, it makes it clear why not to use
> PyPi).

I've already got that comment here:

Toggle quote (4 lines)
> + ;; The release on pypi comes without tests. We can't build from this
> + ;; checkout, though, because installation requires an invocation of
> + ;; poetry.

Thanks,
Brian
L
L
Ludovic Courtès wrote on 6 Oct 2022 22:42
Re: bug#58072: [PATCH] gnu: Add python-textual.
(name . Brian Kubisiak)(address . brian@kubisiak.com)(address . 58072-done@debbugs.gnu.org)
87o7uohefw.fsf@gnu.org
Hi,

Brian Kubisiak <brian@kubisiak.com> skribis:

Toggle quote (2 lines)
> * gnu/packages/python-xyz.scm (python-textual): New variable.

Applied. Thank you and thanks Björn for taking a look!

I followed up with a change to remove input labels.

Ludo’.
Closed
?