# Sphinx-generated HTML documentation is not suitable for packaging; see
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
#
# We can generate PDF documentation as a substitute.
%bcond doc_pdf 1
Name: python-brukerapi
Version: 0.1.9
Release: %autorelease
Summary: Python package providing I/O interface for Bruker data sets
# SPDX
License: MIT
URL: https://github.com/isi-nmr/brukerapi-python
# The PyPI sdist lacks the documentation, examples, and CHANGELOG.rst.
Source0: %{url}/archive/v%{version}/brukerapi-python-%{version}.tar.gz
# Man pages hand-written for Fedora in groff_man(7) format based on --help
# output; see:
#
# Interest in man pages?
# https://github.com/isi-nmr/brukerapi-python/issues/19
Source10: bruker.1
Source11: bruker-filter.1
Source12: bruker-report.1
Source13: bruker-split.1
# Change description-file to description_file in setup.cfg
# https://github.com/isi-nmr/brukerapi-python/pull/16
Patch: %{url}/pull/16.patch
# Fix invalid and unintended regex escape sequences
# https://github.com/isi-nmr/brukerapi-python/pull/18
Patch: %{url}/pull/18.patch
# Fix a few typos in comments and in documentation and help text
# https://github.com/isi-nmr/brukerapi-python/pull/20
Patch: %{url}/pull/20.patch
# Fix misspelled SchemaRawdata.seralize method
#
# Add a compatibility alias for the old misspelled name.
#
# https://github.com/isi-nmr/brukerapi-python/pull/21
Patch: %{url}/pull/21.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: %{py3_dist pytest}
%if %{with doc_pdf}
BuildRequires: make
BuildRequires: %{py3_dist sphinx}
BuildRequires: python3-sphinx-latex
BuildRequires: latexmk
%endif
%global common_description %{expand:
A Python package providing I/O interface for Bruker data sets.}
%description %{common_description}
%package -n python3-brukerapi
Summary: %{summary}
%description -n python3-brukerapi %{common_description}
%package doc
Summary: Documentation and examples for python-brukerapi
%description doc %{common_description}
%prep
%autosetup -n brukerapi-python-%{version} -p1
%generate_buildrequires
%pyproject_buildrequires %{?with_doc_pdf:docs/requirements.txt}
%build
%pyproject_wheel
%if %{with doc_pdf}
PYTHONPATH="${PWD}" %make_build -C docs latex \
SPHINXOPTS='-j%{?_smp_build_ncpus}'
%make_build -C docs/build/latex LATEXMKOPTS='-quiet'
%endif
%install
%pyproject_install
%pyproject_save_files brukerapi
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 \
'%{SOURCE10}' '%{SOURCE11}' '%{SOURCE12}' '%{SOURCE13}'
%check
# Since tests are described as “minimal”:
%pyproject_check_import
# Two test errors due to request fixture issues
# https://github.com/isi-nmr/brukerapi-python/issues/17
k="${k-}${k+ and }not test_data_load"
k="${k-}${k+ and }not test_data_save"
%pytest -v -k "${k-}"
%files -n python3-brukerapi -f %{pyproject_files}
# pyproject_files handles LICENSE; verify with “rpm -qL -p …”
%{_bindir}/bruker
%{_mandir}/man1/bruker*.1*
%files doc
%license LICENSE
%doc CHANGELOG.rst
%doc README.rst
%doc examples/
%if %{with doc_pdf}
%doc docs/build/latex/brukerapi.pdf
%endif
%changelog
%autochangelog