ipython 9.12.0__tar.gz → 9.14.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.14.0}/IPython/__init__.py +2 -3
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/completer.py +5 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/debugger.py +9 -3
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/guarded_eval.py +4 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/history.py +15 -4
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/inputtransformer2.py +25 -2
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/interactiveshell.py +11 -10
- ipython-9.14.0/IPython/core/kitty.py +74 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/oinspect.py +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/release.py +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/tips.py +6 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/ultratb.py +9 -3
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/usage.py +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/interactiveshell.py +18 -9
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/PyColorize.py +5 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_sysinfo.py +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/capture.py +6 -1
- {ipython-9.12.0/ipython.egg-info → ipython-9.14.0}/PKG-INFO +4 -2
- {ipython-9.12.0 → ipython-9.14.0}/README.rst +4 -1
- {ipython-9.12.0 → ipython-9.14.0}/docs/requirements.txt +1 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_templates/breadcrumbs.html +4 -2
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/details.rst +4 -3
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/autoawait.rst +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.11.rst +1 -1
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version9.rst +183 -54
- {ipython-9.12.0 → ipython-9.14.0/ipython.egg-info}/PKG-INFO +4 -2
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/SOURCES.txt +2 -0
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/requires.txt +6 -0
- {ipython-9.12.0 → ipython-9.14.0}/pyproject.toml +8 -2
- {ipython-9.12.0 → ipython-9.14.0}/setup.py +34 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_capture.py +11 -1
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_debugger.py +13 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_guarded_eval.py +4 -1
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_history.py +67 -0
- ipython-9.14.0/tests/test_kitty.py +50 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_zzz_autoreload.py +2 -0
- {ipython-9.12.0 → ipython-9.14.0}/.flake8 +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/.mailmap +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/.pre-commit-config.yaml +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/COPYING.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/__main__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/alias.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/application.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/async_helpers.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/autocall.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/builtin_trap.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/compilerop.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/completerlib.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/crashhandler.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/debugger_backport.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/display.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/display_functions.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/display_trap.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/displayhook.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/displaypub.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/doctb.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/error.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/events.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/extensions.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/formatters.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/getipython.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/historyapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/hooks.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/latex_symbols.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/logger.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/macro.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magic_arguments.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/ast_mod.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/auto.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/basic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/code.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/config.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/display.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/execution.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/extension.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/history.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/logging.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/namespace.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/osm.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/packaging.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/pylab.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/magics/script.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/page.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/payload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/payloadpage.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/prefilter.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/profile/README_STARTUP +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/profileapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/profiledir.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/pylabtools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/shellapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/splitinput.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/core/tbtools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/display.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/autoreload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/deduperreload/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload_patching.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/storemagic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/extensions/tests/test_deduperreload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/external/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/external/pickleshare.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/external/qt_for_kernel.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/external/qt_loaders.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/backgroundjobs.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/clipboard.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/deepreload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/demo.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/display.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/editorhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/guisupport.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/latextools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/lexers.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/lib/pretty.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/paths.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/py.typed +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/sphinxext/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/sphinxext/custom_doctests.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/sphinxext/ipython_directive.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/debugger.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/embed.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/ipapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/magics.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/prompts.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/glut.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/pyglet.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/wx.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/ptutils.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/shortcuts/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/terminal/shortcuts/filters.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/globalipapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/ipunittest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/Makefile +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/dtexample.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/pytest_ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/setup.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/simple.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/simplevars.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/test_combo.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/test_example.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/plugin/test_refs.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/skipdoctest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/testing/tools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_cli.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_common.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_emscripten.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_posix.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_win32.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/_process_win32_controller.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/coloransi.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/contexts.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/data.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/dir2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/docs.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/encoding.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/eventful.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/frame.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/generics.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/importstring.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/io.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/ipstruct.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/jsonutil.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/log.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/module_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/openpy.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/path.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/process.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/py3compat.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/sentinel.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/strdispatch.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/sysinfo.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/syspathcontext.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/tempdir.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/terminal.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/text.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/timing.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/tokenutil.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/IPython/utils/wildcard.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/LICENSE +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/MANIFEST.in +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/_build_meta.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/Makefile +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/README.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/autogen_api.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/autogen_config.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/autogen_magics.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/autogen_shortcuts.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/make.cmd +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/man/ipython.1 +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/2.0/running-crop.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/2.0/running.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/2.0/treeview.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/2.0/user-interface.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/2.0/widgets.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/autosuggest.gif +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ms_visual_studio.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/notebook_specgram.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/ptshell_features.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/qtconsole.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_images/unicode_completion.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_static/favicon.ico +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_static/logo.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_static/theme_overrides.css +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/_templates/notebook_redirect.html +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/about/history.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/about/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/about/license_and_copyright.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/api/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/conf.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/callbacks.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/custommagics.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/eventloops.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/extensions/autoreload.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/extensions/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/extensions/storemagic.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/inputtransforms.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/integrating.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/intro.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/options/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/shell_mimerenderer.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/config/shortcuts/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/coredev/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/config.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/execution.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.svg +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/how_ipython_works.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/inputhook_app.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/kernels.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/messaging.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/development/wrapperkernels.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/install/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/install/install.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/install/kernel_install.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/magics.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/plotting.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/reference.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/shell.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/tips.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/interactive/tutorial.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/links.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/overview.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/parallel/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/sphinx.toml +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/sphinxext.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/development.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/index.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/pr/README.md +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.10.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.12.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.13.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.8.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version0.9.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version1.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version2.0.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version3.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version4.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version5.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version6.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version7.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/source/whatsnew/version8.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/sphinxext/apigen.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/sphinxext/configtraits.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/docs/sphinxext/magics.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/Embedding/embed_class_long.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/Embedding/embed_class_short.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/Embedding/embed_function.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/Embedding/start_ipython_config.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/example-demo.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/IPython Kernel/ipython.desktop +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/auto_suggest_llm.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/utils/cwd_prompt.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/utils/list_pyfiles.ipy +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/examples/utils/list_subdirs.ipy +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/dependency_links.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/entry_points.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/not-zip-safe +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/ipython.egg-info/top_level.txt +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/long_description.rst +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/scripts/ipython.ico +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/scripts/ipython_nb.ico +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/setup.cfg +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/setupbase.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/2x2.jpg +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/2x2.png +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/__init__.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/bad_all.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/conftest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/fake_ext_dir/daft_extension.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/fake_llm.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/nonascii.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/nonascii2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/print_argv.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/refbug.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/simpleerr.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/tclass.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test.wav +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_alias.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_application.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_async_helpers.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_autocall.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_backgroundjobs.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_clipboard.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_compilerop.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_completer.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_completerlib.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_cve.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_debug_magic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_decorators.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_decorators_2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_deepreload.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_dir2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_display.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_display_2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_displayhook.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_editorhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_embed.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_events.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_exceptiongroup_tb.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_extension.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_formatters.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_handlers.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_help.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_hooks.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_imports.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_importstring.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_inputtransformer2.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_inputtransformer2_line.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_interactiveshell.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_interactivshell.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_io.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_iplib.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_ipunittest.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_latextools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_logger.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_magic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_magic_arguments.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_magic_terminal.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_module_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_oinspect.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_openpy.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_page.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_path.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_paths.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_prefilter.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_pretty.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_process.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_profile.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_pt_inputhooks.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_pycolorize.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_pylabtools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_qt_loaders.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_run.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_shellapp.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_shortcuts.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_splitinput.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_storemagic.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_sysinfo.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_tempdir.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_text.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_tips.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_tokenutil.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_tools.py +0 -0
- {ipython-9.12.0 → ipython-9.14.0}/tests/test_ultratb.py +0 -0
- {ipython-9.12.0 → ipython-9.14.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
|
|
@@ -515,6 +515,12 @@ class Pdb(OldPdb):
|
|
|
515
515
|
else:
|
|
516
516
|
self.error("No exception with that number")
|
|
517
517
|
|
|
518
|
+
def do_exception(self, arg):
|
|
519
|
+
"""exception [number]
|
|
520
|
+
Alias for the ``exceptions`` command.
|
|
521
|
+
"""
|
|
522
|
+
return self.do_exceptions(arg)
|
|
523
|
+
|
|
518
524
|
def interaction(self, frame, tb_or_exc):
|
|
519
525
|
try:
|
|
520
526
|
if CHAIN_EXCEPTIONS:
|
|
@@ -874,9 +880,9 @@ class Pdb(OldPdb):
|
|
|
874
880
|
try:
|
|
875
881
|
x = eval(arg, {}, {})
|
|
876
882
|
if type(x) == type(()):
|
|
877
|
-
first, last = x
|
|
878
|
-
first = int(first)
|
|
879
|
-
last = int(last)
|
|
883
|
+
first, last = x # type: ignore[misc]
|
|
884
|
+
first = int(first) # type: ignore[call-overload]
|
|
885
|
+
last = int(last) # type: ignore[call-overload]
|
|
880
886
|
if last < first:
|
|
881
887
|
# Assume it's a count
|
|
882
888
|
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
|
|
@@ -47,7 +47,7 @@ from weakref import ref, WeakSet
|
|
|
47
47
|
|
|
48
48
|
if TYPE_CHECKING:
|
|
49
49
|
from IPython.core.interactiveshell import InteractiveShell
|
|
50
|
-
from
|
|
50
|
+
from traitlets.config import Config as Configuration
|
|
51
51
|
|
|
52
52
|
try:
|
|
53
53
|
from sqlite3 import DatabaseError, OperationalError
|
|
@@ -696,7 +696,7 @@ class HistoryManager(HistoryAccessor):
|
|
|
696
696
|
self.hist_file,
|
|
697
697
|
exc_info=True,
|
|
698
698
|
)
|
|
699
|
-
self.
|
|
699
|
+
self._switch_to_memory_history()
|
|
700
700
|
|
|
701
701
|
self.using_thread = False
|
|
702
702
|
if self.enabled and self.hist_file != ":memory:":
|
|
@@ -708,7 +708,8 @@ class HistoryManager(HistoryAccessor):
|
|
|
708
708
|
"Failed to start history saving thread. History will not be saved.",
|
|
709
709
|
exc_info=True,
|
|
710
710
|
)
|
|
711
|
-
self.
|
|
711
|
+
self._switch_to_memory_history()
|
|
712
|
+
self.save_thread = None
|
|
712
713
|
else:
|
|
713
714
|
self.using_thread = True
|
|
714
715
|
self._instances.add(self)
|
|
@@ -717,6 +718,16 @@ class HistoryManager(HistoryAccessor):
|
|
|
717
718
|
HistoryManager._max_inst,
|
|
718
719
|
)
|
|
719
720
|
|
|
721
|
+
def _switch_to_memory_history(self) -> None:
|
|
722
|
+
"""Switch history storage to an in-memory SQLite database."""
|
|
723
|
+
try:
|
|
724
|
+
self.db.close()
|
|
725
|
+
except Exception:
|
|
726
|
+
pass
|
|
727
|
+
self.hist_file = ":memory:"
|
|
728
|
+
self.init_db()
|
|
729
|
+
self.new_session()
|
|
730
|
+
|
|
720
731
|
def __del__(self) -> None:
|
|
721
732
|
if self.save_thread is not None:
|
|
722
733
|
self.save_thread.stop()
|
|
@@ -1176,7 +1187,7 @@ class HistorySavingThread(threading.Thread):
|
|
|
1176
1187
|
|
|
1177
1188
|
self.save_flag.set()
|
|
1178
1189
|
self._stopped = True
|
|
1179
|
-
if self != threading.current_thread():
|
|
1190
|
+
if self.ident is not None and self != threading.current_thread():
|
|
1180
1191
|
self.join()
|
|
1181
1192
|
|
|
1182
1193
|
def __del__(self) -> None:
|
|
@@ -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
|
"""
|
|
@@ -1024,19 +1024,19 @@ class InteractiveShell(SingletonConfigurable):
|
|
|
1024
1024
|
|
|
1025
1025
|
@property
|
|
1026
1026
|
def banner(self):
|
|
1027
|
-
|
|
1027
|
+
banner = self.banner1
|
|
1028
|
+
# Only use SOURCE_DATE_EPOCH if the user hasn't set a custom banner (default starts with "Python")
|
|
1029
|
+
if banner is self.banner1 and (when := os.environ.get("SOURCE_DATE_EPOCH", None)) is not None:
|
|
1028
1030
|
from datetime import datetime
|
|
1029
|
-
|
|
1030
1031
|
date = datetime.fromtimestamp(int(when))
|
|
1031
|
-
|
|
1032
|
+
banner = textwrap.dedent(
|
|
1032
1033
|
f"""
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1034
|
+
Python 3.y.z | Packaged with love | (main, {date.strftime("%A, %d %B %Y")}) [Compiler]
|
|
1035
|
+
Type 'copyright', 'credits' or 'license' for more information
|
|
1036
|
+
IPython 9.y.z -- An enhanced Interactive Python. Type '?' for help.
|
|
1037
|
+
Tip: unset SOURCE_DATE_EPOCH to restore dynamic banner.
|
|
1038
|
+
"""
|
|
1038
1039
|
).lstrip()
|
|
1039
|
-
banner = self.banner1
|
|
1040
1040
|
if self.profile and self.profile != 'default':
|
|
1041
1041
|
banner += '\nIPython profile: %s\n' % self.profile
|
|
1042
1042
|
if self.banner2:
|
|
@@ -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,74 @@
|
|
|
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
|
+
isatty = getattr(sys.stdout, "isatty", None)
|
|
14
|
+
if not callable(isatty) or not isatty():
|
|
15
|
+
return False
|
|
16
|
+
# Hardcoding process names instead of using
|
|
17
|
+
# https://sw.kovidgoyal.net/kitty/graphics-protocol/#querying-support-and-available-transmission-mediums
|
|
18
|
+
# to avoid startup slowdown
|
|
19
|
+
supported_terminals = {
|
|
20
|
+
"ghostty",
|
|
21
|
+
"iTerm2",
|
|
22
|
+
"kitty",
|
|
23
|
+
"konsole",
|
|
24
|
+
"warp",
|
|
25
|
+
"wayst",
|
|
26
|
+
"wezterm-gui",
|
|
27
|
+
}
|
|
28
|
+
import psutil
|
|
29
|
+
|
|
30
|
+
process = psutil.Process()
|
|
31
|
+
while process := process.parent():
|
|
32
|
+
if process.name() in supported_terminals:
|
|
33
|
+
return True
|
|
34
|
+
return False
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
supports_kitty_graphics = _supports_kitty_graphics()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def png_to_kitty_ansi(png: bytes) -> str:
|
|
41
|
+
if not png.startswith(b"\x89PNG\r\n\x1a\n"):
|
|
42
|
+
raise ValueError
|
|
43
|
+
# This simplicity resembles
|
|
44
|
+
# https://sw.kovidgoyal.net/kitty/graphics-protocol/#a-minimal-example
|
|
45
|
+
# but if we need tmux support, we can switch to Unicode like
|
|
46
|
+
# https://github.com/hzeller/timg/blob/main/src/kitty-canvas.cc
|
|
47
|
+
result = ["\033_Ga=T,f=100,", "m=1;"]
|
|
48
|
+
encoded = b64encode(png)
|
|
49
|
+
for i in range(0, len(encoded), 4096):
|
|
50
|
+
result.append(encoded[i : i + 4096].decode("ascii"))
|
|
51
|
+
result.append("\033\\")
|
|
52
|
+
result.append("\033_G")
|
|
53
|
+
result.append("m=1;")
|
|
54
|
+
del result[-2:]
|
|
55
|
+
result[-3] = "m=0;"
|
|
56
|
+
return "".join(result)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def kitty_png_render(png: Union[bytes, str], _md_dict: object) -> None:
|
|
60
|
+
if isinstance(png, str):
|
|
61
|
+
png = png_to_kitty_ansi(b64decode(png))
|
|
62
|
+
else:
|
|
63
|
+
png = png_to_kitty_ansi(png)
|
|
64
|
+
print(png)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
display_formatter_default_active_types = [
|
|
68
|
+
"text/plain",
|
|
69
|
+
*(["image/png"] if supports_kitty_graphics else []),
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
terminal_default_mime_renderers = {
|
|
73
|
+
"image/png": kitty_png_render,
|
|
74
|
+
}
|
|
@@ -1093,7 +1093,7 @@ class Inspector(Configurable):
|
|
|
1093
1093
|
"""
|
|
1094
1094
|
Check whether the source *src* contains the docstring *doc*.
|
|
1095
1095
|
|
|
1096
|
-
This is
|
|
1096
|
+
This is a helper function to skip displaying the docstring if the
|
|
1097
1097
|
source already contains it, avoiding repetition of information.
|
|
1098
1098
|
"""
|
|
1099
1099
|
try:
|
|
@@ -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:
|
|
@@ -46,7 +46,7 @@ Usage
|
|
|
46
46
|
This file is typically installed in the `IPYTHONDIR` directory, and there
|
|
47
47
|
is a separate configuration directory for each profile. The default profile
|
|
48
48
|
directory will be located in $IPYTHONDIR/profile_default. IPYTHONDIR
|
|
49
|
-
defaults to
|
|
49
|
+
defaults to `$HOME/.ipython`. For Windows users, $HOME resolves to
|
|
50
50
|
C:\\Users\\YourUserName in most instances.
|
|
51
51
|
|
|
52
52
|
To initialize a profile with the default configuration file, do::
|
|
@@ -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
|
|
@@ -397,7 +401,7 @@ class TerminalInteractiveShell(InteractiveShell):
|
|
|
397
401
|
|
|
398
402
|
term_title_format = Unicode("IPython: {cwd}",
|
|
399
403
|
help="Customize the terminal title format. This is a python format string. " +
|
|
400
|
-
"Available substitutions
|
|
404
|
+
"Available substitutions include {cwd}."
|
|
401
405
|
).tag(config=True)
|
|
402
406
|
|
|
403
407
|
display_completions = Enum(('column', 'multicolumn','readlinelike'),
|
|
@@ -741,13 +745,13 @@ class TerminalInteractiveShell(InteractiveShell):
|
|
|
741
745
|
|
|
742
746
|
prompt_line_number_format = Unicode(
|
|
743
747
|
"",
|
|
744
|
-
help="The format for line numbering
|
|
745
|
-
"
|
|
746
|
-
"
|
|
747
|
-
" c.TerminalInteractiveShell.prompt_line_number_format='{line: 4d}/{rel_line:+03d} | '"
|
|
748
|
-
" This will display the current line number, with leading space and a width of at least 4"
|
|
749
|
-
"
|
|
750
|
-
" Note that when using Emacs mode the prompt of the first line may not update.",
|
|
748
|
+
help="The format for line numbering. Will be passed the current line number"
|
|
749
|
+
" ``line`` (int, 1 based), and the relative line number ``rel_line``."
|
|
750
|
+
" For example to display both, you can use the following template string:"
|
|
751
|
+
" ``c.TerminalInteractiveShell.prompt_line_number_format = '{line: 4d}/{rel_line:+03d} | '``"
|
|
752
|
+
" This will display the current line number, with a leading space and a width of at least 4"
|
|
753
|
+
" characters, as well as the relative line number, 0-padded and always with a + or - sign."
|
|
754
|
+
" Note that when using Emacs mode, the prompt of the first line may not update.",
|
|
751
755
|
).tag(config=True)
|
|
752
756
|
|
|
753
757
|
@observe('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 = "9d1f24b"
|
|
@@ -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.14.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; sys_platform != "emscripten"
|
|
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
|
|
|
@@ -26,7 +26,7 @@ multiple configuration options to be set to properly work:
|
|
|
26
26
|
|
|
27
27
|
- Configure said provider with models, API keys, etc – this will depend on the
|
|
28
28
|
provider, and you will have to refer to Jupyter-AI documentation, and/or your
|
|
29
|
-
LLM
|
|
29
|
+
LLM documentation.
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
While setting up IPython to use a real LLM, you can refer to
|
|
@@ -88,7 +88,7 @@ by setting the ``llm_construction_kwargs`` traitlet.
|
|
|
88
88
|
|
|
89
89
|
c.TerminalInteractiveShell.llm_constructor_kwargs = {"model": "skynet"}
|
|
90
90
|
|
|
91
|
-
This will
|
|
91
|
+
This will depend on the provider you chose, and you will have to refer to
|
|
92
92
|
the provider documentation.
|
|
93
93
|
|
|
94
94
|
Extra configuration may be needed by setting environment variables, this will
|
|
@@ -166,7 +166,8 @@ in the input prompt:
|
|
|
166
166
|
|
|
167
167
|
.. code-block:: python
|
|
168
168
|
|
|
169
|
-
from IPython.terminal.prompts import Prompts
|
|
169
|
+
from IPython.terminal.prompts import Prompts
|
|
170
|
+
from pygments.token import Token
|
|
170
171
|
import os
|
|
171
172
|
|
|
172
173
|
class MyPrompt(Prompts):
|
|
@@ -312,7 +312,7 @@ task is running, if and only if the foreground task is async::
|
|
|
312
312
|
In [4]: await asyncio.sleep(3)
|
|
313
313
|
background 4
|
|
314
314
|
background 5
|
|
315
|
-
background
|
|
315
|
+
background 6
|
|
316
316
|
|
|
317
317
|
In a Notebook, QtConsole, or any other frontend using IPykernel, background
|
|
318
318
|
tasks should behave as expected.
|
|
@@ -200,7 +200,7 @@ requests and 285 regular issues (:ref:`a full list with links
|
|
|
200
200
|
pull requests are a fantastic mechanism for reviewing code and building a
|
|
201
201
|
shared ownership of the project, and we are making enthusiastic use of it.
|
|
202
202
|
|
|
203
|
-
..
|
|
203
|
+
.. note::
|
|
204
204
|
|
|
205
205
|
This undercounts the number of issues closed in this development cycle,
|
|
206
206
|
since we only moved to github for issue tracking in May 2010, but we have no
|