[PATCH 0/7] gnu: Add fava.

  • Open
  • quality assurance status badge
Details
2 participants
  • dan
  • Ludovic Courtès
Owner
unassigned
Submitted by
dan
Severity
normal
D
(address . guix-patches@gnu.org)
20221221130751.9303-1-i@dan.games
This patch series adds fava, a web interface for the double-entry bookkeeping
software Beancount. Note that the latest version of python-cheroot is 9.0.0,
but the latest release of fava depends on python-cheroot lower than 9. Thus,
we have to pack 8.6.0 at the moment.

dan (7):
gnu: Add python-markdown2.
gnu: Add python-portend.
gnu: Add python-inflect.
gnu: Add python-jaraco-text.
gnu: Add python-pypytools.
gnu: Add python-cheroot.
gnu: Add fava.

gnu/packages/finance.scm | 35 ++++++++++++
gnu/packages/python-web.scm | 29 ++++++++++
gnu/packages/python-xyz.scm | 106 ++++++++++++++++++++++++++++++++++++
3 files changed, 170 insertions(+)


base-commit: 7833acab0da02335941974608510c02e2d1d8069
--
2.38.1
D
[PATCH 1/7] gnu: Add python-markdown2.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-1-i@dan.games
* gnu/packages/python-xyz.scm (python-markdown2): New variable.
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ee25a2d655..731fc9bbfb 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -132,6 +132,7 @@
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2022 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -11540,6 +11541,23 @@ (define-public python-markdown
markdown_py is also provided to convert Markdown files to HTML.")
(license license:bsd-3)))
+(define-public python-markdown2
+ (package
+ (name "python-markdown2")
+ (version "2.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "markdown2" version))
+ (sha256
+ (base32
+ "1c1bqkggr50274gs478cnzm8bljqifdnbg20zla1nn8n3sz4snzn"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/trentm/python-markdown2")
+ (synopsis "A fast and complete Python implementation of Markdown")
+ (description
+ "This package provides a fast and complete Python implementation of Markdown")
+ (license license:expat)))
+
(define-public python-mdx-include
(package
(name "python-mdx-include")
--
2.38.1
D
[PATCH 2/7] gnu: Add python-portend.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-2-i@dan.games
* gnu/packages/python-xyz.scm (python-portend): New variable.
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 731fc9bbfb..6cdf9026b0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8907,6 +8907,24 @@ (define-public python-jaraco-packaging
releases.")
(license license:expat)))
+(define-public python-portend
+ (package
+ (name "python-portend")
+ (version "3.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "portend" version))
+ (sha256
+ (base32
+ "1r14sb2rh7ncy0m28dqfb70cqxdd0y0idml7vzv27a2y0hb337i3"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-tempora))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/jaraco/portend")
+ (synopsis "TCP port monitoring and discovery")
+ (description "TCP port monitoring and discovery")
+ (license license:expat)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
--
2.38.1
D
[PATCH 3/7] gnu: Add python-inflect.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-3-i@dan.games
* gnu/packages/python-xyz.scm (python-inflect): New variable.
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6cdf9026b0..f0e2ad4fc4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8925,6 +8925,27 @@ (define-public python-portend
(description "TCP port monitoring and discovery")
(license license:expat)))
+(define-public python-inflect
+ (package
+ (name "python-inflect")
+ (version "6.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "inflect" version))
+ (sha256
+ (base32
+ "16ihdnwck79db21g2pnqq8acc4n68k8agqgx36bghijh22qbr9pi"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-pydantic))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/jaraco/inflect")
+ (synopsis
+ "Correctly generate plurals, singular nouns, ordinals, indefinite articles; convert numbers to words")
+ (description
+ "Correctly generate plurals, singular nouns, ordinals, indefinite articles;
+convert numbers to words")
+ (license license:expat)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
--
2.38.1
D
[PATCH 4/7] gnu: Add python-jaraco-text.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-4-i@dan.games
* gnu/packages/python-xyz.scm (python-jaraco-text): New variable.
---
gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f0e2ad4fc4..3a10d0a892 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8946,6 +8946,34 @@ (define-public python-inflect
convert numbers to words")
(license license:expat)))
+(define-public python-jaraco-text
+ (package
+ (name "python-jaraco-text")
+ (version "3.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.text" version))
+ (sha256
+ (base32
+ "0lc3ji0xgd35rbrr2yrp3ykhmgp2xjj1r04w2yl6w5zyjnaminqd"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-autocommand
+ python-importlib-resources
+ python-inflect
+ python-jaraco-context
+ python-jaraco-functools
+ python-more-itertools))
+ (native-inputs (list python-pathlib2
+ python-pytest))
+ (home-page "https://github.com/jaraco/jaraco.text")
+ (synopsis "Module for text manipulation")
+ (description
+ "This package provides handy routines for dealing with text,
+such as wrapping, substitution, trimming, stripping, prefix and suffix
+removal, line continuation, indentation, comment processing, identifier
+processing, values parsing, case insensitive comparison, and more.")
+ (license license:expat)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
--
2.38.1
D
[PATCH 5/7] gnu: Add python-pypytools.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-5-i@dan.games
* gnu/packages/python-xyz.scm (python-pypytools): New variable.
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3a10d0a892..13627419be 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8974,6 +8974,27 @@ (define-public python-jaraco-text
processing, values parsing, case insensitive comparison, and more.")
(license license:expat)))
+(define-public python-pypytools
+ (package
+ (name "python-pypytools")
+ (version "0.6.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pypytools" version))
+ (sha256
+ (base32
+ "0ag5xyzagprji0m2pkqsfy8539s003mn41pl6plbmh6iwi9w0h51"))))
+ (build-system python-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (propagated-inputs (list python-py))
+ (home-page "https://github.com/antocuni/pypytools/")
+ (synopsis
+ "A collection of useful tools to use PyPy-specific features, with CPython fallbacks")
+ (description
+ "This package provides a collection of useful tools to use PyPy-specific
+features, with CPython fallbacks")
+ (license license:x11)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
--
2.38.1
D
[PATCH 6/7] gnu: Add python-cheroot.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-6-i@dan.games
* gnu/packages/python-web.scm (python-cheroot): New variable.
---
gnu/packages/python-web.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 18c0b47b67..65b445688c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -58,6 +58,7 @@
;;; Copyright © 2022 msimonin <matthieu.simonin@inria.fr>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
+;;; Copyright © 2022 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -979,6 +980,34 @@ (define-public python-httplib2
other HTTP libraries.")
(license license:expat)))
+(define-public python-cheroot
+ (package
+ (name "python-cheroot")
+ (version "8.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "cheroot" version))
+ (sha256
+ (base32
+ "09cfy2iwqs1j8k0mailcdzzjw0lkg4lyc6rddi45b5dcgipdysin"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-importlib-metadata python-jaraco-functools
+ python-more-itertools))
+ (native-inputs (list python-pytest
+ python-requests
+ python-requests-unixsocket
+ python-requests-toolbelt
+ python-pypytools
+ python-trustme
+ python-pyopenssl
+ python-jaraco-text
+ python-portend
+ python-setuptools-scm-git-archive))
+ (home-page "https://cheroot.cherrypy.dev")
+ (synopsis "Highly-optimized, pure-python HTTP server")
+ (description "Highly-optimized, pure-python HTTP server")
+ (license license:bsd-3)))
+
(define-public httpie
(package
(name "httpie")
--
2.38.1
D
[PATCH 7/7] gnu: Add fava.
(address . 60238@debbugs.gnu.org)
20221221131404.9862-7-i@dan.games
* gnu/packages/finance.scm (fava): New variable.
---
gnu/packages/finance.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index f9ee7acaa1..fea1bbcb28 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -32,6 +32,7 @@
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
+;;; Copyright © 2022 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1903,6 +1904,40 @@ (define-public beancount
generate a variety of reports from them, and provides a web interface.")
(license license:gpl2)))
+(define-public fava
+ (package
+ (name "fava")
+ (version "1.23.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "fava" version))
+ (sha256
+ (base32
+ "0dbg29i3pdbv8m2n7qspafn5ja1glxf27xcdz8rdn3myjqh183sk"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list beancount
+ python-babel
+ python-beautifulsoup4
+ python-bottle
+ python-cheroot
+ python-click
+ python-flask
+ python-flask-babel
+ python-jinja2
+ python-magic
+ python-markdown2
+ python-ply
+ python-simplejson
+ python-werkzeug))
+ (native-inputs (list python-pytest
+ python-chardet
+ python-dateutil
+ python-setuptools-scm))
+ (home-page "https://beancount.github.io/fava/")
+ (synopsis "Web interface for the accounting tool Beancount.")
+ (description "Web interface for the accounting tool Beancount.")
+ (license license:expat)))
+
(define-public emacs-beancount
;; Note that upstream has not made any release since this project moved
;; into its own repository (it was originally part of beancount itself)
--
2.38.1
D
L
L
Ludovic Courtès wrote 5 days ago
Re: bug#60238: [PATCH 0/7] gnu: Add fava.
(name . dan)(address . i@dan.games)(address . 60238@debbugs.gnu.org)
874jsdr4to.fsf@gnu.org
Hi dan,

dan <i@dan.games> skribis:

Toggle quote (14 lines)
> This patch series adds fava, a web interface for the double-entry bookkeeping
> software Beancount. Note that the latest version of python-cheroot is 9.0.0,
> but the latest release of fava depends on python-cheroot lower than 9. Thus,
> we have to pack 8.6.0 at the moment.
>
> dan (7):
> gnu: Add python-markdown2.
> gnu: Add python-portend.
> gnu: Add python-inflect.
> gnu: Add python-jaraco-text.
> gnu: Add python-pypytools.
> gnu: Add python-cheroot.
> gnu: Add fava.

Overall this looks good to me and to

However, most synopses and descriptions would need to be improved a bit,
as per
(I know, it’s not fun, but it’s helpful for users.)

Could you give it a stab and send a v2?

Thanks in advance and sorry for the delay!

Ludo’.
?