diff --git a/.gitignore b/.gitignore index a30e77f..d1d7f19 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ rdflib-2.4.2.tar.gz /rdflib-4.2.1.tar.gz /rdflib-5.0.0.tar.gz /rdflib-6.2.0.tar.gz +/rdflib-7.0.0.tar.gz diff --git a/python-rdflib.spec b/python-rdflib.spec index e0b4e3c..e513ce3 100644 --- a/python-rdflib.spec +++ b/python-rdflib.spec @@ -1,22 +1,33 @@ %global srcname rdflib -# Tests not compatible with pytest 5+: -%global run_tests 0 +%bcond docs 0 +%bcond tests 0 +%if 0%{?fedora} +%bcond docs 1 +%bcond tests 1 +%endif Name: python-%{srcname} -Version: 6.2.0 +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 -Source0: %{pypi_source} +Source: %{pypi_source} BuildRequires: python%{python3_pkgversion}-devel -BuildRequires: python%{python3_pkgversion}-setuptools - -%{?python_enable_dependency_generator} +%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 @@ -39,21 +50,25 @@ 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 -%if %{run_tests} -%pyproject_buildrequires -x tests -%else %pyproject_buildrequires -%endif %build -%py3_build +%pyproject_wheel %install -%py3_install +%pyproject_install # Various .py files within site-packages have a shebang line but aren't # flagged as executable. @@ -63,19 +78,14 @@ Queries and Update statements - and SPARQL function extension mechanisms. # __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 +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 \ - %{buildroot}%{python3_sitelib}/rdflib/plugins/parsers/pyRdfa/extras/httpheader.py; do +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 @@ -89,21 +99,38 @@ sed -i '1s=^#!/usr/bin/\(python\|env python\).*=#!%{__python3}=' \ %{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 -%if %{run_tests} -%{__python3} -m pytest +%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 python3-%{srcname} +%files -n python%{python3_pkgversion}-%{srcname} -f %{pyproject_files} %license LICENSE -%doc CHANGELOG.md README.md -%{python3_sitelib}/%{srcname} -%{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info +%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 %autochangelog diff --git a/sources b/sources index 2bf66f6..d5a680b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rdflib-6.2.0.tar.gz) = 7fee5f6df19642ee49039c9072ebc7a9f92bb00f2b5854a7221aba203b32555ff16ec19b76ba86aed1471ee5c5cd8264ade2147435011795b1abf251d1c1bec6 +SHA512 (rdflib-7.0.0.tar.gz) = 56d110ab24c74c6ddb2e75320f60a82b4945e6ea1ce9d10ad4ae53d44c679b35826e3d7406e7d0e321ef9b042d32d2ba327a6dbd5c2c1780f552131d80c09445