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.
Files changed (443) hide show
  1. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/debugger.py +6 -0
  2. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/history.py +15 -4
  3. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/interactiveshell.py +9 -9
  4. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/kitty.py +2 -1
  5. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/oinspect.py +1 -1
  6. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/release.py +1 -1
  7. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/usage.py +1 -1
  8. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/interactiveshell.py +8 -8
  9. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_sysinfo.py +1 -1
  10. {ipython-9.13.0/ipython.egg-info → ipython-9.14.0}/PKG-INFO +2 -2
  11. {ipython-9.13.0 → ipython-9.14.0}/docs/requirements.txt +1 -0
  12. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_templates/breadcrumbs.html +4 -2
  13. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/details.rst +2 -2
  14. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/autoawait.rst +1 -1
  15. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.11.rst +1 -1
  16. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version9.rst +70 -0
  17. {ipython-9.13.0 → ipython-9.14.0/ipython.egg-info}/PKG-INFO +2 -2
  18. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/SOURCES.txt +1 -0
  19. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/requires.txt +3 -1
  20. {ipython-9.13.0 → ipython-9.14.0}/pyproject.toml +1 -1
  21. {ipython-9.13.0 → ipython-9.14.0}/tests/test_debugger.py +13 -0
  22. {ipython-9.13.0 → ipython-9.14.0}/tests/test_history.py +67 -0
  23. ipython-9.14.0/tests/test_kitty.py +50 -0
  24. {ipython-9.13.0 → ipython-9.14.0}/.flake8 +0 -0
  25. {ipython-9.13.0 → ipython-9.14.0}/.mailmap +0 -0
  26. {ipython-9.13.0 → ipython-9.14.0}/.pre-commit-config.yaml +0 -0
  27. {ipython-9.13.0 → ipython-9.14.0}/COPYING.rst +0 -0
  28. {ipython-9.13.0 → ipython-9.14.0}/IPython/__init__.py +0 -0
  29. {ipython-9.13.0 → ipython-9.14.0}/IPython/__main__.py +0 -0
  30. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/__init__.py +0 -0
  31. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/alias.py +0 -0
  32. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/application.py +0 -0
  33. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/async_helpers.py +0 -0
  34. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/autocall.py +0 -0
  35. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/builtin_trap.py +0 -0
  36. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/compilerop.py +0 -0
  37. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/completer.py +0 -0
  38. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/completerlib.py +0 -0
  39. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/crashhandler.py +0 -0
  40. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/debugger_backport.py +0 -0
  41. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display.py +0 -0
  42. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display_functions.py +0 -0
  43. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/display_trap.py +0 -0
  44. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/displayhook.py +0 -0
  45. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/displaypub.py +0 -0
  46. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/doctb.py +0 -0
  47. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/error.py +0 -0
  48. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/events.py +0 -0
  49. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/extensions.py +0 -0
  50. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/formatters.py +0 -0
  51. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/getipython.py +0 -0
  52. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/guarded_eval.py +0 -0
  53. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/historyapp.py +0 -0
  54. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/hooks.py +0 -0
  55. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/inputtransformer2.py +0 -0
  56. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/latex_symbols.py +0 -0
  57. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/logger.py +0 -0
  58. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/macro.py +0 -0
  59. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magic.py +0 -0
  60. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magic_arguments.py +0 -0
  61. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/__init__.py +0 -0
  62. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/ast_mod.py +0 -0
  63. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/auto.py +0 -0
  64. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/basic.py +0 -0
  65. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/code.py +0 -0
  66. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/config.py +0 -0
  67. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/display.py +0 -0
  68. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/execution.py +0 -0
  69. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/extension.py +0 -0
  70. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/history.py +0 -0
  71. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/logging.py +0 -0
  72. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/namespace.py +0 -0
  73. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/osm.py +0 -0
  74. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/packaging.py +0 -0
  75. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/pylab.py +0 -0
  76. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/magics/script.py +0 -0
  77. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/page.py +0 -0
  78. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/payload.py +0 -0
  79. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/payloadpage.py +0 -0
  80. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/prefilter.py +0 -0
  81. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profile/README_STARTUP +0 -0
  82. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profileapp.py +0 -0
  83. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/profiledir.py +0 -0
  84. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/pylabtools.py +0 -0
  85. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/shellapp.py +0 -0
  86. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/splitinput.py +0 -0
  87. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/tbtools.py +0 -0
  88. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/tips.py +0 -0
  89. {ipython-9.13.0 → ipython-9.14.0}/IPython/core/ultratb.py +0 -0
  90. {ipython-9.13.0 → ipython-9.14.0}/IPython/display.py +0 -0
  91. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/__init__.py +0 -0
  92. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/autoreload.py +0 -0
  93. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/__init__.py +0 -0
  94. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload.py +0 -0
  95. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/deduperreload/deduperreload_patching.py +0 -0
  96. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/storemagic.py +0 -0
  97. {ipython-9.13.0 → ipython-9.14.0}/IPython/extensions/tests/test_deduperreload.py +0 -0
  98. {ipython-9.13.0 → ipython-9.14.0}/IPython/external/__init__.py +0 -0
  99. {ipython-9.13.0 → ipython-9.14.0}/IPython/external/pickleshare.py +0 -0
  100. {ipython-9.13.0 → ipython-9.14.0}/IPython/external/qt_for_kernel.py +0 -0
  101. {ipython-9.13.0 → ipython-9.14.0}/IPython/external/qt_loaders.py +0 -0
  102. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/__init__.py +0 -0
  103. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/backgroundjobs.py +0 -0
  104. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/clipboard.py +0 -0
  105. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/deepreload.py +0 -0
  106. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/demo.py +0 -0
  107. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/display.py +0 -0
  108. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/editorhooks.py +0 -0
  109. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/guisupport.py +0 -0
  110. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/latextools.py +0 -0
  111. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/lexers.py +0 -0
  112. {ipython-9.13.0 → ipython-9.14.0}/IPython/lib/pretty.py +0 -0
  113. {ipython-9.13.0 → ipython-9.14.0}/IPython/paths.py +0 -0
  114. {ipython-9.13.0 → ipython-9.14.0}/IPython/py.typed +0 -0
  115. {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/__init__.py +0 -0
  116. {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/custom_doctests.py +0 -0
  117. {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
  118. {ipython-9.13.0 → ipython-9.14.0}/IPython/sphinxext/ipython_directive.py +0 -0
  119. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/__init__.py +0 -0
  120. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/debugger.py +0 -0
  121. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/embed.py +0 -0
  122. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/ipapp.py +0 -0
  123. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/magics.py +0 -0
  124. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/prompts.py +0 -0
  125. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
  126. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
  127. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/glut.py +0 -0
  128. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
  129. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
  130. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
  131. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
  132. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/pyglet.py +0 -0
  133. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
  134. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
  135. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/pt_inputhooks/wx.py +0 -0
  136. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/ptutils.py +0 -0
  137. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/__init__.py +0 -0
  138. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
  139. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
  140. {ipython-9.13.0 → ipython-9.14.0}/IPython/terminal/shortcuts/filters.py +0 -0
  141. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/__init__.py +0 -0
  142. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/decorators.py +0 -0
  143. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/globalipapp.py +0 -0
  144. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/ipunittest.py +0 -0
  145. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/Makefile +0 -0
  146. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/__init__.py +0 -0
  147. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/dtexample.py +0 -0
  148. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/ipdoctest.py +0 -0
  149. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/pytest_ipdoctest.py +0 -0
  150. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/setup.py +0 -0
  151. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/simple.py +0 -0
  152. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/simplevars.py +0 -0
  153. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_combo.txt +0 -0
  154. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_example.txt +0 -0
  155. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
  156. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
  157. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/plugin/test_refs.py +0 -0
  158. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/skipdoctest.py +0 -0
  159. {ipython-9.13.0 → ipython-9.14.0}/IPython/testing/tools.py +0 -0
  160. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/PyColorize.py +0 -0
  161. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/__init__.py +0 -0
  162. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_cli.py +0 -0
  163. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_common.py +0 -0
  164. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_emscripten.py +0 -0
  165. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_posix.py +0 -0
  166. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_win32.py +0 -0
  167. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/_process_win32_controller.py +0 -0
  168. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/capture.py +0 -0
  169. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/coloransi.py +0 -0
  170. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/contexts.py +0 -0
  171. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/data.py +0 -0
  172. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/decorators.py +0 -0
  173. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/dir2.py +0 -0
  174. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/docs.py +0 -0
  175. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/encoding.py +0 -0
  176. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/eventful.py +0 -0
  177. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/frame.py +0 -0
  178. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/generics.py +0 -0
  179. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/importstring.py +0 -0
  180. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/io.py +0 -0
  181. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/ipstruct.py +0 -0
  182. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/jsonutil.py +0 -0
  183. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/log.py +0 -0
  184. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/module_paths.py +0 -0
  185. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/openpy.py +0 -0
  186. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/path.py +0 -0
  187. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/process.py +0 -0
  188. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/py3compat.py +0 -0
  189. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/sentinel.py +0 -0
  190. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/strdispatch.py +0 -0
  191. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/sysinfo.py +0 -0
  192. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/syspathcontext.py +0 -0
  193. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/tempdir.py +0 -0
  194. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/terminal.py +0 -0
  195. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/text.py +0 -0
  196. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/timing.py +0 -0
  197. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/tokenutil.py +0 -0
  198. {ipython-9.13.0 → ipython-9.14.0}/IPython/utils/wildcard.py +0 -0
  199. {ipython-9.13.0 → ipython-9.14.0}/LICENSE +0 -0
  200. {ipython-9.13.0 → ipython-9.14.0}/MANIFEST.in +0 -0
  201. {ipython-9.13.0 → ipython-9.14.0}/README.rst +0 -0
  202. {ipython-9.13.0 → ipython-9.14.0}/_build_meta.py +0 -0
  203. {ipython-9.13.0 → ipython-9.14.0}/docs/Makefile +0 -0
  204. {ipython-9.13.0 → ipython-9.14.0}/docs/README.rst +0 -0
  205. {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_api.py +0 -0
  206. {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_config.py +0 -0
  207. {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_magics.py +0 -0
  208. {ipython-9.13.0 → ipython-9.14.0}/docs/autogen_shortcuts.py +0 -0
  209. {ipython-9.13.0 → ipython-9.14.0}/docs/make.cmd +0 -0
  210. {ipython-9.13.0 → ipython-9.14.0}/docs/man/ipython.1 +0 -0
  211. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/running-crop.png +0 -0
  212. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/running.png +0 -0
  213. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/treeview.png +0 -0
  214. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/user-interface.png +0 -0
  215. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/2.0/widgets.png +0 -0
  216. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
  217. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
  218. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
  219. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
  220. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
  221. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
  222. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
  223. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
  224. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
  225. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
  226. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
  227. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/autosuggest.gif +0 -0
  228. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
  229. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
  230. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
  231. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
  232. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
  233. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
  234. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
  235. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
  236. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
  237. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
  238. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
  239. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
  240. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
  241. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
  242. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
  243. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ms_visual_studio.png +0 -0
  244. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/notebook_specgram.png +0 -0
  245. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/ptshell_features.png +0 -0
  246. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/qtconsole.png +0 -0
  247. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
  248. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_images/unicode_completion.png +0 -0
  249. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/favicon.ico +0 -0
  250. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/logo.png +0 -0
  251. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_static/theme_overrides.css +0 -0
  252. {ipython-9.13.0 → ipython-9.14.0}/docs/source/_templates/notebook_redirect.html +0 -0
  253. {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/history.rst +0 -0
  254. {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/index.rst +0 -0
  255. {ipython-9.13.0 → ipython-9.14.0}/docs/source/about/license_and_copyright.rst +0 -0
  256. {ipython-9.13.0 → ipython-9.14.0}/docs/source/api/index.rst +0 -0
  257. {ipython-9.13.0 → ipython-9.14.0}/docs/source/conf.py +0 -0
  258. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/callbacks.rst +0 -0
  259. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/custommagics.rst +0 -0
  260. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/eventloops.rst +0 -0
  261. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/autoreload.rst +0 -0
  262. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/index.rst +0 -0
  263. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/extensions/storemagic.rst +0 -0
  264. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/index.rst +0 -0
  265. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/inputtransforms.rst +0 -0
  266. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/integrating.rst +0 -0
  267. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/intro.rst +0 -0
  268. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/options/index.rst +0 -0
  269. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/shell_mimerenderer.rst +0 -0
  270. {ipython-9.13.0 → ipython-9.14.0}/docs/source/config/shortcuts/index.rst +0 -0
  271. {ipython-9.13.0 → ipython-9.14.0}/docs/source/coredev/index.rst +0 -0
  272. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/config.rst +0 -0
  273. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/execution.rst +0 -0
  274. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
  275. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
  276. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.png +0 -0
  277. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/figs/other_kernels.svg +0 -0
  278. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/how_ipython_works.rst +0 -0
  279. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/index.rst +0 -0
  280. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/inputhook_app.rst +0 -0
  281. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/kernels.rst +0 -0
  282. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/messaging.rst +0 -0
  283. {ipython-9.13.0 → ipython-9.14.0}/docs/source/development/wrapperkernels.rst +0 -0
  284. {ipython-9.13.0 → ipython-9.14.0}/docs/source/index.rst +0 -0
  285. {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/index.rst +0 -0
  286. {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/install.rst +0 -0
  287. {ipython-9.13.0 → ipython-9.14.0}/docs/source/install/kernel_install.rst +0 -0
  288. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/index.rst +0 -0
  289. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/magics.rst +0 -0
  290. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/plotting.rst +0 -0
  291. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
  292. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/reference.rst +0 -0
  293. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/shell.rst +0 -0
  294. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/tips.rst +0 -0
  295. {ipython-9.13.0 → ipython-9.14.0}/docs/source/interactive/tutorial.rst +0 -0
  296. {ipython-9.13.0 → ipython-9.14.0}/docs/source/links.txt +0 -0
  297. {ipython-9.13.0 → ipython-9.14.0}/docs/source/overview.rst +0 -0
  298. {ipython-9.13.0 → ipython-9.14.0}/docs/source/parallel/index.rst +0 -0
  299. {ipython-9.13.0 → ipython-9.14.0}/docs/source/sphinx.toml +0 -0
  300. {ipython-9.13.0 → ipython-9.14.0}/docs/source/sphinxext.rst +0 -0
  301. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/development.rst +0 -0
  302. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
  303. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
  304. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
  305. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
  306. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
  307. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
  308. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
  309. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
  310. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
  311. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
  312. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
  313. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/index.rst +0 -0
  314. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/README.md +0 -0
  315. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
  316. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
  317. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.10.rst +0 -0
  318. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.12.rst +0 -0
  319. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.13.rst +0 -0
  320. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.8.rst +0 -0
  321. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version0.9.rst +0 -0
  322. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version1.0.rst +0 -0
  323. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version2.0.rst +0 -0
  324. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version3.rst +0 -0
  325. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
  326. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version4.rst +0 -0
  327. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version5.rst +0 -0
  328. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version6.rst +0 -0
  329. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version7.rst +0 -0
  330. {ipython-9.13.0 → ipython-9.14.0}/docs/source/whatsnew/version8.rst +0 -0
  331. {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/apigen.py +0 -0
  332. {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/configtraits.py +0 -0
  333. {ipython-9.13.0 → ipython-9.14.0}/docs/sphinxext/magics.py +0 -0
  334. {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_class_long.py +0 -0
  335. {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_class_short.py +0 -0
  336. {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/embed_function.py +0 -0
  337. {ipython-9.13.0 → ipython-9.14.0}/examples/Embedding/start_ipython_config.py +0 -0
  338. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/example-demo.py +0 -0
  339. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
  340. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
  341. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
  342. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
  343. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
  344. {ipython-9.13.0 → ipython-9.14.0}/examples/IPython Kernel/ipython.desktop +0 -0
  345. {ipython-9.13.0 → ipython-9.14.0}/examples/auto_suggest_llm.py +0 -0
  346. {ipython-9.13.0 → ipython-9.14.0}/examples/utils/cwd_prompt.py +0 -0
  347. {ipython-9.13.0 → ipython-9.14.0}/examples/utils/list_pyfiles.ipy +0 -0
  348. {ipython-9.13.0 → ipython-9.14.0}/examples/utils/list_subdirs.ipy +0 -0
  349. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/dependency_links.txt +0 -0
  350. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/entry_points.txt +0 -0
  351. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/not-zip-safe +0 -0
  352. {ipython-9.13.0 → ipython-9.14.0}/ipython.egg-info/top_level.txt +0 -0
  353. {ipython-9.13.0 → ipython-9.14.0}/long_description.rst +0 -0
  354. {ipython-9.13.0 → ipython-9.14.0}/scripts/ipython.ico +0 -0
  355. {ipython-9.13.0 → ipython-9.14.0}/scripts/ipython_nb.ico +0 -0
  356. {ipython-9.13.0 → ipython-9.14.0}/setup.cfg +0 -0
  357. {ipython-9.13.0 → ipython-9.14.0}/setup.py +0 -0
  358. {ipython-9.13.0 → ipython-9.14.0}/setupbase.py +0 -0
  359. {ipython-9.13.0 → ipython-9.14.0}/tests/2x2.jpg +0 -0
  360. {ipython-9.13.0 → ipython-9.14.0}/tests/2x2.png +0 -0
  361. {ipython-9.13.0 → ipython-9.14.0}/tests/__init__.py +0 -0
  362. {ipython-9.13.0 → ipython-9.14.0}/tests/bad_all.py +0 -0
  363. {ipython-9.13.0 → ipython-9.14.0}/tests/conftest.py +0 -0
  364. {ipython-9.13.0 → ipython-9.14.0}/tests/fake_ext_dir/daft_extension.py +0 -0
  365. {ipython-9.13.0 → ipython-9.14.0}/tests/fake_llm.py +0 -0
  366. {ipython-9.13.0 → ipython-9.14.0}/tests/nonascii.py +0 -0
  367. {ipython-9.13.0 → ipython-9.14.0}/tests/nonascii2.py +0 -0
  368. {ipython-9.13.0 → ipython-9.14.0}/tests/print_argv.py +0 -0
  369. {ipython-9.13.0 → ipython-9.14.0}/tests/refbug.py +0 -0
  370. {ipython-9.13.0 → ipython-9.14.0}/tests/simpleerr.py +0 -0
  371. {ipython-9.13.0 → ipython-9.14.0}/tests/tclass.py +0 -0
  372. {ipython-9.13.0 → ipython-9.14.0}/tests/test.wav +0 -0
  373. {ipython-9.13.0 → ipython-9.14.0}/tests/test_alias.py +0 -0
  374. {ipython-9.13.0 → ipython-9.14.0}/tests/test_application.py +0 -0
  375. {ipython-9.13.0 → ipython-9.14.0}/tests/test_async_helpers.py +0 -0
  376. {ipython-9.13.0 → ipython-9.14.0}/tests/test_autocall.py +0 -0
  377. {ipython-9.13.0 → ipython-9.14.0}/tests/test_backgroundjobs.py +0 -0
  378. {ipython-9.13.0 → ipython-9.14.0}/tests/test_capture.py +0 -0
  379. {ipython-9.13.0 → ipython-9.14.0}/tests/test_clipboard.py +0 -0
  380. {ipython-9.13.0 → ipython-9.14.0}/tests/test_compilerop.py +0 -0
  381. {ipython-9.13.0 → ipython-9.14.0}/tests/test_completer.py +0 -0
  382. {ipython-9.13.0 → ipython-9.14.0}/tests/test_completerlib.py +0 -0
  383. {ipython-9.13.0 → ipython-9.14.0}/tests/test_cve.py +0 -0
  384. {ipython-9.13.0 → ipython-9.14.0}/tests/test_debug_magic.py +0 -0
  385. {ipython-9.13.0 → ipython-9.14.0}/tests/test_decorators.py +0 -0
  386. {ipython-9.13.0 → ipython-9.14.0}/tests/test_decorators_2.py +0 -0
  387. {ipython-9.13.0 → ipython-9.14.0}/tests/test_deepreload.py +0 -0
  388. {ipython-9.13.0 → ipython-9.14.0}/tests/test_dir2.py +0 -0
  389. {ipython-9.13.0 → ipython-9.14.0}/tests/test_display.py +0 -0
  390. {ipython-9.13.0 → ipython-9.14.0}/tests/test_display_2.py +0 -0
  391. {ipython-9.13.0 → ipython-9.14.0}/tests/test_displayhook.py +0 -0
  392. {ipython-9.13.0 → ipython-9.14.0}/tests/test_editorhooks.py +0 -0
  393. {ipython-9.13.0 → ipython-9.14.0}/tests/test_embed.py +0 -0
  394. {ipython-9.13.0 → ipython-9.14.0}/tests/test_events.py +0 -0
  395. {ipython-9.13.0 → ipython-9.14.0}/tests/test_exceptiongroup_tb.py +0 -0
  396. {ipython-9.13.0 → ipython-9.14.0}/tests/test_extension.py +0 -0
  397. {ipython-9.13.0 → ipython-9.14.0}/tests/test_formatters.py +0 -0
  398. {ipython-9.13.0 → ipython-9.14.0}/tests/test_guarded_eval.py +0 -0
  399. {ipython-9.13.0 → ipython-9.14.0}/tests/test_handlers.py +0 -0
  400. {ipython-9.13.0 → ipython-9.14.0}/tests/test_help.py +0 -0
  401. {ipython-9.13.0 → ipython-9.14.0}/tests/test_hooks.py +0 -0
  402. {ipython-9.13.0 → ipython-9.14.0}/tests/test_imports.py +0 -0
  403. {ipython-9.13.0 → ipython-9.14.0}/tests/test_importstring.py +0 -0
  404. {ipython-9.13.0 → ipython-9.14.0}/tests/test_inputtransformer2.py +0 -0
  405. {ipython-9.13.0 → ipython-9.14.0}/tests/test_inputtransformer2_line.py +0 -0
  406. {ipython-9.13.0 → ipython-9.14.0}/tests/test_interactiveshell.py +0 -0
  407. {ipython-9.13.0 → ipython-9.14.0}/tests/test_interactivshell.py +0 -0
  408. {ipython-9.13.0 → ipython-9.14.0}/tests/test_io.py +0 -0
  409. {ipython-9.13.0 → ipython-9.14.0}/tests/test_iplib.py +0 -0
  410. {ipython-9.13.0 → ipython-9.14.0}/tests/test_ipunittest.py +0 -0
  411. {ipython-9.13.0 → ipython-9.14.0}/tests/test_latextools.py +0 -0
  412. {ipython-9.13.0 → ipython-9.14.0}/tests/test_logger.py +0 -0
  413. {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic.py +0 -0
  414. {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic_arguments.py +0 -0
  415. {ipython-9.13.0 → ipython-9.14.0}/tests/test_magic_terminal.py +0 -0
  416. {ipython-9.13.0 → ipython-9.14.0}/tests/test_module_paths.py +0 -0
  417. {ipython-9.13.0 → ipython-9.14.0}/tests/test_oinspect.py +0 -0
  418. {ipython-9.13.0 → ipython-9.14.0}/tests/test_openpy.py +0 -0
  419. {ipython-9.13.0 → ipython-9.14.0}/tests/test_page.py +0 -0
  420. {ipython-9.13.0 → ipython-9.14.0}/tests/test_path.py +0 -0
  421. {ipython-9.13.0 → ipython-9.14.0}/tests/test_paths.py +0 -0
  422. {ipython-9.13.0 → ipython-9.14.0}/tests/test_prefilter.py +0 -0
  423. {ipython-9.13.0 → ipython-9.14.0}/tests/test_pretty.py +0 -0
  424. {ipython-9.13.0 → ipython-9.14.0}/tests/test_process.py +0 -0
  425. {ipython-9.13.0 → ipython-9.14.0}/tests/test_profile.py +0 -0
  426. {ipython-9.13.0 → ipython-9.14.0}/tests/test_pt_inputhooks.py +0 -0
  427. {ipython-9.13.0 → ipython-9.14.0}/tests/test_pycolorize.py +0 -0
  428. {ipython-9.13.0 → ipython-9.14.0}/tests/test_pylabtools.py +0 -0
  429. {ipython-9.13.0 → ipython-9.14.0}/tests/test_qt_loaders.py +0 -0
  430. {ipython-9.13.0 → ipython-9.14.0}/tests/test_run.py +0 -0
  431. {ipython-9.13.0 → ipython-9.14.0}/tests/test_shellapp.py +0 -0
  432. {ipython-9.13.0 → ipython-9.14.0}/tests/test_shortcuts.py +0 -0
  433. {ipython-9.13.0 → ipython-9.14.0}/tests/test_splitinput.py +0 -0
  434. {ipython-9.13.0 → ipython-9.14.0}/tests/test_storemagic.py +0 -0
  435. {ipython-9.13.0 → ipython-9.14.0}/tests/test_sysinfo.py +0 -0
  436. {ipython-9.13.0 → ipython-9.14.0}/tests/test_tempdir.py +0 -0
  437. {ipython-9.13.0 → ipython-9.14.0}/tests/test_text.py +0 -0
  438. {ipython-9.13.0 → ipython-9.14.0}/tests/test_tips.py +0 -0
  439. {ipython-9.13.0 → ipython-9.14.0}/tests/test_tokenutil.py +0 -0
  440. {ipython-9.13.0 → ipython-9.14.0}/tests/test_tools.py +0 -0
  441. {ipython-9.13.0 → ipython-9.14.0}/tests/test_ultratb.py +0 -0
  442. {ipython-9.13.0 → ipython-9.14.0}/tests/test_wildcard.py +0 -0
  443. {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 IPython.config.Configuration import Configuration
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.hist_file = ":memory:"
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.hist_file = ":memory:"
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
- if (when := os.environ.get("SOURCE_DATE_EPOCH", None)) is not None:
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
- return textwrap.dedent(
1032
+ banner = textwrap.dedent(
1032
1033
  f"""
1033
- Python 3.y.z | Packaged with love | (main, {date.strftime("%A, %d %B %Y")}) [Compiler]
1034
- Type 'copyright', 'credits' or 'license' for more information
1035
- IPython 9.y.z -- An enhanced Interactive Python. Type '?' for help.
1036
- Tip: unset SOURCE_DATE_EPOCH to restore dynamic banner.
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
- if not sys.stdout.isatty():
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 is helper function to skip displaying the docstring if the
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:
@@ -16,7 +16,7 @@
16
16
  # release. 'dev' as a _version_extra string means this is a development
17
17
  # version
18
18
  _version_major = 9
19
- _version_minor = 13
19
+ _version_minor = 14
20
20
  _version_patch = 0
21
21
  _version_extra = ".dev"
22
22
  # _version_extra = "b2"
@@ -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 to `$HOME/.ipython`. For Windows users, $HOME resolves 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 are: {cwd}."
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, will be passed `line` (int, 1 based)"
749
- " the current line number and `rel_line` the relative line number."
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 leading space and a width of at least 4"
753
- " character, 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.",
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 = "7c1654d"
2
+ commit = "9d1f24b"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ipython
3
- Version: 9.13.0
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
@@ -10,3 +10,4 @@ docrepr
10
10
  prompt_toolkit
11
11
  ipykernel
12
12
  intersphinx_registry
13
+ sphinx_toml
@@ -2,6 +2,8 @@
2
2
 
3
3
  {% block breadcrumbs_aside %}
4
4
  {% if not meta or meta.get('github_url') != 'hide' %}
5
- {{ super() }}
5
+ {% if not pagename.startswith('api/generated/') %}
6
+ {{ super() }}
7
+ {% endif %}
6
8
  {% endif %}
7
- {% endblock %}
9
+ {% endblock %}
@@ -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 documenatation.
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 depdend on the provider you chose, and you will have to refer to
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 6g
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
- .. Note::
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.13.0
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
@@ -405,6 +405,7 @@ tests/test_interactivshell.py
405
405
  tests/test_io.py
406
406
  tests/test_iplib.py
407
407
  tests/test_ipunittest.py
408
+ tests/test_kitty.py
408
409
  tests/test_latextools.py
409
410
  tests/test_logger.py
410
411
  tests/test_magic.py
@@ -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
- "psutil>=7",
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