%global srcname rdflib # Tests not compatible with pytest 5+: %global run_tests 0 Name: python-%{srcname} Version: 6.2.0 Release: %autorelease Summary: Python library for working with RDF License: BSD-3-Clause URL: https://github.com/RDFLib/rdflib BuildArch: noarch Source0: %{pypi_source} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools %{?python_enable_dependency_generator} %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. %prep %autosetup -p1 -n %{srcname}-%{version} %generate_buildrequires %if %{run_tests} %pyproject_buildrequires -x tests %else %pyproject_buildrequires %endif %build %py3_build %install %py3_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 given on the command line: chmod +x %{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/notation3.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/infixowl.py \ %{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 \ %{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/pyRdfa/extras/httpheader.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 %check %if %{run_tests} %{__python3} -m pytest %endif %files -n python3-%{srcname} %license LICENSE %doc CHANGELOG.md README.md %{python3_sitelib}/%{srcname} %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info %{_bindir}/csv2rdf %{_bindir}/rdf2dot %{_bindir}/rdfgraphisomorphism %{_bindir}/rdfpipe %{_bindir}/rdfs2dot %changelog %autochangelog