commit
53cf3ff41f
@ -0,0 +1 @@
|
||||
SOURCES/rdflib-7.0.0.tar.gz
|
@ -0,0 +1 @@
|
||||
f0de113d8bbd1e761ff8d181e1dcdee997fa92fd SOURCES/rdflib-7.0.0.tar.gz
|
@ -0,0 +1,35 @@
|
||||
diff -up rdflib-7.0.0/test/test_misc/test_parse_file_guess_format.py.pytest8 rdflib-7.0.0/test/test_misc/test_parse_file_guess_format.py
|
||||
--- rdflib-7.0.0/test/test_misc/test_parse_file_guess_format.py.pytest8 2023-06-01 21:15:21.520171900 +0200
|
||||
+++ rdflib-7.0.0/test/test_misc/test_parse_file_guess_format.py 2024-07-02 17:45:47.257339626 +0200
|
||||
@@ -61,7 +61,7 @@ class TestFileParserGuessFormat:
|
||||
g.parse(os.path.join(TEST_DATA_DIR, "example-lots_of_graphs.n3")), Graph
|
||||
)
|
||||
|
||||
- def test_warning(self) -> None:
|
||||
+ def test_warning(self, caplog: pytest.LogCaptureFixture) -> None:
|
||||
g = Graph()
|
||||
graph_logger = logging.getLogger("rdflib")
|
||||
|
||||
@@ -78,9 +78,16 @@ class TestFileParserGuessFormat:
|
||||
),
|
||||
str(newpath),
|
||||
)
|
||||
- with pytest.raises(ParserError, match=r"Could not guess RDF format"):
|
||||
- with pytest.warns(
|
||||
- UserWarning,
|
||||
- match="does not look like a valid URI, trying to serialize this will break.",
|
||||
- ) as logwarning:
|
||||
- g.parse(str(newpath))
|
||||
+ with pytest.raises(
|
||||
+ ParserError, match=r"Could not guess RDF format"
|
||||
+ ), caplog.at_level("WARNING"):
|
||||
+ g.parse(str(newpath))
|
||||
+
|
||||
+ assert any(
|
||||
+ rec.levelno == logging.WARNING
|
||||
+ and (
|
||||
+ "does not look like a valid URI, trying to serialize this will break."
|
||||
+ in rec.message
|
||||
+ )
|
||||
+ for rec in caplog.records
|
||||
+ )
|
@ -0,0 +1,64 @@
|
||||
--- a/rdflib/store.py
|
||||
+++ b/rdflib/store.py
|
||||
@@ -113,27 +113,39 @@ class TripleRemovedEvent(Event):
|
||||
"""
|
||||
|
||||
|
||||
+class _Pickler(Pickler):
|
||||
+ def __init__(self, file, node):
|
||||
+ super(_Pickler, self).__init__(file)
|
||||
+ self._node = node
|
||||
+
|
||||
+ def persistent_id(self, key: Any) -> Optional[str]:
|
||||
+ try:
|
||||
+ return self._node._ids.get(key)
|
||||
+ except TypeError:
|
||||
+ return None
|
||||
+
|
||||
+
|
||||
+class _Unpickler(Unpickler):
|
||||
+ def __init__(self, file, node):
|
||||
+ super(_Unpickler, self).__init__(file)
|
||||
+ self._node = node
|
||||
+
|
||||
+ def persistent_load(self, pid):
|
||||
+ return self._node._get_object(pid)
|
||||
+
|
||||
+
|
||||
class NodePickler:
|
||||
def __init__(self) -> None:
|
||||
self._objects: Dict[str, Any] = {}
|
||||
self._ids: Dict[Any, str] = {}
|
||||
self._get_object = self._objects.__getitem__
|
||||
|
||||
- def _get_ids(self, key: Any) -> Optional[str]:
|
||||
- try:
|
||||
- return self._ids.get(key)
|
||||
- except TypeError:
|
||||
- return None
|
||||
-
|
||||
def register(self, object: Any, id: str) -> None:
|
||||
self._objects[id] = object
|
||||
self._ids[object] = id
|
||||
|
||||
def loads(self, s: bytes) -> "Node":
|
||||
- up = Unpickler(BytesIO(s))
|
||||
- # NOTE on type error: https://github.com/python/mypy/issues/2427
|
||||
- # type error: Cannot assign to a method
|
||||
- up.persistent_load = self._get_object # type: ignore[assignment]
|
||||
+ up = _Unpickler(BytesIO(s), self)
|
||||
try:
|
||||
return up.load()
|
||||
except KeyError as e:
|
||||
@@ -143,10 +155,7 @@ class NodePickler:
|
||||
self, obj: "Node", protocol: Optional[Any] = None, bin: Optional[Any] = None
|
||||
):
|
||||
src = BytesIO()
|
||||
- p = Pickler(src)
|
||||
- # NOTE on type error: https://github.com/python/mypy/issues/2427
|
||||
- # type error: Cannot assign to a method
|
||||
- p.persistent_id = self._get_ids # type: ignore[assignment]
|
||||
+ p = _Pickler(src, self)
|
||||
p.dump(obj)
|
||||
return src.getvalue()
|
||||
|
@ -0,0 +1,226 @@
|
||||
## START: Set by rpmautospec
|
||||
## (rpmautospec version 0.7.2)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 5;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
## END: Set by rpmautospec
|
||||
|
||||
%global srcname rdflib
|
||||
|
||||
%bcond docs 0
|
||||
%bcond tests 0
|
||||
%if 0%{?fedora}
|
||||
%bcond docs 1
|
||||
%bcond tests 1
|
||||
%endif
|
||||
|
||||
Name: python-%{srcname}
|
||||
Version: 7.0.0
|
||||
Release: %autorelease
|
||||
Summary: Python library for working with RDF
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/RDFLib/rdflib
|
||||
BuildArch: noarch
|
||||
|
||||
Source: %{pypi_source}
|
||||
Patch: %{srcname}-py3_13-fix-pickler.diff
|
||||
# Backported from https://github.com/RDFLib/rdflib/pull/2817
|
||||
Patch: rdflib-7.0.0-pytest8.patch
|
||||
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
%if %{with tests}
|
||||
BuildRequires: python3dist(pytest)
|
||||
%endif
|
||||
%if %{with docs}
|
||||
BuildRequires: python3dist(myst-parser)
|
||||
BuildRequires: python3dist(sphinx)
|
||||
BuildRequires: python3dist(sphinx-autodoc-typehints)
|
||||
BuildRequires: python3dist(sphinxcontrib-apidoc)
|
||||
BuildRequires: python3dist(typing-extensions)
|
||||
%endif
|
||||
|
||||
%description
|
||||
RDFLib is a pure Python package for working with RDF. RDFLib contains most
|
||||
things you need to work with RDF, including parsers and serializers for
|
||||
RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, Trig and JSON-LD, a Graph
|
||||
interface which can be backed by any one of a number of Store implementations,
|
||||
store implementations for in-memory, persistent on disk (Berkeley DB) and
|
||||
remote SPARQL endpoints, a SPARQL 1.1 implementation - supporting SPARQL 1.1
|
||||
Queries and Update statements - and SPARQL function extension mechanisms.
|
||||
|
||||
%package -n python%{python3_pkgversion}-%{srcname}
|
||||
Summary: %{summary}
|
||||
|
||||
%description -n python%{python3_pkgversion}-%{srcname}
|
||||
RDFLib is a pure Python package for working with RDF. RDFLib contains most
|
||||
things you need to work with RDF, including parsers and serializers for
|
||||
RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, Trig and JSON-LD, a Graph
|
||||
interface which can be backed by any one of a number of Store implementations,
|
||||
store implementations for in-memory, persistent on disk (Berkeley DB) and
|
||||
remote SPARQL endpoints, a SPARQL 1.1 implementation - supporting SPARQL 1.1
|
||||
Queries and Update statements - and SPARQL function extension mechanisms.
|
||||
|
||||
%if %{with docs}
|
||||
%package -n python%{python3_pkgversion}-%{srcname}-docs
|
||||
Summary: Documentation for %{srcname}
|
||||
|
||||
%description -n python%{python3_pkgversion}-%{srcname}-docs
|
||||
Documentation for %{srcname}, a Python library for working with RDF.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{srcname}-%{version}
|
||||
|
||||
%generate_buildrequires
|
||||
%pyproject_buildrequires
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
|
||||
# Various .py files within site-packages have a shebang line but aren't
|
||||
# flagged as executable.
|
||||
# I've gone through them and either removed the shebang or made them
|
||||
# executable as appropriate:
|
||||
|
||||
# __main__ parses URI as N-Triples:
|
||||
chmod +x %{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/ntriples.py
|
||||
|
||||
# __main__ parses the file or URI given on the command line:
|
||||
chmod +x %{buildroot}%{python3_sitelib}/rdflib/tools/rdfpipe.py
|
||||
|
||||
# __main__ runs a test (well, it's something)
|
||||
chmod +x %{buildroot}%{python3_sitelib}/rdflib/extras/external_graph_libs.py
|
||||
|
||||
# sed these headers out as they include no __main__
|
||||
for lib in %{buildroot}%{python3_sitelib}/rdflib/extras/describer.py; do
|
||||
sed '1{\@^#!/usr/bin/env python@d}' $lib > $lib.new &&
|
||||
touch -r $lib $lib.new &&
|
||||
mv $lib.new $lib
|
||||
done
|
||||
|
||||
# sed shebangs
|
||||
sed -i '1s=^#!/usr/bin/\(python\|env python\).*=#!%{__python3}=' \
|
||||
%{buildroot}%{python3_sitelib}/rdflib/extras/infixowl.py \
|
||||
%{buildroot}%{python3_sitelib}/rdflib/extras/external_graph_libs.py \
|
||||
%{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/ntriples.py \
|
||||
%{buildroot}%{python3_sitelib}/rdflib/tools/rdfpipe.py \
|
||||
%{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/notation3.py
|
||||
|
||||
%if %{with docs}
|
||||
# generate html docs
|
||||
PYTHONPATH=%{buildroot}%{python3_sitelib} sphinx-build-3 -b html -d docs/_build/doctree docs docs/_build/html
|
||||
# remove the sphinx-build-3 leftovers
|
||||
rm -rf docs/_build/html/.{doctrees,buildinfo}
|
||||
%endif
|
||||
|
||||
%pyproject_save_files -L %{srcname}
|
||||
|
||||
%if %{with tests}
|
||||
%check
|
||||
%pytest -k "not rdflib and not rdflib.extras.infixowl and not \
|
||||
test_example and not test_suite and not \
|
||||
test_infix_owl_example1 and not test_context and not \
|
||||
test_service and not test_simple_not_null and not \
|
||||
test_sparqleval and not test_parser"
|
||||
%endif
|
||||
|
||||
%files -n python%{python3_pkgversion}-%{srcname} -f %{pyproject_files}
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/csv2rdf
|
||||
%{_bindir}/rdf2dot
|
||||
%{_bindir}/rdfgraphisomorphism
|
||||
%{_bindir}/rdfpipe
|
||||
%{_bindir}/rdfs2dot
|
||||
|
||||
%if %{with docs}
|
||||
%files -n python%{python3_pkgversion}-%{srcname}-docs
|
||||
%license LICENSE
|
||||
%doc docs/_build/html
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Dec 23 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 7.0.0-5
|
||||
- Rebuilt for MSVSphere 10
|
||||
|
||||
## START: Generated by rpmautospec
|
||||
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Tue Jul 02 2024 Nils Philippsen <nils@tiptoe.de> - 7.0.0-4
|
||||
- Fix testing with pytest 8
|
||||
|
||||
* Thu Jun 13 2024 Michel Lind <salimma@fedoraproject.org> - 7.0.0-3
|
||||
- Work around inability to override Pickler/Unpickler methods in Python
|
||||
3.13
|
||||
|
||||
* Sun Jun 09 2024 Python Maint <python-maint@redhat.com> - 7.0.0-2
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Sat May 25 2024 Robert-André Mauchin <zebob.m@gmail.com> - 7.0.0-1
|
||||
- Update to 7.0.0
|
||||
- Use current Python macros
|
||||
- Run tests
|
||||
- Build docs
|
||||
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 6.2.0-3
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Aug 30 2022 Simone Caronni <negativo17@gmail.com> - 6.2.0-1
|
||||
- Update to 6.2.0.
|
||||
- Update SPEC file.
|
||||
- Trim changelog.
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Tue Jul 19 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 5.0.0-6
|
||||
- Rebuilt for pyparsing-3.0.9
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 5.0.0-5
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Thu Jun 03 2021 Python Maint <python-maint@redhat.com> - 5.0.0-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Mon Feb 15 2021 Dan Callaghan <djc@djc.id.au> - 5.0.0-1
|
||||
- New upstream release 5.0.0:
|
||||
https://github.com/RDFLib/rdflib/blob/5.0.0/CHANGELOG.md
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 4.2.1-15
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
## END: Generated by rpmautospec
|
Loading…
Reference in new issue