Add fava, a beancount web UI

OpenSubmitted by Christopher Lemmer Webber.
Details
One participant
  • Christopher Lemmer Webber
Owner
unassigned
Severity
normal
C
C
Christopher Lemmer Webber wrote on 8 Apr 2020 19:27
(address . guix-patches@gnu.org)
87d08h51lw.fsf@dustycloud.org
So it turns out fava, a web UI for beancount, is amazing, just amazing.
I recommend everyone use it and switch to it and hug it and tell it how
much they love and appreciate it. You can see an example version
running here:


I got it "packaged" in the sense that the package works and runs.
However it isn't good enough for Guix yet.

- Needs to be separated out into separate commits
- I lost patience with several dependencies' test requirments and
disabled tests
- At least one dependency's tests requires a newer pytest. That's not
in master yet afaict because, based on this email:
It was waiting for Python 3.8.0 to hit core-updates. I haven't
looked yet whether that's happening or not.

I need to get back to other work right now, but figured that it was more
helpful than nothing to leave a "it works, but isn't quite right" patch
on the mailing list before I forgot.

It's really quite close, but I'm drowning in tasks ATM. Maybe I can
come back to this, though if someone else beat me to it, I wouldn't
complain.

- Chris
From 220ab3414adb136d09d603ea96e5b321fe06af2e Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 7 Apr 2020 16:10:21 -0400
Subject: [PATCH] fava and deps wip

---
gnu/packages/finance.scm | 33 ++++
gnu/packages/python-xyz.scm | 317 ++++++++++++++++++++++++++++++++++++
2 files changed, 350 insertions(+)

Toggle diff (368 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index e666860392..5de5f168b0 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1440,3 +1440,36 @@ a Qt GUI.")
 define financial transaction records in a text file, read them in memory,
 generate a variety of reports from them, and provides a web interface.")
     (license license:gpl2)))
+
+(define-public fava
+  (package
+    (name "fava")
+    (version "1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fava" version))
+       (sha256
+        (base32
+         "181ypq2p7aaq2b76s55hxxbm1hykzf45mjjgm500h4dsaa167dqy"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("beancount" ,beancount)
+       ("python-babel" ,python-babel)
+       ("python-cheroot" ,python-cheroot)
+       ("python-click" ,python-click)
+       ("python-flask" ,python-flask)
+       ("python-flask-babel" ,python-flask-babel)
+       ("python-jinja2" ,python-jinja2)
+       ("python-markdown2" ,python-markdown2)
+       ("python-ply" ,python-ply)
+       ("python-simplejson" ,python-simplejson)
+       ("python-werkzeug" ,python-werkzeug)))
+    (native-inputs
+     `(("python-setuptools-scm" ,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)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d98b38411f..1191f4e780 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19344,3 +19344,320 @@ an identity provider.  The distribution contains examples of both.
 This package was originally written to work in a WSGI environment, but
 there are extensions that allow you to use it with other frameworks.")
     (license license:asl2.0)))
+
+(define-public python-jaraco-classes
+  (package
+    (name "python-jaraco.classes")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.classes" version))
+       (sha256
+        (base32
+         "1avsxzm5mwylmy2zbxq3xvn48z5djb0qy3hwv4ryncprivzri1n3"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs" ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.classes")
+    (synopsis
+     "Utility functions for Python class constructs")
+    (description
+     "Utility functions for Python class constructs")
+    (license #f)))
+
+(define-public python-jaraco-functools
+  (package
+    (name "python-jaraco-functools")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.functools" version))
+       (sha256
+        (base32
+         "15vd7x4jillggb8xcg3cm00j1v6llhl16r0rqm0l4n2lyahfxc2w"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-jaraco-classes" ,python-jaraco-classes)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-six" ,python-six)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.functools")
+    (synopsis "Functools like those found in stdlib")
+    (description
+     "Functools like those found in stdlib")
+    (license #f)))
+
+(define-public python-jaraco-text
+  (package
+    (name "python-jaraco-text")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.text" version))
+       (sha256
+        (base32
+         "1v0hz3h74m31jlbc5bxwkvrx1h2n7887bajrg1n1c3yc4q8qn1z5"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-six" ,python-six)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)))
+    (home-page
+     "https://github.com/jaraco/jaraco.text")
+    (synopsis "Module for text manipulation")
+    (description "Module for text manipulation")
+    (license #f)))
+
+(define-public python-pytest-testmon
+  (package
+    (name "python-pytest-testmon")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-testmon" version))
+       (sha256
+        (base32
+         "1iasz23zrzjgbak8jiq12i4zmkk8f6dmcdhfxz8m2q03agcidc7x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://testmon.org")
+    (synopsis
+     "selects tests affected by changed files and methods")
+    (description
+     "selects tests affected by changed files and methods")
+    (license #f)))
+
+(define-public python-pytest-watch
+  (package
+    (name "python-pytest-watch")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-watch" version))
+       (sha256
+        (base32
+         "1fflnd3varpqy8yzcs451n8h7wmjyx1408qdin5p2qdksl1ny4q6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-docopt" ,python-docopt)
+       ("python-pytest" ,python-pytest)
+       ("python-watchdog" ,python-watchdog)))
+    (home-page
+     "http://github.com/joeyespo/pytest-watch")
+    (synopsis
+     "Local continuous test runner with pytest and watchdog.")
+    (description
+     "Local continuous test runner with pytest and watchdog.")
+    (license license:expat)))
+
+(define-public python-requests-unixsocket
+  (package
+    (name "python-requests-unixsocket")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-unixsocket" version))
+       (sha256
+        (base32
+         "1sn12y4fw1qki5gxy9wg45gmdrxhrndwfndfjxhpiky3mwh1lp4y"))))
+    ;; why tied to waitress==0.9.0 I have no idea
+    (arguments
+     ;; We don't have all the test deps yet... missing pyttest-cache
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (delete-file "test-requirements.txt")
+             #t)))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("python-urllib3" ,python-urllib3)))
+    (native-inputs
+     `(("python-pbr-minimal" ,python-pbr-minimal)
+
+       ;; ("python-waitress" ,python-waitress)
+       ;; ("python-pep8" ,python-pep8)
+       ;; ("python-apipkg" ,python-apipkg)
+       ;; ("python-appdirs" ,python-appdirs)
+       ;; ("python-execnet" ,python-execnet)
+       ;; ("python-packaging" ,python-packaging)
+       ;; ("python-py" ,python-py)
+       ;; ("python-pyparsing" ,python-pyparsing))
+     ))
+    (home-page
+     "https://github.com/msabramo/requests-unixsocket")
+    (synopsis
+     "Use requests to talk HTTP via a UNIX domain socket")
+    (description
+     "Use requests to talk HTTP via a UNIX domain socket")
+    (license #f)))
+
+(define-public python-trustme
+  (package
+    (name "python-trustme")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trustme" version))
+       (sha256
+        (base32
+         "0v3vr5z6apnfmklf07m45kv5kaqvm6hxrkaqywch57bjd2siiywx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-idna" ,python-idna)))
+    (home-page
+     "https://github.com/python-trio/trustme")
+    (synopsis
+     "#1 quality TLS certs while you wait, for the discerning tester")
+    (description
+     "#1 quality TLS certs while you wait, for the discerning tester")
+    (license #f)))
+
+#;(define-public python-pytest-black-multipy
+  (package
+    (name "python-pytest-black-multipy")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-black-multipy" version))
+       (sha256
+        (base32
+         "1ciwa99fnz3ngbsvcjvxqz4k1vwfmvpxaj7qf5vxkx0awvczhsyd"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-flake8" ,python-pytest-flake8)))
+    (home-page "https://github.com/jaraco/skeleton")
+    (synopsis "Allow '--black' on older Pythons")
+    (description "Allow '--black' on older Pythons")
+    (license #f)))
+
+(define-public python-cheroot
+  (package
+    (name "python-cheroot")
+    (version "8.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cheroot" version))
+       (sha256
+        (base32
+         "0cc9cb5via001zkna0i2qp5s0bn1w327q6k7fba2f5v650gpwmx0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-more-itertools" ,python-more-itertools)
+       ("python-six" ,python-six)))
+    (arguments
+     ;; needs a newer pytest :\
+     `(#:tests? #f
+       ;; So we're also kicking out the dependency giving us
+       ;; trouble...
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'python-pytest-testmon',") ""))
+             #t)))))
+    (native-inputs
+     `(("python-codecov" ,python-codecov)
+       ("python-colorama" ,python-colorama)
+       ("python-coverage" ,python-coverage)
+       ("python-jaraco-text" ,python-jaraco-text)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-mock" ,python-pytest-mock)
+       ("python-pytest-sugar" ,python-pytest-sugar)
+       ; ("python-pytest-testmon" ,python-pytest-testmon)
+       ("python-pytest-watch" ,python-pytest-watch)
+       ("python-pytest-xdist" ,python-pytest-xdist)
+       ("python-requests-unixsocket"
+        ,python-requests-unixsocket)
+       ("python-trustme" ,python-trustme)
+       ("python-urllib3" ,python-urllib3)
+       ("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)))
+    (home-page "https://cheroot.cherrypy.org")
+    (synopsis
+     "Highly-optimized, pure-python HTTP server")
+    (description
+     "Highly-optimized, pure-python HTTP server")
+    (license #f)))
+
+(define-public python-markdown2
+  (package
+    (name "python-markdown2")
+    (version "2.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "markdown2" version))
+       (sha256
+        (base32
+         "1gjxy3j7qgl0fzmdqd0jx0gv13s1z9n1g3fd3s72rh4nnc08xy3z"))))
+    (build-system python-build-system)
+    (home-page
+     "https://github.com/trentm/python-markdown2")
+    (synopsis
+     "A fast and complete Python implementation of Markdown")
+    (description
+     "A fast and complete Python implementation of Markdown")
+    (license license:expat)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:45
[PATCH 1/10] gnu: Add python-jarco-classes.
(address . 40511@debbugs.gnu.org)
87d07rtmvt.fsf@dustycloud.org
Ok, new patch series! Broke up all the dependencies!

This might need a little work still but it's closer...
From 2891b384b0c18764d8f36b81c542ce45c4adb919 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:18:20 -0400
Subject: [PATCH 01/10] gnu: Add python-jarco-classes.

* gnu/packages/python-xyz.scm (python-jarco-classes): New variable.
---
gnu/packages/python-xyz.scm | 38 +++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 31cafd47d1..5f333af9e3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19588,3 +19588,41 @@ workspace...")
 dependencies.  It implements the @uref{http://opensoundcontrol.org/spec-1_0,
 Open Sound Control 1.0} specification.")
     (license license:unlicense)))
+
+(define-public python-jaraco-classes
+  (package
+    (name "python-jaraco.classes")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.classes" version))
+       (sha256
+        (base32
+         "1avsxzm5mwylmy2zbxq3xvn48z5djb0qy3hwv4ryncprivzri1n3"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs" ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.classes")
+    (synopsis
+     "Utility functions for Python class constructs")
+    (description
+     "This package provides utility functions for Python class constructs.")
+    (license #f)))
+
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:47
[PATCH 2/10] gnu: Add python-jaraco-functools.
(address . 40511@debbugs.gnu.org)
87blnbtmst.fsf@dustycloud.org
From d2099fba3733f8e8bb457f422095409b53c17d4a Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:19:04 -0400
Subject: [PATCH 02/10] gnu: Add python-jaraco-functools.

* gnu/packages/python-xyz.scm (python-jaraco-functools): New variable.
---
gnu/packages/python-xyz.scm | 40 +++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5f333af9e3..54a0ac36bd 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19626,3 +19626,43 @@ Open Sound Control 1.0} specification.")
      "This package provides utility functions for Python class constructs.")
     (license #f)))
 
+(define-public python-jaraco-functools
+  (package
+    (name "python-jaraco-functools")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.functools" version))
+       (sha256
+        (base32
+         "15vd7x4jillggb8xcg3cm00j1v6llhl16r0rqm0l4n2lyahfxc2w"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-jaraco-classes" ,python-jaraco-classes)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-six" ,python-six)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.functools")
+    (synopsis "Functools like those found in stdlib")
+    (description
+     "This package provides functools like those found in stdlib.")
+    (license #f)))
+
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiFIACgkQS8Alkl/4
9NPZ0A//V0PPwUdUcKG1eG+q2gKOTtbOQYQ9s8KJzn6uV41AqOrboi+g/bjMoN+e
/LPtodoLxgDc0+DRtrYkBXrOdEYyVqSn3rCxjmHo7WDCj+zgGHoyO+1DGTG53en3
yZTors/dXL0TWrULKx3ruAacQ2m/SwYJZ2idr/dRXKD04GkjEeGaAOeWQP/tR84t
6r/HsOeqQPBLEGbjbD9MxgHIaUCzhFgSbYuwOSd+KDMgFA5wmgNpMEszFLGIi0aY
tJmAh217R7aTmMm12+BA4iyZOiPn0q13xS54NIk9d5xSu/jCbtwXKUD4yy8f4y66
G/6KsNbnKk1ykj4721kwrxrgGbOz/KEhgQkPacOk2+Xs72JpTKwk/+VX+WJ9HHMd
0rKsm/Q7AO69l6BmfNs67mu3n0WC9e9mVYRZfwtroSyVGVRQH9/wn0EuwS9xhxLF
bM+E1egptsiaSmBzVwW/KIIuDBgxdnzs7IYE3mgEfrEURZ1xheigLP29o5rUPqg5
Q/S2gWVB7U44q6Ohfsepov9apbWGNUNtk+W5lnous7Q5s3fwxk1MuYec6WIqoPch
mxyLcLvnwJNDNOpM3bSKQBQxA5uPy7djBAndwJSUna6grLa/jV1yx0coTr3RAulW
mnE7XkNljwHVgaxJEL199YNfPHOrqxpSbhbPFXbCnDOY0rnfub8=
=+qbt
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:47
[PATCH 3/10] gnu: Add python-jarco-text.
(address . 40511@debbugs.gnu.org)
87a72vtms1.fsf@dustycloud.org
From 5b45a4cd2f10241ddd95e1d761dd9636a4c3cbc1 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:20:54 -0400
Subject: [PATCH 03/10] gnu: Add python-jarco-text.

* gnu/packages/python-xyz.scm (python-jarco-text): New variable.
---
gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 54a0ac36bd..0a031baac2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19666,3 +19666,31 @@ Open Sound Control 1.0} specification.")
      "This package provides functools like those found in stdlib.")
     (license #f)))
 
+(define-public python-jaraco-text
+  (package
+    (name "python-jaraco-text")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.text" version))
+       (sha256
+        (base32
+         "1v0hz3h74m31jlbc5bxwkvrx1h2n7887bajrg1n1c3yc4q8qn1z5"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-six" ,python-six)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)))
+    (home-page
+     "https://github.com/jaraco/jaraco.text")
+    (synopsis "Module for text manipulation")
+    (description "Python modules for text manipulation.")
+    (license #f)))
+
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiG4ACgkQS8Alkl/4
9NPsrQ/9ElBjqTPls7kL0D0c13sYi0z5Evk6qEF4lr/N3VS8K7MHNzI0sRXQTMqZ
Ww8WiladCtCjsaqziA7KMQMRopdoFxpKkJqAUnbDEy3K9cqOot18sAsRGS74c+Zg
6eYvvA1W1pMkTHBKSuj3KuuThyDy6P1Aqj9s5puAuggZdI3nCUTs1q14pMHVVCpO
WW0oIZM7r0pYa3+ROcgTLN8E9WsArFsENyGmjZK3EPqlee8hRSTWiLuDP28Cd6OR
YcFCBYjCsUNRqzI6hJiHp9qhQsXv0G3jD84axZ0DKkuRolekj7YRTkfyJQTtk4rm
/PCTV1KL+kJGv2XOeieOXxsJ9+rSLCy9hgjvoWnSedABqfegaYTt0LuFkeHtvR87
uwJFZLKmcYEYlURLoi4iHayE8quYD2nhK5uzPaMkRQs5F2dxpgl1Mi+HRi7mkeyz
A9Nys6a6TL7c0Wp/b/Wkng3dwweoBhb0SDJPnKl2pu9g94eJckTPxy35XdQ2MSDG
STTlFgpvsCFU/vRdT4wD5eVGQbyUjAcKE/OlbjhK3Q3PL9MDwI7h+DuqfRshIZyG
+PoI4B0h8/4hpDHzYPL5EEJ5ZbpunctL1v/oBOpwvEUzRTDuzIuCMs/Ews3iSXDX
yvYcz1YcwBa/9crHKel0IoYGluyuZtoRA7IXpOaogMFeXrC2c1w=
=b9/l
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:48
[PATCH 4/10] gnu: Add python-pytest-testmon.
(address . 40511@debbugs.gnu.org)
878siftmri.fsf@dustycloud.org
From 640ee423f25e1479ae8aa174acd6f1f0530a6325 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:21:16 -0400
Subject: [PATCH 04/10] gnu: Add python-pytest-testmon.

* gnu/packages/python-xyz.scm (python-pytest-testmon): New variable.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0a031baac2..062dfe1d2b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19694,3 +19694,25 @@ Open Sound Control 1.0} specification.")
     (description "Python modules for text manipulation.")
     (license #f)))
 
+(define-public python-pytest-testmon
+  (package
+    (name "python-pytest-testmon")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-testmon" version))
+       (sha256
+        (base32
+         "1iasz23zrzjgbak8jiq12i4zmkk8f6dmcdhfxz8m2q03agcidc7x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://testmon.org")
+    (synopsis
+     "Selects tests affected by changed files and methods")
+    (description
+     "Pytest module for selecting tests affected by changed files and
+methods.")
+    (license #f)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiIEACgkQS8Alkl/4
9NPb1BAA3y27216g29/aj7XNnibQzB/20JyuS2Lh+ySqixZI49CZvjSl5cCA7a5N
DxMdu8XLmkn1LbLfA4hiBFGhwxAo5SPwh8VH3i1ARxFZz4RzIhqRw6vkaoY1g0JX
zch8cT2iFBCaoc9bcMMQBUM0tRfqU7YZ65ln1q+6g+umIU134nmFCd6wxnoyoO1o
s697Kz84ffjTUELlEmX2WSLwJSkPdkqeB2klvMzyw6xLimA8Q98BfxapZ5vFSveq
fzw8EEmlmnVcc2QbXYabgw2g+sERNS2t/TN0FfZPcpFuB9yp4fJfjRnaKi9dV1HV
WThtjZrzdam+rMbWwfEnNK4PoicdtIpTwqVnFBgTGiOJ08RnkVm1Pf9aIFX6DvZs
aVymLl/C5yITZR6n1keoe53G7PQCb+X2nMy4BvZvyrlyrOLyGFElsamSDvb/rIgf
wEPqnEU27VTbOY0u8lFQt1HDP418DtMJME9spR2Y5NV2Mr/nf271VXlcPI3c8SmU
nHGqjUE6shZ0sydYJSce8zli44D37HUSdy7oNvcdC0M8qrtYizslOZ+gok7y6VgA
h8oJhiQOOSADf7D1qZLKWJrNid77fD4HTmPtWq+y6iXJRL5d/KGlLyojnv4jo8Th
c1jWNWnhov+vNKraX6xsa1budos0OnwR2L+TxZ8J8sgpXcUIzjA=
=cV42
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:48
[PATCH 5/10] gnu: Add python-pytest-watch.
(address . 40511@debbugs.gnu.org)
877dxztmqy.fsf@dustycloud.org
From 517253fdc76d5e96ab631e08d6a230c5734f141a Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:21:36 -0400
Subject: [PATCH 05/10] gnu: Add python-pytest-watch.

* gnu/packages/python-xyz.scm (python-pytest-watch): New variable.
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 062dfe1d2b..d9a972c456 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19716,3 +19716,29 @@ Open Sound Control 1.0} specification.")
      "Pytest module for selecting tests affected by changed files and
 methods.")
     (license #f)))
+
+(define-public python-pytest-watch
+  (package
+    (name "python-pytest-watch")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-watch" version))
+       (sha256
+        (base32
+         "1fflnd3varpqy8yzcs451n8h7wmjyx1408qdin5p2qdksl1ny4q6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-docopt" ,python-docopt)
+       ("python-pytest" ,python-pytest)
+       ("python-watchdog" ,python-watchdog)))
+    (home-page
+     "http://github.com/joeyespo/pytest-watch")
+    (synopsis
+     "Local continuous test runner for pytest and watchdog")
+    (description
+     "This package provides a local continuous test runner for pytest
+and watchdog.")
+    (license license:expat)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:48
[PATCH 6/10] gnu: Add python-requests-unixsocket.
(address . 40511@debbugs.gnu.org)
875zdjtmqc.fsf@dustycloud.org
From 873652e761e8d59f8f2d80da1f9ad3d469013988 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:01 -0400
Subject: [PATCH 06/10] gnu: Add python-requests-unixsocket.

* gnu/packages/python-xyz.scm (python-requests-unixsocket): New variable.
---
gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d9a972c456..2c354c8d71 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19742,3 +19742,39 @@ methods.")
      "This package provides a local continuous test runner for pytest
 and watchdog.")
     (license license:expat)))
+
+(define-public python-requests-unixsocket
+  (package
+    (name "python-requests-unixsocket")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-unixsocket" version))
+       (sha256
+        (base32
+         "1sn12y4fw1qki5gxy9wg45gmdrxhrndwfndfjxhpiky3mwh1lp4y"))))
+    ;; why tied to waitress==0.9.0 I have no idea
+    (arguments
+     ;; We don't have all the test deps yet... missing pyttest-cache
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (delete-file "test-requirements.txt")
+             #t)))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("python-urllib3" ,python-urllib3)))
+    (native-inputs
+     `(("python-pbr-minimal" ,python-pbr-minimal)))
+    (home-page
+     "https://github.com/msabramo/requests-unixsocket")
+    (synopsis
+     "Use requests to talk HTTP via a UNIX domain socket")
+    (description
+     "Use the Python requests library to talk HTTP via a UNIX domain socket.")
+    (license #f)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:49
[PATCH 7/10] gnu: Add python-trustme.
(address . 40511@debbugs.gnu.org)
874kt3tmpn.fsf@dustycloud.org
From bd5d7d55de0653cbde7776056c37d20999c94890 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:18 -0400
Subject: [PATCH 07/10] gnu: Add python-trustme.

* gnu/packages/python-xyz.scm (python-trustme): New variable.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2c354c8d71..153463f7bd 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19778,3 +19778,26 @@ and watchdog.")
     (description
      "Use the Python requests library to talk HTTP via a UNIX domain socket.")
     (license #f)))
+
+(define-public python-trustme
+  (package
+    (name "python-trustme")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trustme" version))
+       (sha256
+        (base32
+         "0v3vr5z6apnfmklf07m45kv5kaqvm6hxrkaqywch57bjd2siiywx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-idna" ,python-idna)))
+    (home-page
+     "https://github.com/python-trio/trustme")
+    (synopsis
+     "Fake certificate authority for unit tests")
+    (description
+     "Provides fake a fake TLS certificate authority for Python unit tests.")
+    (license #f)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiMQACgkQS8Alkl/4
9NPHxxAAiS+agSNBDgGiiiUXdzYztbnrGe6dbIsbeUCtWDqsjBoHh0hAufM8rIAX
BslBJuVsFCKnRmej+R9CNYW9GuGlVmOnvKClOykGDfCmzz8t6Yyd7hfPZANeVGUs
IkSnitp1ND4TFpDH3/K+WqoQ0djRNS0S6ZxwrnYWf3kAtC/iJcwRhH/XO8Y1kfUE
qMlG87CGLo4OozKq1NJ86wXWK3Lu+l8qs0pxc6kqWh2r/NbHn7eZazDvDYBiRscR
dhLQLFiGhTwrdlgyil0aFSB/ks1/0QsIDzAAxbV+BURr6a4mcdhk3vZRTAyrCEdo
P0qojaNqVrd6+051OFlYO3r0HIFBlvXTBXPCOzBKucRJRxw9HfGS1gbRGyyfIkSr
bFEFpo+vRVuqTWdQfM23foewBCA5uqy8z5RmNZsiQ5HS7SbSeCMh2k5EukYVBOWn
Y1nGARn5EIyWJz3CeilSshtGGrZ1NhE9n7U95Pei9lD69rBpsDbEtYoU54uZbenK
AT5gwsjqn0GfbGauDwL8BIl0/KXtk6m1y90vrA5+wK5PgtaT1zFtfoTPJ4YNnuaq
31SKE4LiT99fGcRDkFxBodnjZx5jpZ3D7EOqg+khAWsHd/17jUzYWpv+on9b5IdB
3eJRqQq8kiRnIh3w5qK4+S+Qp9WE6xifpvEkb+nngdWk4y6u07s=
=VhT5
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:49
[PATCH 8/10] gnu: Add python-cheroot.
(address . 40511@debbugs.gnu.org)
87368ntmp3.fsf@dustycloud.org
From 3621878476cbfd083a39921bf1e090cb22b08d43 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:40 -0400
Subject: [PATCH 08/10] gnu: Add python-cheroot.

* gnu/packages/python-xyz.scm (python-cheroot): New variable.
---
gnu/packages/python-xyz.scm | 53 +++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 153463f7bd..60839d646c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19801,3 +19801,56 @@ and watchdog.")
     (description
      "Provides fake a fake TLS certificate authority for Python unit tests.")
     (license #f)))
+
+(define-public python-cheroot
+  (package
+    (name "python-cheroot")
+    (version "8.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cheroot" version))
+       (sha256
+        (base32
+         "0cc9cb5via001zkna0i2qp5s0bn1w327q6k7fba2f5v650gpwmx0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-more-itertools" ,python-more-itertools)
+       ("python-six" ,python-six)))
+    (arguments
+     ;; needs a newer pytest :\
+     `(#:tests? #f
+       ;; So we're also kicking out the dependency giving us
+       ;; trouble...
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'python-pytest-testmon',") ""))
+             #t)))))
+    (native-inputs
+     `(("python-codecov" ,python-codecov)
+       ("python-colorama" ,python-colorama)
+       ("python-coverage" ,python-coverage)
+       ("python-jaraco-text" ,python-jaraco-text)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-mock" ,python-pytest-mock)
+       ("python-pytest-sugar" ,python-pytest-sugar)
+       ("python-pytest-watch" ,python-pytest-watch)
+       ("python-pytest-xdist" ,python-pytest-xdist)
+       ("python-requests-unixsocket"
+        ,python-requests-unixsocket)
+       ("python-trustme" ,python-trustme)
+       ("python-urllib3" ,python-urllib3)
+       ("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)))
+    (home-page "https://cheroot.cherrypy.org")
+    (synopsis
+     "Pure-python HTTP server with an emphasis on performance")
+    (description
+     "Cheroot is the pure-Python HTTP server used by CherryPy.")
+    (license #f)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiNgACgkQS8Alkl/4
9NOmxA/9HGZ8gZR7MZlu7kTpM7slbZKFbsj/YmOIDS7kVSqaW0/Lk7fNAkF6nZ8B
O0IMCESaQ9UV3CWf4xTRf54lMja+OZs8YGQCVImlngKEv6Ux6LaqE1T4vrJ9vG2I
mvVeQrhHkcTYkb67AvzeMLOtZXtCjt8YNxb8s42EsYW6Yhe26/X1d5mhNw+UpF8+
jf30OkI5Hz3JxDgA9INqXc1SXoWPwZd8bvBKdt6BnQfIMR0EleVCyglAuOlR6lbH
HCl8yJtz3O0x9QSHMnCFJgI4l/+3sJ4APTVI++AjHXU3Y6zmvU71aoIcCxpNeuF9
8Apl7BQFCvATIJy0U/8xeth/4EFK2+6SIURlDOiG6xJ5WCXDuUWZLE55Zum1D64l
/Yn9JUhEk94JhDnp6fkrE3TA3QMyq2IeVBlbma3VYBTkP+4f9ZiFYz6NpsGDKmZs
eoEeF9tLlZw7BIVtMlc1oH/I7SvtoDMc7aRraMCjvWjPz3diW8vzcw7CEjE1YSMn
MCcWIP0FsewUoEa4xdUa6IsXf+Qs5k/SUg2Suhe/r5URB8inT7HTkBs70rsgku0U
tBY6pGsDb8mQHRuhj0c4OsU0DioPIcT8ktiTgaaV4iUdMmCR0wBbAVnO5LFuVuvw
xf6TsU5XyobDtGIc5gf1kdZnkzTbTcse2HDmXgSPlGhXWwpf1s4=
=/9gc
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:50
[PATCH 9/10] gnu: Add python-markdown2.
(address . 40511@debbugs.gnu.org)
871ro7tmns.fsf@dustycloud.org
From 0f1d8bbc93e0da5d8b5f94771dd52233a34db105 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:54 -0400
Subject: [PATCH 09/10] gnu: Add python-markdown2.

* gnu/packages/python-xyz.scm (python-markdown2): New variable.
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 60839d646c..3af73e62c4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19854,3 +19854,24 @@ and watchdog.")
     (description
      "Cheroot is the pure-Python HTTP server used by CherryPy.")
     (license #f)))
+
+(define-public python-markdown2
+  (package
+    (name "python-markdown2")
+    (version "2.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "markdown2" version))
+       (sha256
+        (base32
+         "1gjxy3j7qgl0fzmdqd0jx0gv13s1z9n1g3fd3s72rh4nnc08xy3z"))))
+    (build-system python-build-system)
+    (home-page
+     "https://github.com/trentm/python-markdown2")
+    (synopsis
+     "A fast and complete Python implementation of Markdown")
+    (description
+     "A Python implementation of Markdown which aims to closely match
+the behavior of the original perl-implemented Markdown.pl.")
+    (license license:expat)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiQcACgkQS8Alkl/4
9NMO3RAAx4SfXpVbcJGrJgWxUkPgZF+2HBiWwggmzj56IMzf+NEMd4Tdq6+WvDIW
+AJx8zz/VIi3GMGH/vLi3Y6aEaLxnGoSp9OZvvH2Twm5ewidcCKF8cpMp2mGnG4F
VQBXihj8/JEsPcqVw9ZTGgr4MxpAKVjyYgG78RQ6HYjaB+4p+74nQVxHaAuksrDT
ACaYaRRVcqz/UU3lq2fOfmEbBgBAtsya4A9iRF+Io6L71HWYewknt3PgygVq4CVF
YR7RVwfUADQrhnMtUaPWNX8KKUFvkepWeUF7E+Q3bYcGpc+75iLE4d9OGdjH+eHC
t1e3LFvSaOHl59Zu3vgMjQ6oNEAFRn6ed6fv0MUulNmaxavpkJhGna6oHE3Ouu5L
k0R15chRmRLYDJm8dMXch82toEJr3a7AiT67aU/NHpwbr2vO0gPBHD2/8t5zkUMk
k4cszWaD13ILduplGOgA9+JHwnOIOyMsnUIrikke9ArBsMAmAlAr/6w6TJFWLbsh
V8Ze7sDlFQKLLDAEl0M4cIGyuKvRHikBHF57mlhhzZoUSxWnp5BXlc54rT0qFhV2
0VxplFr4Sh5RBEMVVI7d6NQEZ7zAejhnLU2CB+IdXVoukYcAreZwIQvAIxZkp+Sg
uGcrxk1jiLlIN0iIBlU7UNhCcpDSA9sVm2+X9UARvI2OS5ehjCI=
=BKvQ
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 21:51
[PATCH 10/10] gnu: Add fava.
(address . 40511@debbugs.gnu.org)
87zhavs81n.fsf@dustycloud.org
From 9614e1daf0ca1c43595bf6f1522121874f65b66a Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:39:25 -0400
Subject: [PATCH 10/10] gnu: Add fava.

* gnu/packages/finance.scm (fava): New variable.
---
gnu/packages/finance.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index c31b87ec19..2553980aaa 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1594,3 +1594,42 @@ generate a variety of reports from them, and provides a web interface.")
     (synopsis "Emacs mode for beancount")
     (description
       "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+
+(define-public fava
+  (package
+    (name "fava")
+    (version "1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fava" version))
+       (sha256
+        (base32
+         "181ypq2p7aaq2b76s55hxxbm1hykzf45mjjgm500h4dsaa167dqy"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("beancount" ,beancount)
+       ("python-babel" ,python-babel)
+       ("python-bottle" ,python-bottle)
+       ("python-cheroot" ,python-cheroot)
+       ("python-dateutil" ,python-dateutil)
+       ("python-click" ,python-click)
+       ("python-flask" ,python-flask)
+       ("python-flask-babel" ,python-flask-babel)
+       ("python-jinja2" ,python-jinja2)
+       ("python-lxml" ,python-lxml)
+       ("python-markdown2" ,python-markdown2)
+       ("python-magic" ,python-magic)
+       ("python-ply" ,python-ply)
+       ("python-simplejson" ,python-simplejson)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-werkzeug" ,python-werkzeug)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://beancount.github.io/fava/")
+    (synopsis
+     "Web interface for the accounting tool Beancount")
+    (description
+     "Fava is a web interface for the accounting tool Beancount.")
+    (license license:expat)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oiUQACgkQS8Alkl/4
9NON9g//SKSJ7vLcCheChSkpDfAj40RnC/y2epLjgg2eWhCpCsScx0m4k8OjUoEX
lrxOOPpXLkMKzVL5faP7HzB67cJ9lSkZXG8ZhVZgQYb8d+u9nwwdCDnIOsc49cUM
yUx/ghpJNT+fmPalwVmSHaax7bseKARCCMVOun/X2HcLdvuwqiA1X8n1lrxZNT1v
DOhlwSq1KPPD1t1Un+EqNrN/JylgGG2mxb4B83SR+P+y0h9hK8zVYt+7i7f8WHn0
v4OWyzBfgMFhbp7JCOS1Mf5DvTORxR4zqV0IXdyZKPmG3L5BcIbsXs4ugEUmdomx
80ebNOjs4kjuL2/kUL5OO+TkBnk3PbZbkUdx6x4uW1bF4YVdr7/JbxmAOruvVbFG
hEpnZLAHgY4XLvWXHNXGyCtkzM+cujUp+ZMPIhZv9BWHXrt0ayBHLwD2JsnuBt+8
WbjyTuCxmZLLXoutBfAJXfdroHutCY5uQGUivvfcjblQvjyw0OQby7iMt1zNe4Cc
ZLTlMAiuMaF6Ds3rrnWcJVfRLKBZPi0sRq0vtkCqTj0Gj9x/A4B0HzQVaz/8yB1o
CktlAGA3pBsJtb3PrJZaCL4qRopYRN83J/T49lDljZi1Rp/FNVrnAnntSvbFkIRe
hsR+BI97eOtQQkCmNQa7DWgCpW6W0RoVA09oUYLxMg75pRks29s=
=e8E8
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:17
[REDO 1] [PATCH 1/10] gnu: Add python-jarco-classes.
(address . 40511@debbugs.gnu.org)
87y2qfs6tt.fsf@dustycloud.org
grumble grumble forgot a bunch of license fields grumble grumble
From 9949ba38f867846d231965864a133d13a791f343 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:18:20 -0400
Subject: [PATCH 01/10] gnu: Add python-jarco-classes.

* gnu/packages/python-xyz.scm (python-jarco-classes): New variable.
---
gnu/packages/python-xyz.scm | 38 +++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 31cafd47d1..3998475c3d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19588,3 +19588,41 @@ workspace...")
 dependencies.  It implements the @uref{http://opensoundcontrol.org/spec-1_0,
 Open Sound Control 1.0} specification.")
     (license license:unlicense)))
+
+(define-public python-jaraco-classes
+  (package
+    (name "python-jaraco.classes")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.classes" version))
+       (sha256
+        (base32
+         "1avsxzm5mwylmy2zbxq3xvn48z5djb0qy3hwv4ryncprivzri1n3"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs" ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.classes")
+    (synopsis
+     "Utility functions for Python class constructs")
+    (description
+     "This package provides utility functions for Python class constructs.")
+    (license license:expat)))
+
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oj24ACgkQS8Alkl/4
9NMykhAAn40AISbqlhUyansS2n8hAt25zwa0zsWiplF1W1u1NAgFIzcXhzk2yAmb
4/PH1cong68iI6tB1WsfNi3wIZs7j6Iaqj8PYKSkk17aw4Ih2xNzRxMkOJHRppXc
jPpOFC5ZU8eO4/6wGWsbSu37UpPI6TaX7FCRTjV1icjbaah85klcJ1wCzd4IDdSC
RSMH7gVmbrSejDaJrHg7EYE4Liovw43AavEKKb3Uv4P9/sNiWCvBzBLlKdb6XpND
AcV3cURc5mRfmLIvtH1WDPNDjGFc4TQXJMDDDPQeqwsL93XDLEcXvViNCBjl7v7H
U4GlvJ9Wx8VkHjpeWPK79bG4P94TrLta5JK6kT531P0GPRvwmostslOqreE8WV+B
O6JBrIkWsVpk/HfaNHiyJRWpoV8DkV9YDB3axl2ix8T4s1lHH3bmTGj1i9AdZlS1
MkJ7pu4NTLiEjbwikHGAnkPRAklcfg5IvN0RkqItwZSPdXjebj+TKE3yf1vVGtIf
zz6sr4hQFKzZVXwrDjwRsjq5xB5s6VkcQf+cZ7boAoa8Hn8u9qKUIj5DF/9dMxaH
kQf/q6V43Z/jur/OUQL2JSSlTlbMQMe9j5zdnEVo0LB5DFUDjyqlWqBFMiFcuCAI
K2ykPrFPc+07HnryC+mzJQqxk3sfbe+otC+6tBDkdtF6uZFJJyk=
=n59B
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:18
[REDO 1] [PATCH 2/10] gnu: Add python-jaraco-functools.
(address . 40511@debbugs.gnu.org)
87wo5zs6t4.fsf@dustycloud.org
From 7b6c006f28eb431df85967881e2d7309591c5afa Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:19:04 -0400
Subject: [PATCH 02/10] gnu: Add python-jaraco-functools.

* gnu/packages/python-xyz.scm (python-jaraco-functools): New variable.
---
gnu/packages/python-xyz.scm | 40 +++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3998475c3d..8e0112883d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19626,3 +19626,43 @@ Open Sound Control 1.0} specification.")
      "This package provides utility functions for Python class constructs.")
     (license license:expat)))
 
+(define-public python-jaraco-functools
+  (package
+    (name "python-jaraco-functools")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.functools" version))
+       (sha256
+        (base32
+         "15vd7x4jillggb8xcg3cm00j1v6llhl16r0rqm0l4n2lyahfxc2w"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'pytest-black-multipy',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-more-itertools" ,python-more-itertools)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-jaraco-classes" ,python-jaraco-classes)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)
+       ("python-six" ,python-six)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://github.com/jaraco/jaraco.functools")
+    (synopsis "Functools like those found in stdlib")
+    (description
+     "This package provides functools like those found in stdlib.")
+    (license license:expat)))
+
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oj4cACgkQS8Alkl/4
9NNuNhAAvAO6dhL/eR53isFn/AMxJ77fz+W96zmS2msjXD/jfhyNhCkQaMdSuioB
XHI+Ikhs5piFAzbQK9WOFe8q+Ea2E9WNCv/P7YSDfzBkuSjzhCoSo5cm72qXYf/d
l0Iv7aViZrKOvNmfLmtvUVD+FrdMC+iia9qEocCa7iW1fZ+452P9OgdKAafpO8o2
DbKhmA967jH6DIUBJrITFtudpSIRO0wECrBehtzjn0/CFFT1K+pa4IeRqPoIQQbU
M1hzeml1tKpt/EyuIGGAlrbXJko5pJAP9Rqv05MR++XFBYQH0fB/W2T9AWGWB4PE
xusu0Sh2qUMKb6ZErLKZQhQeduJa1vmtB24Qsb7hEKMCcdZMKdDkpQj/qNBDjYm9
DQRO6mutxHXIPD/fkPgeieUF7AE/zZ8UDsm42vJHtg5Bl1F/QccHrsFCAmA1uiqT
OVQYyLxeZP3qudY1EBKVVKXnDY8LVRDUFwjDH/O73PmxKp35xFwIZJa3c1X4F8tc
8mGHb3eVxUphtqSG+bvWtHAh5piRWyk1NpD8CfJTZZu2RlST3X+4B39k/J7W0XPJ
9bW2Oj6+G1CERoeOEGFp1Wc498fCE8CxFaLgzzdsaVOKchan8wuNQYOj5w8wloEK
o+xB/eV9Qr5oEsclddmCYW1tz0bDAFSm+bHmXCf2302qCi8Qn5k=
=z316
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:18
[REDO 1] [PATCH 3/10] gnu: Add python-jarco-text.
(address . 40511@debbugs.gnu.org)
87v9ljs6sk.fsf@dustycloud.org
From cdd7cb93fb9000639377911c3bacaace664bf47d Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:20:54 -0400
Subject: [PATCH 03/10] gnu: Add python-jarco-text.

* gnu/packages/python-xyz.scm (python-jarco-text): New variable.
---
gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 8e0112883d..b00c8cf284 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19666,3 +19666,31 @@ Open Sound Control 1.0} specification.")
      "This package provides functools like those found in stdlib.")
     (license license:expat)))
 
+(define-public python-jaraco-text
+  (package
+    (name "python-jaraco-text")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jaraco.text" version))
+       (sha256
+        (base32
+         "1v0hz3h74m31jlbc5bxwkvrx1h2n7887bajrg1n1c3yc4q8qn1z5"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-six" ,python-six)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-checkdocs"
+        ,python-pytest-checkdocs)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-flake8" ,python-pytest-flake8)))
+    (home-page
+     "https://github.com/jaraco/jaraco.text")
+    (synopsis "Module for text manipulation")
+    (description "Python modules for text manipulation.")
+    (license license:expat)))
+
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oj5sACgkQS8Alkl/4
9NOFYA//RelSU1yKAniUV6IGLN/7xaKvQY6Jx6nuHIl6NuAjGtEZsOll3C2GnAMD
FdHlzlBOEfKLr0T8DrnSMqmPCEeoz0qBsTTtq0+TICIB3J6tXWaLUsI/+/0btVBE
TLDfR+lOGdYXNeep4G/o7mxMRKxZBiAehUPGkvH9uQb90VWrms0+c0NXuaKo2hOl
RSw3oXvmpH+ZwwKzr7jHW3IldnIM1FfJEpqBWiclxiHrUv+ikd2JZAmQYQjoxWkX
v0ypzXr5OdluT027Tey2XY5zyr0dj4urGudQCJHw6UZvJ2YdVDBXKrbvgaIkDevu
u33Q8GYT27ieqHnzx8sE+zQy8OP8/J8EOm+iKalgKtVJeY6ba6+kD3SBYC7anjQE
brwKJjnNTXStmz/VdvyXgAyO8mlvmtrNTIOl5J4Ndd9liQc1uAu6DbctL9CPFme9
qh7+2mbw1NATvCoq3WGT0qeDRIhZ0ytn18SBXpuRJKJy5USrPoKdnkCuQjZnHzBF
72qIOD2UOv+OE2nZBLX7ZYExP7ZzNtA112eQIJ/KtMWFCvnlyzqtcmj4AD5ON2cp
enA10z/Vw5BJbWX3f0+z26Ci7351mSRIyU+4m3dUFq/KMppl6/6J+xu04cjzwGz2
IAU11Rtg3kYNqDDF/aCn8SYTaNqigu8Wf2yYI0ANz5EInyWyDJ0=
=ZnF2
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:19
[REDO 1] [PATCH 4/10] gnu: Add python-pytest-testmon.
(address . 40511@debbugs.gnu.org)
87tv13s6r8.fsf@dustycloud.org
From 96433376d8c698acc263bd34abd485f0b81bc4f9 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:21:16 -0400
Subject: [PATCH 04/10] gnu: Add python-pytest-testmon.

* gnu/packages/python-xyz.scm (python-pytest-testmon): New variable.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b00c8cf284..bcebf05813 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19694,3 +19694,25 @@ Open Sound Control 1.0} specification.")
     (description "Python modules for text manipulation.")
     (license license:expat)))
 
+(define-public python-pytest-testmon
+  (package
+    (name "python-pytest-testmon")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-testmon" version))
+       (sha256
+        (base32
+         "1iasz23zrzjgbak8jiq12i4zmkk8f6dmcdhfxz8m2q03agcidc7x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://testmon.org")
+    (synopsis
+     "Selects tests affected by changed files and methods")
+    (description
+     "Pytest module for selecting tests affected by changed files and
+methods.")
+    (license license:agpl3+)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oj8sACgkQS8Alkl/4
9NOn0w//cfGGJX4axiUr+Y/NZeCeC+lOk0ScGV0tnsgjcX3YTYdtwgyx3/TlNM5w
6dKSWzcjCj1vYf5TF4kmIQ6GZygZ8T+mYE2jhhnWxmIxgT2bO3uoyOzGNMSErIp2
+jeUZmt9ZBi0NC69wTB/bDkDKjRAJBk90PfLyRj1QLHL9IK5xN57PUxUKkSwRLaN
fdDCSourCZ67QOSanrQnlGrpQRFcDPdoLjCHq5XqejW/sEjvLn1WrgvJEhIoSgkQ
oD9XTuy/e6fkOrLQTj446qCZKriS49bQBmvLw6WWcKo/iJZEuHSTQ58+JDnSxrmG
ghmbGN3GKNlCV7IHjhu7/0/RwZ6zB4ERF/r7j8EC7rIt8ABZvrJ5F9DOBJc9V0Yl
MNZ8IpmTBqhYeKD/jjAD9eOWoLWVXVmu1uKfh25xD46nzCcSuVAsCFX6luquaw7K
xm6x5Zm/VRkpGXDoCy8Ln2uDS7856u9GODsSlr/IVCnzhdbTsQCCEdx5U1a5Br/w
ZYv1zSWOIipUY0+JS7gkbp9COXuC2HuzIWtWDTfJnUq0qCexFv3qQ5d4TIlaMlNk
qw+WvefY7l15/WGzfrcQgIqXObBiGVClDmL5NnmoddrtgElVUlkIuokOFtXy0edA
VAPE9miQL0z5xI5aEkMN0i53kFd1HDiF/YAuP8ddrR3kJDfm5ew=
=ecja
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:19
[REDO 1] [PATCH 5/10] gnu: Add python-pytest-watch.
(address . 40511@debbugs.gnu.org)
87sggns6qf.fsf@dustycloud.org
From 31fc8e533ba048ef407e5058b79fe0a3cfc65db4 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:21:36 -0400
Subject: [PATCH 05/10] gnu: Add python-pytest-watch.

* gnu/packages/python-xyz.scm (python-pytest-watch): New variable.
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bcebf05813..bfbe7ef1e7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19716,3 +19716,29 @@ Open Sound Control 1.0} specification.")
      "Pytest module for selecting tests affected by changed files and
 methods.")
     (license license:agpl3+)))
+
+(define-public python-pytest-watch
+  (package
+    (name "python-pytest-watch")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-watch" version))
+       (sha256
+        (base32
+         "1fflnd3varpqy8yzcs451n8h7wmjyx1408qdin5p2qdksl1ny4q6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-docopt" ,python-docopt)
+       ("python-pytest" ,python-pytest)
+       ("python-watchdog" ,python-watchdog)))
+    (home-page
+     "http://github.com/joeyespo/pytest-watch")
+    (synopsis
+     "Local continuous test runner for pytest and watchdog")
+    (description
+     "This package provides a local continuous test runner for pytest
+and watchdog.")
+    (license license:expat)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6oj+gACgkQS8Alkl/4
9NO/2A//QY3gTmjxHSxygttLe5rek6hIbkPWIw0pSQdTEI6lJGxYncn9xK0AJJTc
zDtR68Xt17l73bQTs2L0JiPmE58GwGhBlTR4s4wN5Sg17F8S/kIJ4aqcWJ5A7qJx
46AYQFUx8a1iqXCVS09KMHPViIv8rs/22AvzT29imxXbDdYVx7OLG54CqqmzgshS
dt+Rr4p7wpEFrvlSB2gs0mW/f/9CV6MkmCLNPCIg3Yhzp3H3fkPci6NjSfdQ7U2B
ky3QQyZtfquL5KINTMWn6s604oKPfoqbDTPEmNf2z00rzJ4YEaKoxWOryN+w7fBE
tfvgCo3117sd8n6KXiK23/qsfBvwH9zS/4Op7esn8L47bk2cD9DU56SZqKT6mMxF
MzMUQVrSn7gXi9NVbietdUnMTGvljmdZOeElk17sppYTz3S/28fBHRmVPMtH/P/V
sdsIPhfMTo/9xfQap3Yrk1vs8y0I20K7spXgCde2E4XqccQq++LKf0mEyYaz1Zjk
vix5gPVLwDKKTJRrD1iZsHwjMf/MozVq3tDaNkLV4d0oUBQONKbzr6OgNLrgr8DJ
6YMVEVQvApF3SMCmMeF7XC9NkFY+GO7gWrRb5S7TLhoJf+s5KNd6OFbGgJODWNvb
43P6p1P3RA32nBo6L6KraGXosxNDZ7lHd4yTcVuges5dsM026YE=
=EnXX
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:20
[REDO 1] [PATCH 6/10] gnu: Add python-requests-unixsocket.
(address . 40511@debbugs.gnu.org)
87r1w7s6pv.fsf@dustycloud.org
From 9ca089c5abb29c054bb51f67c3d68090b839e262 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:01 -0400
Subject: [PATCH 06/10] gnu: Add python-requests-unixsocket.

* gnu/packages/python-xyz.scm (python-requests-unixsocket): New variable.
---
gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bfbe7ef1e7..70ff012fb6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19742,3 +19742,39 @@ methods.")
      "This package provides a local continuous test runner for pytest
 and watchdog.")
     (license license:expat)))
+
+(define-public python-requests-unixsocket
+  (package
+    (name "python-requests-unixsocket")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-unixsocket" version))
+       (sha256
+        (base32
+         "1sn12y4fw1qki5gxy9wg45gmdrxhrndwfndfjxhpiky3mwh1lp4y"))))
+    ;; why tied to waitress==0.9.0 I have no idea
+    (arguments
+     ;; We don't have all the test deps yet... missing pyttest-cache
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (delete-file "test-requirements.txt")
+             #t)))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("python-urllib3" ,python-urllib3)))
+    (native-inputs
+     `(("python-pbr-minimal" ,python-pbr-minimal)))
+    (home-page
+     "https://github.com/msabramo/requests-unixsocket")
+    (synopsis
+     "Use requests to talk HTTP via a UNIX domain socket")
+    (description
+     "Use the Python requests library to talk HTTP via a UNIX domain socket.")
+    (license license:asl2.0)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:20
[REDO 1] [PATCH 7/10] gnu: Add python-trustme.
(address . 40511@debbugs.gnu.org)
87pnbrs6p6.fsf@dustycloud.org
From 7ee9609dbe202a7fa2199c659ef8469415b283b2 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:18 -0400
Subject: [PATCH 07/10] gnu: Add python-trustme.

* gnu/packages/python-xyz.scm (python-trustme): New variable.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 70ff012fb6..a6d86cbc50 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19778,3 +19778,26 @@ and watchdog.")
     (description
      "Use the Python requests library to talk HTTP via a UNIX domain socket.")
     (license license:asl2.0)))
+
+(define-public python-trustme
+  (package
+    (name "python-trustme")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trustme" version))
+       (sha256
+        (base32
+         "0v3vr5z6apnfmklf07m45kv5kaqvm6hxrkaqywch57bjd2siiywx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-idna" ,python-idna)))
+    (home-page
+     "https://github.com/python-trio/trustme")
+    (synopsis
+     "Fake certificate authority for unit tests")
+    (description
+     "Provides fake a fake TLS certificate authority for Python unit tests.")
+    (license license:asl2.0)))
-- 
2.26.0
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAl6okBUACgkQS8Alkl/4
9NO7jRAA32eEy/IFIxUOtwhrpvyIwD1fadezGzqBYutAp5PTB8Rpm6cFj6AwZAAz
Udpo5/QpFvvZZY4YuPyFhuzvrgCROXMMP/lUmJ0eFwVk7RPE4JsWvZe2M3dMp9/R
tA5lcxNdv/gdDiig96EGaXNZ2+8aVYCd78VaVT9VUIDb0Q5uAfgwkaUrRvyf2meP
jQcYZI0ld3wHlEMjAf2RS31Oo1iup7ZYGDbm+Npxi7XCG4LLWAJVQYCa2onCLgtV
1yJxvjnjXcR7LHuSRRm0HfyVgrsI61DlVAAny9QVgnJ/Ws91dD3lALA7PArcewTQ
XHpUfsDeSlzN2G9BQT/xAzicYzODk1ReSeSbRuv6mkJg5p0pdG+3vfMngWG5IIom
P61Jgc/570UuAcA19uqEfTDLqaMMiMWwfw+a/9rICkksgnTQw3m3g86FbChxZEs/
upogzaw1Q5JnAkk9Tmnre+1a9Oz/9cO4QP9cM4gKghclDLJwDUfzzys7OVEjfhNf
1DNzXGJGl3RyoSYVf36q0juCIzshXfGGEEYv5HZ8+I8/CupaLpArHYRQdw23k9Qa
M24IYJMpmqTz5RkP5ieIj4DvPL1EOjvbnN+p6P1fGqHOIOcp8NgTEOOVMLhA0f2B
yzpLklLrnmvF+PxGKQcqQGSedyJHQUEdnGwxHprs+39ekUGPxKM=
=YXEy
-----END PGP SIGNATURE-----

C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:21
[REDO 1] [PATCH 8/10] gnu: Add python-cheroot.
(address . 40511@debbugs.gnu.org)
87o8rbs6o3.fsf@dustycloud.org
From fd6a8ecaf8d6ee39fbd01188950fd8235de72842 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:40 -0400
Subject: [PATCH 08/10] gnu: Add python-cheroot.

* gnu/packages/python-xyz.scm (python-cheroot): New variable.
---
gnu/packages/python-xyz.scm | 53 +++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a6d86cbc50..d3b0b61441 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19801,3 +19801,56 @@ and watchdog.")
     (description
      "Provides fake a fake TLS certificate authority for Python unit tests.")
     (license license:asl2.0)))
+
+(define-public python-cheroot
+  (package
+    (name "python-cheroot")
+    (version "8.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cheroot" version))
+       (sha256
+        (base32
+         "0cc9cb5via001zkna0i2qp5s0bn1w327q6k7fba2f5v650gpwmx0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-jaraco-functools" ,python-jaraco-functools)
+       ("python-more-itertools" ,python-more-itertools)
+       ("python-six" ,python-six)))
+    (arguments
+     ;; needs a newer pytest :\
+     `(#:tests? #f
+       ;; So we're also kicking out the dependency giving us
+       ;; trouble...
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'python-pytest-testmon',") ""))
+             #t)))))
+    (native-inputs
+     `(("python-codecov" ,python-codecov)
+       ("python-colorama" ,python-colorama)
+       ("python-coverage" ,python-coverage)
+       ("python-jaraco-text" ,python-jaraco-text)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-mock" ,python-pytest-mock)
+       ("python-pytest-sugar" ,python-pytest-sugar)
+       ("python-pytest-watch" ,python-pytest-watch)
+       ("python-pytest-xdist" ,python-pytest-xdist)
+       ("python-requests-unixsocket"
+        ,python-requests-unixsocket)
+       ("python-trustme" ,python-trustme)
+       ("python-urllib3" ,python-urllib3)
+       ("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)))
+    (home-page "https://cheroot.cherrypy.org")
+    (synopsis
+     "Pure-python HTTP server with an emphasis on performance")
+    (description
+     "Cheroot is the pure-Python HTTP server used by CherryPy.")
+    (license license:bsd-3)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:21
[REDO 1] [PATCH 9/10] gnu: Add python-markdown2.
(address . 40511@debbugs.gnu.org)
87mu6vs6nm.fsf@dustycloud.org
From 6846e2fd1411d24a85d83a339e57218e9f190de4 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
Date: Tue, 28 Apr 2020 15:22:54 -0400
Subject: [PATCH 09/10] gnu: Add python-markdown2.

* gnu/packages/python-xyz.scm (python-markdown2): New variable.
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d3b0b61441..799d54c19c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19854,3 +19854,24 @@ and watchdog.")
     (description
      "Cheroot is the pure-Python HTTP server used by CherryPy.")
     (license license:bsd-3)))
+
+(define-public python-markdown2
+  (package
+    (name "python-markdown2")
+    (version "2.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "markdown2" version))
+       (sha256
+        (base32
+         "1gjxy3j7qgl0fzmdqd0jx0gv13s1z9n1g3fd3s72rh4nnc08xy3z"))))
+    (build-system python-build-system)
+    (home-page
+     "https://github.com/trentm/python-markdown2")
+    (synopsis
+     "A fast and complete Python implementation of Markdown")
+    (description
+     "A Python implementation of Markdown which aims to closely match
+the behavior of the original perl-implemented Markdown.pl.")
+    (license license:expat)))
-- 
2.26.0
C
C
Christopher Lemmer Webber wrote on 28 Apr 2020 22:22
Re: [bug#40511] [PATCH 10/10] gnu: Add fava.
(address . 40511@debbugs.gnu.org)
87lfmfs6mm.fsf@dustycloud.org
And finally, patch 10 doesn't need any fixes to it, so it's the same as
last time.

That sure was annoying, but at least I learned how to use Magit's "edit"
rebase tool.
?