Subject: [PATCH 1/3] gnu: Add python-zconfig.

From: Troy Figiel <[email-masked]>
Date: Sun, 21 Jan 2024 22:12:22 +0100

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

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0c7303fa99..91e60bad8b 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2651,6 +2651,44 @@ (define-public python-zc-lockfile
 files.  These locks can also be used to mediate access to other files.")
     (license license:zpl2.1)))
 
+(define-public python-zconfig
+  (package
+    (name "python-zconfig")
+    (version "4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ZConfig" version))
+       (sha256
+        (base32 "0mh13p38vq7ip4zkvaplzr8w0mqrmmqiyb5y663d165slvxl5mpq"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (begin
+                            ;; This test assumes we still have setup.py in the
+                            ;; directory from which we import zconfig, which
+                            ;; does not work after installing the package.
+                            (delete-file-recursively
+                             "src/ZConfig/tests/test_readme.py")
+                            (invoke "zope-testrunner" "-vv" "--test-path=src"
+                                    "--all"))
+                          (format #t "test suite not run~%")))))))
+    (native-inputs (list python-docutils python-manuel python-zope-exceptions
+                         python-zope-testrunner))
+    (home-page "https://github.com/zopefoundation/ZConfig/")
+    (synopsis "Structured configuration library intended for general use")
+    (description
+     "@code{zconfig} is a configuration library intended for general
+use.  It supports a hierarchical schema-driven configuration model that allows
+a schema to specify data conversion routines written in Python.  Its model is
+very different from the model supported by the @code{configparser} module
+found in Python's standard library, and is more suitable to
+configuration-intensive applications.")
+    (license license:zpl2.1)))
+
 (define-public python-zope-event
   (package
     (name "python-zope-event")
-- 
2.42.0