[PATCH 00/29] Add Octoprint (web UI for 3d printers).

OpenSubmitted by Vinicius Monego.
Details
4 participants
  • Efraim Flashner
  • Nicolas Goaziou
  • Maxime Devos
  • Vinicius Monego
Owner
unassigned
Severity
normal
V
V
Vinicius Monego wrote on 21 Oct 2021 05:51
(address . guix-patches@gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021035100.241119-1-monego@posteo.net
This patchset adds the Octoprint web UI to control 3d printers.

Octoprint itself bundles font-awesome. I removed it in a snippet, don't know how much it would affect usability. I haven't found other bundles with license issues.

Some of the updates have newer versions but I'm updating to "older" versions to maintain compatibility with octoprint. See the comment in the octoprint package.

Vinicius Monego (29):
gnu: Add python-filetype.
gnu: Add python-immutabledict.
gnu: Add python-emoji.
gnu: Add python-cachelib.
gnu: Add python-sarge.
gnu: Add python-pylru.
gnu: python-flask: Update to 1.1.4.
gnu: python-flask: Respect #:tests?.
gnu: Add python-pyscss.
gnu: Add python-flask-assets.
gnu: Add python-zipstream-new.
gnu: Add python-executing.
gnu: Add python-sentry-sdk.
gnu: Add python-pytest-doctest-custom.
gnu: Add python-sgmllib3k.
gnu: python-feedparser: Update to 6.0.8.
gnu: python-feedparser: Enable tests.
gnu: python-netifaces: Update to 0.11.0.
gnu: python-websocket-client: Update to 0.59.0.
gnu: python-pkginfo: Update to 1.7.1.
gnu: python-watchdog: Update to 0.10.7.
gnu: python-colorlog: Update to 5.0.1.
gnu: python-zeroconf: Update to 0.33.4.
gnu: python-wrapt: Update to 1.12.1.
gnu: python-wrapt: Enable tests.
gnu: Add octoprint-pisupport.
gnu: Add octoprint-firmwarecheck.
gnu: Add octoprint-filecheck.
gnu: Add octoprint.

gnu/packages/printers.scm | 181 +++++++++++++++-
gnu/packages/python-check.scm | 29 +++
gnu/packages/python-web.scm | 96 ++++++++-
gnu/packages/python-xyz.scm | 381 ++++++++++++++++++++++++++++++----
gnu/packages/web.scm | 15 +-
5 files changed, 645 insertions(+), 57 deletions(-)


base-commit: 2782cb38a3bc68c530d6e95f6834ae0cb7ed16aa
prerequisite-patch-id: 01467a57e2c7d6c0266979c26fc35408e886972b
--
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 05:52
[PATCH 01/29] gnu: Add python-filetype.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021035314.241360-1-monego@posteo.net
* gnu/packages/python-xyz.scm (python-filetype): New variable.
---
gnu/packages/python-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c335dea277..0e56570b83 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11069,6 +11069,41 @@ your package is installed, via @code{pkg_resources} (part of
 @code{setuptools}).")
     (license license:gpl3+)))
 
+(define-public python-filetype
+  (package
+    (name "python-filetype")
+    (version "1.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "filetype" version))
+       (sha256
+        (base32 "05mkinkcn36v1cnb5hzay3zxmv7jmmflckxxp08rgzbkkf3i9pvp"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; Both tests fail with FileNotFoundError.
+                        "not test_infer_zip_from_disk"
+                        " and not test_infer_tar_from_disk"))))))))
+    (native-inputs
+     `(("python-flake8" ,python-flake8)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-benchmark"
+        ,python-pytest-benchmark)))
+    (home-page "https://github.com/h2non/filetype.py")
+    (synopsis "Infer file type and MIME type of any file/buffer")
+    (description "@code{filetype} is a small and dependency free Python
+package to infer file type and MIME type checking the magic numbers
+signature of a file or buffer.")
+    (license license:expat)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 05:52
[PATCH 02/29] gnu: Add python-immutabledict.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021035314.241360-2-monego@posteo.net
* gnu/packages/python-xyz.scm (python-immutabledict): New variable.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0e56570b83..cf6b4e8e82 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9691,6 +9691,28 @@ applications.")
      "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
     (license license:bsd-4)))
 
+(define-public python-immutabledict
+  (package
+    (name "python-immutabledict")
+    (version "2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "immutabledict" version))
+       (sha256
+        (base32 "0fpc4gbk7inpfbgdypsg6c18bmdjw8gwx47bjw0hvixn3gghxnqx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests in PyPI release and no setup.py in GitHub
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/corenting/immutabledict")
+    (synopsis "Immutable wrapper around dictionaries")
+    (description
+     "@code{immutabledict} is a immutable wrapper around dictionaries.  It is
+a fork of @code{frozendict}.")
+    (license license:expat)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 05:52
[PATCH 03/29] gnu: Add python-emoji.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021035314.241360-3-monego@posteo.net
* gnu/packages/python-xyz.scm (python-emoji): New variable.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cf6b4e8e82..6819574944 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9713,6 +9713,36 @@ applications.")
 a fork of @code{frozendict}.")
     (license license:expat)))
 
+(define-public python-emoji
+  (package
+    (name "python-emoji")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "emoji" version))
+       (sha256
+        (base32 "0923mpixwq6hdpkgvi4r46alfvf608iq975rb8lnqpq29j71mmjk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-coveralls" ,python-coveralls)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/carpedm20/emoji/")
+    (synopsis "Emoji terminal output for Python")
+    (description "This package provides Emoji terminal output for Python.  The
+entire set of Emoji codes as defined by the unicode consortium is supported in
+addition to a bunch of aliases.")
+    (license license:bsd-3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 05:52
[PATCH 04/29] gnu: Add python-cachelib.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021035314.241360-4-monego@posteo.net
* gnu/packages/python-xyz.scm (python-cachelib): New variable.
---
gnu/packages/python-xyz.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6819574944..07d2a9da41 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11156,6 +11156,25 @@ package to infer file type and MIME type checking the magic numbers
 signature of a file or buffer.")
     (license license:expat)))
 
+(define-public python-cachelib
+  (package
+    (name "python-cachelib")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cachelib" version))
+       (sha256
+        (base32 "0vs7nimlbhqy9kjcc90nswkhs3kgl28ag19jssx9qwlcsrkmmsa7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;no tests
+    (home-page "https://github.com/pallets/cachelib")
+    (synopsis "Collection of cache libraries")
+    (description "Cachelib is a library extracted from @code{werkzeug} which
+provides a collection of cache libraries in the same API interface.")
+    (license license:bsd-3)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 05/29] gnu: Add python-sarge.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-1-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sarge): New variable.
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 07d2a9da41..4230f141bb 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9743,6 +9743,23 @@ entire set of Emoji codes as defined by the unicode consortium is supported in
 addition to a bunch of aliases.")
     (license license:bsd-3)))
 
+(define-public python-sarge
+  (package
+    (name "python-sarge")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sarge" version))
+       (sha256
+        (base32 "0r9jnpdsjdr6h92blr5b2fdzvb1n8ypjwhk2xxmss42gwq2bk3zl"))))
+    (build-system python-build-system)
+    (home-page "https://sarge.readthedocs.io/")
+    (synopsis "Command pipeline functionality")
+    (description "@code{sarge} is a wrapper for subprocess which provides
+command pipeline functionality.")
+    (license license:bsd-3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 06/29] gnu: Add python-pylru.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-2-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pylru): New variable.
---
gnu/packages/python-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4230f141bb..c48ac820a2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11192,6 +11192,35 @@ signature of a file or buffer.")
 provides a collection of cache libraries in the same API interface.")
     (license license:bsd-3)))
 
+(define-public python-pylru
+  (package
+    (name "python-pylru")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pylru" version))
+       (sha256
+        (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test.py")))))))
+    (home-page "https://github.com/jlhutch/pylru")
+    (synopsis "Least recently used (LRU) cache implementation")
+    (description
+     "Pylru implements a true LRU cache along with several support classes.
+Pylru provides a cache class with a simple dict interface.  It also provides
+classes to wrap any object that has a dict interface with a cache.  Both
+write-through and write-back semantics are supported.  Pylru also provides
+classes to wrap functions in a similar way, including a function decorator.")
+    (license license:gpl2+)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 07/29] gnu: python-flask: Update to 1.1.4.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-3-monego@posteo.net
* gnu/packages/python-web.scm (python-flask): Update to 1.1.4.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 2b5379950d..67128d1b18 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2972,13 +2972,13 @@ minimum of WSGI.")
 (define-public python-flask
   (package
     (name "python-flask")
-    (version "1.1.2")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Flask" version))
               (sha256
                (base32
-                "0q3h295izcil7lswkzfnyg3k5gq4hpmqmpl6i7s5m1n9szi1myjf"))))
+                "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 08/29] gnu: python-flask: Respect #:tests?.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-4-monego@posteo.net
* gnu/packages/python-web.scm (python-flask)[arguments]<#:phases>: Respect
#:tests? in the custom 'check phase and simplify it.
---
gnu/packages/python-web.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 67128d1b18..8dd3345daf 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2981,13 +2981,13 @@ minimum of WSGI.")
                 "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "PYTHONPATH" (string-append "./build/lib:"
-                                                 (getenv "PYTHONPATH")))
-             (invoke "pytest" "-vv" "tests"))))))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (propagated-inputs
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 09/29] gnu: Add python-pyscss.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-5-monego@posteo.net
* gnu/packages/python-web.scm (python-pyscss): New variable.
---
gnu/packages/python-web.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 8dd3345daf..f9401cceb3 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -77,6 +77,7 @@
   #:use-module (gnu packages groff)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
@@ -773,6 +774,40 @@ JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign
 content using a variety of algorithms.")
     (license license:expat)))
 
+(define-public python-pyscss
+  (package
+    (name "python-pyscss")
+    (version "1.3.7")
+    (source
+     (origin
+       ;; No tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Kronuz/pyScss")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "--pyargs" "scss")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)))
+    (inputs
+     `(("pcre" ,pcre)))
+    (home-page "https://github.com/Kronuz/pyScss")
+    (synopsis "Scss compiler for Python")
+    (description "@code{pyScss} is a compiler for Sass, a superset language of
+CSS3 that adds programming capabilities and some other syntactic sugar.")
+    (license license:expat)))
+
 (define-public python-jsonpickle
   (package
     (name "python-jsonpickle")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 10/29] gnu: Add python-flask-assets.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-6-monego@posteo.net
* gnu/packages/python-web.scm (python-flask-assets): New variable.
---
gnu/packages/python-web.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index f9401cceb3..24e6bc063e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1033,6 +1033,35 @@ between a web browser and web server.")
 (define-public python2-sockjs-tornado
   (package-with-python2 python-sockjs-tornado))
 
+(define-public python-flask-assets
+  (package
+    (name "python-flask-assets")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Assets" version))
+       (sha256
+        (base32 "1hmqldxc7zciksmcl35jx0wbyrrxc7vk2a57mmmd8i07whsymz8x"))))
+    (build-system python-build-system)
+    (arguments
+     ;; FIXME: 8 tests are failing with:
+     ;; TypeError: __init__() got an unexpected keyword argument 'static_path'
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-flask-script" ,python-flask-script)
+       ("python-nose" ,python-nose)
+       ("python-pyscss" ,python-pyscss)
+       ("python-pyyaml" ,python-pyyaml)))
+    (propagated-inputs
+     `(("python-flask" ,python-flask)
+       ("python-webassets" ,python-webassets)))
+    (home-page "https://github.com/miracle2k/flask-assets")
+    (synopsis "Asset management for Flask")
+    (description "This package integrates @code{webassets} with Flask, adding
+support for merging, minifying and compiling CSS and Javascript files.")
+    (license license:bsd-2)))
+
 (define-public python-flask-babel
   (package
     (name "python-flask-babel")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 11/29] gnu: Add python-zipstream-new.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-7-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zipstream-new): New variable.
---
gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c48ac820a2..20aa6d9970 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9760,6 +9760,33 @@ addition to a bunch of aliases.")
 command pipeline functionality.")
     (license license:bsd-3)))
 
+(define-public python-zipstream-new
+  (package
+    (name "python-zipstream-new")
+    (version "1.1.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/arjan-s/python-zipstream")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/arjan-s/python-zipstream")
+    (synopsis "Zipfile generator that takes input files as well as streams")
+    (description "@code{zipstream.py} is a zip archive generator based on
+@code{zipfile.py}.  It was created to generate a zip file generator for
+streaming.  This is beneficial for when you want to provide a downloadable
+archive of a large collection of regular files, which would be infeasible
+to generate the archive prior to downloading or of a very large file that
+you do not want to store entirely on disk or on memory.")
+    ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
+    (license license:gpl3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 12/29] gnu: Add python-executing.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-8-monego@posteo.net
* gnu/packages/python-xyz.scm (python-executing): New variable.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 20aa6d9970..9c1ad55fbd 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7070,6 +7070,28 @@ buffer transformation, compression, and decompression functions for use in the
 tifffile, czifile, and other scientific image input/output modules.")
     (license license:bsd-3)))
 
+(define-public python-executing
+  (package
+    (name "python-executing")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "executing" version))
+       (sha256
+        (base32 "08q0xh9fd8k41sqpp23q6fb9bf7yj4y2q6sv30pj36vvk8pg8fy2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; TODO: tests require python-asttokens
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-toml" ,python-toml)))
+    (home-page "https://github.com/alexmojaki/executing")
+    (synopsis "Get information about what a Python frame is currently doing")
+    (description "This package lets you get information about what a frame is
+currently doing, particularly the AST node being executed.")
+    (license license:expat)))
+
 (define-public python-roifile
   (package
     (name "python-roifile")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 13/29] gnu: Add python-sentry-sdk.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-9-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sentry-sdk): New variable.
---
gnu/packages/python-xyz.scm | 65 +++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)

Toggle diff (85 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9c1ad55fbd..6252dddeec 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -141,6 +141,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
   #:use-module (gnu packages enchant)
@@ -9809,6 +9810,70 @@ you do not want to store entirely on disk or on memory.")
     ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
     (license license:gpl3)))
 
+(define-public python-sentry-sdk
+  (package
+    (name "python-sentry-sdk")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch) ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/getsentry/sentry-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1iyb0amgf03h61jw4hpdbm6h4wyh8n43bnk116ywwc0bl5x3mldx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; This test requires extra dependencies.
+                        "not test_auto_enabling_integrations"
+                        "_catches_import_error"
+                        ;; Tests below run pip command.
+                        " and not test_unhandled_exception"
+                        " and not test_timeout_error"
+                        " and not test_performance_no_error"
+                        " and not test_performance_error"
+                        " and not test_traces_sampler_gets_correct"
+                        "_values_in_sampling_context"
+                        " and not test_handled_exception"
+                        ;; Tests below require network.
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture_hint"
+                        " and not test_httplib_misuse"
+                        ;; Fails with IndexError.
+                        " and not test_session_mode_defaults_to"
+                        "_request_mode_in_wsgi_handler"))))))))
+    (native-inputs
+     `(("python-django" ,python-django)
+       ("python-executing" ,python-executing)
+       ("python-gevent" ,python-gevent)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-mock" ,python-mock)
+       ("python-pyrsistent" ,python-pyrsistent)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-django" ,python-pytest-django)
+       ("python-pytest-forked" ,python-pytest-forked)
+       ("python-pytest-localserver" ,python-pytest-localserver)
+       ("python-werkzeug" ,python-werkzeug)))
+    (propagated-inputs
+     `(("python-certifi" ,python-certifi)
+       ("python-urllib3" ,python-urllib3)))
+    (home-page "https://github.com/getsentry/sentry-python")
+    (synopsis "Python SDK for Sentry")
+    (description "This package provides a Python SDK for the Sentry
+application monitoring and error tracking software.")
+    (license license:bsd-2)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 14/29] gnu: Add python-pytest-doctest-custom.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-10-monego@posteo.net
* gnu/packages/python-check.scm (python-pytest-doctest-custom): New variable.
---
gnu/packages/python-check.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index f321d0b0f6..3cc0f80828 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -745,6 +745,35 @@ in Pytest.")
        "Plugin for managing VCR.py cassettes.")
       (license license:expat))))
 
+(define-public python-pytest-doctest-custom
+  (package
+    (name "python-pytest-doctest-custom")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-doctest-custom" version))
+       (sha256
+        (base32 "0kxkdd6q9c3h31kc88lbyfll4c45b0zjd24cbr4c083fcvcy7lip"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test_pytest_doctest_custom.py")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/danilobellini/pytest-doctest-custom")
+    (synopsis
+     "Pytest plugin to customize string representations of doctest results")
+    (description "This package provides a Pytest plugin for customizing string
+representations of doctest results.  It can change the display hook used by
+doctest to render the object representations.")
+    (license license:expat)))
+
 (define-public python-pytest-checkdocs
   (package
     (name "python-pytest-checkdocs")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 15/29] gnu: Add python-sgmllib3k.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-11-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sgmllib3k): New variable.
---
gnu/packages/python-xyz.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6252dddeec..cb524ed47c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11447,6 +11447,25 @@ implementations of ASN.1-based codecs and protocols.")
  module to older versions of Python.")
     (license license:psfl)))
 
+(define-public python-sgmllib3k
+  (package
+    (name "python-sgmllib3k")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sgmllib3k" version))
+       (sha256
+        (base32 "1s8jm3dgqabgf8x96931scji679qkhvczlv3qld4qxpsicfgns3q"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;no tests
+    ;; The homepage link in PyPI seems to be dead.
+    (home-page "https://pypi.org/project/sgmllib3k/")
+    (synopsis "Python 3 port of @code{sgmllib}")
+    (description "This package provides a Python 3 port of @code{sgmllib}.")
+    (license license:bsd-3)))
+
 (define-public python-asn1tools
   (package
     (name "python-asn1tools")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 16/29] gnu: python-feedparser: Update to 6.0.8.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-12-monego@posteo.net
* gnu/packages/web.scm (python-feedparser): Update to 6.0.8.
[propagated-inputs]: Add python-sgmllib3k.
---
gnu/packages/web.scm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 0fd9e865cb..6a24cc8212 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -51,6 +51,7 @@
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4764,17 +4765,19 @@ their web site.")
 (define-public python-feedparser
   (package
     (name "python-feedparser")
-    (version "6.0.2")
+    (version "6.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "feedparser" version ".tar.gz"))
        (sha256
         (base32
-         "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v"))))
+         "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))
+    (propagated-inputs
+     `(("python-sgmllib3k" ,python-sgmllib3k)))
     (home-page
      "https://github.com/kurtmckee/feedparser")
     (synopsis "Parse feeds in Python")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 17/29] gnu: python-feedparser: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-13-monego@posteo.net
* gnu/packages/web.scm (python-feedparser)[arguments]: Remove
#:tests?. Override 'check phase.
---
gnu/packages/web.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 6a24cc8212..5afc6e8cec 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4775,7 +4775,13 @@ their web site.")
          "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "tests/runtests.py")))))))
     (propagated-inputs
      `(("python-sgmllib3k" ,python-sgmllib3k)))
     (home-page
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 18/29] gnu: python-netifaces: Update to 0.11.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-14-monego@posteo.net
* gnu/packages/python-xyz.scm (python-netifaces): Update to 0.11.0.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cb524ed47c..b12e1c3d52 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9059,14 +9059,14 @@ some are not yet implemented).")
 (define-public python-netifaces
   (package
     (name "python-netifaces")
-    (version "0.10.9")
+    (version "0.11.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "netifaces" version))
         (sha256
           (base32
-            "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid"))))
+            "0cnajf5rl4w1sa72j921scbigr6zndig56cq8ggpx45jdqa7jfh4"))))
     (build-system python-build-system)
     (home-page "https://github.com/al45tair/netifaces")
     (synopsis
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 19/29] gnu: python-websocket-client: Update to 0.59.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-15-monego@posteo.net
* gnu/packages/python-web.scm (python-websocket-client): Update to 0.59.0.
[source]: Update PyPI URI.
[arguments]<#:phases>: Add new phase after 'unpack to skip a network test.
[native-inputs]: Add python-pysocks.
[home-page]: Follow redirect.
---
gnu/packages/python-web.scm | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 24e6bc063e..5d2464bbef 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2469,18 +2469,28 @@ verification of the SSL peer.")
 (define-public python-websocket-client
   (package
     (name "python-websocket-client")
-    (version "0.54.0")
+    (version "0.59.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "websocket_client" version))
+       (uri (pypi-uri "websocket-client" version))
        (sha256
         (base32
-         "0j88zmikaypf38lvpkf4aaxrjp9j07dmy5ghj7kli0fv3p4n45g5"))))
+         "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-network-test
+           (lambda _
+             ;; This test requires networking.
+             (substitute* "websocket/tests/test_http.py"
+               (("def testConnect") "def _testConnect")))))))
+    (native-inputs
+     `(("python-pysocks" ,python-pysocks)))
     (propagated-inputs
      `(("python-six" ,python-six)))
-    (home-page "https://github.com/liris/websocket-client")
+    (home-page "https://github.com/websocket-client/websocket-client")
     (synopsis "WebSocket client for Python")
     (description "The Websocket-client module provides the low level APIs for
 WebSocket usage in Python programs.")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 20/29] gnu: python-pkginfo: Update to 1.7.1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-16-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pkginfo): Update to 1.7.1.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b12e1c3d52..318db4d92b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19930,14 +19930,14 @@ design and layout.")
 (define-public python-pkginfo
   (package
     (name "python-pkginfo")
-    (version "1.7.0")
+    (version "1.7.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pkginfo" version))
         (sha256
           (base32
-            "1d1xn1xmfvz0jr3pj8irdwnwby3r13g0r2gwklr1q5y68p5p16h2"))))
+            "1g9m4ra1vrah6ahw6947rl9syzyl1fzin69kfqlwgplas20jyhz7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 21/29] gnu: python-watchdog: Update to 0.10.7.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-17-monego@posteo.net
* gnu/packages/python-xyz.scm (python-watchdog): Update to 0.10.7.
[arguments]<#:phases>: Remove 'remove-failing phase. Override 'check phase.
---
gnu/packages/python-xyz.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 318db4d92b..c5d281e033 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24568,23 +24568,23 @@ files.  These files are used to translate strings in android apps.")
 (define-public python-watchdog
   (package
     (name "python-watchdog")
-    (version "0.9.0")
+    (version "0.10.7")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "watchdog" version))
         (sha256
          (base32
-          "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+          "1x1mcj9iw8pdhfic0lablx8mbfilrql0scxgnysdr7mr00bqdjsh"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'remove-failing
-           (lambda _
-             (delete-file "tests/test_inotify_buffer.py")
-             (delete-file "tests/test_snapshot_diff.py")
-             #t)))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (propagated-inputs
      `(("python-argh" ,python-argh)
        ("python-pathtools" ,python-pathtools)
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 22/29] gnu: python-colorlog: Update to 5.0.1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-18-monego@posteo.net
* gnu/packages/python-xyz.scm (python-colorlog): Update to 5.0.1.
[arguments]<#:phases>: Simplify custom 'check phase.
---
gnu/packages/python-xyz.scm | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c5d281e033..115e013490 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -739,26 +739,24 @@ implementation for the Telegram Bot API.")
 (define-public python-colorlog
   (package
     (name "python-colorlog")
-    (version "4.1.0")
+    (version "5.0.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "colorlog" version))
               (sha256
                (base32
-                "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+                "1sl8wps7d8xl2larlb7wkvr7sa3bpvyprq4y8ks04awn0qx02z7i"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      ;; Extend PYTHONPATH so the built package will be found.
-                      (setenv "PYTHONPATH"
-                              (string-append (getcwd) "/build/lib:"
-                                             (getenv "PYTHONPATH")))
-                      (invoke "pytest" "-p" "no:logging")
-                      #t)))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (home-page "https://github.com/borntyping/python-colorlog")
     (synopsis "Log formatting with colors for python")
     (description "The @code{colorlog.ColoredFormatter} is a formatter for use
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 23/29] gnu: python-zeroconf: Update to 0.33.4.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-19-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zeroconf): Update to 0.33.4.
[source]: Fetch from GitHub.
[native-inputs]: Remove python-nose. Add python-pytest.
[arguments]<#:phases>: Adjust custom 'check phase to use Pytest.
---
gnu/packages/python-xyz.scm | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)

Toggle diff (55 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 115e013490..c81d8b306f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23399,29 +23399,36 @@ enumeration library in Python.")
 (define-public python-zeroconf
   (package
     (name "python-zeroconf")
-    (version "0.28.8")
+    (version "0.33.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "zeroconf" version))
+       (method git-fetch) ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/jstasiak/python-zeroconf")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+        (base32 "01bv6xrhf5i7gckg3q53i249zxmhkkr65yib6par8z5risihrpwm"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     `(("python-pytest" ,python-pytest)))
     (propagated-inputs
      `(("python-ifaddr" ,python-ifaddr)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ ;; Networking isn't available for these tests.
-             (invoke "nosetests" "-v"
-                     "--exclude" "test_integration_with_listener_ipv6"
-                     "--exclude" "test_launch_and_close_v6_only"
-                     "--exclude" "test_launch_and_close_v4_v6"
-                     "--exclude" "test_launch_and_close"))))))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; Networking isn't available for these tests.
+                        "not test_integration_with_listener_ipv6"
+                        " and not test_launch_and_close_v4_v6"
+                        " and not test_launch_and_close_context_manager"
+                        " and not test_launch_and_close"
+                        " and not test_close_multiple_times"))))))))
     (home-page "https://github.com/jstasiak/python-zeroconf")
     (synopsis "Pure Python mDNS service discovery")
     (description
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 24/29] gnu: python-wrapt: Update to 1.12.1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-20-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt): Update to 1.12.1.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c81d8b306f..5476e3913a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10809,14 +10809,14 @@ Supported netlink families and protocols include:
 (define-public python-wrapt
   (package
     (name "python-wrapt")
-    (version "1.11.2")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "wrapt" version))
        (sha256
         (base32
-         "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn"))))
+         "1mwpkdnqxf0yxj1a0hsnl06lf287qi5ap7309wm37x45zf0zlbxn"))))
     (build-system python-build-system)
     (arguments
      ;; Tests are not included in the tarball, they are only available in the
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 25/29] gnu: python-wrapt: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-21-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt)[source]: Fetch from GitHub.
[arguments]: Remove #:tests?. Override 'check phase.
---
gnu/packages/python-xyz.scm | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5476e3913a..eef7ef5add 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10812,16 +10812,23 @@ Supported netlink families and protocols include:
     (version "1.12.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "wrapt" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GrahamDumpleton/wrapt")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1mwpkdnqxf0yxj1a0hsnl06lf287qi5ap7309wm37x45zf0zlbxn"))))
+        (base32 "0943ixbiwixl5ch60vx7i2nia16534zgq2571ldzq1iimq3cz5vj"))))
     (build-system python-build-system)
     (arguments
-     ;; Tests are not included in the tarball, they are only available in the
-     ;; git repository.
-     `(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "unittest" "discover"
+                       "-s" "tests")))))))
     (home-page "https://github.com/GrahamDumpleton/wrapt")
     (synopsis "Module for decorators, wrappers and monkey patching")
     (description
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 26/29] gnu: Add octoprint-pisupport.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-22-monego@posteo.net
* gnu/packages/printers.scm (octoprint-pisupport): New variable.
---
gnu/packages/printers.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index f78923966c..ac79d57aba 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,8 +20,10 @@
 
 (define-module (gnu packages printers)
   #:use-module (guix packages)
+  #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
@@ -29,6 +32,27 @@
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
 
+(define-public octoprint-pisupport
+  (package
+    (name "octoprint-pisupport")
+    (version "2021.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-PiSupport" version))
+       (sha256
+        (base32 "0y4adzqy6bqp6r88gvpkvmhwgqv09zs2ngckp98ipa1yfljx0shv"))))
+    (build-system python-build-system)
+    (arguments
+     ;; No tests in PyPI release, and circular dependency on Octoprint.
+     `(#:tests? #f))
+    (home-page "https://github.com/OctoPrint/OctoPrint-PiSupport")
+    (synopsis "Plugin to provide additional information about your Pi")
+    (description "The Pi Support plugin provides additional information about
+your Pi in the UI and also alerts you about undervoltage or overheating issues
+observed on your Pi or if your Pi is unsupported.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 27/29] gnu: Add octoprint-firmwarecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-23-monego@posteo.net
* gnu/packages/printers.scm (octoprint-firmwarecheck): New variable.
---
gnu/packages/printers.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index ac79d57aba..934cb55f47 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -53,6 +53,28 @@ your Pi in the UI and also alerts you about undervoltage or overheating issues
 observed on your Pi or if your Pi is unsupported.")
     (license license:agpl3)))
 
+(define-public octoprint-firmwarecheck
+  (package
+    (name "octoprint-firmwarecheck")
+    (version "2021.10.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FirmwareCheck" version))
+       (sha256
+        (base32 "17prs0rmzglw75gkf6j7qypxisjvcfk2mbsyfqrjdbwg99i62s2h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests
+    (home-page "https://github.com/OctoPrint/OctoPrint-FirmwareCheck")
+    (synopsis "Plugin to check for unsafe or broken printer firmwares")
+    (description "The Firmware Check plugin tries to identify printers
+or rather printer firmware with known safety issues, such as disabled
+thermal runaway protection, or other kinds of severe issues, like known
+communication crippling bugs, and displays a warning box to logged in users
+on identification of such a firmware.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:01
[PATCH 28/29] gnu: Add octoprint-filecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-24-monego@posteo.net
* gnu/packages/printers.scm (octoprint-filecheck): New variable.
---
gnu/packages/printers.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 934cb55f47..4056a66ad3 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -75,6 +75,26 @@ communication crippling bugs, and displays a warning box to logged in users
 on identification of such a firmware.")
     (license license:agpl3)))
 
+(define-public octoprint-filecheck
+  (package
+    (name "octoprint-filecheck")
+    (version "2021.2.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FileCheck" version))
+       (sha256
+        (base32 "0bgvv6hvxa9qv0fs5dfr9wlbbjawxik8f2cid3h3czdhdhw46aqv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests
+    (home-page "https://github.com/OctoPrint/OctoPrint-FileCheck")
+    (synopsis "Plugin to check for common issues in uploaded files")
+    (description "The File Check plugin tries to detect common issues in
+uploaded files that are known to cause issues while printing and which in
+the past have caused support requests on OctoPrint's Community Forums.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 21 Oct 2021 06:02
[PATCH 29/29] gnu: Add octoprint.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211021040200.241873-25-monego@posteo.net
* gnu/packages/printers.scm (octoprint): New variable.
---
gnu/packages/printers.scm | 115 +++++++++++++++++++++++++++++++++++++-
1 file changed, 114 insertions(+), 1 deletion(-)

Toggle diff (137 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 4056a66ad3..37e1734aad 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -25,9 +25,15 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -95,6 +101,113 @@ uploaded files that are known to cause issues while printing and which in
 the past have caused support requests on OctoPrint's Community Forums.")
     (license license:agpl3)))
 
+(define-public octoprint
+  (package
+    (name "octoprint")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch) ; no tests in the PyPI tarball.
+       (uri (git-reference
+             (url "https://github.com/OctoPrint/OctoPrint")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08a1in2kbgy4w02q2xkhp7m09mvw0hxn3fgcbi1z7f6hg8ibym9n"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled font-awesome.
+           (delete-file-recursively "src/octoprint/static/vendor")
+           #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-version-requirements
+           ;; Octoprint maintains strict version requirements for Python2
+           ;; compatibility.  We're not packaging with Python2, so modify
+           ;; setup.py to relax those versions.  Octoprint will drop Python2
+           ;; support in version 2.0 so we won't need this change after it.
+           (lambda _
+             (substitute* "setup.py"
+               (("markdown>=3.1,<3.2") "markdown>=3.1,<4")
+               (("watchdog==0.10.4") "watchdog>=0.10.4")
+               ;; Relax core packages that are outdated in Guix.
+               (("Jinja2>=2.11.3,<3") "Jinja2>=2.11.2,<3")
+               (("requests>=2.26.0,<3") "requests>=2.25,<3"))))
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" (getcwd)))) ; some tests need a writable home
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "tests" "-k"
+                       (string-append
+                        ;; These tests try to write to the source tree and
+                        ;; fail with PermissionError.
+                        "not test_add_file_overwrite"
+                        " and not test_set_external_modification"))))))))
+    (native-inputs
+     `(("python-ddt" ,python-ddt)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-doctest-custom"
+        ,python-pytest-doctest-custom)))
+    (inputs
+     `(("octoprint-filecheck" ,octoprint-filecheck)
+       ("octoprint-firmwarecheck" ,octoprint-firmwarecheck)
+       ("octoprint-pisupport" ,octoprint-pisupport)
+       ("python-appdirs" ,python-appdirs)
+       ("python-blinker" ,python-blinker)
+       ("python-cachelib" ,python-cachelib)
+       ("python-click" ,python-click)
+       ("python-colorlog" ,python-colorlog)
+       ("python-emoji" ,python-emoji)
+       ("python-feedparser" ,python-feedparser)
+       ("python-filetype" ,python-filetype)
+       ("python-flask" ,python-flask)
+       ("python-flask-assets" ,python-flask-assets)
+       ("python-flask-babel" ,python-flask-babel)
+       ("python-flask-login" ,python-flask-login)
+       ("python-future" ,python-future)
+       ("python-immutabledict" ,python-immutabledict)
+       ("python-itsdangerous" ,python-itsdangerous)
+       ("python-jinja2" ,python-jinja2)
+       ("python-markdown" ,python-markdown)
+       ("python-markupsafe" ,python-markupsafe)
+       ("python-netaddr" ,python-netaddr)
+       ("python-netifaces" ,python-netifaces)
+       ("python-pathvalidate" ,python-pathvalidate)
+       ("python-pkginfo" ,python-pkginfo)
+       ("python-psutil" ,python-psutil)
+       ("python-pylru" ,python-pylru)
+       ("python-pyserial" ,python-pyserial)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-regex" ,python-regex)
+       ("python-requests" ,python-requests)
+       ("python-sarge" ,python-sarge)
+       ("python-semantic-version"
+        ,python-semantic-version)
+       ("python-sentry-sdk" ,python-sentry-sdk)
+       ("python-tornado" ,python-tornado-6)
+       ("python-unidecode" ,python-unidecode)
+       ("python-watchdog" ,python-watchdog)
+       ("python-websocket-client"
+        ,python-websocket-client)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)
+       ("python-zeroconf" ,python-zeroconf)
+       ("python-zipstream-new" ,python-zipstream-new)))
+    (home-page "https://octoprint.org")
+    (synopsis "Web interface for 3D printers")
+    (description "OctoPrint provides a snappy web interface for controlling
+consumer 3D printers.")
+    ;; The web interface contains many third party JavaScript libraries under
+    ;; different licenses.  Check THIRDPARTYLICENSES.md.
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
E
E
Efraim Flashner wrote on 8 Nov 2021 21:38
Re: [bug#51314] [PATCH 00/29] Add Octoprint (web UI for 3d printers).
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51314@debbugs.gnu.org)
YYmKsvkuo9s6z6yH@3900XT
On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
Toggle quote (6 lines)
> This patchset adds the Octoprint web UI to control 3d printers.
>
> Octoprint itself bundles font-awesome. I removed it in a snippet, don't know how much it would affect usability. I haven't found other bundles with license issues.
>
> Some of the updates have newer versions but I'm updating to "older" versions to maintain compatibility with octoprint. See the comment in the octoprint package.

Looking at some of the comments here¹ it looks like they're using old
versions mostly to retain python2 compatibility. On the other hand they
also have a comment about not having checked newer versions yet for for
breaking changes, which IMO is their job. Other than flask-login and
netaddr I don't see a reason to not try with some of the newer versions
of the packages. I would feel better if they only marked their own
dependencies and not transitive dependencies.

I think it makes sense to try newer versions and to add older versions
on an as-needed basis, especially since some of these packages are
likely to be upgraded again at some point before the next version of
octoprint.


Toggle quote (49 lines)
>
> Vinicius Monego (29):
> gnu: Add python-filetype.
> gnu: Add python-immutabledict.
> gnu: Add python-emoji.
> gnu: Add python-cachelib.
> gnu: Add python-sarge.
> gnu: Add python-pylru.
> gnu: python-flask: Update to 1.1.4.
> gnu: python-flask: Respect #:tests?.
> gnu: Add python-pyscss.
> gnu: Add python-flask-assets.
> gnu: Add python-zipstream-new.
> gnu: Add python-executing.
> gnu: Add python-sentry-sdk.
> gnu: Add python-pytest-doctest-custom.
> gnu: Add python-sgmllib3k.
> gnu: python-feedparser: Update to 6.0.8.
> gnu: python-feedparser: Enable tests.
> gnu: python-netifaces: Update to 0.11.0.
> gnu: python-websocket-client: Update to 0.59.0.
> gnu: python-pkginfo: Update to 1.7.1.
> gnu: python-watchdog: Update to 0.10.7.
> gnu: python-colorlog: Update to 5.0.1.
> gnu: python-zeroconf: Update to 0.33.4.
> gnu: python-wrapt: Update to 1.12.1.
> gnu: python-wrapt: Enable tests.
> gnu: Add octoprint-pisupport.
> gnu: Add octoprint-firmwarecheck.
> gnu: Add octoprint-filecheck.
> gnu: Add octoprint.
>
> gnu/packages/printers.scm | 181 +++++++++++++++-
> gnu/packages/python-check.scm | 29 +++
> gnu/packages/python-web.scm | 96 ++++++++-
> gnu/packages/python-xyz.scm | 381 ++++++++++++++++++++++++++++++----
> gnu/packages/web.scm | 15 +-
> 5 files changed, 645 insertions(+), 57 deletions(-)
>
>
> base-commit: 2782cb38a3bc68c530d6e95f6834ae0cb7ed16aa
> prerequisite-patch-id: 01467a57e2c7d6c0266979c26fc35408e886972b
> --
> 2.30.2
>
>
>
>

--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmGJirIACgkQQarn3Mo9
g1E7tA/+NQEb4dttkeIz1J7G4Mhuo+4PXKyLqM/6ihGuJV2xcNNbwnFkoxohgv2Z
8IBFi3YCC5OyMwZ62Tg4sL7t22itpY5qH6oQAfmDvxt0V4VqffUGCd2LaenX1XVo
jb20zyhNnVCEfDCHYjrehHoIBK2IRR7XrS01XQrb+JBHYjqId9VBZUkBvCLehPIJ
I0wJubtpKhajxwg97ZrD9DrrU5WjOalGhlr2gGWV4K0EaENOn+lN/xmR2KwAnSMq
RzpYnnr9QJWCVQPDDnakvUxzhw9oqNb0+6b958PrWpuuEiEuRTMFHE1d7jUvMFnO
PMjy0FjfAZ1jnFRJpaUjEnF3aWBUtzjuzsV+VmLp7nosiJLftumKs11i/ESj9ST6
UJCHvVnS7D43wqg7ksf9j94RCZZ9/ZUZLmQiZqC3DG5Z9bFA/bAdArl3Qa0+j8VK
sKXWIaKJY1eBZH5Y1jycGNEYoSoDc3S3jrLjuvZHqps0KxLvXsSN4P9NNnBf6chN
Q2xSqCQ5xI6oWUagwFO3vS/tqTHymwtKu9AWNF24348IvxDJMlAU/HDwn0Fy+xjD
P5DDqp7veo8TrznUtR+Ta7f4rp8qTl9xhhorSCt+JVmxp1us/SMqkcTcn05Nia/x
WGLbkc4XMtE13zUw7GCcBE56m2P/0TZRRue9vOE//iC3m8Vvxsg=
=KBoW
-----END PGP SIGNATURE-----


V
V
Vinicius Monego wrote on 13 Nov 2021 20:44
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 51314@debbugs.gnu.org)
f2dea899cc95019d7b35eb2c503fcf27ce4f1bb8.camel@posteo.net
Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
Toggle quote (31 lines)
> On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > This patchset adds the Octoprint web UI to control 3d printers.
> >
> > Octoprint itself bundles font-awesome. I removed it in a snippet,
> > don't know how much it would affect usability. I haven't found
> > other bundles with license issues.
> >
> > Some of the updates have newer versions but I'm updating to "older"
> > versions to maintain compatibility with octoprint. See the comment
> > in the octoprint package.
>
> Looking at some of the comments here¹ it looks like they're using old
> versions mostly to retain python2 compatibility. On the other hand
> they
> also have a comment about not having checked newer versions yet for
> for
> breaking changes, which IMO is their job. Other than flask-login and
> netaddr I don't see a reason to not try with some of the newer
> versions
> of the packages. I would feel better if they only marked their own
> dependencies and not transitive dependencies.
>
> I think it makes sense to try newer versions and to add older
> versions
> on an as-needed basis, especially since some of these packages are
> likely to be upgraded again at some point before the next version of
> octoprint.
>
> ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
>

This is my report for the updates:

I updated python-colorlog, python-zeroconf, python-watchdog and python-
wrapt to latest versions.

The update on python-zeroconf will likely break pulseaudio-dlna which
depends on python2-zeroconf. Upstream also abandoned the project and it
now lives in a fork that can be found here¹. Packaging the fork will
require packaging python-pyroute2 which seems to lead to another chain
of new packages.

Updating Flask to version 2.0 will require updates on python-
itsdangerous, python-werkzeug and python-jinja2, which would have to
rebuild 600+ packages.

I tried to update python-websockets-client to latest version but the
tests hung and I couldn't figure out why.

I'll send a v2 soon.

V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 01/24] gnu: Add python-sarge.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-1-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sarge): New variable.
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e5cdaadb3b..0b48923d86 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9772,6 +9772,23 @@ entire set of Emoji codes as defined by the Unicode Consortium is supported in
 addition to a bunch of aliases.")
     (license license:bsd-3)))
 
+(define-public python-sarge
+  (package
+    (name "python-sarge")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sarge" version))
+       (sha256
+        (base32 "0r9jnpdsjdr6h92blr5b2fdzvb1n8ypjwhk2xxmss42gwq2bk3zl"))))
+    (build-system python-build-system)
+    (home-page "https://sarge.readthedocs.io/")
+    (synopsis "Command pipeline functionality")
+    (description "@code{sarge} is a wrapper for subprocess which provides
+command pipeline functionality.")
+    (license license:bsd-3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking

base-commit: 193d7b5b450d2004c26720e488a9cce930542e9e
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 02/24] gnu: Add python-pylru.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-2-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pylru): New variable.
---
gnu/packages/python-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0b48923d86..cdd71ee2ce 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11228,6 +11228,35 @@ signature of a file or buffer.")
 provides a collection of cache libraries in the same API interface.")
     (license license:bsd-3)))
 
+(define-public python-pylru
+  (package
+    (name "python-pylru")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pylru" version))
+       (sha256
+        (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test.py")))))))
+    (home-page "https://github.com/jlhutch/pylru")
+    (synopsis "Least recently used (LRU) cache implementation")
+    (description
+     "Pylru implements a true LRU cache along with several support classes.
+Pylru provides a cache class with a simple dict interface.  It also provides
+classes to wrap any object that has a dict interface with a cache.  Both
+write-through and write-back semantics are supported.  Pylru also provides
+classes to wrap functions in a similar way, including a function decorator.")
+    (license license:gpl2+)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 03/24] gnu: python-flask: Update to 1.1.4.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-3-monego@posteo.net
* gnu/packages/python-web.scm (python-flask): Update to 1.1.4.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 608276325f..0beaa78d0e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2997,13 +2997,13 @@ minimum of WSGI.")
 (define-public python-flask
   (package
     (name "python-flask")
-    (version "1.1.2")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Flask" version))
               (sha256
                (base32
-                "0q3h295izcil7lswkzfnyg3k5gq4hpmqmpl6i7s5m1n9szi1myjf"))))
+                "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 04/24] gnu: python-flask: Respect #:tests?.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-4-monego@posteo.net
* gnu/packages/python-web.scm (python-flask)[arguments]<#:phases>: Respect
#:tests? and simplify the test command in the custom 'check phase.
---
gnu/packages/python-web.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0beaa78d0e..8dd73c003f 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3006,13 +3006,13 @@ minimum of WSGI.")
                 "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "PYTHONPATH" (string-append "./build/lib:"
-                                                 (getenv "PYTHONPATH")))
-             (invoke "pytest" "-vv" "tests"))))))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (propagated-inputs
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 05/24] gnu: Add python-pyscss.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-5-monego@posteo.net
* gnu/packages/python-web.scm (python-pyscss): New variable.
---
gnu/packages/python-web.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 8dd73c003f..80ba4bd07e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -78,6 +78,7 @@
   #:use-module (gnu packages groff)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
@@ -793,6 +794,40 @@ JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign
 content using a variety of algorithms.")
     (license license:expat)))
 
+(define-public python-pyscss
+  (package
+    (name "python-pyscss")
+    (version "1.3.7")
+    (source
+     (origin
+       ;; No tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Kronuz/pyScss")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "--pyargs" "scss")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)))
+    (inputs
+     `(("pcre" ,pcre)))
+    (home-page "https://github.com/Kronuz/pyScss")
+    (synopsis "Scss compiler for Python")
+    (description "@code{pyScss} is a compiler for Sass, a superset language of
+CSS3 that adds programming capabilities and some other syntactic sugar.")
+    (license license:expat)))
+
 (define-public python-jsonpickle
   (package
     (name "python-jsonpickle")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 07/24] gnu: Add python-zipstream-new.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-7-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zipstream-new): New variable.
---
gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cdd71ee2ce..534b774f63 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9789,6 +9789,33 @@ addition to a bunch of aliases.")
 command pipeline functionality.")
     (license license:bsd-3)))
 
+(define-public python-zipstream-new
+  (package
+    (name "python-zipstream-new")
+    (version "1.1.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/arjan-s/python-zipstream")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/arjan-s/python-zipstream")
+    (synopsis "Zipfile generator that takes input files as well as streams")
+    (description "@code{zipstream.py} is a zip archive generator based on
+@code{zipfile.py}.  It was created to generate a zip file generator for
+streaming.  This is beneficial for when you want to provide a downloadable
+archive of a large collection of regular files, which would be infeasible
+to generate the archive prior to downloading or of a very large file that
+you do not want to store entirely on disk or on memory.")
+    ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
+    (license license:gpl3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 06/24] gnu: Add python-flask-assets.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-6-monego@posteo.net
* gnu/packages/python-web.scm (python-flask-assets): New variable.
---
gnu/packages/python-web.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 80ba4bd07e..11e6caa8d5 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1053,6 +1053,35 @@ between a web browser and web server.")
 (define-public python2-sockjs-tornado
   (package-with-python2 python-sockjs-tornado))
 
+(define-public python-flask-assets
+  (package
+    (name "python-flask-assets")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Assets" version))
+       (sha256
+        (base32 "1hmqldxc7zciksmcl35jx0wbyrrxc7vk2a57mmmd8i07whsymz8x"))))
+    (build-system python-build-system)
+    (arguments
+     ;; FIXME: 8 tests are failing with:
+     ;; TypeError: __init__() got an unexpected keyword argument 'static_path'
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-flask-script" ,python-flask-script)
+       ("python-nose" ,python-nose)
+       ("python-pyscss" ,python-pyscss)
+       ("python-pyyaml" ,python-pyyaml)))
+    (propagated-inputs
+     `(("python-flask" ,python-flask)
+       ("python-webassets" ,python-webassets)))
+    (home-page "https://github.com/miracle2k/flask-assets")
+    (synopsis "Asset management for Flask")
+    (description "This package integrates @code{webassets} with Flask, adding
+support for merging, minifying and compiling CSS and Javascript files.")
+    (license license:bsd-2)))
+
 (define-public python-flask-babel
   (package
     (name "python-flask-babel")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 08/24] gnu: Add python-executing.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-8-monego@posteo.net
* gnu/packages/python-xyz.scm (python-executing): New variable.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 534b774f63..19e2159b9b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7101,6 +7101,28 @@ buffer transformation, compression, and decompression functions for use in the
 tifffile, czifile, and other scientific image input/output modules.")
     (license license:bsd-3)))
 
+(define-public python-executing
+  (package
+    (name "python-executing")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "executing" version))
+       (sha256
+        (base32 "08q0xh9fd8k41sqpp23q6fb9bf7yj4y2q6sv30pj36vvk8pg8fy2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; TODO: tests require python-asttokens
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-toml" ,python-toml)))
+    (home-page "https://github.com/alexmojaki/executing")
+    (synopsis "Get information about what a Python frame is currently doing")
+    (description "This package lets you get information about what a frame is
+currently doing, particularly the AST node being executed.")
+    (license license:expat)))
+
 (define-public python-roifile
   (package
     (name "python-roifile")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 10/24] gnu: Add python-pytest-doctest-custom.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-10-monego@posteo.net
* gnu/packages/python-check.scm (python-pytest-doctest-custom): New variable.
---
gnu/packages/python-check.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 5b230934a5..4205e6bb48 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -752,6 +752,35 @@ in Pytest.")
        "Plugin for managing VCR.py cassettes.")
       (license license:expat))))
 
+(define-public python-pytest-doctest-custom
+  (package
+    (name "python-pytest-doctest-custom")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-doctest-custom" version))
+       (sha256
+        (base32 "0kxkdd6q9c3h31kc88lbyfll4c45b0zjd24cbr4c083fcvcy7lip"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test_pytest_doctest_custom.py")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/danilobellini/pytest-doctest-custom")
+    (synopsis
+     "Pytest plugin to customize string representations of doctest results")
+    (description "This package provides a Pytest plugin for customizing string
+representations of doctest results.  It can change the display hook used by
+doctest to render the object representations.")
+    (license license:expat)))
+
 (define-public python-pytest-checkdocs
   (package
     (name "python-pytest-checkdocs")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 11/24] gnu: python-feedparser: Update to 6.0.8.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-11-monego@posteo.net
* gnu/packages/web.scm (python-feedparser): Update to 6.0.8.
[propagated-inputs]: Add python-sgmllib3k.
---
gnu/packages/web.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (31 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a4c47f92d8..b3f5180d79 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -51,6 +51,7 @@
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4764,14 +4765,14 @@ their web site.")
 (define-public python-feedparser
   (package
     (name "python-feedparser")
-    (version "6.0.2")
+    (version "6.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "feedparser" version ".tar.gz"))
        (sha256
         (base32
-         "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v"))))
+         "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-sgmllib3k" ,python-sgmllib3k)))
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 09/24] gnu: Add python-sentry-sdk.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-9-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sentry-sdk): New variable.
---
gnu/packages/python-xyz.scm | 65 +++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)

Toggle diff (85 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 19e2159b9b..fd3f766f1e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -142,6 +142,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
   #:use-module (gnu packages enchant)
@@ -9838,6 +9839,70 @@ you do not want to store entirely on disk or on memory.")
     ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
     (license license:gpl3)))
 
+(define-public python-sentry-sdk
+  (package
+    (name "python-sentry-sdk")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch) ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/getsentry/sentry-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1iyb0amgf03h61jw4hpdbm6h4wyh8n43bnk116ywwc0bl5x3mldx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; This test requires extra dependencies.
+                        "not test_auto_enabling_integrations"
+                        "_catches_import_error"
+                        ;; Tests below run pip command.
+                        " and not test_unhandled_exception"
+                        " and not test_timeout_error"
+                        " and not test_performance_no_error"
+                        " and not test_performance_error"
+                        " and not test_traces_sampler_gets_correct"
+                        "_values_in_sampling_context"
+                        " and not test_handled_exception"
+                        ;; Tests below require network.
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture_hint"
+                        " and not test_httplib_misuse"
+                        ;; Fails with IndexError.
+                        " and not test_session_mode_defaults_to"
+                        "_request_mode_in_wsgi_handler"))))))))
+    (native-inputs
+     `(("python-django" ,python-django)
+       ("python-executing" ,python-executing)
+       ("python-gevent" ,python-gevent)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-mock" ,python-mock)
+       ("python-pyrsistent" ,python-pyrsistent)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-django" ,python-pytest-django)
+       ("python-pytest-forked" ,python-pytest-forked)
+       ("python-pytest-localserver" ,python-pytest-localserver)
+       ("python-werkzeug" ,python-werkzeug)))
+    (propagated-inputs
+     `(("python-certifi" ,python-certifi)
+       ("python-urllib3" ,python-urllib3)))
+    (home-page "https://github.com/getsentry/sentry-python")
+    (synopsis "Python SDK for Sentry")
+    (description "This package provides a Python SDK for the Sentry
+application monitoring and error tracking software.")
+    (license license:bsd-2)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 12/24] gnu: python-feedparser: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-12-monego@posteo.net
* gnu/packages/web.scm (python-feedparser)[arguments]: Remove
#:tests?. Override 'check phase.
---
gnu/packages/web.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b3f5180d79..aea397ee13 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4777,7 +4777,13 @@ their web site.")
     (propagated-inputs
      `(("python-sgmllib3k" ,python-sgmllib3k)))
     (arguments
-     '(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "tests/runtests.py")))))))
     (home-page
      "https://github.com/kurtmckee/feedparser")
     (synopsis "Parse feeds in Python")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 13/24] gnu: python-netifaces: Update to 0.11.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-13-monego@posteo.net
* gnu/packages/python-xyz.scm (python-netifaces): Update to 0.11.0.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fd3f766f1e..aee52b6bec 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9090,14 +9090,14 @@ some are not yet implemented).")
 (define-public python-netifaces
   (package
     (name "python-netifaces")
-    (version "0.10.9")
+    (version "0.11.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "netifaces" version))
         (sha256
           (base32
-            "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid"))))
+            "0cnajf5rl4w1sa72j921scbigr6zndig56cq8ggpx45jdqa7jfh4"))))
     (build-system python-build-system)
     (home-page "https://github.com/al45tair/netifaces")
     (synopsis
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 14/24] gnu: python-websocket-client: Update to 0.59.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-14-monego@posteo.net
* gnu/packages/python-web.scm (python-websocket-client): Update to 0.59.0.
[source]: Update PyPI URI.
[arguments]<#:phases>: Add new phase after 'unpack to skip a network test.
[native-inputs]: Add python-pysocks.
[home-page]: Follow redirection.
---
gnu/packages/python-web.scm | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 11e6caa8d5..5db1f8b730 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2494,18 +2494,28 @@ verification of the SSL peer.")
 (define-public python-websocket-client
   (package
     (name "python-websocket-client")
-    (version "0.54.0")
+    (version "0.59.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "websocket_client" version))
+       (uri (pypi-uri "websocket-client" version))
        (sha256
         (base32
-         "0j88zmikaypf38lvpkf4aaxrjp9j07dmy5ghj7kli0fv3p4n45g5"))))
+         "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-network-test
+           (lambda _
+             ;; This test requires networking.
+             (substitute* "websocket/tests/test_http.py"
+               (("def testConnect") "def _testConnect")))))))
+    (native-inputs
+     `(("python-pysocks" ,python-pysocks)))
     (propagated-inputs
      `(("python-six" ,python-six)))
-    (home-page "https://github.com/liris/websocket-client")
+    (home-page "https://github.com/websocket-client/websocket-client")
     (synopsis "WebSocket client for Python")
     (description "The Websocket-client module provides the low level APIs for
 WebSocket usage in Python programs.")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 15/24] gnu: python-pkginfo: Update to 1.7.1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-15-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pkginfo): Update to 1.7.1.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index aee52b6bec..b9c752f53c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19980,14 +19980,14 @@ design and layout.")
 (define-public python-pkginfo
   (package
     (name "python-pkginfo")
-    (version "1.7.0")
+    (version "1.7.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pkginfo" version))
         (sha256
           (base32
-            "1d1xn1xmfvz0jr3pj8irdwnwby3r13g0r2gwklr1q5y68p5p16h2"))))
+            "1g9m4ra1vrah6ahw6947rl9syzyl1fzin69kfqlwgplas20jyhz7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 16/24] gnu: python-watchdog: Update to 2.1.6.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-16-monego@posteo.net
* gnu/packages/python-xyz.scm (python-watchdog): Update to 2.1.6.
[arguments]<#:phases>: Remove 'remove-failing phase. Override 'check phase and
skip a failing test.
---
gnu/packages/python-xyz.scm | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b9c752f53c..6c2294c4a1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24618,23 +24618,25 @@ files.  These files are used to translate strings in android apps.")
 (define-public python-watchdog
   (package
     (name "python-watchdog")
-    (version "0.9.0")
+    (version "2.1.6")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "watchdog" version))
         (sha256
          (base32
-          "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+          "1rx2nyl0cyj0v4ja795cl3gi26577c5wg48syr3byz3ndkgpavm3"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'remove-failing
-           (lambda _
-             (delete-file "tests/test_inotify_buffer.py")
-             (delete-file "tests/test_snapshot_diff.py")
-             #t)))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       ;; This test failed.
+                       "not test_kill_auto_restart")))))))
     (propagated-inputs
      `(("python-argh" ,python-argh)
        ("python-pathtools" ,python-pathtools)
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 17/24] gnu: python-colorlog: Update to 6.6.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-17-monego@posteo.net
* gnu/packages/python-xyz.scm (python-colorlog): Update to 6.6.0.
[arguments]<#:phases>: Simplify custom 'check phase.
---
gnu/packages/python-xyz.scm | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6c2294c4a1..63325dfc90 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -740,26 +740,24 @@ implementation for the Telegram Bot API.")
 (define-public python-colorlog
   (package
     (name "python-colorlog")
-    (version "4.1.0")
+    (version "6.6.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "colorlog" version))
               (sha256
                (base32
-                "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+                "1s7x0v872h8aks8xp01wmv6hzisxqjrh1svbbcycir0980h76krl"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      ;; Extend PYTHONPATH so the built package will be found.
-                      (setenv "PYTHONPATH"
-                              (string-append (getcwd) "/build/lib:"
-                                             (getenv "PYTHONPATH")))
-                      (invoke "pytest" "-p" "no:logging")
-                      #t)))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (home-page "https://github.com/borntyping/python-colorlog")
     (synopsis "Log formatting with colors for python")
     (description "The @code{colorlog.ColoredFormatter} is a formatter for use
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 18/24] gnu: python-zeroconf: Update to 0.36.13.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-18-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zeroconf): Update to 0.36.13.
[source]: Fetch from GitHub.
[native-inputs]: Remove python-nose. Add python-pytest.
[arguments]<#:phases>: Adjust custom 'check phase to use Pytest.
---
gnu/packages/python-xyz.scm | 36 +++++++++++++++++++++---------------
1 file changed, 21 insertions(+), 15 deletions(-)

Toggle diff (62 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 63325dfc90..b3990a6115 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23449,34 +23449,40 @@ enumeration library in Python.")
 (define-public python-zeroconf
   (package
     (name "python-zeroconf")
-    (version "0.28.8")
+    (version "0.36.13")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "zeroconf" version))
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/jstasiak/python-zeroconf")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+        (base32 "1isz6jb14lmmqvzfgwkc8avyvib7pxpq92r2v283vjqjn7mmp0v9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     `(("python-pytest" ,python-pytest)))
     (propagated-inputs
      `(("python-ifaddr" ,python-ifaddr)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ ;; Networking isn't available for these tests.
-             (invoke "nosetests" "-v"
-                     "--exclude" "test_integration_with_listener_ipv6"
-                     "--exclude" "test_launch_and_close_v6_only"
-                     "--exclude" "test_launch_and_close_v4_v6"
-                     "--exclude" "test_launch_and_close"))))))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; Networking isn't available for these tests.
+                        "not test_integration_with_listener_ipv6"
+                        " and not test_launch_and_close_v4_v6"
+                        " and not test_launch_and_close_context_manager"
+                        " and not test_launch_and_close"
+                        " and not test_close_multiple_times"))))))))
     (home-page "https://github.com/jstasiak/python-zeroconf")
     (synopsis "Pure Python mDNS service discovery")
-    (description
-     "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
-compatible).")
+    (description "Pure Python multicast DNS (mDNS) service discovery library
+(Bonjour/Avahi compatible).")
     (license license:lgpl2.1+)))
 
 (define-public python2-zeroconf
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 19/24] gnu: python-wrapt: Update to 1.13.3.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-19-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt): Update to 1.13.3.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b3990a6115..402053e96f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10838,14 +10838,14 @@ Supported netlink families and protocols include:
 (define-public python-wrapt
   (package
     (name "python-wrapt")
-    (version "1.11.2")
+    (version "1.13.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "wrapt" version))
        (sha256
         (base32
-         "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn"))))
+         "11f13zqgbql26g5bkfkqalckcdlz394g6dhx4y16cvk873a9rshz"))))
     (build-system python-build-system)
     (arguments
      ;; Tests are not included in the tarball, they are only available in the
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 20/24] gnu: python-wrapt: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-20-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt)[source]: Fetch from GitHub.
[arguments]<#:phases>: Override 'check phase.
---
gnu/packages/python-xyz.scm | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 402053e96f..8fcc9583ab 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10841,16 +10841,23 @@ Supported netlink families and protocols include:
     (version "1.13.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "wrapt" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GrahamDumpleton/wrapt")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "11f13zqgbql26g5bkfkqalckcdlz394g6dhx4y16cvk873a9rshz"))))
+        (base32 "05d7xs6rvaw9gpcvsvk7ckxiax1nrxcpv41vrqkkl7zq967d9bcj"))))
     (build-system python-build-system)
     (arguments
-     ;; Tests are not included in the tarball, they are only available in the
-     ;; git repository.
-     `(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "unittest" "discover"
+                       "-s" "tests")))))))
     (home-page "https://github.com/GrahamDumpleton/wrapt")
     (synopsis "Module for decorators, wrappers and monkey patching")
     (description
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 21/24] gnu: Add octoprint-pisupport.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-21-monego@posteo.net
* gnu/packages/printers.scm (octoprint-pisupport): New variable.
---
gnu/packages/printers.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index f78923966c..7367ce3a81 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,8 +20,10 @@
 
 (define-module (gnu packages printers)
   #:use-module (guix packages)
+  #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
@@ -29,6 +32,27 @@
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
 
+(define-public octoprint-pisupport
+  (package
+    (name "octoprint-pisupport")
+    (version "2021.10.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-PiSupport" version))
+       (sha256
+        (base32 "05g79hb0x8bpk4qk9h6dibl0pnlsvbnmn8jx64z4dx8hdfad3rwf"))))
+    (build-system python-build-system)
+    (arguments
+     ;; No tests in PyPI release, and circular dependency on Octoprint.
+     `(#:tests? #f))
+    (home-page "https://github.com/OctoPrint/OctoPrint-PiSupport")
+    (synopsis "Plugin to provide additional information about your Pi")
+    (description "The Pi Support plugin provides additional information about
+your Pi in the UI and also alerts you about undervoltage or overheating issues
+observed on your Pi or if your Pi is unsupported.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 22/24] gnu: Add octoprint-firmwarecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-22-monego@posteo.net
* gnu/packages/printers.scm (octoprint-firmwarecheck): New variable.
---
gnu/packages/printers.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 7367ce3a81..5ec678ab37 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -53,6 +53,28 @@ your Pi in the UI and also alerts you about undervoltage or overheating issues
 observed on your Pi or if your Pi is unsupported.")
     (license license:agpl3)))
 
+(define-public octoprint-firmwarecheck
+  (package
+    (name "octoprint-firmwarecheck")
+    (version "2021.10.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FirmwareCheck" version))
+       (sha256
+        (base32 "17prs0rmzglw75gkf6j7qypxisjvcfk2mbsyfqrjdbwg99i62s2h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests
+    (home-page "https://github.com/OctoPrint/OctoPrint-FirmwareCheck")
+    (synopsis "Plugin to check for unsafe or broken printer firmwares")
+    (description "The Firmware Check plugin tries to identify printers
+or rather printer firmware with known safety issues, such as disabled
+thermal runaway protection, or other kinds of severe issues, like known
+communication crippling bugs, and displays a warning box to logged in users
+on identification of such a firmware.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 23/24] gnu: Add octoprint-filecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-23-monego@posteo.net
* gnu/packages/printers.scm (octoprint-filecheck): New variable.
---
gnu/packages/printers.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 5ec678ab37..f1535d5db1 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -75,6 +75,26 @@ communication crippling bugs, and displays a warning box to logged in users
 on identification of such a firmware.")
     (license license:agpl3)))
 
+(define-public octoprint-filecheck
+  (package
+    (name "octoprint-filecheck")
+    (version "2021.2.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FileCheck" version))
+       (sha256
+        (base32 "0bgvv6hvxa9qv0fs5dfr9wlbbjawxik8f2cid3h3czdhdhw46aqv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests
+    (home-page "https://github.com/OctoPrint/OctoPrint-FileCheck")
+    (synopsis "Plugin to check for common issues in uploaded files")
+    (description "The File Check plugin tries to detect common issues in
+uploaded files that are known to cause issues while printing and which in
+the past have caused support requests on OctoPrint's Community Forums.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 13 Nov 2021 21:02
[PATCH v2 24/24] gnu: Add octoprint.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211113200230.192559-24-monego@posteo.net
* gnu/packages/printers.scm (octoprint): New variable.
---
gnu/packages/printers.scm | 118 +++++++++++++++++++++++++++++++++++++-
1 file changed, 117 insertions(+), 1 deletion(-)

Toggle diff (140 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index f1535d5db1..c2189a1b79 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -25,9 +25,15 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -95,6 +101,116 @@ uploaded files that are known to cause issues while printing and which in
 the past have caused support requests on OctoPrint's Community Forums.")
     (license license:agpl3)))
 
+(define-public octoprint
+  (package
+    (name "octoprint")
+    (version "1.7.2")
+    (source
+     (origin
+       (method git-fetch) ; no tests in the PyPI tarball.
+       (uri (git-reference
+             (url "https://github.com/OctoPrint/OctoPrint")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0zvjnbcmszifvr02rsmfzb5v24f1ss8klrnkd9fcg2351nkpqbbd"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled font-awesome.
+           (delete-file-recursively "src/octoprint/static/vendor") #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-version-requirements
+           ;; Octoprint maintains strict version requirements for Python2
+           ;; compatibility.  We're not packaging with Python2, so modify
+           ;; setup.py to relax those versions.  Octoprint will drop Python2
+           ;; support in version 2.0 so we won't need this change after it.
+           (lambda _
+             (substitute* "setup.py"
+               (("cachelib>=0.1,<0.2") "cachelib>=0.1")
+               (("colorlog>=5.0.1,<6") "colorlog>=5.0.1")
+               (("markdown>=3.1,<3.2") "markdown>=3.1,<4")
+               (("watchdog==0.10.4") "watchdog>=0.10.4")
+               (("wrapt>=1.12.1,<1.13") "wrapt>=1.12.1")
+               (("zeroconf>=0.33,<0.34") "zeroconf>=0.33")
+               ;; Relax core packages that are outdated in Guix.
+               (("Jinja2>=2.11.3,<3") "Jinja2>=2.11.2,<3")
+               (("requests>=2.26.0,<3") "requests>=2.25,<3"))))
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" (getcwd)))) ; some tests need a writable home
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "tests" "-k"
+                       (string-append
+                        ;; These tests try to write to the source tree and
+                        ;; fail with PermissionError.
+                        "not test_add_file_overwrite"
+                        " and not test_set_external_modification"))))))))
+    (native-inputs
+     `(("python-ddt" ,python-ddt)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-doctest-custom"
+        ,python-pytest-doctest-custom)))
+    (inputs
+     `(("octoprint-filecheck" ,octoprint-filecheck)
+       ("octoprint-firmwarecheck" ,octoprint-firmwarecheck)
+       ("octoprint-pisupport" ,octoprint-pisupport)
+       ("python-appdirs" ,python-appdirs)
+       ("python-blinker" ,python-blinker)
+       ("python-cachelib" ,python-cachelib)
+       ("python-click" ,python-click)
+       ("python-colorlog" ,python-colorlog)
+       ("python-emoji" ,python-emoji)
+       ("python-feedparser" ,python-feedparser)
+       ("python-filetype" ,python-filetype)
+       ("python-flask" ,python-flask)
+       ("python-flask-assets" ,python-flask-assets)
+       ("python-flask-babel" ,python-flask-babel)
+       ("python-flask-login" ,python-flask-login)
+       ("python-future" ,python-future)
+       ("python-immutabledict" ,python-immutabledict)
+       ("python-itsdangerous" ,python-itsdangerous)
+       ("python-jinja2" ,python-jinja2)
+       ("python-markdown" ,python-markdown)
+       ("python-markupsafe" ,python-markupsafe)
+       ("python-netaddr" ,python-netaddr)
+       ("python-netifaces" ,python-netifaces)
+       ("python-pathvalidate" ,python-pathvalidate)
+       ("python-pkginfo" ,python-pkginfo)
+       ("python-psutil" ,python-psutil)
+       ("python-pylru" ,python-pylru)
+       ("python-pyserial" ,python-pyserial)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-regex" ,python-regex)
+       ("python-requests" ,python-requests)
+       ("python-sarge" ,python-sarge)
+       ("python-semantic-version"
+        ,python-semantic-version)
+       ("python-sentry-sdk" ,python-sentry-sdk)
+       ("python-tornado" ,python-tornado-6)
+       ("python-unidecode" ,python-unidecode)
+       ("python-watchdog" ,python-watchdog)
+       ("python-websocket-client"
+        ,python-websocket-client)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)
+       ("python-zeroconf" ,python-zeroconf)
+       ("python-zipstream-new" ,python-zipstream-new)))
+    (home-page "https://octoprint.org")
+    (synopsis "Web interface for 3D printers")
+    (description "OctoPrint provides a snappy web interface for controlling
+consumer 3D printers.")
+    ;; The web interface contains many third party JavaScript libraries under
+    ;; different licenses.  Check THIRDPARTYLICENSES.md.
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
E
E
Efraim Flashner wrote on 14 Nov 2021 09:44
Re: [bug#51314] [PATCH 00/29] Add Octoprint (web UI for 3d printers).
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51314@debbugs.gnu.org)
YZDMfRA4RAoTcubK@3900XT
On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
Toggle quote (47 lines)
> Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > This patchset adds the Octoprint web UI to control 3d printers.
> > >
> > > Octoprint itself bundles font-awesome. I removed it in a snippet,
> > > don't know how much it would affect usability. I haven't found
> > > other bundles with license issues.
> > >
> > > Some of the updates have newer versions but I'm updating to "older"
> > > versions to maintain compatibility with octoprint. See the comment
> > > in the octoprint package.
> >
> > Looking at some of the comments here¹ it looks like they're using old
> > versions mostly to retain python2 compatibility. On the other hand
> > they
> > also have a comment about not having checked newer versions yet for
> > for
> > breaking changes, which IMO is their job. Other than flask-login and
> > netaddr I don't see a reason to not try with some of the newer
> > versions
> > of the packages. I would feel better if they only marked their own
> > dependencies and not transitive dependencies.
> >
> > I think it makes sense to try newer versions and to add older
> > versions
> > on an as-needed basis, especially since some of these packages are
> > likely to be upgraded again at some point before the next version of
> > octoprint.
> >
> > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> >
>
> This is my report for the updates:
>
> I updated python-colorlog, python-zeroconf, python-watchdog and python-
> wrapt to latest versions.
>
> The update on python-zeroconf will likely break pulseaudio-dlna which
> depends on python2-zeroconf. Upstream also abandoned the project and it
> now lives in a fork that can be found here¹. Packaging the fork will
> require packaging python-pyroute2 which seems to lead to another chain
> of new packages.
>
> Updating Flask to version 2.0 will require updates on python-
> itsdangerous, python-werkzeug and python-jinja2, which would have to
> rebuild 600+ packages.

That's a pretty good reason to leave flask at 1.x. When we do add 2.x we
might also end up keeping a python-flask-1 for a while during a
transition.

Toggle quote (7 lines)
> I tried to update python-websockets-client to latest version but the
> tests hung and I couldn't figure out why.
>
> I'll send a v2 soon.
>
> ¹ https://github.com/Cygn/pulseaudio-dlna/

My concern was more about if the newer versions of the python packages
would work with octoprint.

--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmGQzHwACgkQQarn3Mo9
g1GEiQ/+Lgjgr/ycMTypFwnpB+hHW1MSFLZF0U7c0HWIqLlesUwwkq3FK7Jme1RZ
qc1NhP75BMMlbJgs4wrxmiqTAzpIpG8uFjca0AQzWgXMr08zZIV2fk0sYlRNvDAW
Wnxm6GhQGG3YDxVYYlr0fkPvt50DAmwdeXfGuLYN8b/SRx8OqO9oYmms3PREhqDc
SuPmaKOC3+QsorwA71nc5NU+UTCO2OIsz0HM3hF/1HQEuH6oCCLQ5ycITOMlcV5m
tQ3/v9qQh0e+aLbqpUbfH6GUswOJE6gbLruapd2bbzJR2DYbZ5mAAUYnac/4+vfh
id/GFT506IqkzbUOTJg2+0Pma5TU0h/cWFoNFyu+oN6TpMOhlQItKID2QfHBGIKa
VE2AR7JxMCR61s+vuJ8T+HvTaSnBUvd3BTjWXKIko3PN2Cw+Z3wWfAPnnS/LflzG
rFs8mR8A+WcOUbnJzoXouv8BFg9bpFcu6UZvToiiq/s4LC78cqbrdy2H6258mbku
C3cWSVst/fHRwYOv4460MGqN2RpQxdJKQmMu45QciKLvnvUSbfZuWpsakqYNuI/j
WDee8gH8RV/Pt5sxbSqTuJew0uwjY+hJ8xo+4XJbM7IYYQHzVDJH5zd/T96Tuc7j
MqtcvPgg+ui8A8o6iu+wbuyEoazKpFWWLTONEJpPPHpHLZfMaVo=
=Q87z
-----END PGP SIGNATURE-----


V
V
Vinicius Monego wrote on 14 Nov 2021 15:07
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 51314@debbugs.gnu.org)
3994da78d3a54369518be4b92636044ed15c3217.camel@posteo.net
Em dom, 2021-11-14 às 10:44 +0200, Efraim Flashner escreveu:
Toggle quote (82 lines)
> On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
> > Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > > This patchset adds the Octoprint web UI to control 3d printers.
> > > >
> > > > Octoprint itself bundles font-awesome. I removed it in a
> > > > snippet,
> > > > don't know how much it would affect usability. I haven't found
> > > > other bundles with license issues.
> > > >
> > > > Some of the updates have newer versions but I'm updating to
> > > > "older"
> > > > versions to maintain compatibility with octoprint. See the
> > > > comment
> > > > in the octoprint package.
> > >
> > > Looking at some of the comments here¹ it looks like they're using
> > > old
> > > versions mostly to retain python2 compatibility. On the other
> > > hand
> > > they
> > > also have a comment about not having checked newer versions yet
> > > for
> > > for
> > > breaking changes, which IMO is their job. Other than flask-login
> > > and
> > > netaddr I don't see a reason to not try with some of the newer
> > > versions
> > > of the packages. I would feel better if they only marked their
> > > own
> > > dependencies and not transitive dependencies.
> > >
> > > I think it makes sense to try newer versions and to add older
> > > versions
> > > on an as-needed basis, especially since some of these packages
> > > are
> > > likely to be upgraded again at some point before the next version
> > > of
> > > octoprint.
> > >
> > > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> > >
> >
> > This is my report for the updates:
> >
> > I updated python-colorlog, python-zeroconf, python-watchdog and
> > python-
> > wrapt to latest versions.
> >
> > The update on python-zeroconf will likely break pulseaudio-dlna
> > which
> > depends on python2-zeroconf. Upstream also abandoned the project
> > and it
> > now lives in a fork that can be found here¹. Packaging the fork
> > will
> > require packaging python-pyroute2 which seems to lead to another
> > chain
> > of new packages.
> >
> > Updating Flask to version 2.0 will require updates on python-
> > itsdangerous, python-werkzeug and python-jinja2, which would have
> > to
> > rebuild 600+ packages.
>
> That's a pretty good reason to leave flask at 1.x. When we do add 2.x
> we
> might also end up keeping a python-flask-1 for a while during a
> transition.
>
> > I tried to update python-websockets-client to latest version but
> > the
> > tests hung and I couldn't figure out why.
> >
> > I'll send a v2 soon.
> >
> > ¹ https://github.com/Cygn/pulseaudio-dlna/
>
> My concern was more about if the newer versions of the python
> packages
> would work with octoprint.
>

I don't have a printer to test but the unit tests are still passing and
the server log messages didn't accuse anything different. The only
update that may cause a problem is python-zeroconf, but I don't know
how to test that one.
E
E
Efraim Flashner wrote on 14 Nov 2021 15:30
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51314@debbugs.gnu.org)
YZEdb54s/2+X6nNl@3900XT
On Sun, Nov 14, 2021 at 02:07:04PM +0000, Vinicius Monego wrote:
Toggle quote (88 lines)
> Em dom, 2021-11-14 às 10:44 +0200, Efraim Flashner escreveu:
> > On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
> > > Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > > > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > > > This patchset adds the Octoprint web UI to control 3d printers.
> > > > >
> > > > > Octoprint itself bundles font-awesome. I removed it in a
> > > > > snippet,
> > > > > don't know how much it would affect usability. I haven't found
> > > > > other bundles with license issues.
> > > > >
> > > > > Some of the updates have newer versions but I'm updating to
> > > > > "older"
> > > > > versions to maintain compatibility with octoprint. See the
> > > > > comment
> > > > > in the octoprint package.
> > > >
> > > > Looking at some of the comments here¹ it looks like they're using
> > > > old
> > > > versions mostly to retain python2 compatibility. On the other
> > > > hand
> > > > they
> > > > also have a comment about not having checked newer versions yet
> > > > for
> > > > for
> > > > breaking changes, which IMO is their job. Other than flask-login
> > > > and
> > > > netaddr I don't see a reason to not try with some of the newer
> > > > versions
> > > > of the packages. I would feel better if they only marked their
> > > > own
> > > > dependencies and not transitive dependencies.
> > > >
> > > > I think it makes sense to try newer versions and to add older
> > > > versions
> > > > on an as-needed basis, especially since some of these packages
> > > > are
> > > > likely to be upgraded again at some point before the next version
> > > > of
> > > > octoprint.
> > > >
> > > > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> > > >
> > >
> > > This is my report for the updates:
> > >
> > > I updated python-colorlog, python-zeroconf, python-watchdog and
> > > python-
> > > wrapt to latest versions.
> > >
> > > The update on python-zeroconf will likely break pulseaudio-dlna
> > > which
> > > depends on python2-zeroconf. Upstream also abandoned the project
> > > and it
> > > now lives in a fork that can be found here¹. Packaging the fork
> > > will
> > > require packaging python-pyroute2 which seems to lead to another
> > > chain
> > > of new packages.
> > >
> > > Updating Flask to version 2.0 will require updates on python-
> > > itsdangerous, python-werkzeug and python-jinja2, which would have
> > > to
> > > rebuild 600+ packages.
> >
> > That's a pretty good reason to leave flask at 1.x. When we do add 2.x
> > we
> > might also end up keeping a python-flask-1 for a while during a
> > transition.
> >
> > > I tried to update python-websockets-client to latest version but
> > > the
> > > tests hung and I couldn't figure out why.
> > >
> > > I'll send a v2 soon.
> > >
> > > ¹ https://github.com/Cygn/pulseaudio-dlna/
> >
> > My concern was more about if the newer versions of the python
> > packages
> > would work with octoprint.
> >
>
> I don't have a printer to test but the unit tests are still passing and
> the server log messages didn't accuse anything different. The only
> update that may cause a problem is python-zeroconf, but I don't know
> how to test that one.

So it's probably fine to leave that one as-is for now.

--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmGRHWwACgkQQarn3Mo9
g1GTYg//Y18NurjNjBwcbZuapuU85cE9jDl18DMsZA+3T9juJ5McAROnXKEKO6Y3
zBRCxm/+zAftIAiwpE7/26PZhEEsm24XBSd77SFSQIyurmlRzlZX+jf5zSRxaNjR
+69IbvSAJNiNCehIBUwpS6K3cg/fH5VBxiRdGrb7SDs588+0F7HpOfT4k8QQjp5t
PtiBdNnDzrXe7k4lP9hdQkY127lZD2KmLuu+yfMdiPtDM3R8wqSsmSjBqjBunYGm
C9SruyoIrYraJKezAbomPyY8gjROhyabZnHY0fszjpYX9DYB8JoGPbLYTOw0u5HS
5VyH+ty0DQxZDboWRicXPh9Gg205jQS0kYvtJG7CuQkCBOS1HT3UOVQ5v93mQNtC
Dj7O3k4w35tuwPsAF59xcq6j2UUfhRsJzrk5THiEApdZxM/RH3SArM1vIr0h04UQ
CSyEmOM913QRqO2dKFtRJfpid6UOOjcuEajXJrYvZ0EuXK6RrRJljzDgSrfHVy3E
RZlADZazWMVLSYAzcaomxADs4G0iZ60grTcgxzETBQS7k+cN++i5BfioiN04lMn0
/iAXHn9kDff/ty2zRJD2eOTuYBSOmS4Wo/WQmYErbfRQewdq5px5vizznDcZTESn
57CwVl24miOwOi0bVayI5U4h6wHt499R2J/FGgRg5XArTuDDWjM=
=MHiz
-----END PGP SIGNATURE-----


V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 00/21] Add Octoprint (v3)
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-1-monego@posteo.net
This is an update of the series after the core-updates-frozen merge. All packages are linted. The feedparser and flask updates were removed because they were pushed in other patches.

A few package versions were bumped. The server and UI seem to work, but still I can't test the full functionality of the program.

Vinicius Monego (21):
gnu: Add python-sarge.
gnu: Add python-pylru.
gnu: Add python-pyscss.
gnu: Add python-flask-assets.
gnu: Add python-zipstream-new.
gnu: Add python-executing.
gnu: Add python-sentry-sdk.
gnu: Add python-pytest-doctest-custom.
gnu: python-feedparser: Enable tests.
gnu: python-netifaces: Update to 0.11.0.
gnu: python-websocket-client: Update to 0.59.0.
gnu: python-pkginfo: Update to 1.8.2.
gnu: python-watchdog: Update to 2.1.6.
gnu: python-colorlog: Update to 6.6.0.
gnu: python-zeroconf: Update to 0.38.1.
gnu: python-wrapt: Update to 1.13.3.
gnu: python-wrapt: Enable tests.
gnu: Add octoprint-pisupport.
gnu: Add octoprint-firmwarecheck.
gnu: Add octoprint-filecheck.
gnu: Add octoprint.

gnu/packages/printers.scm | 194 +++++++++++++++++++++-
gnu/packages/python-check.scm | 29 ++++
gnu/packages/python-web.scm | 76 ++++++++-
gnu/packages/python-xyz.scm | 304 ++++++++++++++++++++++++++--------
gnu/packages/web.scm | 17 +-
5 files changed, 542 insertions(+), 78 deletions(-)


base-commit: 28b477cb2e5d9185da16f305caff15809dfa06f3
--
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 02/21] gnu: Add python-pylru.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-3-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pylru): New variable.
---
gnu/packages/python-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 499ef1e06d..937e5c3399 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11257,6 +11257,35 @@ signature of a file or buffer.")
 provides a collection of cache libraries in the same API interface.")
     (license license:bsd-3)))
 
+(define-public python-pylru
+  (package
+    (name "python-pylru")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pylru" version))
+       (sha256
+        (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test.py")))))))
+    (home-page "https://github.com/jlhutch/pylru")
+    (synopsis "Least recently used (LRU) cache implementation")
+    (description
+     "Pylru implements a true LRU cache along with several support classes.
+Pylru provides a cache class with a simple dict interface.  It also provides
+classes to wrap any object that has a dict interface with a cache.  Both
+write-through and write-back semantics are supported.  Pylru also provides
+classes to wrap functions in a similar way, including a function decorator.")
+    (license license:gpl2+)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 04/21] gnu: Add python-flask-assets.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-5-monego@posteo.net
* gnu/packages/python-web.scm (python-flask-assets): New variable.
---
gnu/packages/python-web.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 13504061ca..39cdbafc73 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1027,6 +1027,28 @@ between a web browser and web server.")
 (define-public python2-sockjs-tornado
   (package-with-python2 python-sockjs-tornado))
 
+(define-public python-flask-assets
+  (package
+    (name "python-flask-assets")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Assets" version))
+       (sha256
+        (base32 "1hmqldxc7zciksmcl35jx0wbyrrxc7vk2a57mmmd8i07whsymz8x"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests require python-flask-script which is incompatible with Flask2.
+     `(#:tests? #f))
+    (propagated-inputs
+     (list python-flask python-webassets))
+    (home-page "https://github.com/miracle2k/flask-assets")
+    (synopsis "Asset management for Flask")
+    (description "This package integrates @code{webassets} with Flask, adding
+support for merging, minifying and compiling CSS and Javascript files.")
+    (license license:bsd-2)))
+
 (define-public python-flask-babel
   (package
     (name "python-flask-babel")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 01/21] gnu: Add python-sarge.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-2-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sarge): New variable.
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7ca0b1668d..499ef1e06d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9836,6 +9836,23 @@ entire set of Emoji codes as defined by the Unicode Consortium is supported in
 addition to a bunch of aliases.")
     (license license:bsd-3)))
 
+(define-public python-sarge
+  (package
+    (name "python-sarge")
+    (version "0.1.7.post1") ; post release only to correct errors in metadata
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sarge" version))
+       (sha256
+        (base32 "0g9a53mfnp96877n1yq2jdk1mcv3xm0d93iisvgcn2prdsp45zv4"))))
+    (build-system python-build-system)
+    (home-page "https://docs.red-dove.com/sarge/")
+    (synopsis "Subprocess wrapper with command pipeline functionality")
+    (description "@code{sarge} is a wrapper for subprocess which provides
+command pipeline functionality.")
+    (license license:bsd-3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking

base-commit: 28b477cb2e5d9185da16f305caff15809dfa06f3
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 05/21] gnu: Add python-zipstream-new.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-6-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zipstream-new): New variable.
---
gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 937e5c3399..669332a5c6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9853,6 +9853,33 @@ addition to a bunch of aliases.")
 command pipeline functionality.")
     (license license:bsd-3)))
 
+(define-public python-zipstream-new
+  (package
+    (name "python-zipstream-new")
+    (version "1.1.8")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/arjan-s/python-zipstream")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-nose))
+    (home-page "https://github.com/arjan-s/python-zipstream")
+    (synopsis "Zipfile generator that takes input files as well as streams")
+    (description "@code{zipstream.py} is a zip archive generator based on
+@code{zipfile.py}.  It was created to generate a zip file generator for
+streaming.  This is beneficial for when you want to provide a downloadable
+archive of a large collection of regular files, which would be infeasible
+to generate the archive prior to downloading or of a very large file that
+you do not want to store entirely on disk or on memory.")
+    ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
+    (license license:gpl3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 06/21] gnu: Add python-executing.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-7-monego@posteo.net
* gnu/packages/python-xyz.scm (python-executing): 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 669332a5c6..4e3a5aedb5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7146,6 +7146,27 @@ buffer transformation, compression, and decompression functions for use in the
 tifffile, czifile, and other scientific image input/output modules.")
     (license license:bsd-3)))
 
+(define-public python-executing
+  (package
+    (name "python-executing")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "executing" version))
+       (sha256
+        (base32 "08q0xh9fd8k41sqpp23q6fb9bf7yj4y2q6sv30pj36vvk8pg8fy2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))                    ; TODO: tests require python-asttokens
+    (native-inputs
+     (list python-setuptools-scm python-toml))
+    (home-page "https://github.com/alexmojaki/executing")
+    (synopsis "Get information about what a Python frame is currently doing")
+    (description "This package lets you get information about what a frame is
+currently doing, particularly the AST node being executed.")
+    (license license:expat)))
+
 (define-public python-roifile
   (package
     (name "python-roifile")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 03/21] gnu: Add python-pyscss.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-4-monego@posteo.net
* gnu/packages/python-web.scm (python-pyscss): New variable.
---
gnu/packages/python-web.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 61a34bfc63..13504061ca 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -82,6 +82,7 @@
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages node)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
@@ -775,6 +776,40 @@ JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign
 content using a variety of algorithms.")
     (license license:expat)))
 
+(define-public python-pyscss
+  (package
+    (name "python-pyscss")
+    (version "1.3.7")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/Kronuz/pyScss")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6"))))
+    (build-system python-build-system)
+    (arguments
+     ;; XXX: error in test collection, possible incompatibility with Pytest 6.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "--pyargs" "scss")))))))
+    (native-inputs
+     (list python-pytest python-pytest-cov))
+    (inputs
+     (list pcre))
+    (home-page "https://github.com/Kronuz/pyScss")
+    (synopsis "Scss compiler for Python")
+    (description "@code{pyScss} is a compiler for Sass, a superset language of
+CSS3 that adds programming capabilities and some other syntactic sugar.")
+    (license license:expat)))
+
 (define-public python-jsonpickle
   (package
     (name "python-jsonpickle")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 07/21] gnu: Add python-sentry-sdk.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-8-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sentry-sdk): New variable.
---
gnu/packages/python-xyz.scm | 63 +++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)

Toggle diff (76 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4e3a5aedb5..1cb6383aa7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9901,6 +9901,69 @@ you do not want to store entirely on disk or on memory.")
     ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
     (license license:gpl3)))
 
+(define-public python-sentry-sdk
+  (package
+    (name "python-sentry-sdk")
+    (version "1.5.1")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/getsentry/sentry-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "128bm136l5zprr3sqqb8j3d6k5i1fhz853mzvh3w8g0w1dw763mx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; This test requires extra dependencies.
+                        "not test_auto_enabling_integrations"
+                        "_catches_import_error"
+                        ;; Tests below run pip command.
+                        " and not test_unhandled_exception"
+                        " and not test_timeout_error"
+                        " and not test_performance_no_error"
+                        " and not test_performance_error"
+                        " and not test_traces_sampler_gets_correct"
+                        "_values_in_sampling_context"
+                        " and not test_handled_exception"
+                        ;; Tests below require network.
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture"
+                        " and not test_crumb_capture_hint"
+                        " and not test_httplib_misuse"
+                        ;; Fails with IndexError.
+                        " and not test_session_mode_defaults_to"
+                        "_request_mode_in_wsgi_handler"))))))))
+    (native-inputs
+     (list python-django
+           python-executing
+           python-gevent
+           python-jsonschema
+           python-mock
+           python-pyrsistent
+           python-pytest
+           python-pytest-cov
+           python-pytest-django
+           python-pytest-forked
+           python-pytest-localserver
+           python-werkzeug))
+    (propagated-inputs
+     (list python-certifi python-urllib3))
+    (home-page "https://github.com/getsentry/sentry-python")
+    (synopsis "Python SDK for Sentry")
+    (description "This package provides a Python SDK for the Sentry
+application monitoring and error tracking software.")
+    (license license:bsd-2)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 08/21] gnu: Add python-pytest-doctest-custom.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-9-monego@posteo.net
* gnu/packages/python-check.scm (python-pytest-doctest-custom): New variable.
---
gnu/packages/python-check.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index a2ac9a201b..8e84c64d65 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -776,6 +776,35 @@ support and @code{subtests} fixture.")
        "Plugin for managing VCR.py cassettes.")
       (license license:expat))))
 
+(define-public python-pytest-doctest-custom
+  (package
+    (name "python-pytest-doctest-custom")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-doctest-custom" version))
+       (sha256
+        (base32 "0kxkdd6q9c3h31kc88lbyfll4c45b0zjd24cbr4c083fcvcy7lip"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test_pytest_doctest_custom.py")))))))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/danilobellini/pytest-doctest-custom")
+    (synopsis
+     "Pytest plugin to customize string representations of doctest results")
+    (description "This package provides a Pytest plugin for customizing string
+representations of doctest results.  It can change the display hook used by
+doctest to render the object representations.")
+    (license license:expat)))
+
 (define-public python-pytest-checkdocs
   (package
     (name "python-pytest-checkdocs")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 09/21] gnu: python-feedparser: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-10-monego@posteo.net
* gnu/packages/web.scm (python-feedparser)[source]: Make some cosmetic
changes.
[arguments]: Remove #:tests?. Override 'check phase.
[home-page]: Don't break line.
---
gnu/packages/web.scm | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)

Toggle diff (45 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 1c8e4a64a1..045b6408cf 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4621,20 +4622,24 @@ their web site.")
        (method url-fetch)
        (uri (pypi-uri "feedparser" version ".tar.gz"))
        (sha256
-        (base32
-         "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
+        (base32 "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-sgmllib3k))
     (arguments
-     '(#:tests? #f))
-    (home-page
-     "https://github.com/kurtmckee/feedparser")
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "tests/runtests.py")))))))
+    (home-page "https://github.com/kurtmckee/feedparser")
     (synopsis "Parse feeds in Python")
     (description
      "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
 CDF, Atom 0.3, and Atom 1.0 feeds.")
-    (license (list license:bsd-2 ; source code
+    (license (list license:bsd-2           ; source code
                    license:freebsd-doc)))) ; documentation
 
 (define-public python2-feedparser
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 10/21] gnu: python-netifaces: Update to 0.11.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-11-monego@posteo.net
* gnu/packages/python-xyz.scm (python-netifaces): Update to 0.11.0.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1cb6383aa7..4d4f606f9e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9153,14 +9153,14 @@ some are not yet implemented).")
 (define-public python-netifaces
   (package
     (name "python-netifaces")
-    (version "0.10.9")
+    (version "0.11.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "netifaces" version))
         (sha256
           (base32
-            "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid"))))
+            "0cnajf5rl4w1sa72j921scbigr6zndig56cq8ggpx45jdqa7jfh4"))))
     (build-system python-build-system)
     (home-page "https://github.com/al45tair/netifaces")
     (synopsis
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 11/21] gnu: python-websocket-client: Update to 0.59.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-12-monego@posteo.net
* gnu/packages/python-web.scm (python-websocket-client): Update to 0.59.0.
[source]: Update PyPI URI. Make some cosmetic changes.
[arguments]<#:phases>: Add phase 'skip-network-test.
[native-inputs]: Add python-pysocks.
[home-page]: Follow redirect.
---
gnu/packages/python-web.scm | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 39cdbafc73..8cfc4b4cb4 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2413,18 +2413,27 @@ verification of the SSL peer.")
 (define-public python-websocket-client
   (package
     (name "python-websocket-client")
-    (version "0.54.0")
+    (version "0.59.0")                  ; tests hang on newer versions
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "websocket_client" version))
+       (uri (pypi-uri "websocket-client" version))
        (sha256
-        (base32
-         "0j88zmikaypf38lvpkf4aaxrjp9j07dmy5ghj7kli0fv3p4n45g5"))))
+        (base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-network-test
+           (lambda _
+             ;; This test requires networking.
+             (substitute* "websocket/tests/test_http.py"
+               (("def testConnect") "def _testConnect")))))))
+    (native-inputs
+     (list python-pysocks))
     (propagated-inputs
      (list python-six))
-    (home-page "https://github.com/liris/websocket-client")
+    (home-page "https://github.com/websocket-client/websocket-client")
     (synopsis "WebSocket client for Python")
     (description "The Websocket-client module provides the low level APIs for
 WebSocket usage in Python programs.")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 12/21] gnu: python-pkginfo: Update to 1.8.2.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-13-monego@posteo.net
* gnu/packages/python-xyz.scm (python-pkginfo): Update to 1.8.2.
[source]: Make some cosmetic changes.
[arguments]<#:phases>: Don't return #t.
[native-inputs]: Add python-wheel.
[home-page]: Don't break line.
[synopsis]: Don't break line.
[description]: Fix indentation.
---
gnu/packages/python-xyz.scm | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4d4f606f9e..d1a485e907 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19828,14 +19828,13 @@ design and layout.")
 (define-public python-pkginfo
   (package
     (name "python-pkginfo")
-    (version "1.7.0")
+    (version "1.8.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "pkginfo" version))
-        (sha256
-          (base32
-            "1d1xn1xmfvz0jr3pj8irdwnwby3r13g0r2gwklr1q5y68p5p16h2"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pkginfo" version))
+       (sha256
+        (base32 "1zrbn2gblb1q1rx0jlbd0vc9h1dm1bj0760p40ff5qjhcw5hsbjl"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -19844,14 +19843,13 @@ design and layout.")
            (lambda _
              (substitute* "pkginfo/tests/test_installed.py"
                (("test_ctor_w_package_no_PKG_INFO")
-                "_test_ctor_w_package_no_PKG_INFO"))
-             #t)))))
-    (home-page
-      "https://code.launchpad.net/~tseaver/pkginfo/trunk")
-    (synopsis
-      "Query metadatdata from sdists, bdists, and installed packages")
+                "_test_ctor_w_package_no_PKG_INFO")))))))
+    (native-inputs
+     (list python-wheel))
+    (home-page "https://code.launchpad.net/~tseaver/pkginfo/trunk")
+    (synopsis "Query metadatdata from sdists, bdists, and installed packages")
     (description
-      "API to query the distutils metadata written in @file{PKG-INFO} inside a
+     "API to query the distutils metadata written in @file{PKG-INFO} inside a
 source distriubtion (an sdist) or a binary distribution (e.g., created by
 running bdist_egg).  It can also query the EGG-INFO directory of an installed
 distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 13/21] gnu: python-watchdog: Update to 2.1.6.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-14-monego@posteo.net
* gnu/packages/python-xyz.scm (python-watchdog): Update to 2.1.6.
[source]: Make some cosmetic changes.
[arguments]<#:phases>: Remove 'remove-failing phase. Override 'check phase and
skip a failing test.
---
gnu/packages/python-xyz.scm | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d1a485e907..8e3657499a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24387,23 +24387,24 @@ files.  These files are used to translate strings in android apps.")
 (define-public python-watchdog
   (package
     (name "python-watchdog")
-    (version "0.9.0")
+    (version "2.1.6")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "watchdog" version))
-        (sha256
-         (base32
-          "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "watchdog" version))
+       (sha256
+        (base32 "1rx2nyl0cyj0v4ja795cl3gi26577c5wg48syr3byz3ndkgpavm3"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'remove-failing
-           (lambda _
-             (delete-file "tests/test_inotify_buffer.py")
-             (delete-file "tests/test_snapshot_diff.py")
-             #t)))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       ;; This test failed.
+                       "not test_kill_auto_restart")))))))
     (propagated-inputs
      (list python-argh python-pathtools python-pyyaml))
     (native-inputs
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 14/21] gnu: python-colorlog: Update to 6.6.0.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-15-monego@posteo.net
* gnu/packages/python-xyz.scm (python-colorlog): Update to 6.6.0.
[source]: Make some cosmetic changes.
[arguments]<#:phases>: Simplify custom 'check phase and respect #:tests?.
---
gnu/packages/python-xyz.scm | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 8e3657499a..e0a61329b2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -767,21 +767,24 @@ implementation for the Telegram Bot API.")
 (define-public python-colorlog
   (package
     (name "python-colorlog")
-    (version "4.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "colorlog" version))
-              (sha256
-               (base32
-                "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+    (version "6.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "colorlog" version))
+       (sha256
+        (base32 "1s7x0v872h8aks8xp01wmv6hzisxqjrh1svbbcycir0980h76krl"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
     (native-inputs
      (list python-pytest))
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      (invoke "pytest" "-p" "no:logging"))))))
     (home-page "https://github.com/borntyping/python-colorlog")
     (synopsis "Log formatting with colors for python")
     (description "The @code{colorlog.ColoredFormatter} is a formatter for use
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 15/21] gnu: python-zeroconf: Update to 0.38.1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-16-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zeroconf): Update to 0.38.1.
[source]: Fetch from GitHub.
[native-inputs]: Remove python-nose. Add python-pytest.
[arguments]<#:phases>: Adjust custom 'check phase to use Pytest.
[description]: Don't break line.
---
gnu/packages/python-xyz.scm | 42 +++++++++++++++++++++----------------
1 file changed, 24 insertions(+), 18 deletions(-)

Toggle diff (65 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e0a61329b2..b7f1e54aca 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23300,34 +23300,40 @@ enumeration library in Python.")
 (define-public python-zeroconf
   (package
     (name "python-zeroconf")
-    (version "0.28.8")
+    (version "0.38.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "zeroconf" version))
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/jstasiak/python-zeroconf")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+        (base32 "1p1a0ywlg5sq0ilcphmz9h4kayscz0q1lyfk57j7mwxyx4gl9cpi"))))
     (build-system python-build-system)
-    (native-inputs
-     (list python-nose))
-    (propagated-inputs
-     (list python-ifaddr))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ ;; Networking isn't available for these tests.
-             (invoke "nosetests" "-v"
-                     "--exclude" "test_integration_with_listener_ipv6"
-                     "--exclude" "test_launch_and_close_v6_only"
-                     "--exclude" "test_launch_and_close_v4_v6"
-                     "--exclude" "test_launch_and_close"))))))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; Networking isn't available for these tests.
+                        "not test_integration_with_listener_ipv6"
+                        " and not test_launch_and_close_v4_v6"
+                        " and not test_launch_and_close_context_manager"
+                        " and not test_launch_and_close"
+                        " and not test_close_multiple_times"))))))))
+    (native-inputs
+     (list python-pytest))
+    (propagated-inputs
+     (list python-ifaddr))
     (home-page "https://github.com/jstasiak/python-zeroconf")
     (synopsis "Pure Python mDNS service discovery")
-    (description
-     "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
-compatible).")
+    (description "Pure Python multicast DNS (mDNS) service discovery library
+(Bonjour/Avahi compatible).")
     (license license:lgpl2.1+)))
 
 (define-public python2-zeroconf
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 16/21] gnu: python-wrapt: Update to 1.13.3.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-17-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt): Update to 1.13.3.
[source]: Make some cosmetic changes.
---
gnu/packages/python-xyz.scm | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b7f1e54aca..b9f555a11b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10881,14 +10881,13 @@ Supported netlink families and protocols include:
 (define-public python-wrapt
   (package
     (name "python-wrapt")
-    (version "1.11.2")
+    (version "1.13.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "wrapt" version))
        (sha256
-        (base32
-         "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn"))))
+        (base32 "11f13zqgbql26g5bkfkqalckcdlz394g6dhx4y16cvk873a9rshz"))))
     (build-system python-build-system)
     (arguments
      ;; Tests are not included in the tarball, they are only available in the
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 17/21] gnu: python-wrapt: Enable tests.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-18-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt)[source]: Fetch from GitHub.
[arguments]: Remove #:tests?. Override 'check phase.
---
gnu/packages/python-xyz.scm | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b9f555a11b..2ddbfa14b7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10884,15 +10884,23 @@ Supported netlink families and protocols include:
     (version "1.13.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "wrapt" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GrahamDumpleton/wrapt")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "11f13zqgbql26g5bkfkqalckcdlz394g6dhx4y16cvk873a9rshz"))))
+        (base32 "05d7xs6rvaw9gpcvsvk7ckxiax1nrxcpv41vrqkkl7zq967d9bcj"))))
     (build-system python-build-system)
     (arguments
-     ;; Tests are not included in the tarball, they are only available in the
-     ;; git repository.
-     `(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "unittest" "discover"
+                       "-s" "tests")))))))
     (home-page "https://github.com/GrahamDumpleton/wrapt")
     (synopsis "Module for decorators, wrappers and monkey patching")
     (description
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 18/21] gnu: Add octoprint-pisupport.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-19-monego@posteo.net
* gnu/packages/printers.scm (octoprint-pisupport): New variable.
---
gnu/packages/printers.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index f78923966c..308bcb6e25 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,8 +20,10 @@
 
 (define-module (gnu packages printers)
   #:use-module (guix packages)
+  #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
@@ -29,6 +32,32 @@
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
 
+(define-public octoprint-pisupport
+  (package
+    (name "octoprint-pisupport")
+    (version "2021.10.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-PiSupport" version))
+       (sha256
+        (base32 "05g79hb0x8bpk4qk9h6dibl0pnlsvbnmn8jx64z4dx8hdfad3rwf"))))
+    (build-system python-build-system)
+    (arguments
+     ;; No tests in PyPI release, and circular dependency on Octoprint.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check))))      ; checks for Octoprint
+    (propagated-inputs
+     (list python-flask))
+    (home-page "https://github.com/OctoPrint/OctoPrint-PiSupport")
+    (synopsis "Plugin to provide additional information about your Pi")
+    (description "The Pi Support plugin provides additional information about
+your Pi in the UI and also alerts you about undervoltage or overheating issues
+observed on your Pi or if your Pi is unsupported.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 19/21] gnu: Add octoprint-firmwarecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-20-monego@posteo.net
* gnu/packages/printers.scm (octoprint-firmwarecheck): New variable.
---
gnu/packages/printers.scm | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 308bcb6e25..c265a1d8e8 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -27,7 +27,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages python-web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -58,6 +59,33 @@ your Pi in the UI and also alerts you about undervoltage or overheating issues
 observed on your Pi or if your Pi is unsupported.")
     (license license:agpl3)))
 
+(define-public octoprint-firmwarecheck
+  (package
+    (name "octoprint-firmwarecheck")
+    (version "2021.10.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FirmwareCheck" version))
+       (sha256
+        (base32 "17prs0rmzglw75gkf6j7qypxisjvcfk2mbsyfqrjdbwg99i62s2h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f  ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check)))) ; checks for Octoprint
+    (propagated-inputs
+     (list python-flask))
+    (home-page "https://github.com/OctoPrint/OctoPrint-FirmwareCheck")
+    (synopsis "Plugin to check for unsafe or broken printer firmwares")
+    (description "The Firmware Check plugin tries to identify printers
+or rather printer firmware with known safety issues, such as disabled
+thermal runaway protection, or other kinds of severe issues, like known
+communication crippling bugs, and displays a warning box to logged in users
+on identification of such a firmware.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 20/21] gnu: Add octoprint-filecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-21-monego@posteo.net
* gnu/packages/printers.scm (octoprint-filecheck): New variable.
---
gnu/packages/printers.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index c265a1d8e8..546a808452 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -86,6 +86,29 @@ communication crippling bugs, and displays a warning box to logged in users
 on identification of such a firmware.")
     (license license:agpl3)))
 
+(define-public octoprint-filecheck
+  (package
+    (name "octoprint-filecheck")
+    (version "2021.2.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FileCheck" version))
+       (sha256
+        (base32 "0bgvv6hvxa9qv0fs5dfr9wlbbjawxik8f2cid3h3czdhdhw46aqv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check))))      ; checks for Octoprint
+    (home-page "https://github.com/OctoPrint/OctoPrint-FileCheck")
+    (synopsis "Plugin to check for common issues in uploaded files")
+    (description "The File Check plugin tries to detect common issues in
+uploaded files that are known to cause issues while printing and which in
+the past have caused support requests on OctoPrint's Community Forums.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
V
V
Vinicius Monego wrote on 28 Dec 2021 00:30
[PATCH v3 21/21] gnu: Add octoprint.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211227233044.26475-22-monego@posteo.net
* gnu/packages/printers.scm (octoprint): New variable.
---
gnu/packages/printers.scm | 114 +++++++++++++++++++++++++++++++++++++-
1 file changed, 113 insertions(+), 1 deletion(-)

Toggle diff (137 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 546a808452..cea7f4e6e9 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -25,10 +25,15 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages python-web))
+  #:use-module (gnu packages web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -109,6 +114,113 @@ uploaded files that are known to cause issues while printing and which in
 the past have caused support requests on OctoPrint's Community Forums.")
     (license license:agpl3)))
 
+(define-public octoprint
+  (package
+    (name "octoprint")
+    (version "1.7.2")
+    (source
+     (origin
+       (method git-fetch) ; no tests in the PyPI tarball.
+       (uri (git-reference
+             (url "https://github.com/OctoPrint/OctoPrint")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0zvjnbcmszifvr02rsmfzb5v24f1ss8klrnkd9fcg2351nkpqbbd"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled font-awesome.
+           (delete-file-recursively "src/octoprint/static/vendor") #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-version-requirements
+           ;; Octoprint maintains strict version requirements for Python2
+           ;; compatibility.  We're not packaging with Python2, so modify
+           ;; setup.py to relax those versions.  Octoprint will drop Python2
+           ;; support in version 2.0 so we won't need this change after it.
+           (lambda _
+             (substitute* "setup.py"
+               (("cachelib>=0.1,<0.2") "cachelib>=0.1")
+               (("colorlog>=5.0.1,<6") "colorlog>=5.0.1")
+               (("flask>=1.1.4,<2") "flask>=1.1.4")
+               (("itsdangerous>=1.1.0,<2") "itsdangerous>=1.1.0")
+               (("Jinja2>=2.11.3,<3") "Jinja2>=2.11.3")
+               (("markdown>=3.1,<3.2") "markdown>=3.1,<4")
+               (("markupsafe>=1.1,<2.0") "markupsafe>=1.1")
+               (("sarge==0.1.6") "sarge>=0.1.6")
+               (("watchdog==0.10.4") "watchdog>=0.10.4")
+               (("werkzeug>=1.0.1,<2") "werkzeug>=1.0.1")
+               (("wrapt>=1.12.1,<1.13") "wrapt>=1.12.1")
+               (("zeroconf>=0.33,<0.34") "zeroconf>=0.33"))))
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" (getcwd)))) ; some tests need a writable home
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "tests" "-k"
+                       (string-append
+                        ;; These tests try to write to the source tree and
+                        ;; fail with PermissionError.
+                        "not test_add_file_overwrite"
+                        " and not test_set_external_modification"))))))))
+    (native-inputs
+     (list python-ddt python-mock python-pytest python-pytest-doctest-custom))
+    (inputs
+     (list octoprint-filecheck
+           octoprint-firmwarecheck
+           octoprint-pisupport
+           python-appdirs
+           python-blinker
+           python-cachelib
+           python-click
+           python-colorlog
+           python-emoji
+           python-feedparser
+           python-filetype
+           python-flask
+           python-flask-assets
+           python-flask-babel
+           python-flask-login
+           python-future
+           python-immutabledict
+           python-itsdangerous
+           python-jinja2
+           python-markdown
+           python-markupsafe
+           python-netaddr
+           python-netifaces
+           python-pathvalidate
+           python-pkginfo
+           python-psutil
+           python-pylru
+           python-pyserial
+           python-pyyaml
+           python-regex
+           python-requests
+           python-sarge
+           python-semantic-version
+           python-sentry-sdk
+           python-tornado-6
+           python-unidecode
+           python-watchdog
+           python-websocket-client
+           python-werkzeug
+           python-wrapt
+           python-zeroconf
+           python-zipstream-new))
+    (home-page "https://octoprint.org")
+    (synopsis "Web interface for 3D printers")
+    (description "OctoPrint provides a snappy web interface for controlling
+consumer 3D printers.")
+    ;; The web interface contains many third party JavaScript libraries under
+    ;; different licenses.  Check THIRDPARTYLICENSES.md.
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.30.2
N
N
Nicolas Goaziou wrote on 7 Jan 22:02 +0100
Re: [bug#51314] [PATCH v3 00/21] Add Octoprint (v3)
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51314@debbugs.gnu.org)
87ee5jz2c4.fsf@nicolasgoaziou.fr
Hello,

Vinicius Monego <monego@posteo.net> writes:

Toggle quote (5 lines)
> This is an update of the series after the core-updates-frozen merge. All packages are linted. The feedparser and flask updates were removed because they were pushed in other patches.
>
> A few package versions were bumped. The server and UI seem to work,
> but still I can't test the full functionality of the program.

Thank you.

However this patchset cannot be applied on master branch because
updating python-wrapt entails rebuilding 300+ Python packages.

Could you rebase it on staging branch and send it again?

Regards,
--
Nicolas Goaziou
V
V
Vinicius Monego wrote on 8 Jan 06:41 +0100
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 51314@debbugs.gnu.org)
9229f373e7f4cf6eec58bc1c056b2dff221f0134.camel@posteo.net
Em sex, 2022-01-07 às 22:02 +0100, Nicolas Goaziou escreveu:
Toggle quote (20 lines)
> Hello,
>
> Vinicius Monego <monego@posteo.net> writes:
>
> > This is an update of the series after the core-updates-frozen
> > merge. All packages are linted. The feedparser and flask updates
> > were removed because they were pushed in other patches.
> >
> > A few package versions were bumped. The server and UI seem to work,
> > but still I can't test the full functionality of the program.
>
> Thank you.
>
> However this patchset cannot be applied on master branch because
> updating python-wrapt entails rebuilding 300+ Python packages.
>
> Could you rebase it on staging branch and send it again?
>
> Regards,

If the problem is just wrapt it can be skipped, then one line has to be
changed in octoprint's 'relax-version-requirements phase. All tests
still pass.

It's strange though, there are many errors in the '$ octoprint serve'
output about plugin files not being found because it's looking for
static files in different paths inside the same store item, and
flask2/jinja3 errors. Upstream only tests in flask 1 so maybe it's not
yet compatible with the flask2 that came with the c-u-f merge. I don't
know how much this affects usability, the server is still operational
and the UI loads. It would be good if someone who uses it daily could
report on how well the package works.

Maybe apply the patches before wrapt and leave this issue open until
the octoprint messages are worked on?
N
N
Nicolas Goaziou wrote on 11 Jan 18:27 +0100
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51314@debbugs.gnu.org)
87lezmnpx3.fsf@nicolasgoaziou.fr
Hello,

Vinicius Monego <monego@posteo.net> writes:

Toggle quote (9 lines)
> It's strange though, there are many errors in the '$ octoprint serve'
> output about plugin files not being found because it's looking for
> static files in different paths inside the same store item, and
> flask2/jinja3 errors. Upstream only tests in flask 1 so maybe it's not
> yet compatible with the flask2 that came with the c-u-f merge. I don't
> know how much this affects usability, the server is still operational
> and the UI loads. It would be good if someone who uses it daily could
> report on how well the package works.

I cannot tell, I don't use this.

Toggle quote (3 lines)
> Maybe apply the patches before wrapt and leave this issue open until
> the octoprint messages are worked on?

OK. I applied the patches up to the python-zeroconf update. Thanks!

I let you decide if this bug should be closed and a new one opened.

Regards,
--
Nicolas Goaziou
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 00/14] Add Octoprint (web UI for 3d printers).
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-1-monego@posteo.net
Hi Guix.

Octoprint version 1.8 was released 2 weeks ago and it dropped Python 2 support, meaning that the versions of the dependencies were bumped and we can use the versions in Guix.

I still had to add 6 specific versions because even when it builds, Octoprint performs a check during runtime and installs the expected versions with pip.

Vinicius Monego (14):
gnu: python-sentry-sdk: Update to 1.5.12.
gnu: python-frozendict: Update to 2.3.2.
gnu: Remove python-zipstream-new.
gnu: Add python-zipstream-ng.
gnu: Add python-zeroconf-0.33.
gnu: Add python-cachelib-0.2.
gnu: Add python-wrapt-1.13.
gnu: Add python-watchdog-1.
gnu: Add python-sarge-0.1.6.
gnu: Add python-flask-login-0.5.
gnu: Add octoprint-pisupport.
gnu: Add octoprint-firmwarecheck.
gnu: Add octoprint-filecheck.
gnu: Add octoprint.

gnu/packages/printers.scm | 166 +++++++++++++++++++++++++++++++++++-
gnu/packages/python-web.scm | 39 +++++++++
gnu/packages/python-xyz.scm | 116 +++++++++++++++++++------
3 files changed, 293 insertions(+), 28 deletions(-)

--
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 01/14] gnu: python-sentry-sdk: Update to 1.5.12.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-2-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sentry-sdk): Update to 1.5.12.
[arguments]<#:phases>: In the custom 'check phase, remove a redundant test and
skip a new failing test.
---
gnu/packages/python-xyz.scm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fe1896efca..ab0a71f0a3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10979,7 +10979,7 @@ (define-public python-zipstream-new
 (define-public python-sentry-sdk
   (package
     (name "python-sentry-sdk")
-    (version "1.5.1")
+    (version "1.5.12")
     (source
      (origin
        (method git-fetch)               ; no tests in PyPI release
@@ -10988,7 +10988,7 @@ (define-public python-sentry-sdk
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "128bm136l5zprr3sqqb8j3d6k5i1fhz853mzvh3w8g0w1dw763mx"))))
+        (base32 "1lbykggyvxlpg4jx2rbnfdad94w8f9c2damz2pw9w6nszdchbkgh"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -11012,12 +11012,13 @@ (define-public python-sentry-sdk
                         " and not test_handled_exception"
                         ;; Tests below require network.
                         " and not test_crumb_capture"
-                        " and not test_crumb_capture"
                         " and not test_crumb_capture_hint"
                         " and not test_httplib_misuse"
                         ;; Fails with IndexError.
                         " and not test_session_mode_defaults_to"
-                        "_request_mode_in_wsgi_handler"))))))))
+                        "_request_mode_in_wsgi_handler"
+                        " and not test_auto_session_tracking_with"
+                        "_aggregates"))))))))
     (native-inputs
      (list python-django
            python-executing
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 02/14] gnu: python-frozendict: Update to 2.3.2.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-3-monego@posteo.net
* gnu/packages/python-xyz.scm (python-frozendict): Update to 2.3.2.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ab0a71f0a3..06502fd8f0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27166,13 +27166,13 @@ (define-public python-json5
 (define-public python-frozendict
   (package
     (name "python-frozendict")
-    (version "1.2")
+    (version "2.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "frozendict" version))
        (sha256
-        (base32 "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp"))))
+        (base32 "03cxl3vdyn9yjwjh044bmz2zxgrsp90jz55l9mqbwgx1y114bb3z"))))
     (build-system python-build-system)
     (home-page "https://github.com/slezica/python-frozendict")
     (synopsis "Simple immutable mapping for Python")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 04/14] gnu: Add python-zipstream-ng.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-5-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zipstream-ng): New variable.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f529bf1216..b7ad14d735 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10949,6 +10949,29 @@ (define-public python-sarge
 command pipeline functionality.")
     (license license:bsd-3)))
 
+(define-public python-zipstream-ng
+  (package
+    (name "python-zipstream-ng")
+    (version "1.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "zipstream-ng" version))
+       (sha256
+        (base32 "1xzxizz4icdky2mc2yi971h9whmgsdi0m4riqsc7sncbx6p97zk9"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest python-pytest-cov))
+    (home-page "https://github.com/pR0Ps/zipstream-ng")
+    (synopsis "Streamable zip file generator")
+    (description "This package provides a streamable zip file generator.  It
+can package and stream many files and folders on the fly without needing
+temporary files or excessive memory.  It Includes the ability to calculate the
+total size of the stream before any data is actually added (provided no
+compression is used).  This makes it ideal for use in web applications since
+the total size can be used to set the @code{Content-Length} header without
+having to generate the entire file first.")
+    (license license:lgpl3)))
+
 (define-public python-sentry-sdk
   (package
     (name "python-sentry-sdk")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 03/14] gnu: Remove python-zipstream-new.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-4-monego@posteo.net
This package was apparently abandoned by upstream (last commit in 2020) and
replaced by zipstream-ng, which will be added in the next commit.

* gnu/packages/python-xyz.scm (python-zipstream-new): Remove variable.
---
gnu/packages/python-xyz.scm | 27 ---------------------------
1 file changed, 27 deletions(-)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 06502fd8f0..f529bf1216 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10949,33 +10949,6 @@ (define-public python-sarge
 command pipeline functionality.")
     (license license:bsd-3)))
 
-(define-public python-zipstream-new
-  (package
-    (name "python-zipstream-new")
-    (version "1.1.8")
-    (source
-     (origin
-       (method git-fetch)               ; no tests in PyPI release
-       (uri (git-reference
-             (url "https://github.com/arjan-s/python-zipstream")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python-nose))
-    (home-page "https://github.com/arjan-s/python-zipstream")
-    (synopsis "Zipfile generator that takes input files as well as streams")
-    (description "@code{zipstream.py} is a zip archive generator based on
-@code{zipfile.py}.  It was created to generate a zip file generator for
-streaming.  This is beneficial for when you want to provide a downloadable
-archive of a large collection of regular files, which would be infeasible
-to generate the archive prior to downloading or of a very large file that
-you do not want to store entirely on disk or on memory.")
-    ;; No copyright headers in the source.  The LICENSE file indicates GPL3.
-    (license license:gpl3)))
-
 (define-public python-sentry-sdk
   (package
     (name "python-sentry-sdk")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 05/14] gnu: Add python-zeroconf-0.33.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-6-monego@posteo.net
* gnu/packages/python-xyz.scm (python-zeroconf-0.33): New variable.
---
gnu/packages/python-xyz.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)

Toggle diff (28 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b7ad14d735..16405634ba 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25598,6 +25598,21 @@ (define-public python-zeroconf
 (Bonjour/Avahi compatible).")
     (license license:lgpl2.1+)))
 
+(define-public python-zeroconf-0.33
+  (package
+    (inherit python-zeroconf)
+    (name "python-zeroconf")
+    (version "0.33.4")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/jstasiak/python-zeroconf")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01bv6xrhf5i7gckg3q53i249zxmhkkr65yib6par8z5risihrpwm"))))))
+
 (define-public python2-zeroconf
   (package
     (name "python2-zeroconf")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 06/14] gnu: Add python-cachelib-0.2.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-7-monego@posteo.net
* gnu/packages/python-xyz.scm (python-cachelib-0.2): New variable.
---
gnu/packages/python-xyz.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (25 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 16405634ba..a63849912d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12821,6 +12821,18 @@ (define-public python-cachelib
 provides a collection of cache libraries in the same API interface.")
     (license license:bsd-3)))
 
+(define-public python-cachelib-0.2
+  (package
+    (inherit python-cachelib)
+    (name "python-cachelib")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cachelib" version))
+       (sha256
+        (base32 "1npaxmxxn60nmpy1f7q45kvvpydvf0nv3b0cinm4lm3bdgzgmdfw"))))))
+
 (define-public python-pylru
   (package
     (name "python-pylru")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 07/14] gnu: Add python-wrapt-1.13.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-8-monego@posteo.net
* gnu/packages/python-xyz.scm (python-wrapt-1.13): New variable.
---
gnu/packages/python-xyz.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (25 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a63849912d..998a234df4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12282,6 +12282,18 @@ (define-public python-wrapt
   wrappers and decorator functions.")
     (license license:bsd-2)))
 
+(define-public python-wrapt-1.13
+  (package
+    (inherit python-wrapt)
+    (name "python-wrapt")
+    (version "1.13.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "wrapt" version))
+       (sha256
+        (base32 "11f13zqgbql26g5bkfkqalckcdlz394g6dhx4y16cvk873a9rshz"))))))
+
 (define-public python2-wrapt
   (package-with-python2 python-wrapt))
 
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 08/14] gnu: Add python-watchdog-1.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-9-monego@posteo.net
* gnu/packages/python-xyz.scm (python-watchdog-1): New variable.
---
gnu/packages/python-xyz.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 998a234df4..ace151d1a3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26766,6 +26766,20 @@ (define-public python-watchdog
 but portable.")
     (license license:asl2.0)))
 
+(define-public python-watchdog-1
+  (package
+    (inherit python-watchdog)
+    (name "python-watchdog")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "watchdog" version))
+       (sha256
+        (base32 "10l9r2nnk7gfh5asn4crvpa9kz83ng0zn5pzww7jnff06lmbqv1p"))))
+    (native-inputs
+     (list python-argh python-pytest-cov python-pytest-timeout))))
+
 (define-public python-watchgod
   (package
     (name "python-watchgod")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 09/14] gnu: Add python-sarge-0.1.6.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-10-monego@posteo.net
* gnu/packages/python-xyz.scm (python-sarge-0.1.6): New variable.
---
gnu/packages/python-xyz.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (25 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ace151d1a3..87341cab29 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10949,6 +10949,18 @@ (define-public python-sarge
 command pipeline functionality.")
     (license license:bsd-3)))
 
+(define-public python-sarge-0.1.6
+  (package
+    (inherit python-sarge)
+    (name "python-sarge")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sarge" version))
+       (sha256
+        (base32 "0r9jnpdsjdr6h92blr5b2fdzvb1n8ypjwhk2xxmss42gwq2bk3zl"))))))
+
 (define-public python-zipstream-ng
   (package
     (name "python-zipstream-ng")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 10/14] gnu: Add python-flask-login-0.5.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-11-monego@posteo.net
* gnu/packages/python-web.scm (python-flask-login-0.5): New variable.
---
gnu/packages/python-web.scm | 39 +++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index b4a2bc365b..294060c3f6 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3875,6 +3875,45 @@ (define-public python-flask-login
 users' sessions over extended periods of time.")
     (license license:expat)))
 
+(define-public python-flask-login-0.5
+  (package
+    (inherit python-flask-login)
+    (name "python-flask-login")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/maxcountryman/flask-login")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11ac924w0y4m0kf3mxnxdlidy88jfa7njw5yyrq16dvnx4iwd8gg"))))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv" "-c" "/dev/null" "-k"
+                        ;; All the tests below fail with an AssertionError
+                        ;; because of a missing address, e.g.:
+                        ;; E           - /login?next=%2Fsecret
+                        ;; E           + http://foo.com/login?next=%2Fsecret
+                        (string-append
+                         "not test_redirects_to_refresh_view"
+                         " and not test_refresh_with_next_in_session"
+                         " and not test_set_login_view_without_blueprints"
+                         " and not test_unauthorized_redirects_to_login_view"
+                         " and not test_unauthorized_uses_blueprint_login_view"
+                         " and not test_unauthorized_with_next_in_session"
+                         " and not test_unauthorized_with_next_in_strong_session"
+                         " and not test_unauthorized_ignores_host_from_x_forwarded_for_header"
+                         " and not test_unauthorized_uses_host_from_config_when_available"
+                         " and not test_unauthorized_uses_host_from_next_url"
+                         " and not test_unauthorized_uses_host_from_x_forwarded_for_header"))))))))))
+
 (define-public python-oauth2client
   (package
     (name "python-oauth2client")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 11/14] gnu: Add octoprint-pisupport.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-12-monego@posteo.net
* gnu/packages/printers.scm (octoprint-pisupport): New variable.
---
gnu/packages/printers.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index f78923966c..012731b7cd 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,8 +20,10 @@
 
 (define-module (gnu packages printers)
   #:use-module (guix packages)
+  #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
@@ -29,6 +32,29 @@ (define-module (gnu packages printers)
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
 
+(define-public octoprint-pisupport
+  (package
+    (name "octoprint-pisupport")
+    (version "2022.3.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-PiSupport" version))
+       (sha256
+        (base32 "11yzcyyia9dyiw428kjwysybxxh93dbc0sl7p59kda84iqwj1m5z"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check))))      ; checks for Octoprint
+    (home-page "https://github.com/OctoPrint/OctoPrint-PiSupport")
+    (synopsis "Plugin to provide additional information about your Pi")
+    (description "The Pi Support plugin provides additional information about
+your Pi in the UI and also alerts you about undervoltage or overheating issues
+observed on your Pi or if your Pi is unsupported.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 12/14] gnu: Add octoprint-firmwarecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-13-monego@posteo.net
* gnu/packages/printers.scm (octoprint-firmwarecheck): New variable.
---
gnu/packages/printers.scm | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 012731b7cd..ca7caad01f 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -27,7 +27,8 @@ (define-module (gnu packages printers)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages python-web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -55,6 +56,33 @@ (define-public octoprint-pisupport
 observed on your Pi or if your Pi is unsupported.")
     (license license:agpl3)))
 
+(define-public octoprint-firmwarecheck
+  (package
+    (name "octoprint-firmwarecheck")
+    (version "2021.10.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FirmwareCheck" version))
+       (sha256
+        (base32 "17prs0rmzglw75gkf6j7qypxisjvcfk2mbsyfqrjdbwg99i62s2h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check))))      ; checks for Octoprint
+    (propagated-inputs
+     (list python-flask))
+    (home-page "https://github.com/OctoPrint/OctoPrint-FirmwareCheck")
+    (synopsis "Plugin to check for unsafe or broken printer firmwares")
+    (description "The Firmware Check plugin tries to identify printers
+or rather printer firmware with known safety issues, such as disabled
+thermal runaway protection, or other kinds of severe issues, like known
+communication crippling bugs, and displays a warning box to logged in users
+on identification of such a firmware.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 13/14] gnu: Add octoprint-filecheck.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-14-monego@posteo.net
* gnu/packages/printers.scm (octoprint-filecheck): New variable.
---
gnu/packages/printers.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index ca7caad01f..edbc1386b5 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -83,6 +83,29 @@ (define-public octoprint-firmwarecheck
 on identification of such a firmware.")
     (license license:agpl3)))
 
+(define-public octoprint-filecheck
+  (package
+    (name "octoprint-filecheck")
+    (version "2021.2.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "OctoPrint-FileCheck" version))
+       (sha256
+        (base32 "0bgvv6hvxa9qv0fs5dfr9wlbbjawxik8f2cid3h3czdhdhw46aqv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'sanity-check))))      ; checks for Octoprint
+    (home-page "https://github.com/OctoPrint/OctoPrint-FileCheck")
+    (synopsis "Plugin to check for common issues in uploaded files")
+    (description "The File Check plugin tries to detect common issues in
+uploaded files that are known to cause issues while printing and which in
+the past have caused support requests on OctoPrint's Community Forums.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.34.1
V
V
Vinicius Monego wrote on 29 May 20:27 +0200
[PATCH v4 14/14] gnu: Add octoprint.
(address . 51314@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220529182746.314668-15-monego@posteo.net
* gnu/packages/printers.scm (octoprint): New variable.
---
gnu/packages/printers.scm | 88 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 87 insertions(+), 1 deletion(-)

Toggle diff (111 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index edbc1386b5..acf341c5d6 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -25,10 +25,15 @@ (define-module (gnu packages printers)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages python-web))
+  #:use-module (gnu packages web))
 
 ;; This is a module for packages related to printer-like devices, but not
 ;; related to CUPS.
@@ -106,6 +111,87 @@ (define-public octoprint-filecheck
 the past have caused support requests on OctoPrint's Community Forums.")
     (license license:agpl3)))
 
+(define-public octoprint
+  (package
+    (name "octoprint")
+    (version "1.8.1")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in the PyPI tarball.
+       (uri (git-reference
+             (url "https://github.com/OctoPrint/OctoPrint")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0yqbq4gbnzgbipv35z5b1i1f8x20p0gdz37721f163iyipsxppj6"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled font-awesome.
+           (delete-file-recursively "src/octoprint/static/vendor")))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" (getcwd)))) ; some tests need a writable home
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "tests")))))))
+    (native-inputs
+     (list python-ddt python-mock python-pytest python-pytest-doctest-custom))
+    (inputs
+     (list octoprint-filecheck
+           octoprint-firmwarecheck
+           octoprint-pisupport
+           python-appdirs
+           python-blinker
+           python-cachelib-0.2
+           python-click
+           python-colorlog
+           python-emoji
+           python-feedparser
+           python-filetype
+           python-flask
+           python-flask-assets
+           python-flask-babel
+           python-flask-login-0.5
+           python-frozendict
+           python-future
+           python-immutabledict
+           python-itsdangerous
+           python-jinja2
+           python-markdown
+           python-markupsafe
+           python-netaddr
+           python-netifaces
+           python-pathvalidate
+           python-pkginfo
+           python-psutil
+           python-pylru
+           python-pyserial
+           python-pyyaml-5
+           python-regex
+           python-requests
+           python-sarge-0.1.6
+           python-semantic-version
+           python-sentry-sdk
+           python-tornado-6
+           python-unidecode
+           python-watchdog-1
+           python-websocket-client
+           python-werkzeug
+           python-wrapt-1.13
+           python-zeroconf-0.33
+           python-zipstream-ng))
+    (home-page "https://octoprint.org")
+    (synopsis "Web interface for 3D printers")
+    (description "OctoPrint provides a snappy web interface for controlling
+consumer 3D printers.")
+    (license license:agpl3)))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.34.1
M
M
Maxime Devos wrote on 29 May 20:35 +0200
Re: [bug#51314] [PATCH v4 03/14] gnu: Remove python-zipstream-new.
a2c00fc4a6d9717e296c62d5639de62cfbfc1b7a.camel@telenet.be
Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
Toggle quote (8 lines)
> -    (synopsis "Zipfile generator that takes input files as well as streams")
> -    (description "@code{zipstream.py} is a zip archive generator based on
> -@code{zipfile.py}.  It was created to generate a zip file generator for
> -streaming.  This is beneficial for when you want to provide a downloadable
> -archive of a large collection of regular files, which would be infeasible
> -to generate the archive prior to downloading or of a very large file that
> -you do not want to store entirely on disk or on memory.")

Any particular reason for changing the description and synopsis?

Toggle quote (1 lines)
> + It Includes the ability to calculate the
Typo: Includes -> includes

(Only looked at the description & synopsis)
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpO81RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7tGbAP96VsCv0NTIlZXG18U6xMPDvUMj
3IqwjznRzVO94n1+9QEAxybn1KK++0osnO6uC952HCiDlsRZHSbDIipEDYRDlgk=
=A0Eu
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 23:47 +0200
Re: [bug#51314] [PATCH v4 11/14] gnu: Add octoprint-pisupport.
41bc86aea269186d990ff2acb21bf0eb9c14fd89.camel@telenet.be
Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
Toggle quote (2 lines)
> +     `(#:tests? #f                      ; no tests

Toggle quote (3 lines)
> + (modify-phases %standard-phases
> + (delete 'sanity-check)))) ; checks for Octoprint

Can probably be removed by adding octoprint as input (for the tests).

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpPp4xccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7p6bAQD2bStjWUT3Ol5xotUXnuuJt18e
CHFsa76QTSS5PsSDCgD/YwZS9EItbF19IjYO6YsUyLCKTaHQSEhXEZr9ydVEmAg=
=dH0J
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 23:51 +0200
Re: [bug#51314] [PATCH v4 12/14] gnu: Add octoprint-firmwarecheck.
5af4b2dcbd082955c5b5a4eb31fb00ebd82ca127.camel@telenet.be
Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
Toggle quote (11 lines)
> +(define-public octoprint-firmwarecheck
> +  (package
> +    (name "octoprint-firmwarecheck")
> +    (version "2021.10.11")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (pypi-uri "OctoPrint-FirmwareCheck" version))
> +       (sha256
> +        (base32 "17prs0rmzglw75gkf6j7qypxisjvcfk2mbsyfqrjdbwg99i62s2h"))))

-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpPqzRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7gbcAQDrXuMSnTaNfs4G2WTWmxgafWBm
OweZC/bjL9oHC76RmgD/QfWLRcQl1HqsPoCbvnxo/1PpdSemqBKNwvakbkbazAI=
=zm3E
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 23:58 +0200
Re: [bug#51314] [PATCH v4 14/14] gnu: Add octoprint.
fbd19d2f61b87eb03fdadf7d641fdee18af7e597.camel@telenet.be
Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
Toggle quote (2 lines)
> +    (license license:agpl3)))

Does upstream intend agpl3-only, or agpl3-or-later? Could we have some
clarification from upstream? Preferably the latter if there will ever
be a agpl4.

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpPslxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7psVAP9zfAGlRs3AamJf8+VY9lYx0ikP
UOSlN6DtTkuXHQcwSQEA1ffQIRAnjr4zrurHT6dmVj4qj4a/3oQx0Hofs2T7mAc=
=38XX
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 30 May 00:00 +0200
Re: [bug#51314] [PATCH v4 05/14] gnu: Add python-zeroconf-0.33.
57edc063f367512adf13e2ce7a9067b4b69850bd.camel@telenet.be
Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
Toggle quote (6 lines)
> +(define-public python-zeroconf-0.33
> +  (package
> +    (inherit python-zeroconf)
> +    (name "python-zeroconf")
> +    (version "0.33.4")

To avoid propagation conflicts, would python-zeroconf@0.38.1 suffice?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpPs9hccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7pPBAQClcK6mYCwiAPM+QuNdL3JtveT9
Rz0bDdamdkibumMuywEAulG4hW2j9CMDsdM8bPCyN8jAbDjfNMTDF0BSEcE5fgk=
=+FzS
-----END PGP SIGNATURE-----


V
V
Vinicius Monego wrote on 30 May 22:26 +0200
Re: [bug#51314] [PATCH v4 03/14] gnu: Remove python-zipstream-new.
2faec8a539fe195e8236a7065537e5e9d674bb6c.camel@posteo.net
Em dom, 2022-05-29 às 20:35 +0200, Maxime Devos escreveu:
Toggle quote (18 lines)
> Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
> > -    (synopsis "Zipfile generator that takes input files as well as
> > streams")
> > -    (description "@code{zipstream.py} is a zip archive generator
> > based on
> > -@code{zipfile.py}.  It was created to generate a zip file
> > generator for
> > -streaming.  This is beneficial for when you want to provide a
> > downloadable
> > -archive of a large collection of regular files, which would be
> > infeasible
> > -to generate the archive prior to downloading or of a very large
> > file that
> > -you do not want to store entirely on disk or on memory.")
>
> Any particular reason for changing the description and synopsis?
>

They were not "changed", these are different packages by different
authors and the synopses and descriptions are adaptations of the
author-provided ones to meet Guix standards.

Toggle quote (5 lines)
> > + It Includes the ability to calculate the
> Typo: Includes -> includes
>
> (Only looked at the description & synopsis)

Thanks, didn't notice that.

Vinicius
V
V
Vinicius Monego wrote on 30 May 22:35 +0200
Re: [bug#51314] [PATCH v4 11/14] gnu: Add octoprint-pisupport.
ba930471f7f4a8142c4d255541b5a1a48d76705f.camel@posteo.net
Em dom, 2022-05-29 às 23:47 +0200, Maxime Devos escreveu:
Toggle quote (9 lines)
> Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
> > +     `(#:tests? #f                      ; no tests
>
> I see a test at
> <
> https://github.com/OctoPrint/OctoPrint-PiSupport/blob/main/tests/test_
> pi_support.py>.
>

It's not available in PyPI. I haven't tried running that test from the
repository either.

Toggle quote (8 lines)
> > +       (modify-phases %standard-phases
> > +         (delete 'sanity-check))))      ; checks for Octoprint
>
> Can probably be removed by adding octoprint as input (for the tests).
>
> Greetings,
> Maxime.

octoprint-pisupport is a mandatory input for octoprint, it will be
checked for in sanity-check and that would introduce a circular
dependency. I could have a look to see if it's worth introducing
octoprint-minimal to bootstrap the plugins.
V
V
Vinicius Monego wrote on 30 May 22:46 +0200
Re: [bug#51314] [PATCH v4 14/14] gnu: Add octoprint.
8108c7a5addccf290800c2c629cf9b7afc119039.camel@posteo.net
Em dom, 2022-05-29 às 23:58 +0200, Maxime Devos escreveu:
Toggle quote (12 lines)
> Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
> > +    (license license:agpl3)))
>
> Does upstream intend agpl3-only, or agpl3-or-later?  Could we have
> some
> clarification from upstream?  Preferably the latter if there will
> ever
> be a agpl4.
>
> Greetings,
> Maxime

It is agpl3-only. License in the file headers:

__copyright__ = "Copyright (C) [year] The OctoPrint Project - Released
under terms of the AGPLv3 License"

And in setup.py:

"License :: OSI Approved :: GNU Affero General Public License v3"
V
V
Vinicius Monego wrote on 30 May 22:55 +0200
Re: [bug#51314] [PATCH v4 05/14] gnu: Add python-zeroconf-0.33.
f09aee0e4a23905c6742cd7eb5ca973bea8f3eac.camel@posteo.net
Em seg, 2022-05-30 às 00:00 +0200, Maxime Devos escreveu:
Toggle quote (12 lines)
> Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
> > +(define-public python-zeroconf-0.33
> > +  (package
> > +    (inherit python-zeroconf)
> > +    (name "python-zeroconf")
> > +    (version "0.33.4")
>
> To avoid propagation conflicts, would python-zeroconf@0.38.1 suffice?
>
> Greetings,
> Maxime.

As mentioned in the cover letter for v4, octoprint hard-checks the
versions of its dependencies and uses pip to download new versions for
the packages it judges the version is incorrect. In the case of
zeroconf there is a notice in setup.py:


Toggle quote (3 lines)
> "zeroconf>=0.33,<0.34", # breaking changes can happen on minor
> version increases

The author recognizes that octoprint is not so friendly to packagers:

Toggle quote (6 lines)
> It does depend on specific versions of some packages, for the one or
> other reasons, and this is something I do not want not change - I've
> run into too many problems with outdated python libraries provided by
> the system package manager that produced horribly hard to track down
> bugs.

I guess it would be better if Guix users install octoprint in its own
dedicated profile.
M
M
Maxime Devos wrote on 30 May 23:09 +0200
Re: [bug#51314] [PATCH v4 14/14] gnu: Add octoprint.
4e31192a7a9dae0f169b3b98fec50549af90de98.camel@telenet.be
Vinicius Monego schreef op ma 30-05-2022 om 20:46 [+0000]:
Toggle quote (22 lines)
> Em dom, 2022-05-29 às 23:58 +0200, Maxime Devos escreveu:
> > Vinicius Monego schreef op zo 29-05-2022 om 18:27 [+0000]:
> > > +    (license license:agpl3)))
> >
> > Does upstream intend agpl3-only, or agpl3-or-later?  Could we have
> > some
> > clarification from upstream?  Preferably the latter if there will
> > ever
> > be a agpl4.
> >
> > Greetings,
> > Maxime
>
> It is agpl3-only. License in the file headers:
>
> __copyright__ = "Copyright (C) [year] The OctoPrint Project - Released
> under terms of the AGPLv3 License"
>
> And in setup.py:
>
> "License :: OSI Approved :: GNU Affero General Public License v3"

It just says AGPLv3, it doesn't say -only or -or-later (*).
I've seen these, but they are not explicit about -only or -or-later,
Sometimes, when asked for clarifications, upstreams clarifies such
ambigious phrasing to be -or-later, sometimes -only. In this case, I'd
expect -only. But I think it's best to just ask upstream.

(*) the convention for setup.py seems to be ‘not mentioned -> -only’,
but hypothetical '-only' information could also easily have been lost
during writing the setup.py or an over-eager ‘abbreviating’ the
copyright/license headers.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpUygBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7k5uAQCK71kl9WWjIW1nB9hcVpTrgPGE
ngAHVKpTywGJYBq56QD/cXx5EGqFMqVd3w2UY+UoqzFYaEiyY+NVRX5yNapJmQc=
=se/t
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 30 May 23:30 +0200
Re: [bug#51314] [PATCH v4 05/14] gnu: Add python-zeroconf-0.33.
3b5955a87bacf37e995907bc08cfdc6bdb20127f.camel@telenet.be
Vinicius Monego schreef op ma 30-05-2022 om 20:55 [+0000]:
Toggle quote (7 lines)
> As mentioned in the cover letter for v4, octoprint hard-checks the
> versions of its dependencies and uses pip to download new versions for
> the packages it judges the version is incorrect. In the case of
> zeroconf there is a notice in setup.py:
>
> https://github.com/OctoPrint/OctoPrint/blob/53b9b6185781c07e8c4744a6e28462e96448f249/setup.py#L67

To me this seems information to put in a comment next to the input list
(and next to python-zeroconf-0.33). Also, I recommend removing the pip
downloading code to be 100% sure it won't be run.

Toggle quote (3 lines)
> The author recognizes that octoprint is not so friendly to packagers:
> https://github.com/OctoPrint/OctoPrint/issues/1922#issuecomment-302407764
> It does depend on specific versions of some packages, for the one >
or other reasons, and this is something I do not want not change
Toggle quote (4 lines)
> > - I've run into too many problems with outdated python libraries
> > provided by the system package manager that produced horribly
> > hard to track down bugs.

There are bugs in the python-zeroconf@0.33 that have been fixed in
python-zeroconf@0.38.1. The readme in
that seem rather subtle.

So as-is, we would be distributing an octoprint with a known-buggy
depdendency with known fixes. Though neither is changing to the new
zeroconf an option (unless changes are made to octoprint) as-is because
the new zeroconf is apparently incompatible.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpU3XBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hbKAQC0k2P4NVHMVlTdQlBBT73Dc/LK
sCdVZ5VD2blnW+Xx0AEA4sSBq9A4uXLEnhg8ybViEUY4OK9vGcKAmH7cUs8yUQk=
=0gP0
-----END PGP SIGNATURE-----


?