ipython 9.12.0__tar.gz → 9.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ipython-9.12.0 → ipython-9.13.0}/IPython/__init__.py +2 -3
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/completer.py +5 -1
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/debugger.py +3 -3
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/guarded_eval.py +4 -1
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/inputtransformer2.py +25 -2
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/interactiveshell.py +2 -1
- ipython-9.13.0/IPython/core/kitty.py +73 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/release.py +1 -1
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/tips.py +6 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/ultratb.py +9 -3
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/interactiveshell.py +10 -1
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/PyColorize.py +5 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_sysinfo.py +1 -1
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/capture.py +6 -1
- {ipython-9.12.0/ipython.egg-info → ipython-9.13.0}/PKG-INFO +4 -2
- {ipython-9.12.0 → ipython-9.13.0}/README.rst +4 -1
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/details.rst +2 -1
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version9.rst +113 -54
- {ipython-9.12.0 → ipython-9.13.0/ipython.egg-info}/PKG-INFO +4 -2
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/SOURCES.txt +1 -0
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/requires.txt +4 -0
- {ipython-9.12.0 → ipython-9.13.0}/pyproject.toml +8 -2
- {ipython-9.12.0 → ipython-9.13.0}/setup.py +34 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_capture.py +11 -1
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_guarded_eval.py +4 -1
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_zzz_autoreload.py +2 -0
- {ipython-9.12.0 → ipython-9.13.0}/.flake8 +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/.mailmap +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/.pre-commit-config.yaml +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/COPYING.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/__main__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/alias.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/application.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/async_helpers.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/autocall.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/builtin_trap.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/compilerop.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/completerlib.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/crashhandler.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/debugger_backport.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/display.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/display_functions.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/display_trap.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/displayhook.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/displaypub.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/doctb.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/error.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/events.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/extensions.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/formatters.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/getipython.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/history.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/historyapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/hooks.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/latex_symbols.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/logger.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/macro.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magic_arguments.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/ast_mod.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/auto.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/basic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/code.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/config.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/display.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/execution.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/extension.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/history.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/logging.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/namespace.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/osm.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/packaging.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/pylab.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/magics/script.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/oinspect.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/page.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/payload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/payloadpage.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/prefilter.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/profile/README_STARTUP +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/profileapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/profiledir.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/pylabtools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/shellapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/splitinput.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/tbtools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/core/usage.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/display.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/autoreload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/deduperreload/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/deduperreload/deduperreload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/deduperreload/deduperreload_patching.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/storemagic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/extensions/tests/test_deduperreload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/external/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/external/pickleshare.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/external/qt_for_kernel.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/external/qt_loaders.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/backgroundjobs.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/clipboard.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/deepreload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/demo.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/display.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/editorhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/guisupport.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/latextools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/lexers.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/lib/pretty.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/paths.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/py.typed +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/sphinxext/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/sphinxext/custom_doctests.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/sphinxext/ipython_directive.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/debugger.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/embed.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/ipapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/magics.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/prompts.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/glut.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/pyglet.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/pt_inputhooks/wx.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/ptutils.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/shortcuts/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/terminal/shortcuts/filters.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/globalipapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/ipunittest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/Makefile +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/dtexample.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/pytest_ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/setup.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/simple.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/simplevars.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/test_combo.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/test_example.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/plugin/test_refs.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/skipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/testing/tools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_cli.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_common.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_emscripten.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_posix.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_win32.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/_process_win32_controller.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/coloransi.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/contexts.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/data.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/dir2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/docs.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/encoding.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/eventful.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/frame.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/generics.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/importstring.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/io.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/ipstruct.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/jsonutil.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/log.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/module_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/openpy.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/path.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/process.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/py3compat.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/sentinel.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/strdispatch.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/sysinfo.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/syspathcontext.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/tempdir.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/terminal.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/text.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/timing.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/tokenutil.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/IPython/utils/wildcard.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/LICENSE +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/MANIFEST.in +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/_build_meta.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/Makefile +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/README.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/autogen_api.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/autogen_config.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/autogen_magics.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/autogen_shortcuts.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/make.cmd +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/man/ipython.1 +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/requirements.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/2.0/running-crop.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/2.0/running.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/2.0/treeview.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/2.0/user-interface.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/2.0/widgets.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/autosuggest.gif +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ms_visual_studio.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/notebook_specgram.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/ptshell_features.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/qtconsole.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_images/unicode_completion.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_static/favicon.ico +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_static/logo.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_static/theme_overrides.css +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_templates/breadcrumbs.html +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/_templates/notebook_redirect.html +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/about/history.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/about/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/about/license_and_copyright.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/api/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/conf.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/callbacks.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/custommagics.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/eventloops.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/extensions/autoreload.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/extensions/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/extensions/storemagic.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/inputtransforms.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/integrating.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/intro.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/options/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/shell_mimerenderer.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/config/shortcuts/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/coredev/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/config.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/execution.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/figs/other_kernels.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/figs/other_kernels.svg +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/how_ipython_works.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/inputhook_app.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/kernels.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/messaging.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/development/wrapperkernels.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/install/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/install/install.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/install/kernel_install.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/autoawait.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/magics.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/plotting.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/reference.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/shell.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/tips.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/interactive/tutorial.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/links.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/overview.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/parallel/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/sphinx.toml +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/sphinxext.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/development.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/pr/README.md +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.10.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.11.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.12.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.13.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.8.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version0.9.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version1.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version2.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version3.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version4.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version5.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version6.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version7.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/source/whatsnew/version8.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/sphinxext/apigen.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/sphinxext/configtraits.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/docs/sphinxext/magics.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/Embedding/embed_class_long.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/Embedding/embed_class_short.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/Embedding/embed_function.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/Embedding/start_ipython_config.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/example-demo.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/IPython Kernel/ipython.desktop +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/auto_suggest_llm.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/utils/cwd_prompt.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/utils/list_pyfiles.ipy +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/examples/utils/list_subdirs.ipy +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/dependency_links.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/entry_points.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/not-zip-safe +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/ipython.egg-info/top_level.txt +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/long_description.rst +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/scripts/ipython.ico +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/scripts/ipython_nb.ico +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/setup.cfg +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/setupbase.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/2x2.jpg +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/2x2.png +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/bad_all.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/conftest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/fake_ext_dir/daft_extension.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/fake_llm.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/nonascii.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/nonascii2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/print_argv.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/refbug.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/simpleerr.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/tclass.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test.wav +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_alias.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_application.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_async_helpers.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_autocall.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_backgroundjobs.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_clipboard.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_compilerop.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_completer.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_completerlib.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_cve.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_debug_magic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_debugger.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_decorators_2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_deepreload.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_dir2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_display.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_display_2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_displayhook.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_editorhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_embed.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_events.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_exceptiongroup_tb.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_extension.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_formatters.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_handlers.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_help.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_history.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_hooks.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_imports.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_importstring.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_inputtransformer2.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_inputtransformer2_line.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_interactiveshell.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_interactivshell.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_io.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_iplib.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_ipunittest.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_latextools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_logger.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_magic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_magic_arguments.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_magic_terminal.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_module_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_oinspect.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_openpy.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_page.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_path.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_prefilter.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_pretty.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_process.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_profile.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_pt_inputhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_pycolorize.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_pylabtools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_qt_loaders.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_run.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_shellapp.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_shortcuts.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_splitinput.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_storemagic.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_sysinfo.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_tempdir.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_text.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_tips.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_tokenutil.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_tools.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_ultratb.py +0 -0
- {ipython-9.12.0 → ipython-9.13.0}/tests/test_wildcard.py +0 -0
|
@@ -27,11 +27,10 @@ import warnings
|
|
|
27
27
|
#-----------------------------------------------------------------------------
|
|
28
28
|
|
|
29
29
|
# Don't forget to also update setup.py when this changes!
|
|
30
|
-
if sys.version_info < (3,
|
|
30
|
+
if sys.version_info < (3, 11):
|
|
31
31
|
raise ImportError(
|
|
32
32
|
"""
|
|
33
|
-
IPython 9.x supports Python 3.
|
|
34
|
-
IPython 8.31+ supports Python 3.11 and above, following SPEC0
|
|
33
|
+
IPython 9.x supports Python 3.11 and above, following SPEC0
|
|
35
34
|
IPython 8.19+ supports Python 3.10 and above, following SPEC0.
|
|
36
35
|
IPython 8.13+ supports Python 3.9 and above, following NEP 29.
|
|
37
36
|
When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
|
|
@@ -243,7 +243,11 @@ import __main__
|
|
|
243
243
|
|
|
244
244
|
from typing import cast
|
|
245
245
|
|
|
246
|
-
|
|
246
|
+
if sys.version_info < (3, 12):
|
|
247
|
+
from typing_extensions import TypedDict, Protocol
|
|
248
|
+
from typing import NotRequired, TypeAlias, TypeGuard
|
|
249
|
+
else:
|
|
250
|
+
from typing import TypedDict, NotRequired, Protocol, TypeAlias, TypeGuard
|
|
247
251
|
|
|
248
252
|
|
|
249
253
|
# skip module docstests
|
|
@@ -874,9 +874,9 @@ class Pdb(OldPdb):
|
|
|
874
874
|
try:
|
|
875
875
|
x = eval(arg, {}, {})
|
|
876
876
|
if type(x) == type(()):
|
|
877
|
-
first, last = x
|
|
878
|
-
first = int(first)
|
|
879
|
-
last = int(last)
|
|
877
|
+
first, last = x # type: ignore[misc]
|
|
878
|
+
first = int(first) # type: ignore[call-overload]
|
|
879
|
+
last = int(last) # type: ignore[call-overload]
|
|
880
880
|
if last < first:
|
|
881
881
|
# Assume it's a count
|
|
882
882
|
last = first + last
|
|
@@ -32,7 +32,10 @@ from IPython.utils.decorators import undoc
|
|
|
32
32
|
import types
|
|
33
33
|
from typing import Self, LiteralString, get_type_hints
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
if sys.version_info < (3, 12):
|
|
36
|
+
from typing_extensions import TypeAliasType
|
|
37
|
+
else:
|
|
38
|
+
from typing import TypeAliasType
|
|
36
39
|
|
|
37
40
|
|
|
38
41
|
@undoc
|
|
@@ -356,8 +356,24 @@ class MagicAssign(TokenTransformBase):
|
|
|
356
356
|
class SystemAssign(TokenTransformBase):
|
|
357
357
|
"""Transformer for assignments from system commands (a = !foo)"""
|
|
358
358
|
@classmethod
|
|
359
|
-
def
|
|
360
|
-
|
|
359
|
+
def find_pre_312(cls, tokens_by_line):
|
|
360
|
+
for line in tokens_by_line:
|
|
361
|
+
assign_ix = _find_assign_op(line)
|
|
362
|
+
if (assign_ix is not None) \
|
|
363
|
+
and not line[assign_ix].line.strip().startswith('=') \
|
|
364
|
+
and (len(line) >= assign_ix + 2) \
|
|
365
|
+
and (line[assign_ix + 1].type == tokenize.ERRORTOKEN):
|
|
366
|
+
ix = assign_ix + 1
|
|
367
|
+
|
|
368
|
+
while ix < len(line) and line[ix].type == tokenize.ERRORTOKEN:
|
|
369
|
+
if line[ix].string == '!':
|
|
370
|
+
return cls(line[ix].start)
|
|
371
|
+
elif not line[ix].string.isspace():
|
|
372
|
+
break
|
|
373
|
+
ix += 1
|
|
374
|
+
|
|
375
|
+
@classmethod
|
|
376
|
+
def find_post_312(cls, tokens_by_line):
|
|
361
377
|
for line in tokens_by_line:
|
|
362
378
|
assign_ix = _find_assign_op(line)
|
|
363
379
|
if (
|
|
@@ -369,6 +385,13 @@ class SystemAssign(TokenTransformBase):
|
|
|
369
385
|
):
|
|
370
386
|
return cls(line[assign_ix + 1].start)
|
|
371
387
|
|
|
388
|
+
@classmethod
|
|
389
|
+
def find(cls, tokens_by_line):
|
|
390
|
+
"""Find the first system assignment (a = !foo) in the cell."""
|
|
391
|
+
if sys.version_info < (3, 12):
|
|
392
|
+
return cls.find_pre_312(tokens_by_line)
|
|
393
|
+
return cls.find_post_312(tokens_by_line)
|
|
394
|
+
|
|
372
395
|
def transform(self, lines: List[str]):
|
|
373
396
|
"""Transform a system assignment found by the ``find()`` classmethod.
|
|
374
397
|
"""
|
|
@@ -2140,7 +2140,8 @@ class InteractiveShell(SingletonConfigurable):
|
|
|
2140
2140
|
sys.last_type = etype
|
|
2141
2141
|
sys.last_value = value
|
|
2142
2142
|
sys.last_traceback = tb
|
|
2143
|
-
sys.
|
|
2143
|
+
if sys.version_info >= (3, 12):
|
|
2144
|
+
sys.last_exc = value
|
|
2144
2145
|
|
|
2145
2146
|
return etype, value, tb
|
|
2146
2147
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Implements https://sw.kovidgoyal.net/kitty/graphics-protocol/
|
|
2
|
+
|
|
3
|
+
from base64 import b64encode, b64decode
|
|
4
|
+
import sys
|
|
5
|
+
from typing import Union
|
|
6
|
+
|
|
7
|
+
def _supports_kitty_graphics() -> bool:
|
|
8
|
+
import platform
|
|
9
|
+
|
|
10
|
+
if platform.system() not in ("Darwin", "Linux"):
|
|
11
|
+
return False
|
|
12
|
+
|
|
13
|
+
if not sys.stdout.isatty():
|
|
14
|
+
return False
|
|
15
|
+
# Hardcoding process names instead of using
|
|
16
|
+
# https://sw.kovidgoyal.net/kitty/graphics-protocol/#querying-support-and-available-transmission-mediums
|
|
17
|
+
# to avoid startup slowdown
|
|
18
|
+
supported_terminals = {
|
|
19
|
+
"ghostty",
|
|
20
|
+
"iTerm2",
|
|
21
|
+
"kitty",
|
|
22
|
+
"konsole",
|
|
23
|
+
"warp",
|
|
24
|
+
"wayst",
|
|
25
|
+
"wezterm-gui",
|
|
26
|
+
}
|
|
27
|
+
import psutil
|
|
28
|
+
|
|
29
|
+
process = psutil.Process()
|
|
30
|
+
while process := process.parent():
|
|
31
|
+
if process.name() in supported_terminals:
|
|
32
|
+
return True
|
|
33
|
+
return False
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
supports_kitty_graphics = _supports_kitty_graphics()
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def png_to_kitty_ansi(png: bytes) -> str:
|
|
40
|
+
if not png.startswith(b"\x89PNG\r\n\x1a\n"):
|
|
41
|
+
raise ValueError
|
|
42
|
+
# This simplicity resembles
|
|
43
|
+
# https://sw.kovidgoyal.net/kitty/graphics-protocol/#a-minimal-example
|
|
44
|
+
# but if we need tmux support, we can switch to Unicode like
|
|
45
|
+
# https://github.com/hzeller/timg/blob/main/src/kitty-canvas.cc
|
|
46
|
+
result = ["\033_Ga=T,f=100,", "m=1;"]
|
|
47
|
+
encoded = b64encode(png)
|
|
48
|
+
for i in range(0, len(encoded), 4096):
|
|
49
|
+
result.append(encoded[i : i + 4096].decode("ascii"))
|
|
50
|
+
result.append("\033\\")
|
|
51
|
+
result.append("\033_G")
|
|
52
|
+
result.append("m=1;")
|
|
53
|
+
del result[-2:]
|
|
54
|
+
result[-3] = "m=0;"
|
|
55
|
+
return "".join(result)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def kitty_png_render(png: Union[bytes, str], _md_dict: object) -> None:
|
|
59
|
+
if isinstance(png, str):
|
|
60
|
+
png = png_to_kitty_ansi(b64decode(png))
|
|
61
|
+
else:
|
|
62
|
+
png = png_to_kitty_ansi(png)
|
|
63
|
+
print(png)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
display_formatter_default_active_types = [
|
|
67
|
+
"text/plain",
|
|
68
|
+
*(["image/png"] if supports_kitty_graphics else []),
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
terminal_default_mime_renderers = {
|
|
72
|
+
"image/png": kitty_png_render,
|
|
73
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
import os
|
|
3
|
+
import sys
|
|
3
4
|
from random import choice
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
@@ -107,6 +108,11 @@ else:
|
|
|
107
108
|
]
|
|
108
109
|
)
|
|
109
110
|
|
|
111
|
+
if sys.version_info < (3, 12):
|
|
112
|
+
_tips["random"].append(
|
|
113
|
+
"IPython support for Python versions outside of SPEC-0 is funded by the D.E. Shaw group: https://deshaw.com"
|
|
114
|
+
)
|
|
115
|
+
|
|
110
116
|
# Check if argcomplete is installed and add tip
|
|
111
117
|
try:
|
|
112
118
|
import argcomplete
|
|
@@ -817,8 +817,10 @@ class VerboseTB(TBTools):
|
|
|
817
817
|
after = context // 2
|
|
818
818
|
before = context - after
|
|
819
819
|
if self.has_colors:
|
|
820
|
-
|
|
821
|
-
|
|
820
|
+
theme = theme_table[self._theme_name]
|
|
821
|
+
base_style = theme.as_pygments_style()
|
|
822
|
+
tb_highlight = theme.extra_style.get(Token.TbHighlight, self.tb_highlight)
|
|
823
|
+
style = stack_data.style_with_executing_node(base_style, tb_highlight)
|
|
822
824
|
formatter = Terminal256Formatter(style=style)
|
|
823
825
|
else:
|
|
824
826
|
formatter = None
|
|
@@ -994,7 +996,11 @@ class VerboseTB(TBTools):
|
|
|
994
996
|
self.pdb.botframe = etb.tb_frame
|
|
995
997
|
# last_value should be deprecated, but last-exc sometimme not set
|
|
996
998
|
# please check why later and remove the getattr.
|
|
997
|
-
exc =
|
|
999
|
+
exc = (
|
|
1000
|
+
sys.last_value
|
|
1001
|
+
if sys.version_info < (3, 12)
|
|
1002
|
+
else getattr(sys, "last_exc", sys.last_value)
|
|
1003
|
+
) # type: ignore[attr-defined]
|
|
998
1004
|
if exc:
|
|
999
1005
|
self.pdb.interaction(None, exc)
|
|
1000
1006
|
else:
|
|
@@ -8,6 +8,10 @@ from typing import Union as UnionType, Optional
|
|
|
8
8
|
|
|
9
9
|
from IPython.core.async_helpers import get_asyncio_loop
|
|
10
10
|
from IPython.core.interactiveshell import InteractiveShell, InteractiveShellABC
|
|
11
|
+
from IPython.core.kitty import (
|
|
12
|
+
display_formatter_default_active_types,
|
|
13
|
+
terminal_default_mime_renderers,
|
|
14
|
+
)
|
|
11
15
|
from IPython.utils.py3compat import input
|
|
12
16
|
from IPython.utils.PyColorize import theme_table
|
|
13
17
|
from IPython.utils.terminal import toggle_set_term_title, set_term_title, restore_term_title
|
|
@@ -771,7 +775,12 @@ class TerminalInteractiveShell(InteractiveShell):
|
|
|
771
775
|
"DisplayFormatter" in config
|
|
772
776
|
and "active_types" in config["DisplayFormatter"]
|
|
773
777
|
):
|
|
774
|
-
self.display_formatter.active_types =
|
|
778
|
+
self.display_formatter.active_types = display_formatter_default_active_types
|
|
779
|
+
if not (
|
|
780
|
+
"TerminalInteractiveShell" in config
|
|
781
|
+
and "mime_renderers" in config["TerminalInteractiveShell"]
|
|
782
|
+
):
|
|
783
|
+
self.mime_renderers = terminal_default_mime_renderers
|
|
775
784
|
|
|
776
785
|
def init_prompt_toolkit_cli(self):
|
|
777
786
|
if self.simple_prompt:
|
|
@@ -138,6 +138,7 @@ linux_theme = Theme(
|
|
|
138
138
|
Token.PromptNum: "ansigreen bold",
|
|
139
139
|
Token.OutPrompt: "ansibrightred",
|
|
140
140
|
Token.OutPromptNum: "ansired bold",
|
|
141
|
+
Token.TbHighlight: "ansiblack bg:ansiyellow",
|
|
141
142
|
},
|
|
142
143
|
)
|
|
143
144
|
|
|
@@ -170,6 +171,7 @@ neutral_pygments_equiv = {
|
|
|
170
171
|
Token.Name.Variable.Magic: "ansiblue",
|
|
171
172
|
Token.Prompt: "ansigreen",
|
|
172
173
|
Token.OutPrompt: "ansired",
|
|
174
|
+
Token.TbHighlight: "ansiblack bg:ansiyellow",
|
|
173
175
|
}
|
|
174
176
|
|
|
175
177
|
|
|
@@ -227,6 +229,7 @@ lightbg_theme = Theme(
|
|
|
227
229
|
Token.PromptNum: "ansiblue bold",
|
|
228
230
|
Token.OutPrompt: "ansibrightred",
|
|
229
231
|
Token.OutPromptNum: "ansired bold",
|
|
232
|
+
Token.TbHighlight: "ansired bg:ansiyellow",
|
|
230
233
|
},
|
|
231
234
|
)
|
|
232
235
|
|
|
@@ -268,6 +271,7 @@ pride_theme = Theme(
|
|
|
268
271
|
Token.PromptNum: "ansiblue bold",
|
|
269
272
|
Token.OutPrompt: "ansibrightred",
|
|
270
273
|
Token.OutPromptNum: "ansired bold",
|
|
274
|
+
Token.TbHighlight: f"bg:{PRIDE_YELLOW}",
|
|
271
275
|
},
|
|
272
276
|
symbols={"arrow_body": "\u2500", "arrow_head": "\u25b6", "top_line": "\u2500"},
|
|
273
277
|
)
|
|
@@ -368,6 +372,7 @@ gruvbox_dark_theme = Theme(
|
|
|
368
372
|
Token.PromptNum: f"{GRUVBOX_PROMPT_NUM} bold",
|
|
369
373
|
Token.OutPrompt: GRUVBOX_OUT_PROMPT,
|
|
370
374
|
Token.OutPromptNum: f"{GRUVBOX_OUT_PROMPT_NUM} bold",
|
|
375
|
+
Token.TbHighlight: f"bg:{GRUVBOX_TOPLINE}",
|
|
371
376
|
},
|
|
372
377
|
symbols={"arrow_body": "\u2500", "arrow_head": "\u25b6", "top_line": "\u2500"},
|
|
373
378
|
)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# GENERATED BY setup.py
|
|
2
|
-
commit = "
|
|
2
|
+
commit = "7c1654d"
|
|
@@ -74,7 +74,12 @@ class CapturedIO:
|
|
|
74
74
|
above in the same order, and can be invoked simply via ``c()``.
|
|
75
75
|
"""
|
|
76
76
|
|
|
77
|
-
def __init__(
|
|
77
|
+
def __init__(
|
|
78
|
+
self,
|
|
79
|
+
stdout: Optional[StringIO],
|
|
80
|
+
stderr: Optional[StringIO],
|
|
81
|
+
outputs: Optional[List[Any]] = None,
|
|
82
|
+
):
|
|
78
83
|
self._stdout = stdout
|
|
79
84
|
self._stderr = stderr
|
|
80
85
|
if outputs is None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ipython
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.13.0
|
|
4
4
|
Summary: IPython: Productive Interactive Computing
|
|
5
5
|
Author: The IPython Development Team
|
|
6
6
|
Author-email: ipython-dev@python.org
|
|
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python
|
|
|
22
22
|
Classifier: Programming Language :: Python :: 3
|
|
23
23
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
24
24
|
Classifier: Topic :: System :: Shells
|
|
25
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
26
|
Description-Content-Type: text/x-rst
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
License-File: COPYING.rst
|
|
@@ -33,9 +33,11 @@ Requires-Dist: jedi>=0.18.2
|
|
|
33
33
|
Requires-Dist: matplotlib-inline>=0.1.6
|
|
34
34
|
Requires-Dist: pexpect>4.6; sys_platform != "win32" and sys_platform != "emscripten"
|
|
35
35
|
Requires-Dist: prompt_toolkit<3.1.0,>=3.0.41
|
|
36
|
+
Requires-Dist: psutil>=7
|
|
36
37
|
Requires-Dist: pygments>=2.14.0
|
|
37
38
|
Requires-Dist: stack_data>=0.6.0
|
|
38
39
|
Requires-Dist: traitlets>=5.13.0
|
|
40
|
+
Requires-Dist: typing_extensions>=4.6; python_version < "3.12"
|
|
39
41
|
Provides-Extra: black
|
|
40
42
|
Requires-Dist: black; extra == "black"
|
|
41
43
|
Provides-Extra: doc
|
|
@@ -31,7 +31,10 @@ IPython (Interactive Python) is a command shell for interactive computing in mul
|
|
|
31
31
|
|
|
32
32
|
**Python Support**
|
|
33
33
|
|
|
34
|
-
Starting after IPython 8.16, we
|
|
34
|
+
Starting after IPython 8.16, we follow `SPEC-0 <https://scientific-python.org/specs/spec-0000/>`_
|
|
35
|
+
for determining the minimum supported Python version. Python 3.11 support is
|
|
36
|
+
additionally maintained thanks to funding from the
|
|
37
|
+
`D. E. Shaw group <https://deshaw.com/>`_.
|
|
35
38
|
|
|
36
39
|
IPython requires Python 3.11 or newer.
|
|
37
40
|
|