ipython 9.13.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.13.0 → ipython-9.14.0}/IPython/core/debugger.py +6 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/history.py +15 -4
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/interactiveshell.py +9 -9
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/kitty.py +2 -1
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/oinspect.py +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/release.py +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/usage.py +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/interactiveshell.py +8 -8
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_sysinfo.py +1 -1
- {ipython-9.13.0/ipython.egg-info → ipython-9.14.0}/PKG-INFO +2 -2
- {ipython-9.13.0 → ipython-9.14.0}/docs/requirements.txt +1 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_templates/breadcrumbs.html +4 -2
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/details.rst +2 -2
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/autoawait.rst +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.11.rst +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version9.rst +70 -0
- {ipython-9.13.0 → ipython-9.14.0/ipython.egg-info}/PKG-INFO +2 -2
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/SOURCES.txt +1 -0
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/requires.txt +3 -1
- {ipython-9.13.0 → ipython-9.14.0}/pyproject.toml +1 -1
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_debugger.py +13 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_history.py +67 -0
- ipython-9.14.0/tests/test_kitty.py +50 -0
- {ipython-9.13.0 → ipython-9.14.0}/.flake8 +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/.mailmap +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/.pre-commit-config.yaml +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/COPYING.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/__main__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/alias.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/application.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/async_helpers.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/autocall.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/builtin_trap.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/compilerop.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/completer.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/completerlib.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/crashhandler.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/debugger_backport.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display_functions.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display_trap.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/displayhook.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/displaypub.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/doctb.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/error.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/events.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/extensions.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/formatters.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/getipython.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/guarded_eval.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/historyapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/hooks.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/inputtransformer2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/latex_symbols.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/logger.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/macro.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magic_arguments.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/ast_mod.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/auto.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/basic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/code.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/config.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/display.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/execution.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/extension.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/history.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/logging.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/namespace.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/osm.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/packaging.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/pylab.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/script.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/page.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/payload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/payloadpage.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/prefilter.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profile/README_STARTUP +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profileapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profiledir.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/pylabtools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/shellapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/splitinput.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/tbtools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/tips.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/core/ultratb.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/display.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/autoreload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload_patching.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/storemagic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/tests/test_deduperreload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/external/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/external/pickleshare.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/external/qt_for_kernel.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/external/qt_loaders.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/backgroundjobs.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/clipboard.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/deepreload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/demo.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/display.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/editorhooks.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/guisupport.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/latextools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/lexers.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/pretty.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/paths.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/py.typed +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/custom_doctests.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/ipython_directive.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/debugger.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/embed.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/ipapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/magics.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/prompts.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/glut.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/pyglet.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/wx.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/ptutils.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/filters.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/decorators.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/globalipapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/ipunittest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/Makefile +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/dtexample.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/ipdoctest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/pytest_ipdoctest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/setup.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/simple.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/simplevars.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_combo.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_example.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_refs.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/skipdoctest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/tools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/PyColorize.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_cli.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_common.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_emscripten.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_posix.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_win32.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_win32_controller.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/capture.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/coloransi.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/contexts.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/data.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/decorators.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/dir2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/docs.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/encoding.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/eventful.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/frame.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/generics.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/importstring.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/io.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/ipstruct.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/jsonutil.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/log.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/module_paths.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/openpy.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/path.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/process.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/py3compat.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/sentinel.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/strdispatch.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/sysinfo.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/syspathcontext.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/tempdir.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/terminal.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/text.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/timing.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/tokenutil.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/wildcard.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/LICENSE +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/MANIFEST.in +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/README.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/_build_meta.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/Makefile +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/README.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_api.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_config.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_magics.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_shortcuts.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/make.cmd +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/man/ipython.1 +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/running-crop.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/running.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/treeview.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/user-interface.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/widgets.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/autosuggest.gif +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ms_visual_studio.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/notebook_specgram.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ptshell_features.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/qtconsole.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/unicode_completion.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/favicon.ico +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/logo.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/theme_overrides.css +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/_templates/notebook_redirect.html +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/history.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/license_and_copyright.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/api/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/conf.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/callbacks.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/custommagics.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/eventloops.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/autoreload.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/storemagic.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/inputtransforms.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/integrating.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/intro.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/options/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/shell_mimerenderer.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/shortcuts/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/coredev/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/config.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/execution.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.svg +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/how_ipython_works.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/inputhook_app.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/kernels.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/messaging.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/wrapperkernels.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/install.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/kernel_install.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/magics.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/plotting.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/reference.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/shell.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/tips.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/tutorial.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/links.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/overview.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/parallel/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/sphinx.toml +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/sphinxext.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/development.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/index.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/README.md +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.10.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.12.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.13.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.8.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.9.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version1.0.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version2.0.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version3.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version4.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version5.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version6.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version7.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version8.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/apigen.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/configtraits.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/magics.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_class_long.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_class_short.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_function.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/start_ipython_config.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/example-demo.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython.desktop +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/auto_suggest_llm.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/utils/cwd_prompt.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/utils/list_pyfiles.ipy +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/examples/utils/list_subdirs.ipy +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/dependency_links.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/entry_points.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/not-zip-safe +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/top_level.txt +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/long_description.rst +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/scripts/ipython.ico +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/scripts/ipython_nb.ico +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/setup.cfg +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/setup.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/setupbase.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/2x2.jpg +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/2x2.png +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/__init__.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/bad_all.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/conftest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/fake_ext_dir/daft_extension.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/fake_llm.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/nonascii.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/nonascii2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/print_argv.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/refbug.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/simpleerr.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/tclass.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test.wav +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_alias.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_application.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_async_helpers.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_autocall.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_backgroundjobs.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_capture.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_clipboard.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_compilerop.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_completer.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_completerlib.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_cve.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_debug_magic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_decorators.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_decorators_2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_deepreload.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_dir2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_display.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_display_2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_displayhook.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_editorhooks.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_embed.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_events.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_exceptiongroup_tb.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_extension.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_formatters.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_guarded_eval.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_handlers.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_help.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_hooks.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_imports.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_importstring.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_inputtransformer2.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_inputtransformer2_line.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_interactiveshell.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_interactivshell.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_io.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_iplib.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_ipunittest.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_latextools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_logger.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic_arguments.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic_terminal.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_module_paths.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_oinspect.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_openpy.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_page.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_path.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_paths.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_prefilter.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_pretty.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_process.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_profile.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_pt_inputhooks.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_pycolorize.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_pylabtools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_qt_loaders.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_run.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_shellapp.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_shortcuts.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_splitinput.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_storemagic.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_sysinfo.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_tempdir.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_text.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_tips.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_tokenutil.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_tools.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_ultratb.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_wildcard.py +0 -0
- {ipython-9.13.0 → ipython-9.14.0}/tests/test_zzz_autoreload.py +0 -0
|
@@ -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:
|
|
@@ -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:
|
|
@@ -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:
|
|
@@ -10,7 +10,8 @@ def _supports_kitty_graphics() -> bool:
|
|
|
10
10
|
if platform.system() not in ("Darwin", "Linux"):
|
|
11
11
|
return False
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
isatty = getattr(sys.stdout, "isatty", None)
|
|
14
|
+
if not callable(isatty) or not isatty():
|
|
14
15
|
return False
|
|
15
16
|
# Hardcoding process names instead of using
|
|
16
17
|
# https://sw.kovidgoyal.net/kitty/graphics-protocol/#querying-support-and-available-transmission-mediums
|
|
@@ -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:
|
|
@@ -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::
|
|
@@ -401,7 +401,7 @@ class TerminalInteractiveShell(InteractiveShell):
|
|
|
401
401
|
|
|
402
402
|
term_title_format = Unicode("IPython: {cwd}",
|
|
403
403
|
help="Customize the terminal title format. This is a python format string. " +
|
|
404
|
-
"Available substitutions
|
|
404
|
+
"Available substitutions include {cwd}."
|
|
405
405
|
).tag(config=True)
|
|
406
406
|
|
|
407
407
|
display_completions = Enum(('column', 'multicolumn','readlinelike'),
|
|
@@ -745,13 +745,13 @@ class TerminalInteractiveShell(InteractiveShell):
|
|
|
745
745
|
|
|
746
746
|
prompt_line_number_format = Unicode(
|
|
747
747
|
"",
|
|
748
|
-
help="The format for line numbering
|
|
749
|
-
"
|
|
750
|
-
"
|
|
751
|
-
" c.TerminalInteractiveShell.prompt_line_number_format='{line: 4d}/{rel_line:+03d} | '"
|
|
752
|
-
" This will display the current line number, with leading space and a width of at least 4"
|
|
753
|
-
"
|
|
754
|
-
" 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.",
|
|
755
755
|
).tag(config=True)
|
|
756
756
|
|
|
757
757
|
@observe('term_title')
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# GENERATED BY setup.py
|
|
2
|
-
commit = "
|
|
2
|
+
commit = "9d1f24b"
|
|
@@ -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
|
|
@@ -33,7 +33,7 @@ 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
|
+
Requires-Dist: psutil>=7; sys_platform != "emscripten"
|
|
37
37
|
Requires-Dist: pygments>=2.14.0
|
|
38
38
|
Requires-Dist: stack_data>=0.6.0
|
|
39
39
|
Requires-Dist: traitlets>=5.13.0
|
|
@@ -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
|
|
@@ -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
|
|
@@ -2,6 +2,76 @@
|
|
|
2
2
|
9.x Series
|
|
3
3
|
============
|
|
4
4
|
|
|
5
|
+
.. _version 9.14:
|
|
6
|
+
|
|
7
|
+
IPython 9.14
|
|
8
|
+
------------
|
|
9
|
+
|
|
10
|
+
Summary
|
|
11
|
+
~~~~~~~
|
|
12
|
+
|
|
13
|
+
This release is mostly a maintenance release, with fixes for SQLite history
|
|
14
|
+
handling, terminal image rendering, reproducible banner output, Pyodide
|
|
15
|
+
support, and a number of documentation improvements.
|
|
16
|
+
|
|
17
|
+
- :ghpull:`15204` Fix history memory fallback after SQLite lock
|
|
18
|
+
- :ghpull:`15208` Fix banner customization when ``SOURCE_DATE_EPOCH`` is set
|
|
19
|
+
- :ghpull:`15196` Handle stdout without ``isatty`` in kitty support check
|
|
20
|
+
- :ghpull:`15190` Avoid ``psutil`` requirement on emscripten
|
|
21
|
+
- :ghpull:`15206` Accept singular pdb exception command
|
|
22
|
+
- :ghpull:`15203` Fix incorrect ``Configuration`` type import
|
|
23
|
+
- :ghpull:`15179` Copyedit ``prompt_line_number_format`` description
|
|
24
|
+
- :ghpull:`15209` Fix typos in user-facing documentation
|
|
25
|
+
- :ghpull:`15211` Fix duplicated words in ``usage.py`` and ``oinspect.py`` docstrings
|
|
26
|
+
- :ghpull:`15215` Fix terminal title config description
|
|
27
|
+
- :ghpull:`15218` Fix broken 'Edit on GitHub' link for auto-generated API docs
|
|
28
|
+
- :ghpull:`15224` Fix docstring formatting for ``prompt_line_number_format`` help text
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
SQLite History Fallback Fix
|
|
32
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
33
|
+
|
|
34
|
+
When file-backed SQLite history could not create a new session (for example
|
|
35
|
+
because the ``history.sqlite`` file was locked by another running session), the
|
|
36
|
+
fallback only changed ``hist_file`` to ``:memory:`` while the existing
|
|
37
|
+
connection still pointed at the locked on-disk database. Later history writes
|
|
38
|
+
could therefore keep raising ``sqlite3.OperationalError: database is locked``.
|
|
39
|
+
The fallback now closes the current connection, switches to an in-memory
|
|
40
|
+
database, and creates a fresh history session there (:ghpull:`15204`).
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Reproducible Banner Output
|
|
44
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
45
|
+
|
|
46
|
+
Banner customization now honors the ``SOURCE_DATE_EPOCH`` environment variable,
|
|
47
|
+
fixing reproducible-build setups that pin the date (:ghpull:`15208`).
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
Terminal Image Rendering Robustness
|
|
51
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
52
|
+
|
|
53
|
+
The Kitty graphics protocol support check now handles the case where ``stdout``
|
|
54
|
+
has no ``isatty`` method, avoiding an ``AttributeError`` in some embedded or
|
|
55
|
+
redirected-output environments (:ghpull:`15196`).
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Pyodide / Emscripten Support
|
|
59
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
60
|
+
|
|
61
|
+
IPython no longer requires ``psutil`` on the emscripten platform, where it is
|
|
62
|
+
not available (:ghpull:`15190`).
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
Thanks
|
|
66
|
+
~~~~~~
|
|
67
|
+
|
|
68
|
+
Thanks as well to the `D. E. Shaw group <https://deshaw.com/>`_ for sponsoring
|
|
69
|
+
work on IPython.
|
|
70
|
+
|
|
71
|
+
As usual, you can find the full list of PRs on GitHub under `the 9.14
|
|
72
|
+
<https://github.com/ipython/ipython/milestone/164?closed=1>`__ milestone.
|
|
73
|
+
|
|
74
|
+
|
|
5
75
|
.. _version 9.13:
|
|
6
76
|
|
|
7
77
|
IPython 9.13
|
|
@@ -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
|
|
@@ -33,7 +33,7 @@ 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
|
+
Requires-Dist: psutil>=7; sys_platform != "emscripten"
|
|
37
37
|
Requires-Dist: pygments>=2.14.0
|
|
38
38
|
Requires-Dist: stack_data>=0.6.0
|
|
39
39
|
Requires-Dist: traitlets>=5.13.0
|
|
@@ -3,7 +3,6 @@ ipython-pygments-lexers>=1.0.0
|
|
|
3
3
|
jedi>=0.18.2
|
|
4
4
|
matplotlib-inline>=0.1.6
|
|
5
5
|
prompt_toolkit<3.1.0,>=3.0.41
|
|
6
|
-
psutil>=7
|
|
7
6
|
pygments>=2.14.0
|
|
8
7
|
stack_data>=0.6.0
|
|
9
8
|
traitlets>=5.13.0
|
|
@@ -11,6 +10,9 @@ traitlets>=5.13.0
|
|
|
11
10
|
[:python_version < "3.12"]
|
|
12
11
|
typing_extensions>=4.6
|
|
13
12
|
|
|
13
|
+
[:sys_platform != "emscripten"]
|
|
14
|
+
psutil>=7
|
|
15
|
+
|
|
14
16
|
[:sys_platform != "win32" and sys_platform != "emscripten"]
|
|
15
17
|
pexpect>4.6
|
|
16
18
|
|
|
@@ -30,7 +30,7 @@ dependencies = [
|
|
|
30
30
|
"matplotlib-inline>=0.1.6",
|
|
31
31
|
'pexpect>4.6; sys_platform != "win32" and sys_platform != "emscripten"',
|
|
32
32
|
"prompt_toolkit>=3.0.41,<3.1.0",
|
|
33
|
-
|
|
33
|
+
'psutil>=7; sys_platform != "emscripten"',
|
|
34
34
|
"pygments>=2.14.0", # wheel
|
|
35
35
|
"stack_data>=0.6.0",
|
|
36
36
|
"traitlets>=5.13.0",
|
|
@@ -279,6 +279,19 @@ def test_interruptible_core_debugger():
|
|
|
279
279
|
sys.settrace(tracer_orig)
|
|
280
280
|
|
|
281
281
|
|
|
282
|
+
@pytest.mark.skipif(
|
|
283
|
+
not debugger.CHAIN_EXCEPTIONS,
|
|
284
|
+
reason="chained exception navigation is not available",
|
|
285
|
+
)
|
|
286
|
+
def test_exception_command_aliases_exceptions():
|
|
287
|
+
ipdb = debugger.Pdb()
|
|
288
|
+
|
|
289
|
+
with patch.object(ipdb, "do_exceptions", return_value=True) as do_exceptions:
|
|
290
|
+
assert ipdb.onecmd("exception 0") is True
|
|
291
|
+
|
|
292
|
+
do_exceptions.assert_called_once_with("0")
|
|
293
|
+
|
|
294
|
+
|
|
282
295
|
@skip_win32
|
|
283
296
|
def test_xmode_skip():
|
|
284
297
|
"""that xmode skip frames
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import io
|
|
9
9
|
import gc
|
|
10
10
|
import os
|
|
11
|
+
import sqlite3
|
|
11
12
|
import sys
|
|
12
13
|
import tempfile
|
|
13
14
|
from datetime import datetime
|
|
@@ -274,6 +275,72 @@ def test_hist_file_config(hmmax3):
|
|
|
274
275
|
HistoryManager.__max_inst = 1
|
|
275
276
|
|
|
276
277
|
|
|
278
|
+
def test_histmanager_memory_fallback_reopens_db(hmmax3, tmp_path, caplog):
|
|
279
|
+
hist_file = tmp_path / "history.sqlite"
|
|
280
|
+
ip = get_ipython()
|
|
281
|
+
hm1 = None
|
|
282
|
+
hm2 = None
|
|
283
|
+
lock = None
|
|
284
|
+
try:
|
|
285
|
+
hm1 = HistoryManager(shell=ip, hist_file=hist_file)
|
|
286
|
+
hm1.end_session()
|
|
287
|
+
hm1.save_thread.stop()
|
|
288
|
+
hm1.db.close()
|
|
289
|
+
|
|
290
|
+
lock = sqlite3.connect(hist_file)
|
|
291
|
+
lock.execute("BEGIN IMMEDIATE")
|
|
292
|
+
|
|
293
|
+
hm2 = HistoryManager(shell=ip, hist_file=hist_file)
|
|
294
|
+
assert hm2.hist_file == ":memory:"
|
|
295
|
+
assert hm2.db.execute("PRAGMA database_list").fetchall() == [(0, "main", "")]
|
|
296
|
+
|
|
297
|
+
hm2.store_inputs(1, "a = 1")
|
|
298
|
+
hm2.writeout_cache()
|
|
299
|
+
assert list(hm2.get_tail(1, include_latest=True)) == [
|
|
300
|
+
(hm2.session_number, 1, "a = 1")
|
|
301
|
+
]
|
|
302
|
+
finally:
|
|
303
|
+
if hm2 is not None:
|
|
304
|
+
hm2.end_session()
|
|
305
|
+
hm2.db.close()
|
|
306
|
+
if lock is not None:
|
|
307
|
+
lock.rollback()
|
|
308
|
+
lock.close()
|
|
309
|
+
hm1 = None
|
|
310
|
+
hm2 = None
|
|
311
|
+
caplog.clear()
|
|
312
|
+
gc.collect()
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def test_histmanager_thread_start_failure_uses_memory(
|
|
316
|
+
hmmax2, tmp_path, monkeypatch, caplog
|
|
317
|
+
):
|
|
318
|
+
def fail_start(self):
|
|
319
|
+
raise RuntimeError("thread unavailable")
|
|
320
|
+
|
|
321
|
+
monkeypatch.setattr("IPython.core.history.HistorySavingThread.start", fail_start)
|
|
322
|
+
|
|
323
|
+
hm = None
|
|
324
|
+
try:
|
|
325
|
+
hm = HistoryManager(shell=get_ipython(), hist_file=tmp_path / "history.sqlite")
|
|
326
|
+
assert hm.hist_file == ":memory:"
|
|
327
|
+
assert hm.db.execute("PRAGMA database_list").fetchall() == [(0, "main", "")]
|
|
328
|
+
assert hm.save_thread is None
|
|
329
|
+
|
|
330
|
+
hm.store_inputs(1, "a = 1")
|
|
331
|
+
hm.writeout_cache()
|
|
332
|
+
assert list(hm.get_tail(1, include_latest=True)) == [
|
|
333
|
+
(hm.session_number, 1, "a = 1")
|
|
334
|
+
]
|
|
335
|
+
finally:
|
|
336
|
+
if hm is not None:
|
|
337
|
+
hm.end_session()
|
|
338
|
+
hm.db.close()
|
|
339
|
+
hm = None
|
|
340
|
+
caplog.clear()
|
|
341
|
+
gc.collect()
|
|
342
|
+
|
|
343
|
+
|
|
277
344
|
def test_histmanager_disabled(hmmax2):
|
|
278
345
|
"""Ensure that disabling the history manager doesn't create a database."""
|
|
279
346
|
cfg = Config()
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DummyStdout:
|
|
7
|
+
def write(self, *args, **kwargs):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
def flush(self):
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class StdoutWithNonCallableIsatty(DummyStdout):
|
|
15
|
+
isatty = False
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_supports_kitty_graphics_handles_stdout_without_callable_isatty(monkeypatch):
|
|
19
|
+
import platform
|
|
20
|
+
|
|
21
|
+
from IPython.core import kitty
|
|
22
|
+
|
|
23
|
+
monkeypatch.setattr(platform, "system", lambda: "Linux")
|
|
24
|
+
for stdout in (DummyStdout(), StdoutWithNonCallableIsatty()):
|
|
25
|
+
monkeypatch.setattr(sys, "stdout", stdout)
|
|
26
|
+
assert kitty._supports_kitty_graphics() is False
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_import_ipython_handles_stdout_without_isatty():
|
|
30
|
+
code = """
|
|
31
|
+
import sys
|
|
32
|
+
|
|
33
|
+
class DummyFile:
|
|
34
|
+
def write(self, *args, **kwargs):
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
def flush(self):
|
|
38
|
+
pass
|
|
39
|
+
|
|
40
|
+
sys.stdout = DummyFile()
|
|
41
|
+
import IPython
|
|
42
|
+
"""
|
|
43
|
+
repo_root = Path(__file__).resolve().parents[1]
|
|
44
|
+
result = subprocess.run(
|
|
45
|
+
[sys.executable, "-c", code],
|
|
46
|
+
cwd=repo_root,
|
|
47
|
+
capture_output=True,
|
|
48
|
+
text=True,
|
|
49
|
+
)
|
|
50
|
+
assert result.returncode == 0, result.stderr
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|