Blob Blame History Raw
Name:           python-mpmath
Version:        1.1.0
Release:        %autorelease
Summary:        A pure Python library for multiprecision floating-point arithmetic
License:        BSD
URL:            http://mpmath.org
# Source code
Source0:        https://github.com/fredrik-johansson/mpmath/archive/%{version}/%{name}-%{version}.tar.gz

# Switch to 'traditional' theme in RHEL since 'classic' isn't available
Patch0:         python-mpmath-1.0.0-sphinx.patch

BuildArch:      noarch

# For building documentation
BuildRequires:  dvipng
BuildRequires:  tex(latex)

BuildRequires:  python3-devel
BuildRequires:  python3-pytest
BuildRequires:  python3-sphinx
BuildRequires:  xorg-x11-server-Xvfb

%global _description\
Mpmath is a pure-Python library for multiprecision floating-point arithmetic.\
It provides an extensive set of transcendental functions, unlimited exponent\
sizes, complex numbers, interval arithmetic, numerical integration and\
differentiation, root-finding, linear algebra, and much more. Almost any\
calculation can be performed just as well at 10-digit or 1000-digit precision,\
and in many cases mpmath implements asymptotically fast algorithms that scale\
well for extremely high precision work. If available, mpmath will (optionally)\
use gmpy to speed up high precision operations.

%description %_description

%package -n python3-mpmath
Summary:        A pure Python library for multiprecision floating-point arithmetic
%if 0%{?fedora} || 0%{?rhel} > 7
Recommends: python3-matplotlib
%endif
%{?python_provide:%python_provide python3-mpmath}

%description -n python3-mpmath %_description

If you require plotting capabilities in mpmath, install python3-matplotlib.


%package doc
Summary:        HTML documentation for %{name}
Requires:       python3-mpmath = %{version}-%{release}

%description doc
This package contains the HTML documentation for %{name}.


%prep
%setup -q -n mpmath-%{version}
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
%patch0 -p1 -b .sphinx
%endif

# Convert line encodings
for doc in CHANGES LICENSE README.rst TODO mpmath/tests/runtests.py; do
 sed "s|\r||g" $doc > $doc.new && \
 touch -r $doc $doc.new && \
 mv $doc.new $doc
done
find doc -name *.txt -exec sed -i "s|\r||g" {} \;

shebangs="mpmath/matrices/eigen.py mpmath/matrices/eigen_symmetric.py mpmath/tests/runtests.py mpmath/tests/test_eigen.py mpmath/tests/test_eigen_symmetric.py mpmath/tests/test_levin.py"
# Get rid of unnecessary shebangs
for lib in $shebangs; do
 sed '/^#!.*/d; 1q' $lib > $lib.new && \
 touch -r $lib $lib.new && \
 mv $lib.new $lib
done

%build
%py3_build

# Build documentation
cd doc
%{__python3} build.py

%install
%py3_install

%check
cd build/lib/mpmath/tests/
xvfb-run -a py.test-3

%files -n python3-mpmath
%doc CHANGES LICENSE README.rst TODO
%{python3_sitelib}/mpmath/
%{python3_sitelib}/mpmath-%{version}-*.egg-info

%files doc
%doc doc/build/*

%changelog
%autochangelog