## START: Set by rpmautospec
## (rpmautospec version 0.6.0)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 24;
    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

%bcond_with tests

%global forgeurl https://github.com/wmayner/pyphi

# 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_without doc_pdf

Name:           python-pyphi
Version:        1.2.1
Release:        %autorelease
Summary:        A toolbox for integrated information theory
%forgemeta
# The entire source is GPL-3.0-or-later, except:
#
#   - docs/_themes/ contains “krTheme Sphinx Style,” which is BSD-3-Clause; but
#     we remove it in %%prep and do not use it.
License:        GPL-3.0-or-later
URL:            %forgeurl
Source0:        %forgesource

# https://github.com/wmayner/pyphi/pull/50
Patch:          0001-fix-py3.10-correct-collections-import.patch
# Remove sphinx-contrib-napoleon
# https://github.com/wmayner/pyphi/pull/22
Patch:          %{url}/pull/22.patch

# Tests fails on s390x: https://github.com/wmayner/pyphi/issues/41
# https://bugzilla.redhat.com/show_bug.cgi?id=2010104
# Drop i686 as this is a leaf package
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch:    %{ix86} s390x

# The base package is arched so we can easily detect arch-dependent build
# issues, but there is no compiled code.
%global debug_package %{nil}

BuildRequires:  python3-devel

%if %{with doc_pdf}
# Documentation
BuildRequires:  make
BuildRequires:  %{py3_dist sphinx}
BuildRequires:  python3-sphinx-latex
BuildRequires:  latexmk
BuildRequires:  tex-xetex-bin
BuildRequires:  /usr/bin/xindy
# HTML theme module is imported even when building LaTeX:
BuildRequires:  %{py3_dist sphinx_rtd_theme}
%endif

%global _description %{expand:
PyPhi is a Python library for computing integrated information (𝚽), and the
associated quantities and objects.

If you use this code, please cite the paper:

  Mayner WGP, Marshall W, Albantakis L, Findlay G, Marchman R, Tononi G. (2018)
  PyPhi: A toolbox for integrated information theory. PLOS Computational
  Biology 14(7): e1006343. https://doi.org/10.1371/journal.pcbi.1006343}

%description %_description

%package -n python3-pyphi
Summary:        %{summary}

BuildArch:      noarch

%description -n python3-pyphi %_description

%package doc
Summary:        %{summary}

BuildArch:      noarch

%description doc
Documentation for %{name}

%prep
%autosetup -n pyphi-%{version} -p1

# Strip unnecessary shebangs from non-script files
find . -type f -name '*.py' -execdir sed -r -i '1{/^#!/d}' '{}' '+'

# Remove a bundled copy of gprof2dot (packaged in Fedora, upstream at
# https://github.com/jrfonseca/gprof2dot); we do not need to do profiling and
# will not ship it in the binary RPMs.
rm -v profiling/gprof2dot
# Remove a bundled copy of “krTheme Sphinx Style”
rm -rvf docs/_themes/*

# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
sed -r '/^(coverage|asv|virtualenv)\b/d' test_requirements.txt |
  tee test_requirements.filtered.txt

# Since pdflatex cannot handle Unicode inputs in general:
echo "latex_engine = 'xelatex'" >> docs/conf.py

%generate_buildrequires
%pyproject_buildrequires %{?with_tests:test_requirements.filtered.txt}

%build
%pyproject_wheel
%if %{with doc_pdf}
%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 -l pyphi

%check
%if %{with tests}
  %pytest
%else
  %pyproject_check_import
%endif

%files -n python3-pyphi -f %{pyproject_files}
%doc README.md CHANGELOG.md CACHING.rst redis.conf

%files doc
%license LICENSE.md
%if %{with doc_pdf}
%doc docs/_build/latex/PyPhi.pdf
%endif

%changelog
## START: Generated by rpmautospec
* Fri May 17 2024 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 1.2.1-24
- Stop building on i686

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Thu Jan 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-21
- Assert that the .dist-info directory contains a license file

* Wed Sep 06 2023 Sandro <devel@penguinpee.nl> - 1.2.1-20
- Disable tests for now (RHBZ#2226296)
- Use forge macros for pulling from GitHub
- Close RHBZ#2220443 RHBZ#2226296
- Also close RHBZ#2010104 - we no longer build for s390x

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Tue Jul 04 2023 Python Maint <python-maint@redhat.com> - 1.2.1-18
- Rebuilt for Python 3.12

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-17
- Update summary and description from upstream

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-16
- Build documentation as PDF instead of HTML

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-15
- Slightlier tidier shebang stripping

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-14
- Use generated BR’s for tests

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-13
- Apply sphinx-contrib-napolean with a patch rather than a sed invocation

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-12
- Simplify patch application

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-11
- Drop forge macros, which are not doing much for us

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-10
- Convert to SPDX and remove bundled bits

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-9
- Add RHBZ link for s390x failures

* Tue Apr 25 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.1-8
- Build on all arches to ensure we detect arch-dependent test failures

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 1.2.1-4
- Rebuilt for Python 3.11

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Sun Oct 03 2021 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.1-2
- fix: ignore s390x where test fail because of endianness

* Sun Oct 03 2021 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.1-1
- feat: update to 1.2.1

* Wed Aug 18 2021 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-17
- fix: correctly disable tests on s390x

* Wed Aug 18 2021 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-16
- fix: add patch to fix build

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.2.0-14
- Rebuilt for Python 3.10

* Fri Jan 29 2021 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-13
- Update URL

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Fri Jan 08 2021 Tom Stellard <tstellar@redhat.com> - 1.2.0-11
- Add BuildRequires: make

* Tue Oct 27 2020 Tomas Hrnciar <thrnciar@redhat.com> - 1.2.0-10
- Replace Python version glob with macro (needed for Python 3.10+)

* Sun Sep 13 2020 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-9
- Skip tests on s390x

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-8
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue May 26 2020 Miro Hrončok <miro@hroncok.cz> - 1.2.0-6
- Rebuilt for Python 3.9

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Mon Aug 19 2019 Miro Hrončok <miro@hroncok.cz> - 1.2.0-4
- Rebuilt for Python 3.8

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Fri Jul 12 2019 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-2
- Enable tests

* Sat Jun 22 2019 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.2.0-1
- Update to 1.2.0

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Tue Nov 20 2018 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 1.1.0-1
- Initial import
## END: Generated by rpmautospec