Message ID | 20220925125924.sifu3hzebvuoc6ay@peregrine |
---|---|
State | Accepted |
Headers | show |
Series | [bug#58072] gnu: Add python-textual. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi Brian, On Sun, 25 Sep 2022 05:59:24 -0700 Brian Kubisiak <brian@kubisiak.com> wrote: > * gnu/packages/python-xyz.scm (python-textual): New variable. > --- > gnu/packages/python-xyz.scm | 44 [..] > + (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
> 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. > 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). > (please add that comment too, it makes it clear why not to use > PyPi). I've already got that comment here: > + ;; The release on pypi comes without tests. We can't build from this > + ;; checkout, though, because installation requires an invocation of > + ;; poetry. Thanks, Brian
Hi,
Brian Kubisiak <brian@kubisiak.com> skribis:
> * 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’.
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")