- Update to 8.29

* Misc Python 3.13 compatibility #14536, #14559
  * Add a uv line magic #14537
  * Add support for WEBP to IPython.display.Image. #14526
  * And many more bugfixes and quality of life improvements.
- IPython 8.28
  * #14480 AssertionError: assert _xterm_term_title_saved in WSL
    It is unclear why the terminal title is not saved in WSL, if
    you've WSL experience we'd love your feedback and help to not
    just ignore an error
  * #14510 Fix use of pyside6 >= 6.7.0
  * #14518 Make values public (_tb_highlight & _tb_highlight_style)
  * #14515 Use environment variable to identify conda / mamba
- Remove deprecated %suse_update_desktop_file
  * https://en.opensuse.org/openSUSE:Update-desktop-files_deprecation
  * nothing relevant to upstream

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=135
This commit is contained in:
Benjamin Greiner 2024-11-17 15:00:40 +00:00 committed by Git OBS Bridge
commit 37d88e26cd
9 changed files with 1892 additions and 0 deletions

25
.gitattributes vendored Normal file
View File

@ -0,0 +1,25 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
JupyterConsole.svg filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
JupyterConsole.svg Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c964ec992b736edcebbaac49eb1ce18f474a12689e7a5437f30f54e3f723cec
size 26397

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

3
ipython-8.25.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716
size 5492936

3
ipython-8.27.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e
size 5494984

3
ipython-8.29.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb
size 5497513

1596
python-ipython.changes Normal file

File diff suppressed because it is too large Load Diff

255
python-ipython.spec Normal file
View File

@ -0,0 +1,255 @@
#
# spec file for package python-ipython
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%if 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# extra tests are skipped automatically, don't require these packages for Ring1
%bcond_with localtest
%{?sle15_python_module_pythons}
Name: python-ipython%{psuffix}
Version: 8.29.0
Release: 0
Summary: Rich architecture for interactive computing with Python
License: BSD-3-Clause
URL: https://github.com/ipython/ipython
Source: https://files.pythonhosted.org/packages/source/i/ipython/ipython-%{version}.tar.gz
Source1: https://raw.githubusercontent.com/jupyter/qtconsole/4.0.0/qtconsole/resources/icon/JupyterConsole.svg
BuildRequires: %{python_module base >= 3.10}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 61.2}
BuildRequires: %{python_module wheel}
BuildRequires: %{pythons}
BuildRequires: fdupes
BuildRequires: python-rpm-macros >= 20210929
# requires the full stdlib including sqlite3
Requires: python
Requires: python-decorator
Requires: python-jedi >= 0.16
Requires: python-matplotlib-inline
Requires: python-pexpect >= 4.3
Requires: python-pygments >= 2.4.0
Requires: python-stack-data
Requires: python-traitlets >= 5.13.0
Requires: (python-prompt_toolkit >= 3.0.41 with python-prompt_toolkit < 3.1)
%if %{python_version_nodots} < 311
Requires: python-exceptiongroup
%endif
%if %{python_version_nodots} < 312
Requires: python-typing_extensions >= 4.6
%endif
Recommends: jupyter
Recommends: python-ipykernel
Recommends: python-ipyparallel
Recommends: python-ipywidgets
Provides: IPython3 = %{version}
Obsoletes: IPython3 < %{version}
Provides: python-IPython = %{version}
Obsoletes: python-IPython < %{version}
Provides: python-jupyter_ipython = %{version}
Obsoletes: python-jupyter_ipython < %{version}
Provides: jupyter-ipython = %{version}
Provides: python-ipython-doc = %{version}
Obsoletes: python-ipython-doc < %{version}
Provides: python-jupyter_ipython-doc = %{version}
Obsoletes: python-jupyter_ipython-doc < %{version}
Provides: python-jupyter_ipython-doc-html = %{version}
Obsoletes: python-jupyter_ipython-doc-html < %{version}
Provides: python-jupyter_ipython-doc-pdf = %{version}
Obsoletes: python-jupyter_ipython-doc-pdf < %{version}
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module ipython = %{version}}
BuildRequires: %{python_module matplotlib}
BuildRequires: %{python_module numpy >= 1.23}
BuildRequires: %{python_module pandas}
BuildRequires: %{python_module pickleshare}
BuildRequires: %{python_module pytest-asyncio}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module testpath}
BuildRequires: %{python_module trio}
%endif
%if %{with localtest}
BuildRequires: %{python_module nbformat}
%endif
%if !%{with test}
BuildRequires: desktop-file-utils
BuildRequires: hicolor-icon-theme
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun): update-alternatives
%endif
%if %{with ico}
BuildRequires: icoutils
%endif
%endif
%python_subpackages
%description
IPython provides a rich toolkit to help you make the
most out of using Python interactively. Its main
components are:
* A powerful interactive Python shell
* A Jupyter kernel to work with Python code in
Jupyter notebooks and other interactive frontends.
The enhanced interactive Python shells have the
following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically
generated references.
* Extensible tab completion, with support by default for completion
of python variables and keywords, filenames and function keywords.
* Extensible system of magic commands for controlling the
environment and performing many tasks related either to IPython or
the operating system.
* A rich configuration system with easy switching between different
setups (simpler than changing $PYTHONSTARTUP environment variables
every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
%prep
%autosetup -p1 -n ipython-%{version}
%build
%pyproject_wheel
%if !%{with test}
%if %{with ico}
pushd scripts
icotool -x ipython.ico
icotool -x ipython_nb.ico
popd
%endif
%endif
%install
%if !%{with test}
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/ipython
%python_clone -a %{buildroot}%{_bindir}/ipython3
# must clone after copy
cp %{buildroot}%{_mandir}/man1/ipython{,3}.1
%python_clone -a %{buildroot}%{_mandir}/man1/ipython.1
%python_clone -a %{buildroot}%{_mandir}/man1/ipython3.1
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
%python_expand cp %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/IPython-%{$python_bin_suffix}.svg
%if %{with ico}
# Install the icons
for x in 16 24 32 48 256 ; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${x}x${x}/apps/
ipyf=(scripts/ipython_*_${x}x${x}x32.png)
ipynbf=(scripts/ipython_nb_*_${x}x${x}x32.png)
%python_expand cp ${ipyf[0]} %{buildroot}%{_datadir}/icons/hicolor/${x}x${x}/apps/IPython-%{$python_bin_suffix}.png
%python_expand cp ${ipynbf[0]} %{buildroot}%{_datadir}/icons/hicolor/${x}x${x}/apps/IPythonNotebook-%{$python_bin_suffix}.png
done
%endif
%{python_expand # Modify and install .desktop file
f=ipython-%{$python_bin_suffix}.desktop
cp examples/IPython\ Kernel/ipython.desktop $f
desktop-file-edit \
--set-comment="Enhanced interactive Python %{$python_bin_suffix} shell" \
--set-name="ipython %{$python_bin_suffix}" \
--set-generic-name="IPython %{$python_bin_suffix}" \
--set-key="Exec" --set-value="ipython-%{$python_bin_suffix}" \
--set-icon="IPython-%{$python_bin_suffix}" \
$f
desktop-file-install $f
}
%{python_expand # These can be run stand-alone, so make them executable rather than removing shebang
find %{buildroot}%{$python_sitelib} -type f -name "*.py" -exec sed -i "s|^#!%{_bindir}/env python$|#!%{__$python}|" {} \;
find %{buildroot}%{$python_sitelib} -type f -name "*.py" -exec sed -i "s|^#!%{_bindir}/python$|#!%{__$python}|" {} \;
find %{buildroot}%{$python_sitelib} -type f -name "*.py" -exec grep -q "#!%{__$python}" {} \; -exec chmod a+x {} \;
$python -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/IPython
$python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/IPython
%fdupes %{buildroot}%{$python_sitelib}
}
%fdupes %{buildroot}%{_bindir}
%fdupes %{buildroot}%{_mandir}
%endif
%if %{with test}
%check
export PYTHONPATH=$(pwd)
%pytest
%endif
%if !%{with test}
%pre
# If libalternatives is used: Removing old update-alternatives entries.
%python_libalternatives_reset_alternative ipython
%post
%python_install_alternative ipython ipython3 ipython.1.gz ipython3.1.gz
%desktop_database_post
%icon_theme_cache_post
%postun
%python_uninstall_alternative ipython
%desktop_database_postun
%icon_theme_cache_postun
%endif
%if !%{with test}
%files %{python_files}
%license COPYING.rst
%doc README.rst docs/source/about/license_and_copyright.rst
%python_alternative %{_bindir}/ipython
%python_alternative %{_bindir}/ipython3
%python_alternative %{_mandir}/man1/ipython.1.gz
%python_alternative %{_mandir}/man1/ipython3.1.gz
%{python_sitelib}/IPython/
%{python_sitelib}/ipython-%{version}.dist-info
%{_datadir}/applications/ipython-%{python_bin_suffix}.desktop
%{_datadir}/icons/hicolor/scalable/apps/IPython-%{python_bin_suffix}.svg
%if %{with ico}
%{_datadir}/icons/hicolor/*x*/apps/IPython-%{python_bin_suffix}.png
%{_datadir}/icons/hicolor/*x*/apps/IPythonNotebook-%{python_bin_suffix}.png
%endif
%endif
%changelog