1 |
%bcond_with doc |
2 |
%bcond_with check |
3 |
|
4 |
Summary: An interactive computing environment for Python |
5 |
Name: ipython |
6 |
Version: 8.19.0 |
7 |
Release: %mkrel 1 |
8 |
License: BSD |
9 |
Group: Development/Python |
10 |
Url: https://ipython.org/ |
11 |
Source0: %{pypi_source} |
12 |
BuildArch: noarch |
13 |
BuildRequires: pyproject-rpm-macros |
14 |
BuildRequires: python3-devel |
15 |
Provides: python3-ipython = %{version}-%{release} |
16 |
%{?python_provide:%python_provide python3-%{name}} |
17 |
|
18 |
%description |
19 |
IPython provides a rich toolkit to help you make the most out of using |
20 |
Python interactively. Its main components are: |
21 |
|
22 |
* A powerful interactive Python shell |
23 |
* A Jupyter kernel to work with Python code in Jupyter notebooks and |
24 |
other interactive frontends. |
25 |
|
26 |
The enhanced interactive Python shell has the following main features: |
27 |
|
28 |
* Comprehensive object introspection. |
29 |
* Input history, persistent across sessions. |
30 |
* Caching of output results during a session with automatically generated references. |
31 |
* Extensible tab completion, with support by default for completion of python variables |
32 |
and keywords, filenames and function keywords. |
33 |
* Extensible system of ‘magic’ commands for controlling the environment and performing |
34 |
many tasks related either to IPython or the operating system. |
35 |
* A rich configuration system with easy switching between different setups |
36 |
(simpler than changing $PYTHONSTARTUP environment variables every time). |
37 |
* Session logging and reloading. |
38 |
* Extensible syntax processing for special purpose situations. |
39 |
* Access to the system shell with user-extensible alias system. |
40 |
* Easily embeddable in other Python programs and GUIs. |
41 |
* Integrated access to the pdb debugger and the Python profiler. |
42 |
|
43 |
%pyproject_extras_subpkg -n python3-%{name} notebook |
44 |
|
45 |
%prep |
46 |
%autosetup -p1 -n %{name}-%{version} |
47 |
|
48 |
%generate_buildrequires |
49 |
%pyproject_buildrequires %{?with_doc:-x doc} %{?with_check:-x test} |
50 |
|
51 |
%build |
52 |
%pyproject_wheel |
53 |
|
54 |
%if %{with doc} |
55 |
pushd docs |
56 |
PYTHONPATH=.. make html SPHINXBUILD='sphinx-build-3 -D intersphinx_timeout=1' |
57 |
mkdir -p build/html/ |
58 |
rm -rf build/html/.buildinfo |
59 |
popd |
60 |
%endif |
61 |
|
62 |
%install |
63 |
%pyproject_install |
64 |
%pyproject_save_files IPython |
65 |
|
66 |
# move the manpage to ipython3 |
67 |
mv %{buildroot}%{_mandir}/man1/ipython{,3}.1 |
68 |
|
69 |
%if %{with check} |
70 |
%check |
71 |
# Ensure that the user's .pythonrc.py is not invoked during any tests. |
72 |
export PYTHONSTARTUP="" |
73 |
# Fedora's Koji builders can be slow, especially on arms, we scale timeouts 4 times |
74 |
export IPYTHON_TESTING_TIMEOUT_SCALE=4 |
75 |
# To prevent _pytest.pathlib.ImportPathMismatchError, we are |
76 |
# testing directly in buildroot |
77 |
pushd %{buildroot}%{python3_sitelib}/IPython |
78 |
%pytest -k "not test_latex_to_png_color" |
79 |
rm -rf .pytest_cache |
80 |
popd |
81 |
%else |
82 |
rm -r %{buildroot}%{python3_sitelib}/IPython/*/tests |
83 |
sed -i -e '/\/tests\//d' -e '/\/tests$/d' %{pyproject_files} |
84 |
%endif |
85 |
|
86 |
%files -f %{pyproject_files} |
87 |
%doc README.rst |
88 |
%if %{with doc} |
89 |
%doc docs/build/html |
90 |
%endif |
91 |
%{_bindir}/ip* |
92 |
%{_mandir}/man1/* |