* Improve inference from return type annotations in completer and the
introduction of the optional target ipython[matplotlib] to explicitly
request the matplotlib optional dependencies.
* Move of the matplotlib backend handling from IPython to matplotlib.
* pytest 8 compatibility.
* typing-extension now needs 4.6 or newer. It was already the case, but
not explicated.
* Attempt to speed running code under debugger in some cases.
- Add patch support-pytest-8.1.patch:
* Support pytest >= 8.1 with the pytest plugin.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=129
* Fix recently introduced bug with the store magic.
* Fix issues with multiple call to
matplotlib.pyplot.switch_backend
* Fix crashing IPython when some tracebacks encounter dynamically
evaluated code.
* IPython 8.22.1 increase the minimal traitlets version, and
8.22.2 fix a critical bug on emscripten preventing to use some
magics like %matplotlib on jupyter-light.
* As usual you can find the full list of PRs on GitHub under the
8.22 milestone.
## API changes
* One of the largest change is the update the mimehooks and
inspector API, see 14342. It should be backward compatible, but
many hooks now receive a single object with many fields
allowing us flexibility to update the API later.
## Packaging changes
* Thanks to @mkoppe, we are slowly getting rid of setup.py
finally migrating to pyproject.toml. There is still quite a bit
of work, and please open an issue if you encounter any problem.
## Deprecation
* A number of unused functions have been marked deprecated or
pending deprecation. Please let us know if you encounter any of
those deprecation messages for us to adjust the removal
timeline.
compatibility with pdb.set_trace()
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=127
* Few new features are present, but the codebase has been
cleaned, and a couple of API are _considered_ for deprecation.
They are not deprecated yet, but as they do not seem to be
quite used, they may emit a warning, in which case please
comment on the relevant issue to inform me of _which_ project
use those feature and how you use them. Depending on the
feedback I might change the timeline for deprecation.
## Deprecations
* PR #14307 Pending Deprecation of
ColorSchemeTable.set_active_scheme(...)’s case_sensitive
Parameter.
* PR #14305 Pending Deprecation of constructing ColorScheme via
kwargs, in favor passing a single dict.
## Fixes
* PR #14284 TerminalIPythonApp’s would warn that auto_create
option is not recognized.
* PR #14286 Fix a crash with NotOneValueFound when rendering
complex tracebacks.
* PR #14287 Partial Python 3.13 compatibility
* PR #14290 Docs/Typos.
* PR #14289 ipdb.set_trace() now accepts header= for better
## Changes
compatibility with pdb.set_trace()
* PR #14300 and PR #14301 Add hooking ability to produce
mimebundle. It is now possible to extend the ?/?? operator to
return more mimetypes to render richer help in frontends that
support it. In particular you could send a json representation
of the help that could be displayed in a customizable way.
- Release 8.20.0
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=124
* Small release of IPython that fixes a small number of
inconveniences.
* PR #14251 Fix a memory leak in qt event loop integration by
setting the Loop parent to None.
* PR #14252 Pickleshare was made an optional dependency in 8.17,
this leads to warnings in some installations when using modules
completions. The warning has been silenced.
* PR #14241 Update event loop code for compatibility with more
recent prompt_toolkit due to deprecations in Python 3.12.
* PR #14245 Fix doc example on Pygments styles
* PR #14238 Remove dependency on app_nope, this is actually only
a dependency of IPykernel.
- Release 8.17, 8.17.1
* Medium-sized release of IPython that includes some cleanup
(backcall, python2 leftovers) and some refactoring improvements
(typing, pathlib) and a fix on completion.
* PR #14216 remove backcall dependency
* PR #14217 make pickleshare dependency optional
* PR #14185 support completion based on type annotations of calls
* Reverted in 8.17.1:PR #14190 remove support for python 2 in
lexers (reverted in 8.17.1 as it is imported by
qtconsole/spyder)
* Mamba and Micromamba magic: In addition to the conda command to
manage conda environment, mamba and micromamba can now be used
using the corresponding magic in IPython. Since these commands
are compatible with conda, they are following the same logic.
These two magic require to have the corresponding commands
available either in the conda environment or system wide. PR
#14191
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=122
* Small double release of IPython (with the 8.12.3 release notes
just below). Mostly bug fixes and cleanups, and type
annotations. Of interest for users:
* #14153 Fix a bug of the new iPdb chained traceback where some
Exception would not have any traceback. (see upstream fix in
CPython for more details).
* #14168 Fix case with spurious message about event loops when
using matplotlib.
- Remove skip_python312 (see changelog for 8.15)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=118
* Improve compatibility with future version of Python 3.12/3.13
:ghpull:`14107`, gh#`14139`,
* Improve support for ExceptionGroups, gh#`14108`
* Fix hangs in %gui osx, gh#`14125`
* Fix memory lead with %reset, gh#`14133`
* Unstable config option to modify traceback highlighting that is
sometime hard to read gh#`14138`
* Support . in ipdb as an argument to the list command gh#`14121`
* Workroud parso showing warning message when the default logger
level is changed gh#`14119`
* Fix multiple issues with matplotlib interactive mode, qt5/qt6
gh#`14128`
## Whatsnew
* Support for PEP-678 Exception Notes
* Native fallback for displaying ExceptionGroup
* AST-based macros
* Allow IPdb/Pdb to move between chained exceptions
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=116
- Update to 8.14.0
* PR #14080 fixes some shortcuts issues.
* PR #14056 Add option to %autoreload to hide errors when
reloading code.
* PR #14039 (and PR #14040) to show exception notes in
tracebacks.
* PR #14076 Add option to EventManager to prevent printing
## SPEC 0 and SPEC 4
* You’ve heard about the NEPs, (NumPy enhancement Proposal),
having a NEP for something non-numpy specific was sometime
confusing. Long live the SPECs.
* We are now trying to follow SPEC 0 (aka old NEP 29) for of
support of upstream libraries.
* We also now try to follow SPEC 4 (test and publish nightly on a
centralized nightly repository). We encourage you to do so as
well in order to report breakage, and contribute to the SPEC
process !
## Python 3.12 compatibility ?
* Python 3.12 changed its tokenizer to have better support for
f-strings and allow arbitrary expression. This is a great new
feature and performance improvement in python 3.12.
* Unfortunately this means the new tokenizer does not support
incomplete or invalid Python which will break many features of
IPython. Thus compatibility of IPython with Python 3.12 is not
guarantied. It is unclear to which extent IPython is affected,
and whether we can/should try to still support magics, shell
escape (! ....), …, as well as how to do it if we can.
* In addition even if we there is technical feasibility to do so,
it is no clear we have the resources to do it. We are thus
looking for your help if you can _test_ on Python 3.12 to see
to which extent this affects users and which features are
critical.
* We are not going to pin IPython to Python <3.12 as otherwise on
install pip would downgrade/resolve to IPython 8.13, so if you
plan to update to Python 3.12 after its release, we encourage
for extra care.
- Skip potential future python312 because of the above
OBS-URL: https://build.opensuse.org/request/show/1092419
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=114
- Update to 8.13.1
* This release is significant in that it not only has a number of
bugfixes, but also drop support for Python 3.8 as per NEP 29
(PR #14023).
* Pretty reprensentation for Counter has been fixed to match the
Python one and be in decreasing order. PR #14032
* Module completion is better when jedi is disabled PR #14029.
* Improvment of %%bash magic that would get stuck PR #14019
* PR #14004 Fix a bug introduced in IPython 8.12 that crash when
inspecting some docstrings.
* PR #14010 Fix fast traceback code that was not working in some
case.
* PR #14014 Fix %page magic broken in some case.
* PR #14026, PR #14027 Tweak default shortcut with respect to
autosuggestions.
* PR #14033 add back the ability to use .get() on OInfo object
for backward compatibility with h5py (this will be
re-deprecated later, and h5py will also get a fix).
OBS-URL: https://build.opensuse.org/request/show/1083882
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=109
* PR #13957 brings updates to the Qt integration, particularly
for Qt6.
* PR #13960 fixes the %debug magic command to give access to the
local scope.
* PR #13964 fixes some crashes with the new fast traceback code.
Note that there are still some issues with the fast traceback
code, and I a, likely to fix and tweak behavior.
* PR #13973 We are slowly migrating IPython internals to use
proper type objects/dataclasses instead of dictionaries to
allow static typing checks. These are technically public API
and could lead to breakage, so please let us know if that’s
the case and I’ll mitigate.
* PR #13990, PR #13991, PR #13994 all improve keybinding and
shortcut configurability.
- Release 8.11
* Faster Traceback Highlighting
* Autoreload verbosity
* Terminal shortcuts customization
* %gui should now support PySide6. PR #13864
* Cli shortcuts can now be configured PR #13928, see above. (note
that there might be an issue with prompt_toolkit 3.0.37 and
shortcut configuration).
* Capture output should now respect ; semicolon to suppress
output. PR #13940
* Base64 encoded images (in jupyter frontend), will not have
trailing newlines. PR #13941
- Release 8.10
* bump minimum numpy to >=1.21 version following NEP29. PR #13930
* fix for compatibility with MyPy 1.0. PR #13933
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=107
* Second release of IPython in 2023, last Friday of the month, we
are back on track. This is a small release with a few
bug-fixes, and improvements, mostly with respect to terminal
shortcuts.
* The biggest improvement for 8.9 is a drastic amelioration if
the auto-suggestions sponsored by D.E. Shaw and implemented by
the more and more active contributor @krassowski.
- right accepts a single character from suggestion
- ctrl+right accepts a semantic token (macos default shortcuts
take precedence and need to be disabled to make this work)
- backspace deletes a character and resumes hinting
autosuggestions
- ctrl-left accepts suggestion and moves cursor left one
character.
- backspace deletes a character and resumes hinting
autosuggestions
- down moves to suggestion to later in history when no lines
are present below the cursors.
- up moves to suggestion from earlier in history when no lines
are present above the cursor.
* This is best described by the Gif posted by @krassowski, and in
the PR itself PR gh#ipython/ipython#13888.
* Please report any feedback in order for us to improve the user
experience. In particular we are also working on making the
shortcuts configurable.
* If you are interested into better terminal shortcut, I also
invite you to participate in issue gh#ipython/iüythpn#13879.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=105
- Update to 8.0.1
* Security fix CVE-2022-21699: change some default values in
order to prevent potential Execution with Unnecessary
Privileges.
* Almost all version of IPython looks for configuration and
profiles in current working directory. Since IPython was
developed before pip and environments existed it was used a
convenient way to load code/packages in a project dependant
way.
* In 2022, it is not necessary anymore, and can lead to confusing
behavior where for example cloning a repository and starting
IPython or loading a notebook from any Jupyter-Compatible
interface that has ipython set as a kernel can lead to code
execution.
* The current working directory is not searched anymore for
profiles or configurations files.
* Added a __patched_cves__ attribute (set of strings) to IPython
module that contain the list of fixed CVE. This is
informational only.
OBS-URL: https://build.opensuse.org/request/show/947647
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=80
- Update to 8.0.0:
- Minimum supported traitlets version if now 5+
- we now require stack_data
- Minimal Python is now 3.8
- pytest replaces nose.
- iptest/iptest3 cli entrypoints do not exists anymore.
- minimum officially support numpy version has been bumped, but
this should not have much effect on packaging.
- Backport some fixes for Python 3.10 (PR #13412)
- use full-alpha transparency on dvipng rendered LaTeX (PR #13372)
- Traceback improvements
- Autosuggestons
- Show pinfo information in ipdb using “?” and “??”
- Autoreload 3 feature
- Auto formatting with black in the CLI
- History Range Glob feature
- Don’t start a multi line cell with sunken parenthesis
- IPython shell for ipdb interact
- Automatic Vi prompt stripping
- Empty History Ranges
- Windows time-implementation: Switch to process_time
- Re-added support for XDG config directories
- Add skip-network-test.patch to skip (gh#ipython/ipython#13468).
OBS-URL: https://build.opensuse.org/request/show/946628
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=76
* IPython 7.30 fixes a couple of bugs introduce in previous
releases (in particular with respect to path handling), and
introduce a few features and improvements:
* Notably we will highlight PR #13267 “Document that %run can
execute notebooks and ipy scripts.”, which is the first commit
of Fernando Pérez since mid 2016 (IPython 5.1). If you are new
to IPython, Fernando created IPython in 2001. The other most
recent contribution of Fernando to IPython itself was May 2018,
by reviewing and merging PRs. I want to note that Fernando is
still active but mostly as a mentor and leader of the whole
Jupyter organisation, but we’re still happy to see him
contribute code !
* PR #13290 “Use sphinxify (if available) in object_inspect_mime
path” should allow richer Repr of docstrings when using
jupyterlab inspector.
* PR #13311 make the debugger use ThreadPoolExecutor for debugger
cmdloop. This should fix some issues/infinite loop, but let us
know if you come across any regressions. In particular this
fixes issues with kmaork/madbg, a remote debugger for IPython.
* Note that this is likely the ante-penultimate release of
IPython 7.x as a stable branch, as I hope to release IPython
8.0 as well as IPython 7.31 next month/early 2022.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=74
- Update to 7.29.0
* IPython 7.29 brings a couple of new functionalities to IPython
and a number of bugfixes. It is one of the largest recent
release, relatively speaking, with close to 15 Pull Requests.
* fix an issue where base64 was returned instead of bytes when
showing figures
* fix compatibility with PyQt6, PySide 6. This
may be of interest if you are running on Apple Silicon as only
qt6.2+ is natively compatible.
* fix matplotlib qtagg eventloop
* Multiple docs fixes, typos, ... etc.
* Debugger will now exit by default on SigInt
this will be useful in notebook/lab if you forgot to exit the
debugger. "Interrupt Kernel" will now exist the debugger.
* It give Pdb the ability to skip code in decorators. If
functions contain a special value names __debuggerskip__ =
True|False, the function will not be stepped into, and Pdb will
step into lower frames only if the value is set to False. The
exact behavior is still likely to have corner cases and will be
refined in subsequent releases. Feedback welcome. See the
debugger module documentation for more info. Thanks to the D.
E. Shaw group for funding this feature.
OBS-URL: https://build.opensuse.org/request/show/931190
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=73
- Update to version 7.25.0
* debugger bug fix
- Release 7.24
* Fix an issue where %recall would both succeeded and print an
error message it failed.
* Drop support for NumPy 1.16 – practically has no effect beyond
indicating in package metadata that we do not support it.
* Debugger improvements
- Release 7.23
* We have a new dependency: matplotlib-inline, which try to
extract matplotlib inline backend specific behavior. It is
available on PyPI and conda-forge thus should not be a problem
to upgrade to this version. If you are a package maintainer
that might be an extra dependency to package first.
OBS-URL: https://build.opensuse.org/request/show/902860
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=69