ipython 9.0.1__tar.gz → 9.0.2__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 (441) hide show
  1. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/inputtransformer2.py +3 -9
  2. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/interactiveshell.py +11 -8
  3. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/oinspect.py +7 -1
  4. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/release.py +1 -1
  5. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/tbtools.py +7 -1
  6. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/tips.py +1 -1
  7. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/qt.py +3 -1
  8. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/shortcuts/__init__.py +1 -1
  9. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/PyColorize.py +8 -2
  10. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_sysinfo.py +1 -1
  11. {ipython-9.0.1 → ipython-9.0.2}/PKG-INFO +1 -1
  12. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/intro.rst +3 -3
  13. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version9.rst +1 -1
  14. {ipython-9.0.1 → ipython-9.0.2}/examples/Embedding/start_ipython_config.py +1 -1
  15. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/PKG-INFO +1 -1
  16. {ipython-9.0.1 → ipython-9.0.2}/pyproject.toml +11 -1
  17. {ipython-9.0.1 → ipython-9.0.2}/tests/test_inputtransformer2_line.py +25 -6
  18. {ipython-9.0.1 → ipython-9.0.2}/.flake8 +0 -0
  19. {ipython-9.0.1 → ipython-9.0.2}/.mailmap +0 -0
  20. {ipython-9.0.1 → ipython-9.0.2}/.pre-commit-config.yaml +0 -0
  21. {ipython-9.0.1 → ipython-9.0.2}/COPYING.rst +0 -0
  22. {ipython-9.0.1 → ipython-9.0.2}/IPython/__init__.py +0 -0
  23. {ipython-9.0.1 → ipython-9.0.2}/IPython/__main__.py +0 -0
  24. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/__init__.py +0 -0
  25. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/alias.py +0 -0
  26. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/application.py +0 -0
  27. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/async_helpers.py +0 -0
  28. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/autocall.py +0 -0
  29. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/builtin_trap.py +0 -0
  30. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/compilerop.py +0 -0
  31. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/completer.py +0 -0
  32. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/completerlib.py +0 -0
  33. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/crashhandler.py +0 -0
  34. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/debugger.py +0 -0
  35. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/display.py +0 -0
  36. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/display_functions.py +0 -0
  37. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/display_trap.py +0 -0
  38. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/displayhook.py +0 -0
  39. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/displaypub.py +0 -0
  40. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/doctb.py +0 -0
  41. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/error.py +0 -0
  42. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/events.py +0 -0
  43. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/extensions.py +0 -0
  44. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/formatters.py +0 -0
  45. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/getipython.py +0 -0
  46. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/guarded_eval.py +0 -0
  47. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/history.py +0 -0
  48. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/historyapp.py +0 -0
  49. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/hooks.py +0 -0
  50. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/latex_symbols.py +0 -0
  51. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/logger.py +0 -0
  52. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/macro.py +0 -0
  53. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magic.py +0 -0
  54. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magic_arguments.py +0 -0
  55. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/__init__.py +0 -0
  56. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/ast_mod.py +0 -0
  57. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/auto.py +0 -0
  58. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/basic.py +0 -0
  59. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/code.py +0 -0
  60. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/config.py +0 -0
  61. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/display.py +0 -0
  62. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/execution.py +0 -0
  63. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/extension.py +0 -0
  64. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/history.py +0 -0
  65. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/logging.py +0 -0
  66. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/namespace.py +0 -0
  67. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/osm.py +0 -0
  68. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/packaging.py +0 -0
  69. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/pylab.py +0 -0
  70. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/magics/script.py +0 -0
  71. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/page.py +0 -0
  72. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/payload.py +0 -0
  73. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/payloadpage.py +0 -0
  74. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/prefilter.py +0 -0
  75. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/profile/README_STARTUP +0 -0
  76. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/profileapp.py +0 -0
  77. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/profiledir.py +0 -0
  78. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/pylabtools.py +0 -0
  79. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/shellapp.py +0 -0
  80. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/splitinput.py +0 -0
  81. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/ultratb.py +0 -0
  82. {ipython-9.0.1 → ipython-9.0.2}/IPython/core/usage.py +0 -0
  83. {ipython-9.0.1 → ipython-9.0.2}/IPython/display.py +0 -0
  84. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/__init__.py +0 -0
  85. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/autoreload.py +0 -0
  86. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/deduperreload/__init__.py +0 -0
  87. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/deduperreload/deduperreload.py +0 -0
  88. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/deduperreload/deduperreload_patching.py +0 -0
  89. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/storemagic.py +0 -0
  90. {ipython-9.0.1 → ipython-9.0.2}/IPython/extensions/tests/test_deduperreload.py +0 -0
  91. {ipython-9.0.1 → ipython-9.0.2}/IPython/external/__init__.py +0 -0
  92. {ipython-9.0.1 → ipython-9.0.2}/IPython/external/pickleshare.py +0 -0
  93. {ipython-9.0.1 → ipython-9.0.2}/IPython/external/qt_for_kernel.py +0 -0
  94. {ipython-9.0.1 → ipython-9.0.2}/IPython/external/qt_loaders.py +0 -0
  95. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/__init__.py +0 -0
  96. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/backgroundjobs.py +0 -0
  97. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/clipboard.py +0 -0
  98. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/deepreload.py +0 -0
  99. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/demo.py +0 -0
  100. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/display.py +0 -0
  101. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/editorhooks.py +0 -0
  102. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/guisupport.py +0 -0
  103. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/latextools.py +0 -0
  104. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/lexers.py +0 -0
  105. {ipython-9.0.1 → ipython-9.0.2}/IPython/lib/pretty.py +0 -0
  106. {ipython-9.0.1 → ipython-9.0.2}/IPython/paths.py +0 -0
  107. {ipython-9.0.1 → ipython-9.0.2}/IPython/py.typed +0 -0
  108. {ipython-9.0.1 → ipython-9.0.2}/IPython/sphinxext/__init__.py +0 -0
  109. {ipython-9.0.1 → ipython-9.0.2}/IPython/sphinxext/custom_doctests.py +0 -0
  110. {ipython-9.0.1 → ipython-9.0.2}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
  111. {ipython-9.0.1 → ipython-9.0.2}/IPython/sphinxext/ipython_directive.py +0 -0
  112. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/__init__.py +0 -0
  113. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/debugger.py +0 -0
  114. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/embed.py +0 -0
  115. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/interactiveshell.py +0 -0
  116. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/ipapp.py +0 -0
  117. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/magics.py +0 -0
  118. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/prompts.py +0 -0
  119. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
  120. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
  121. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/glut.py +0 -0
  122. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
  123. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
  124. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
  125. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/osx.py +0 -0
  126. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/pyglet.py +0 -0
  127. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/tk.py +0 -0
  128. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/pt_inputhooks/wx.py +0 -0
  129. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/ptutils.py +0 -0
  130. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/shortcuts/auto_match.py +0 -0
  131. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
  132. {ipython-9.0.1 → ipython-9.0.2}/IPython/terminal/shortcuts/filters.py +0 -0
  133. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/__init__.py +0 -0
  134. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/decorators.py +0 -0
  135. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/globalipapp.py +0 -0
  136. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/ipunittest.py +0 -0
  137. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/Makefile +0 -0
  138. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/__init__.py +0 -0
  139. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/dtexample.py +0 -0
  140. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/ipdoctest.py +0 -0
  141. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/pytest_ipdoctest.py +0 -0
  142. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/setup.py +0 -0
  143. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/simple.py +0 -0
  144. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/simplevars.py +0 -0
  145. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/test_combo.txt +0 -0
  146. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/test_example.txt +0 -0
  147. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/test_exampleip.txt +0 -0
  148. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/test_ipdoctest.py +0 -0
  149. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/plugin/test_refs.py +0 -0
  150. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/skipdoctest.py +0 -0
  151. {ipython-9.0.1 → ipython-9.0.2}/IPython/testing/tools.py +0 -0
  152. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/__init__.py +0 -0
  153. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_cli.py +0 -0
  154. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_common.py +0 -0
  155. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_emscripten.py +0 -0
  156. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_posix.py +0 -0
  157. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_win32.py +0 -0
  158. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/_process_win32_controller.py +0 -0
  159. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/capture.py +0 -0
  160. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/coloransi.py +0 -0
  161. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/contexts.py +0 -0
  162. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/data.py +0 -0
  163. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/decorators.py +0 -0
  164. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/dir2.py +0 -0
  165. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/docs.py +0 -0
  166. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/encoding.py +0 -0
  167. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/eventful.py +0 -0
  168. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/frame.py +0 -0
  169. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/generics.py +0 -0
  170. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/importstring.py +0 -0
  171. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/io.py +0 -0
  172. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/ipstruct.py +0 -0
  173. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/jsonutil.py +0 -0
  174. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/log.py +0 -0
  175. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/module_paths.py +0 -0
  176. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/openpy.py +0 -0
  177. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/path.py +0 -0
  178. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/process.py +0 -0
  179. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/py3compat.py +0 -0
  180. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/sentinel.py +0 -0
  181. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/strdispatch.py +0 -0
  182. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/sysinfo.py +0 -0
  183. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/syspathcontext.py +0 -0
  184. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/tempdir.py +0 -0
  185. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/terminal.py +0 -0
  186. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/text.py +0 -0
  187. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/timing.py +0 -0
  188. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/tokenutil.py +0 -0
  189. {ipython-9.0.1 → ipython-9.0.2}/IPython/utils/wildcard.py +0 -0
  190. {ipython-9.0.1 → ipython-9.0.2}/LICENSE +0 -0
  191. {ipython-9.0.1 → ipython-9.0.2}/MANIFEST.in +0 -0
  192. {ipython-9.0.1 → ipython-9.0.2}/README.rst +0 -0
  193. {ipython-9.0.1 → ipython-9.0.2}/_build_meta.py +0 -0
  194. {ipython-9.0.1 → ipython-9.0.2}/docs/Makefile +0 -0
  195. {ipython-9.0.1 → ipython-9.0.2}/docs/README.rst +0 -0
  196. {ipython-9.0.1 → ipython-9.0.2}/docs/autogen_api.py +0 -0
  197. {ipython-9.0.1 → ipython-9.0.2}/docs/autogen_config.py +0 -0
  198. {ipython-9.0.1 → ipython-9.0.2}/docs/autogen_magics.py +0 -0
  199. {ipython-9.0.1 → ipython-9.0.2}/docs/autogen_shortcuts.py +0 -0
  200. {ipython-9.0.1 → ipython-9.0.2}/docs/make.cmd +0 -0
  201. {ipython-9.0.1 → ipython-9.0.2}/docs/man/ipython.1 +0 -0
  202. {ipython-9.0.1 → ipython-9.0.2}/docs/requirements.txt +0 -0
  203. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/2.0/running-crop.png +0 -0
  204. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/2.0/running.png +0 -0
  205. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/2.0/treeview.png +0 -0
  206. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/2.0/user-interface.png +0 -0
  207. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/2.0/widgets.png +0 -0
  208. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
  209. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
  210. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
  211. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
  212. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
  213. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
  214. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
  215. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
  216. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
  217. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
  218. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
  219. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/autosuggest.gif +0 -0
  220. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_dashboard.png +0 -0
  221. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
  222. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
  223. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
  224. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
  225. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
  226. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
  227. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
  228. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
  229. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_par_tb.png +0 -0
  230. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
  231. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
  232. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ipython-6-screenshot.png +0 -0
  233. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/jedi_type_inference_60.png +0 -0
  234. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/kernel_selector_screenshot.png +0 -0
  235. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ms_visual_studio.png +0 -0
  236. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/notebook_specgram.png +0 -0
  237. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/ptshell_features.png +0 -0
  238. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/qtconsole.png +0 -0
  239. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/qtconsole_tabbed.png +0 -0
  240. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_images/unicode_completion.png +0 -0
  241. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_static/favicon.ico +0 -0
  242. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_static/logo.png +0 -0
  243. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_static/theme_overrides.css +0 -0
  244. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_templates/breadcrumbs.html +0 -0
  245. {ipython-9.0.1 → ipython-9.0.2}/docs/source/_templates/notebook_redirect.html +0 -0
  246. {ipython-9.0.1 → ipython-9.0.2}/docs/source/about/history.rst +0 -0
  247. {ipython-9.0.1 → ipython-9.0.2}/docs/source/about/index.rst +0 -0
  248. {ipython-9.0.1 → ipython-9.0.2}/docs/source/about/license_and_copyright.rst +0 -0
  249. {ipython-9.0.1 → ipython-9.0.2}/docs/source/api/index.rst +0 -0
  250. {ipython-9.0.1 → ipython-9.0.2}/docs/source/conf.py +0 -0
  251. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/callbacks.rst +0 -0
  252. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/custommagics.rst +0 -0
  253. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/details.rst +0 -0
  254. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/eventloops.rst +0 -0
  255. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/extensions/autoreload.rst +0 -0
  256. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/extensions/index.rst +0 -0
  257. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/extensions/storemagic.rst +0 -0
  258. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/index.rst +0 -0
  259. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/inputtransforms.rst +0 -0
  260. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/integrating.rst +0 -0
  261. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/options/index.rst +0 -0
  262. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/shell_mimerenderer.rst +0 -0
  263. {ipython-9.0.1 → ipython-9.0.2}/docs/source/config/shortcuts/index.rst +0 -0
  264. {ipython-9.0.1 → ipython-9.0.2}/docs/source/coredev/index.rst +0 -0
  265. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/config.rst +0 -0
  266. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/execution.rst +0 -0
  267. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
  268. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
  269. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/figs/other_kernels.png +0 -0
  270. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/figs/other_kernels.svg +0 -0
  271. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/how_ipython_works.rst +0 -0
  272. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/index.rst +0 -0
  273. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/inputhook_app.rst +0 -0
  274. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/kernels.rst +0 -0
  275. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/messaging.rst +0 -0
  276. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/pycompat.rst +0 -0
  277. {ipython-9.0.1 → ipython-9.0.2}/docs/source/development/wrapperkernels.rst +0 -0
  278. {ipython-9.0.1 → ipython-9.0.2}/docs/source/index.rst +0 -0
  279. {ipython-9.0.1 → ipython-9.0.2}/docs/source/install/index.rst +0 -0
  280. {ipython-9.0.1 → ipython-9.0.2}/docs/source/install/install.rst +0 -0
  281. {ipython-9.0.1 → ipython-9.0.2}/docs/source/install/kernel_install.rst +0 -0
  282. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/autoawait.rst +0 -0
  283. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/index.rst +0 -0
  284. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/magics.rst +0 -0
  285. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/plotting.rst +0 -0
  286. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/python-ipython-diff.rst +0 -0
  287. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/reference.rst +0 -0
  288. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/shell.rst +0 -0
  289. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/tips.rst +0 -0
  290. {ipython-9.0.1 → ipython-9.0.2}/docs/source/interactive/tutorial.rst +0 -0
  291. {ipython-9.0.1 → ipython-9.0.2}/docs/source/links.txt +0 -0
  292. {ipython-9.0.1 → ipython-9.0.2}/docs/source/overview.rst +0 -0
  293. {ipython-9.0.1 → ipython-9.0.2}/docs/source/parallel/index.rst +0 -0
  294. {ipython-9.0.1 → ipython-9.0.2}/docs/source/sphinx.toml +0 -0
  295. {ipython-9.0.1 → ipython-9.0.2}/docs/source/sphinxext.rst +0 -0
  296. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/development.rst +0 -0
  297. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
  298. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
  299. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
  300. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
  301. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
  302. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-3.rst +0 -0
  303. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-4.rst +0 -0
  304. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-5.rst +0 -0
  305. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-6.rst +0 -0
  306. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-7.rst +0 -0
  307. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/github-stats-8.rst +0 -0
  308. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/index.rst +0 -0
  309. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/pr/README.md +0 -0
  310. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
  311. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
  312. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.10.rst +0 -0
  313. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.11.rst +0 -0
  314. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.12.rst +0 -0
  315. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.13.rst +0 -0
  316. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.8.rst +0 -0
  317. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version0.9.rst +0 -0
  318. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version1.0.rst +0 -0
  319. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version2.0.rst +0 -0
  320. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version3.rst +0 -0
  321. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
  322. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version4.rst +0 -0
  323. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version5.rst +0 -0
  324. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version6.rst +0 -0
  325. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version7.rst +0 -0
  326. {ipython-9.0.1 → ipython-9.0.2}/docs/source/whatsnew/version8.rst +0 -0
  327. {ipython-9.0.1 → ipython-9.0.2}/docs/sphinxext/apigen.py +0 -0
  328. {ipython-9.0.1 → ipython-9.0.2}/docs/sphinxext/configtraits.py +0 -0
  329. {ipython-9.0.1 → ipython-9.0.2}/docs/sphinxext/github.py +0 -0
  330. {ipython-9.0.1 → ipython-9.0.2}/docs/sphinxext/magics.py +0 -0
  331. {ipython-9.0.1 → ipython-9.0.2}/examples/Embedding/embed_class_long.py +0 -0
  332. {ipython-9.0.1 → ipython-9.0.2}/examples/Embedding/embed_class_short.py +0 -0
  333. {ipython-9.0.1 → ipython-9.0.2}/examples/Embedding/embed_function.py +0 -0
  334. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/example-demo.py +0 -0
  335. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/gui/gui-glut.py +0 -0
  336. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
  337. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/gui/gui-qt.py +0 -0
  338. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/ipython-completion.bash +0 -0
  339. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/ipython-get-history.py +0 -0
  340. {ipython-9.0.1 → ipython-9.0.2}/examples/IPython Kernel/ipython.desktop +0 -0
  341. {ipython-9.0.1 → ipython-9.0.2}/examples/auto_suggest_llm.py +0 -0
  342. {ipython-9.0.1 → ipython-9.0.2}/examples/utils/cwd_prompt.py +0 -0
  343. {ipython-9.0.1 → ipython-9.0.2}/examples/utils/list_pyfiles.ipy +0 -0
  344. {ipython-9.0.1 → ipython-9.0.2}/examples/utils/list_subdirs.ipy +0 -0
  345. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/SOURCES.txt +0 -0
  346. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/dependency_links.txt +0 -0
  347. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/entry_points.txt +0 -0
  348. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/not-zip-safe +0 -0
  349. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/requires.txt +0 -0
  350. {ipython-9.0.1 → ipython-9.0.2}/ipython.egg-info/top_level.txt +0 -0
  351. {ipython-9.0.1 → ipython-9.0.2}/long_description.rst +0 -0
  352. {ipython-9.0.1 → ipython-9.0.2}/scripts/ipython.ico +0 -0
  353. {ipython-9.0.1 → ipython-9.0.2}/scripts/ipython_nb.ico +0 -0
  354. {ipython-9.0.1 → ipython-9.0.2}/setup.cfg +0 -0
  355. {ipython-9.0.1 → ipython-9.0.2}/setup.py +0 -0
  356. {ipython-9.0.1 → ipython-9.0.2}/setupbase.py +0 -0
  357. {ipython-9.0.1 → ipython-9.0.2}/tests/2x2.jpg +0 -0
  358. {ipython-9.0.1 → ipython-9.0.2}/tests/2x2.png +0 -0
  359. {ipython-9.0.1 → ipython-9.0.2}/tests/__init__.py +0 -0
  360. {ipython-9.0.1 → ipython-9.0.2}/tests/bad_all.py +0 -0
  361. {ipython-9.0.1 → ipython-9.0.2}/tests/conftest.py +0 -0
  362. {ipython-9.0.1 → ipython-9.0.2}/tests/cve.py +0 -0
  363. {ipython-9.0.1 → ipython-9.0.2}/tests/fake_ext_dir/daft_extension.py +0 -0
  364. {ipython-9.0.1 → ipython-9.0.2}/tests/nonascii.py +0 -0
  365. {ipython-9.0.1 → ipython-9.0.2}/tests/nonascii2.py +0 -0
  366. {ipython-9.0.1 → ipython-9.0.2}/tests/print_argv.py +0 -0
  367. {ipython-9.0.1 → ipython-9.0.2}/tests/refbug.py +0 -0
  368. {ipython-9.0.1 → ipython-9.0.2}/tests/simpleerr.py +0 -0
  369. {ipython-9.0.1 → ipython-9.0.2}/tests/tclass.py +0 -0
  370. {ipython-9.0.1 → ipython-9.0.2}/tests/test.wav +0 -0
  371. {ipython-9.0.1 → ipython-9.0.2}/tests/test_alias.py +0 -0
  372. {ipython-9.0.1 → ipython-9.0.2}/tests/test_application.py +0 -0
  373. {ipython-9.0.1 → ipython-9.0.2}/tests/test_async_helpers.py +0 -0
  374. {ipython-9.0.1 → ipython-9.0.2}/tests/test_autocall.py +0 -0
  375. {ipython-9.0.1 → ipython-9.0.2}/tests/test_backgroundjobs.py +0 -0
  376. {ipython-9.0.1 → ipython-9.0.2}/tests/test_capture.py +0 -0
  377. {ipython-9.0.1 → ipython-9.0.2}/tests/test_clipboard.py +0 -0
  378. {ipython-9.0.1 → ipython-9.0.2}/tests/test_compilerop.py +0 -0
  379. {ipython-9.0.1 → ipython-9.0.2}/tests/test_completer.py +0 -0
  380. {ipython-9.0.1 → ipython-9.0.2}/tests/test_completerlib.py +0 -0
  381. {ipython-9.0.1 → ipython-9.0.2}/tests/test_debug_magic.py +0 -0
  382. {ipython-9.0.1 → ipython-9.0.2}/tests/test_debugger.py +0 -0
  383. {ipython-9.0.1 → ipython-9.0.2}/tests/test_decorators.py +0 -0
  384. {ipython-9.0.1 → ipython-9.0.2}/tests/test_decorators_2.py +0 -0
  385. {ipython-9.0.1 → ipython-9.0.2}/tests/test_deepreload.py +0 -0
  386. {ipython-9.0.1 → ipython-9.0.2}/tests/test_dir2.py +0 -0
  387. {ipython-9.0.1 → ipython-9.0.2}/tests/test_display.py +0 -0
  388. {ipython-9.0.1 → ipython-9.0.2}/tests/test_display_2.py +0 -0
  389. {ipython-9.0.1 → ipython-9.0.2}/tests/test_displayhook.py +0 -0
  390. {ipython-9.0.1 → ipython-9.0.2}/tests/test_editorhooks.py +0 -0
  391. {ipython-9.0.1 → ipython-9.0.2}/tests/test_embed.py +0 -0
  392. {ipython-9.0.1 → ipython-9.0.2}/tests/test_events.py +0 -0
  393. {ipython-9.0.1 → ipython-9.0.2}/tests/test_exceptiongroup_tb.py +0 -0
  394. {ipython-9.0.1 → ipython-9.0.2}/tests/test_extension.py +0 -0
  395. {ipython-9.0.1 → ipython-9.0.2}/tests/test_formatters.py +0 -0
  396. {ipython-9.0.1 → ipython-9.0.2}/tests/test_guarded_eval.py +0 -0
  397. {ipython-9.0.1 → ipython-9.0.2}/tests/test_handlers.py +0 -0
  398. {ipython-9.0.1 → ipython-9.0.2}/tests/test_help.py +0 -0
  399. {ipython-9.0.1 → ipython-9.0.2}/tests/test_history.py +0 -0
  400. {ipython-9.0.1 → ipython-9.0.2}/tests/test_hooks.py +0 -0
  401. {ipython-9.0.1 → ipython-9.0.2}/tests/test_imports.py +0 -0
  402. {ipython-9.0.1 → ipython-9.0.2}/tests/test_importstring.py +0 -0
  403. {ipython-9.0.1 → ipython-9.0.2}/tests/test_inputtransformer2.py +0 -0
  404. {ipython-9.0.1 → ipython-9.0.2}/tests/test_interactiveshell.py +0 -0
  405. {ipython-9.0.1 → ipython-9.0.2}/tests/test_interactivshell.py +0 -0
  406. {ipython-9.0.1 → ipython-9.0.2}/tests/test_io.py +0 -0
  407. {ipython-9.0.1 → ipython-9.0.2}/tests/test_iplib.py +0 -0
  408. {ipython-9.0.1 → ipython-9.0.2}/tests/test_ipunittest.py +0 -0
  409. {ipython-9.0.1 → ipython-9.0.2}/tests/test_latextools.py +0 -0
  410. {ipython-9.0.1 → ipython-9.0.2}/tests/test_logger.py +0 -0
  411. {ipython-9.0.1 → ipython-9.0.2}/tests/test_magic.py +0 -0
  412. {ipython-9.0.1 → ipython-9.0.2}/tests/test_magic_arguments.py +0 -0
  413. {ipython-9.0.1 → ipython-9.0.2}/tests/test_magic_terminal.py +0 -0
  414. {ipython-9.0.1 → ipython-9.0.2}/tests/test_module_paths.py +0 -0
  415. {ipython-9.0.1 → ipython-9.0.2}/tests/test_oinspect.py +0 -0
  416. {ipython-9.0.1 → ipython-9.0.2}/tests/test_openpy.py +0 -0
  417. {ipython-9.0.1 → ipython-9.0.2}/tests/test_page.py +0 -0
  418. {ipython-9.0.1 → ipython-9.0.2}/tests/test_path.py +0 -0
  419. {ipython-9.0.1 → ipython-9.0.2}/tests/test_paths.py +0 -0
  420. {ipython-9.0.1 → ipython-9.0.2}/tests/test_prefilter.py +0 -0
  421. {ipython-9.0.1 → ipython-9.0.2}/tests/test_pretty.py +0 -0
  422. {ipython-9.0.1 → ipython-9.0.2}/tests/test_process.py +0 -0
  423. {ipython-9.0.1 → ipython-9.0.2}/tests/test_profile.py +0 -0
  424. {ipython-9.0.1 → ipython-9.0.2}/tests/test_pt_inputhooks.py +0 -0
  425. {ipython-9.0.1 → ipython-9.0.2}/tests/test_pycolorize.py +0 -0
  426. {ipython-9.0.1 → ipython-9.0.2}/tests/test_pylabtools.py +0 -0
  427. {ipython-9.0.1 → ipython-9.0.2}/tests/test_qt_loaders.py +0 -0
  428. {ipython-9.0.1 → ipython-9.0.2}/tests/test_run.py +0 -0
  429. {ipython-9.0.1 → ipython-9.0.2}/tests/test_shellapp.py +0 -0
  430. {ipython-9.0.1 → ipython-9.0.2}/tests/test_shortcuts.py +0 -0
  431. {ipython-9.0.1 → ipython-9.0.2}/tests/test_splitinput.py +0 -0
  432. {ipython-9.0.1 → ipython-9.0.2}/tests/test_storemagic.py +0 -0
  433. {ipython-9.0.1 → ipython-9.0.2}/tests/test_sysinfo.py +0 -0
  434. {ipython-9.0.1 → ipython-9.0.2}/tests/test_tempdir.py +0 -0
  435. {ipython-9.0.1 → ipython-9.0.2}/tests/test_text.py +0 -0
  436. {ipython-9.0.1 → ipython-9.0.2}/tests/test_tips.py +0 -0
  437. {ipython-9.0.1 → ipython-9.0.2}/tests/test_tokenutil.py +0 -0
  438. {ipython-9.0.1 → ipython-9.0.2}/tests/test_tools.py +0 -0
  439. {ipython-9.0.1 → ipython-9.0.2}/tests/test_ultratb.py +0 -0
  440. {ipython-9.0.1 → ipython-9.0.2}/tests/test_wildcard.py +0 -0
  441. {ipython-9.0.1 → ipython-9.0.2}/tests/test_zzz_autoreload.py +0 -0
@@ -17,6 +17,7 @@ import sys
17
17
  import tokenize
18
18
  from typing import List, Tuple, Optional, Any
19
19
  import warnings
20
+ from textwrap import dedent
20
21
 
21
22
  from IPython.utils import tokenutil
22
23
 
@@ -38,18 +39,11 @@ def leading_empty_lines(lines):
38
39
  def leading_indent(lines):
39
40
  """Remove leading indentation.
40
41
 
41
- If the first line starts with a spaces or tabs, the same whitespace will be
42
- removed from each following line in the cell.
42
+ Removes the minimum common leading indentation from all lines.
43
43
  """
44
44
  if not lines:
45
45
  return lines
46
- m = _indent_re.match(lines[0])
47
- if not m or lines[0].strip().startswith("#"):
48
- return lines
49
- space = m.group(0)
50
- n = len(space)
51
- return [l[n:] if l.startswith(space) else l
52
- for l in lines]
46
+ return dedent("".join(lines)).splitlines(keepends=True)
53
47
 
54
48
  class PromptStripper:
55
49
  """Remove matching input prompts from a block of input.
@@ -329,6 +329,7 @@ class InteractiveShell(SingletonConfigurable):
329
329
 
330
330
  _instance = None
331
331
  _user_ns: dict
332
+ _sys_modules_keys: set[str, AnyType]
332
333
 
333
334
  inspector: oinspect.Inspector
334
335
 
@@ -764,7 +765,9 @@ class InteractiveShell(SingletonConfigurable):
764
765
  if not new == new.lower():
765
766
  warn(
766
767
  f"`TerminalInteractiveShell.colors` is now lowercase: `{new.lower()}`,"
767
- " non lowercase, may invalid in the future."
768
+ " non lowercase, may be invalid in the future.",
769
+ DeprecationWarning,
770
+ stacklevel=2,
768
771
  )
769
772
  return new.lower()
770
773
 
@@ -781,7 +784,8 @@ class InteractiveShell(SingletonConfigurable):
781
784
  )
782
785
 
783
786
  try:
784
- self.inspector.set_theme_name(self.colors)
787
+ # Deprecation in 9.0, colors should always be lower
788
+ self.inspector.set_theme_name(self.colors.lower())
785
789
  except Exception:
786
790
  warn(
787
791
  "Error changing object inspector color schemes.\n%s"
@@ -804,20 +808,19 @@ class InteractiveShell(SingletonConfigurable):
804
808
 
805
809
  self.dir_stack = []
806
810
 
807
- def init_logger(self):
811
+ def init_logger(self) -> None:
808
812
  self.logger = Logger(self.home_dir, logfname='ipython_log.py',
809
813
  logmode='rotate')
810
814
 
811
- def init_logstart(self):
815
+ def init_logstart(self) -> None:
812
816
  """Initialize logging in case it was requested at the command line.
813
817
  """
814
818
  if self.logappend:
815
- self.magic('logstart %s append' % self.logappend)
819
+ self.run_line_magic("logstart", f"{self.logappend} append")
816
820
  elif self.logfile:
817
- self.magic('logstart %s' % self.logfile)
821
+ self.run_line_magic("logstart", self.logfile)
818
822
  elif self.logstart:
819
- self.magic('logstart')
820
-
823
+ self.run_line_magic("logstart", "")
821
824
 
822
825
  def init_builtins(self):
823
826
  # A single, static flag that we set to True. Its presence indicates
@@ -401,7 +401,13 @@ class Inspector(Configurable):
401
401
  parent=None,
402
402
  config=None,
403
403
  ):
404
- assert theme_name == theme_name.lower(), theme_name
404
+ if theme_name in ["Linux", "LightBG", "Neutral", "NoColor"]:
405
+ warnings.warn(
406
+ f"Theme names and color schemes are lowercase in IPython 9.0 use {theme_name.lower()} instead",
407
+ DeprecationWarning,
408
+ stacklevel=2,
409
+ )
410
+ theme_name = theme_name.lower()
405
411
  self._theme_name = theme_name
406
412
  super(Inspector, self).__init__(parent=parent, config=config)
407
413
  self.parser = PyColorize.Parser(out="str", theme_name=theme_name)
@@ -17,7 +17,7 @@
17
17
  # version
18
18
  _version_major = 9
19
19
  _version_minor = 0
20
- _version_patch = 1
20
+ _version_patch = 2
21
21
  _version_extra = ".dev"
22
22
  # _version_extra = "b2"
23
23
  _version_extra = "" # Uncomment this for full releases
@@ -401,7 +401,13 @@ class TBTools:
401
401
  stacklevel=2,
402
402
  )
403
403
  theme_name = color_scheme
404
- assert theme_name.lower() == theme_name, theme_name
404
+ if theme_name in ["Linux", "LightBG", "Neutral", "NoColor"]:
405
+ warnings.warn(
406
+ f"Theme names and color schemes are lowercase in IPython 9.0 use {theme_name.lower()} instead",
407
+ DeprecationWarning,
408
+ stacklevel=2,
409
+ )
410
+ theme_name = theme_name.lower()
405
411
  # Whether to call the interactive pdb debugger after printing
406
412
  # tracebacks or not
407
413
  super().__init__()
@@ -76,7 +76,7 @@ _tips: Any = {
76
76
  "Use `object?` to see the help on `object`, `object??` to view it's source",
77
77
  "`?` alone on a line will brings up IPython's help",
78
78
  "You can use `%hist` to view history, see the options with `%history?`",
79
- "You can change the edditing mode of IPython to behave more like vi, or emacs.",
79
+ "You can change the editing mode of IPython to behave more like vi, or emacs.",
80
80
  "IPython 9.0+ have hooks to integrate AI/LLM completions.",
81
81
  "Use `%timeit` or `%%timeit`, and the `-r`, `-n`, and `-o` options to easily profile your code.",
82
82
  "Use `ipython --help-all | less` to view all the IPython configurations options.",
@@ -50,7 +50,6 @@ def inputhook(context):
50
50
  except AttributeError: # Only for Qt>=5.14.
51
51
  pass
52
52
  _appref = app = QtGui.QApplication([" "])
53
- _eventloop = QtCore.QEventLoop(app)
54
53
 
55
54
  # "reclaim" IPython sys.excepthook after event loop starts
56
55
  # without this, it defaults back to BaseIPythonApplication.excepthook
@@ -58,6 +57,9 @@ def inputhook(context):
58
57
  # formatting and look like "bug in IPython".
59
58
  QtCore.QTimer.singleShot(0, _reclaim_excepthook)
60
59
 
60
+ if _eventloop is None:
61
+ _eventloop = QtCore.QEventLoop(app)
62
+
61
63
  if sys.platform == 'win32':
62
64
  # The QSocketNotifier method doesn't appear to work on Windows.
63
65
  # Use polling instead.
@@ -203,7 +203,7 @@ AUTO_SUGGEST_BINDINGS = [
203
203
  Binding(
204
204
  auto_suggest.accept,
205
205
  ["right"],
206
- "has_suggestion & default_buffer_focused & emacs_like_insert_mode",
206
+ "has_suggestion & default_buffer_focused & emacs_like_insert_mode & is_cursor_at_the_end_of_line",
207
207
  ),
208
208
  Binding(
209
209
  auto_suggest.accept_word,
@@ -3,6 +3,7 @@ import os
3
3
  import sys
4
4
  import token
5
5
  import tokenize
6
+ import warnings
6
7
  from io import StringIO
7
8
  from typing import TypeAlias
8
9
 
@@ -353,7 +354,6 @@ class Parser:
353
354
  Call format() to process code.
354
355
  """
355
356
 
356
-
357
357
  assert theme_name is not None
358
358
 
359
359
  self.out = out
@@ -361,7 +361,13 @@ class Parser:
361
361
  self.lines = None
362
362
  self.raw = None
363
363
  if theme_name is not None:
364
- assert theme_name == theme_name.lower()
364
+ if theme_name in ["Linux", "LightBG", "Neutral", "NoColor"]:
365
+ warnings.warn(
366
+ f"Theme names and color schemes are lowercase in IPython 9.0 use {theme_name.lower()} instead",
367
+ DeprecationWarning,
368
+ stacklevel=2,
369
+ )
370
+ theme_name = theme_name.lower()
365
371
  if not theme_name:
366
372
  self.theme_name = "nocolor"
367
373
  else:
@@ -1,2 +1,2 @@
1
1
  # GENERATED BY setup.py
2
- commit = "d64897cf0"
2
+ commit = "9970f5e4b"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ipython
3
- Version: 9.0.1
3
+ Version: 9.0.2
4
4
  Summary: IPython: Productive Interactive Computing
5
5
  Author: The IPython Development Team
6
6
  Author-email: ipython-dev@python.org
@@ -68,7 +68,7 @@ Example configuration file
68
68
  'mycode.py',
69
69
  'fancy.ipy'
70
70
  ]
71
- c.InteractiveShell.colors = 'LightBG'
71
+ c.InteractiveShell.colors = 'lightbg'
72
72
  c.InteractiveShell.xmode = 'Context'
73
73
  c.TerminalInteractiveShell.confirm_exit = False
74
74
  c.TerminalInteractiveShell.editor = 'nano'
@@ -92,7 +92,7 @@ hierarchy represents the value you would normally set on the ``c`` object of
92
92
 
93
93
  {
94
94
  "InteractiveShell": {
95
- "colors": "LightBG",
95
+ "colors": "lightbg",
96
96
  },
97
97
  "InteractiveShellApp": {
98
98
  "extensions": [
@@ -106,7 +106,7 @@ hierarchy represents the value you would normally set on the ``c`` object of
106
106
 
107
107
  Is equivalent to the following ``ipython_config.py``::
108
108
 
109
- c.InteractiveShell.colors = 'LightBG'
109
+ c.InteractiveShell.colors = 'lightbg'
110
110
  c.InteractiveShellApp.extensions = [
111
111
  'myextension'
112
112
  ]
@@ -84,7 +84,7 @@ unicode symbol, for a more refined experience.
84
84
  New themes using colors and symbols
85
85
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86
86
 
87
- All the existing themes (Linux, LightBG, Neutral and Nocolor) should not see any
87
+ All the existing themes (Linux, LightBG, Neutral and NoColor) should not see any
88
88
  changes, but I added two new *pride themes*, that show the use of 256bits colors
89
89
  and unicode symbols. I'm not a designer, so feel free to suggest updates and new
90
90
  themes to add.
@@ -13,7 +13,7 @@ c.InteractiveShellApp.exec_lines = [
13
13
  'import math',
14
14
  "math"
15
15
  ]
16
- c.InteractiveShell.colors = 'LightBG'
16
+ c.InteractiveShell.colors = "lightbg"
17
17
  c.InteractiveShell.confirm_exit = False
18
18
  c.TerminalIPythonApp.display_banner = False
19
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ipython
3
- Version: 9.0.1
3
+ Version: 9.0.2
4
4
  Summary: IPython: Productive Interactive Computing
5
5
  Author: The IPython Development Team
6
6
  Author-email: ipython-dev@python.org
@@ -165,6 +165,17 @@ disallow_incomplete_defs = false
165
165
  check_untyped_defs = true
166
166
  disallow_untyped_decorators = true
167
167
 
168
+ [[tool.mypy.overrides]]
169
+ module = [
170
+ "IPython.core.interactiveshell",
171
+ ]
172
+ disallow_untyped_defs = false
173
+ ignore_errors = true
174
+ ignore_missing_imports = true
175
+ disallow_untyped_calls = false
176
+ disallow_incomplete_defs = true
177
+ check_untyped_defs = true
178
+ disallow_untyped_decorators = false
168
179
 
169
180
  # gloabl ignore error
170
181
  [[tool.mypy.overrides]]
@@ -192,7 +203,6 @@ module = [
192
203
  "IPython.core.historyapp",
193
204
  "IPython.core.hooks",
194
205
  "IPython.core.inputtransformer2",
195
- "IPython.core.interactiveshell",
196
206
  "IPython.core.logger",
197
207
  "IPython.core.macro",
198
208
  "IPython.core.magic",
@@ -4,6 +4,8 @@ Line-based transformers are the simpler ones; token-based transformers are
4
4
  more complex. See test_inputtransformer2 for tests for token-based transformers.
5
5
  """
6
6
 
7
+ import pytest
8
+
7
9
  from IPython.core import inputtransformer2 as ipt2
8
10
 
9
11
  CELL_MAGIC = (
@@ -164,7 +166,7 @@ if True:
164
166
  """\
165
167
  # comment
166
168
  if True:
167
- a = 3
169
+ a = 3
168
170
  """,
169
171
  )
170
172
 
@@ -182,11 +184,28 @@ if True:
182
184
  )
183
185
 
184
186
 
185
- def test_leading_indent():
186
- for sample, expected in [INDENT_SPACES, INDENT_TABS]:
187
- assert ipt2.leading_indent(
188
- sample.splitlines(keepends=True)
189
- ) == expected.splitlines(keepends=True)
187
+ INDENTED_CODE_WITH_ALIGNED_COMMENT = (
188
+ """\
189
+ # comment
190
+ x = 1
191
+ print(x)
192
+ """,
193
+ """\
194
+ # comment
195
+ x = 1
196
+ print(x)
197
+ """,
198
+ )
199
+
200
+
201
+ @pytest.mark.parametrize(
202
+ "sample, expected",
203
+ [INDENT_SPACES_COMMENT, INDENT_TABS_COMMENT, INDENTED_CODE_WITH_ALIGNED_COMMENT],
204
+ )
205
+ def test_leading_indent_comment(sample, expected):
206
+ assert ipt2.leading_indent(sample.splitlines(keepends=True)) == expected.splitlines(
207
+ keepends=True
208
+ )
190
209
 
191
210
 
192
211
  LEADING_EMPTY_LINES = (
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