Subject: [bug#73173] [PATCH] gnu: Update python-rdflib to 7.0.0.

From: Roel Janssen <[email-masked]>
Date: Tue, 10 Sep 2024 21:33:55 +0200

Dear Guix,

I'd like to update python-rdflib to 7.0.0. When building the reverse-
dependent packages, I found that python-prov and cwltool don't support
version 7.  So the attached patch keeps 6.1.1 around but upgrades all
the others. I built the following packages successful after the
upgrade:
- carla
- ardour
- zeitgeist
- python-schema-salad
- python-sparqlwrapper
- python-cfgraph
- python-pyrdfa3
- python-sparqlkernel

The following package failed to build, but I believe it's unrelated to
the upgrade:
- python-pytorch-geometric

Keeping python-prov and cwltool at python-rdflib-6 doesn't affect the
successful builds of these packages.  So I believe the impact is
minimal.

Let me know if/what I can do to improve the patch.
Thank you for your time in advance.

Kind regards,
Roel Janssen
From 5c1857e08a25c9ca00d3c3acf7fade67e523fbe3 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Roel Janssen <[email-masked]>
Date: Tue, 10 Sep 2024 21:19:50 +0200
Subject: [PATCH] gnu: Update python-rdflib to 7.0.0.

* gnu/packages/rdf.scm: Add updated recipe for python-rdflib; Keep
  python-rdflib-6 for compatibility.
* gnu/packages/python-xyz.scm: Build python-prov with python-rdflib-6 because
  rdflib-7 is not supported.
* gnu/packages/bioinformatics.scm: Build cwltool with python-rdflib-6 because
  it fails to build with rdflib-7.

Change-Id: Ibc40c16ede20e69e702915488d6b2f0a7e70b868
---
 gnu/packages/bioinformatics.scm |  2 +-
 gnu/packages/python-xyz.scm     |  2 +-
 gnu/packages/rdf.scm            | 43 +++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4653360792..db8befd144 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5786,7 +5786,7 @@ (define-public cwltool
            python-prov
            python-pydot
            python-psutil
-           python-rdflib
+           python-rdflib-6
            python-requests
            python-ruamel.yaml
            python-schema-salad
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 21e04e75e9..2fbdd32cf3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24995,7 +24995,7 @@ (define-public python-prov
                 (("\\.serialize\\(format=\"nt\"\\)")
                  ".serialize(format=\"nt\", encoding=\"utf-8\")")))))))
     (propagated-inputs
-     (list python-dateutil python-lxml python-networkx python-rdflib))
+     (list python-dateutil python-lxml python-networkx python-rdflib-6))
     (native-inputs
      (list graphviz python-pydot))
     (home-page "https://github.com/trungdong/prov")
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index f10b530861..9a02a71d81 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -328,6 +328,49 @@ (define-public sord
     (license license:isc)))
 
 (define-public python-rdflib
+  (package
+    (name "python-rdflib")
+    (version "7.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "rdflib" version))
+        (sha256
+         (base32
+          "1blmx4v003afr3l9qg84ymj0sldcbsr2dzdgq6w5k022d62yp5cr"))))
+    (build-system pyproject-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-tests
+           (lambda _
+             (for-each delete-file
+                       '(;; The tests in this file miss a test fixture.
+                         ;; fixture 'no_cover' not found
+                         "test/test_misc/test_plugins.py"
+                         ;; These tests need internet access.
+                         "test/jsonld/test_onedotone.py"
+                         "test/test_examples.py"
+                         "test/test_extras/test_infixowl/test_basic.py"
+                         "test/test_extras/test_infixowl/test_context.py"
+                         "test/test_sparql/test_service.py"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "test/")))))))
+    (native-inputs
+     (list python-pytest python-poetry-core))
+    (propagated-inputs
+      (list python-html5lib python-isodate python-pyparsing))
+    (home-page "https://github.com/RDFLib/rdflib")
+    (synopsis "Python RDF library")
+    (description
+      "RDFLib is a Python library for working with RDF, a simple yet
+powerful language for representing information.")
+    (license (license:non-copyleft "file://LICENSE"
+                                   "See LICENSE in the distribution."))))
+
+(define-public python-rdflib-6
   (package
     (name "python-rdflib")
     (version "6.1.1")

base-commit: b82c8ceae14d5d0f4584452f34f5103ffd0e0f8d
-- 
2.46.0