ipython 8.24.0__tar.gz → 8.26.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 (499) hide show
  1. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/async_helpers.py +0 -1
  2. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/completerlib.py +7 -2
  3. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/historyapp.py +5 -3
  4. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/hooks.py +2 -2
  5. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/inputsplitter.py +1 -1
  6. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/interactiveshell.py +2 -2
  7. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/logger.py +1 -1
  8. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/code.py +6 -6
  9. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/execution.py +12 -12
  10. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/history.py +1 -1
  11. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/namespace.py +1 -1
  12. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/oinspect.py +2 -2
  13. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/page.py +4 -4
  14. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/prefilter.py +4 -4
  15. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/profileapp.py +5 -2
  16. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/pylabtools.py +27 -3
  17. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/release.py +1 -1
  18. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/shellapp.py +8 -4
  19. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/splitinput.py +4 -4
  20. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/tclass.py +1 -1
  21. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_autocall.py +1 -0
  22. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_completer.py +11 -1
  23. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_debugger.py +5 -0
  24. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_formatters.py +37 -22
  25. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_inputsplitter.py +1 -1
  26. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_interactiveshell.py +67 -47
  27. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_magic.py +8 -0
  28. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_oinspect.py +21 -11
  29. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_pylabtools.py +2 -4
  30. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/storemagic.py +2 -2
  31. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/tests/test_autoreload.py +1 -0
  32. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/lexers.py +2 -2
  33. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/pretty.py +10 -2
  34. {ipython-8.24.0 → ipython-8.26.0}/IPython/sphinxext/ipython_directive.py +3 -3
  35. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/interactiveshell.py +5 -0
  36. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/ipapp.py +1 -1
  37. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/asyncio.py +1 -0
  38. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/glut.py +2 -2
  39. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/pyglet.py +2 -2
  40. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/wx.py +2 -2
  41. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/decorators.py +7 -4
  42. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/ipunittest.py +1 -1
  43. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/ipdoctest.py +2 -2
  44. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/pytest_ipdoctest.py +26 -10
  45. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/tools.py +2 -2
  46. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_emscripten.py +0 -1
  47. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_sysinfo.py +1 -1
  48. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/io.py +2 -0
  49. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/path.py +2 -2
  50. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/strdispatch.py +1 -1
  51. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_path.py +2 -2
  52. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/text.py +41 -18
  53. {ipython-8.24.0/ipython.egg-info → ipython-8.26.0}/PKG-INFO +9 -7
  54. {ipython-8.24.0 → ipython-8.26.0}/README.rst +0 -52
  55. {ipython-8.24.0 → ipython-8.26.0}/docs/requirements.txt +1 -1
  56. ipython-8.26.0/docs/source/conf.py +273 -0
  57. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/intro.rst +3 -4
  58. ipython-8.26.0/docs/source/interactive/plotting.rst +81 -0
  59. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/reference.rst +18 -38
  60. ipython-8.26.0/docs/source/sphinx.toml +70 -0
  61. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version8.rst +51 -1
  62. {ipython-8.24.0 → ipython-8.26.0/ipython.egg-info}/PKG-INFO +9 -7
  63. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/SOURCES.txt +3 -0
  64. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/requires.txt +10 -6
  65. {ipython-8.24.0 → ipython-8.26.0}/pyproject.toml +172 -6
  66. {ipython-8.24.0 → ipython-8.26.0}/setupbase.py +2 -2
  67. ipython-8.24.0/docs/source/conf.py +0 -337
  68. ipython-8.24.0/docs/source/interactive/plotting.rst +0 -67
  69. {ipython-8.24.0 → ipython-8.26.0}/.flake8 +0 -0
  70. {ipython-8.24.0 → ipython-8.26.0}/.mailmap +0 -0
  71. {ipython-8.24.0 → ipython-8.26.0}/.pre-commit-config.yaml +0 -0
  72. {ipython-8.24.0 → ipython-8.26.0}/COPYING.rst +0 -0
  73. {ipython-8.24.0 → ipython-8.26.0}/IPython/__init__.py +0 -0
  74. {ipython-8.24.0 → ipython-8.26.0}/IPython/__main__.py +0 -0
  75. {ipython-8.24.0 → ipython-8.26.0}/IPython/conftest.py +0 -0
  76. {ipython-8.24.0 → ipython-8.26.0}/IPython/consoleapp.py +0 -0
  77. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/__init__.py +0 -0
  78. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/alias.py +0 -0
  79. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/application.py +0 -0
  80. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/autocall.py +0 -0
  81. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/builtin_trap.py +0 -0
  82. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/compilerop.py +0 -0
  83. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/completer.py +0 -0
  84. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/crashhandler.py +0 -0
  85. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/debugger.py +0 -0
  86. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/display.py +0 -0
  87. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/display_functions.py +0 -0
  88. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/display_trap.py +0 -0
  89. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/displayhook.py +0 -0
  90. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/displaypub.py +0 -0
  91. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/error.py +0 -0
  92. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/events.py +0 -0
  93. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/excolors.py +0 -0
  94. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/extensions.py +0 -0
  95. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/formatters.py +0 -0
  96. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/getipython.py +0 -0
  97. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/guarded_eval.py +0 -0
  98. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/history.py +0 -0
  99. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/inputtransformer.py +0 -0
  100. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/inputtransformer2.py +0 -0
  101. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/latex_symbols.py +0 -0
  102. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/macro.py +0 -0
  103. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magic.py +0 -0
  104. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magic_arguments.py +0 -0
  105. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/__init__.py +0 -0
  106. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/ast_mod.py +0 -0
  107. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/auto.py +0 -0
  108. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/basic.py +0 -0
  109. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/config.py +0 -0
  110. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/display.py +0 -0
  111. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/extension.py +0 -0
  112. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/logging.py +0 -0
  113. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/osm.py +0 -0
  114. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/packaging.py +0 -0
  115. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/pylab.py +0 -0
  116. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/magics/script.py +0 -0
  117. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/payload.py +0 -0
  118. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/payloadpage.py +0 -0
  119. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/profile/README_STARTUP +0 -0
  120. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/profiledir.py +0 -0
  121. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/prompts.py +0 -0
  122. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/2x2.jpg +0 -0
  123. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/2x2.png +0 -0
  124. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/__init__.py +0 -0
  125. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/bad_all.py +0 -0
  126. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/daft_extension/daft_extension.py +0 -0
  127. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/nonascii.py +0 -0
  128. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/nonascii2.py +0 -0
  129. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/print_argv.py +0 -0
  130. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/refbug.py +0 -0
  131. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/simpleerr.py +0 -0
  132. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_alias.py +0 -0
  133. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_application.py +0 -0
  134. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_async_helpers.py +0 -0
  135. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_compilerop.py +0 -0
  136. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_completerlib.py +0 -0
  137. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_display.py +0 -0
  138. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_displayhook.py +0 -0
  139. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_events.py +0 -0
  140. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_exceptiongroup_tb.py +0 -0
  141. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_extension.py +0 -0
  142. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_guarded_eval.py +0 -0
  143. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_handlers.py +0 -0
  144. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_history.py +0 -0
  145. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_hooks.py +0 -0
  146. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_imports.py +0 -0
  147. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_inputtransformer.py +0 -0
  148. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_inputtransformer2.py +0 -0
  149. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_inputtransformer2_line.py +0 -0
  150. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_iplib.py +0 -0
  151. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_logger.py +0 -0
  152. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_magic_arguments.py +0 -0
  153. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_magic_terminal.py +0 -0
  154. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_page.py +0 -0
  155. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_paths.py +0 -0
  156. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_prefilter.py +0 -0
  157. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_profile.py +0 -0
  158. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_prompts.py +0 -0
  159. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_run.py +0 -0
  160. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_shellapp.py +0 -0
  161. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_splitinput.py +0 -0
  162. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/tests/test_ultratb.py +0 -0
  163. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/ultratb.py +0 -0
  164. {ipython-8.24.0 → ipython-8.26.0}/IPython/core/usage.py +0 -0
  165. {ipython-8.24.0 → ipython-8.26.0}/IPython/display.py +0 -0
  166. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/__init__.py +0 -0
  167. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/autoreload.py +0 -0
  168. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/tests/__init__.py +0 -0
  169. {ipython-8.24.0 → ipython-8.26.0}/IPython/extensions/tests/test_storemagic.py +0 -0
  170. {ipython-8.24.0 → ipython-8.26.0}/IPython/external/__init__.py +0 -0
  171. {ipython-8.24.0 → ipython-8.26.0}/IPython/external/qt_for_kernel.py +0 -0
  172. {ipython-8.24.0 → ipython-8.26.0}/IPython/external/qt_loaders.py +0 -0
  173. {ipython-8.24.0 → ipython-8.26.0}/IPython/external/tests/__init__.py +0 -0
  174. {ipython-8.24.0 → ipython-8.26.0}/IPython/external/tests/test_qt_loaders.py +0 -0
  175. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/__init__.py +0 -0
  176. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/backgroundjobs.py +0 -0
  177. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/clipboard.py +0 -0
  178. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/deepreload.py +0 -0
  179. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/demo.py +0 -0
  180. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/display.py +0 -0
  181. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/editorhooks.py +0 -0
  182. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/guisupport.py +0 -0
  183. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/latextools.py +0 -0
  184. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/__init__.py +0 -0
  185. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test.wav +0 -0
  186. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_backgroundjobs.py +0 -0
  187. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_clipboard.py +0 -0
  188. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_deepreload.py +0 -0
  189. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_display.py +0 -0
  190. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_editorhooks.py +0 -0
  191. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_imports.py +0 -0
  192. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_latextools.py +0 -0
  193. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_lexers.py +0 -0
  194. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_pretty.py +0 -0
  195. {ipython-8.24.0 → ipython-8.26.0}/IPython/lib/tests/test_pygments.py +0 -0
  196. {ipython-8.24.0 → ipython-8.26.0}/IPython/paths.py +0 -0
  197. {ipython-8.24.0 → ipython-8.26.0}/IPython/py.typed +0 -0
  198. {ipython-8.24.0 → ipython-8.26.0}/IPython/sphinxext/__init__.py +0 -0
  199. {ipython-8.24.0 → ipython-8.26.0}/IPython/sphinxext/custom_doctests.py +0 -0
  200. {ipython-8.24.0 → ipython-8.26.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
  201. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/__init__.py +0 -0
  202. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/console.py +0 -0
  203. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/debugger.py +0 -0
  204. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/embed.py +0 -0
  205. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/magics.py +0 -0
  206. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/prompts.py +0 -0
  207. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
  208. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
  209. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
  210. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
  211. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
  212. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
  213. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
  214. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/ptutils.py +0 -0
  215. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/shortcuts/__init__.py +0 -0
  216. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
  217. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
  218. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/shortcuts/filters.py +0 -0
  219. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/__init__.py +0 -0
  220. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_debug_magic.py +0 -0
  221. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_embed.py +0 -0
  222. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_help.py +0 -0
  223. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_interactivshell.py +0 -0
  224. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_pt_inputhooks.py +0 -0
  225. {ipython-8.24.0 → ipython-8.26.0}/IPython/terminal/tests/test_shortcuts.py +0 -0
  226. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/__init__.py +0 -0
  227. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/globalipapp.py +0 -0
  228. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/Makefile +0 -0
  229. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/README.txt +0 -0
  230. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/__init__.py +0 -0
  231. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/dtexample.py +0 -0
  232. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/setup.py +0 -0
  233. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/simple.py +0 -0
  234. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/simplevars.py +0 -0
  235. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/test_combo.txt +0 -0
  236. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/test_example.txt +0 -0
  237. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
  238. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
  239. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/plugin/test_refs.py +0 -0
  240. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/skipdoctest.py +0 -0
  241. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/tests/__init__.py +0 -0
  242. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/tests/test_decorators.py +0 -0
  243. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/tests/test_ipunittest.py +0 -0
  244. {ipython-8.24.0 → ipython-8.26.0}/IPython/testing/tests/test_tools.py +0 -0
  245. {ipython-8.24.0 → ipython-8.26.0}/IPython/tests/cve.py +0 -0
  246. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/PyColorize.py +0 -0
  247. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/__init__.py +0 -0
  248. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_cli.py +0 -0
  249. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_common.py +0 -0
  250. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_posix.py +0 -0
  251. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_win32.py +0 -0
  252. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/_process_win32_controller.py +0 -0
  253. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/capture.py +0 -0
  254. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/colorable.py +0 -0
  255. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/coloransi.py +0 -0
  256. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/contexts.py +0 -0
  257. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/daemonize.py +0 -0
  258. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/data.py +0 -0
  259. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/decorators.py +0 -0
  260. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/dir2.py +0 -0
  261. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/docs.py +0 -0
  262. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/encoding.py +0 -0
  263. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/eventful.py +0 -0
  264. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/frame.py +0 -0
  265. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/generics.py +0 -0
  266. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/importstring.py +0 -0
  267. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/ipstruct.py +0 -0
  268. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/jsonutil.py +0 -0
  269. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/localinterfaces.py +0 -0
  270. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/log.py +0 -0
  271. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/module_paths.py +0 -0
  272. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/openpy.py +0 -0
  273. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/process.py +0 -0
  274. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/py3compat.py +0 -0
  275. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/sentinel.py +0 -0
  276. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/shimmodule.py +0 -0
  277. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/signatures.py +0 -0
  278. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/sysinfo.py +0 -0
  279. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/syspathcontext.py +0 -0
  280. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tempdir.py +0 -0
  281. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/terminal.py +0 -0
  282. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/__init__.py +0 -0
  283. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_capture.py +0 -0
  284. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_decorators.py +0 -0
  285. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_deprecated.py +0 -0
  286. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_dir2.py +0 -0
  287. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_imports.py +0 -0
  288. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_importstring.py +0 -0
  289. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_io.py +0 -0
  290. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_module_paths.py +0 -0
  291. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_openpy.py +0 -0
  292. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_process.py +0 -0
  293. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_pycolorize.py +0 -0
  294. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_shimmodule.py +0 -0
  295. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_sysinfo.py +0 -0
  296. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_tempdir.py +0 -0
  297. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_text.py +0 -0
  298. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_tokenutil.py +0 -0
  299. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tests/test_wildcard.py +0 -0
  300. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/timing.py +0 -0
  301. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tokenutil.py +0 -0
  302. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/traitlets.py +0 -0
  303. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/tz.py +0 -0
  304. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/ulinecache.py +0 -0
  305. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/version.py +0 -0
  306. {ipython-8.24.0 → ipython-8.26.0}/IPython/utils/wildcard.py +0 -0
  307. {ipython-8.24.0 → ipython-8.26.0}/LICENSE +0 -0
  308. {ipython-8.24.0 → ipython-8.26.0}/MANIFEST.in +0 -0
  309. {ipython-8.24.0 → ipython-8.26.0}/_build_meta.py +0 -0
  310. {ipython-8.24.0 → ipython-8.26.0}/docs/Makefile +0 -0
  311. {ipython-8.24.0 → ipython-8.26.0}/docs/README.rst +0 -0
  312. {ipython-8.24.0 → ipython-8.26.0}/docs/autogen_api.py +0 -0
  313. {ipython-8.24.0 → ipython-8.26.0}/docs/autogen_config.py +0 -0
  314. {ipython-8.24.0 → ipython-8.26.0}/docs/autogen_magics.py +0 -0
  315. {ipython-8.24.0 → ipython-8.26.0}/docs/autogen_shortcuts.py +0 -0
  316. {ipython-8.24.0 → ipython-8.26.0}/docs/make.cmd +0 -0
  317. {ipython-8.24.0 → ipython-8.26.0}/docs/man/ipython.1 +0 -0
  318. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/2.0/running-crop.png +0 -0
  319. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/2.0/running.png +0 -0
  320. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/2.0/treeview.png +0 -0
  321. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/2.0/user-interface.png +0 -0
  322. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/2.0/widgets.png +0 -0
  323. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
  324. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
  325. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
  326. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
  327. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
  328. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
  329. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
  330. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
  331. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
  332. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
  333. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
  334. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/autosuggest.gif +0 -0
  335. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
  336. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
  337. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
  338. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
  339. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
  340. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
  341. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
  342. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
  343. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
  344. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
  345. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
  346. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
  347. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
  348. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
  349. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
  350. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ms_visual_studio.png +0 -0
  351. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/notebook_specgram.png +0 -0
  352. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/ptshell_features.png +0 -0
  353. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/qtconsole.png +0 -0
  354. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
  355. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_images/unicode_completion.png +0 -0
  356. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_static/favicon.ico +0 -0
  357. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_static/logo.png +0 -0
  358. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_static/theme_overrides.css +0 -0
  359. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_templates/breadcrumbs.html +0 -0
  360. {ipython-8.24.0 → ipython-8.26.0}/docs/source/_templates/notebook_redirect.html +0 -0
  361. {ipython-8.24.0 → ipython-8.26.0}/docs/source/about/history.rst +0 -0
  362. {ipython-8.24.0 → ipython-8.26.0}/docs/source/about/index.rst +0 -0
  363. {ipython-8.24.0 → ipython-8.26.0}/docs/source/about/license_and_copyright.rst +0 -0
  364. {ipython-8.24.0 → ipython-8.26.0}/docs/source/api/index.rst +0 -0
  365. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/callbacks.rst +0 -0
  366. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/custommagics.rst +0 -0
  367. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/details.rst +0 -0
  368. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/eventloops.rst +0 -0
  369. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/extensions/autoreload.rst +0 -0
  370. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/extensions/index.rst +0 -0
  371. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/extensions/storemagic.rst +0 -0
  372. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/index.rst +0 -0
  373. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/inputtransforms.rst +0 -0
  374. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/integrating.rst +0 -0
  375. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/options/index.rst +0 -0
  376. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/shell_mimerenderer.rst +0 -0
  377. {ipython-8.24.0 → ipython-8.26.0}/docs/source/config/shortcuts/index.rst +0 -0
  378. {ipython-8.24.0 → ipython-8.26.0}/docs/source/coredev/index.rst +0 -0
  379. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/config.rst +0 -0
  380. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/execution.rst +0 -0
  381. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
  382. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
  383. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/figs/other_kernels.png +0 -0
  384. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/figs/other_kernels.svg +0 -0
  385. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/how_ipython_works.rst +0 -0
  386. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/index.rst +0 -0
  387. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/inputhook_app.rst +0 -0
  388. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/kernels.rst +0 -0
  389. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/lexer.rst +0 -0
  390. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/messaging.rst +0 -0
  391. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/pycompat.rst +0 -0
  392. {ipython-8.24.0 → ipython-8.26.0}/docs/source/development/wrapperkernels.rst +0 -0
  393. {ipython-8.24.0 → ipython-8.26.0}/docs/source/index.rst +0 -0
  394. {ipython-8.24.0 → ipython-8.26.0}/docs/source/install/index.rst +0 -0
  395. {ipython-8.24.0 → ipython-8.26.0}/docs/source/install/install.rst +0 -0
  396. {ipython-8.24.0 → ipython-8.26.0}/docs/source/install/kernel_install.rst +0 -0
  397. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/autoawait.rst +0 -0
  398. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/figs/besselj.png +0 -0
  399. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/figs/colors_dark.png +0 -0
  400. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/figs/jn.html +0 -0
  401. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/figs/jn.xhtml +0 -0
  402. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/index.rst +0 -0
  403. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/magics.rst +0 -0
  404. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
  405. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/shell.rst +0 -0
  406. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/tips.rst +0 -0
  407. {ipython-8.24.0 → ipython-8.26.0}/docs/source/interactive/tutorial.rst +0 -0
  408. {ipython-8.24.0 → ipython-8.26.0}/docs/source/links.txt +0 -0
  409. {ipython-8.24.0 → ipython-8.26.0}/docs/source/overview.rst +0 -0
  410. {ipython-8.24.0 → ipython-8.26.0}/docs/source/parallel/index.rst +0 -0
  411. {ipython-8.24.0 → ipython-8.26.0}/docs/source/sphinxext.rst +0 -0
  412. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/development.rst +0 -0
  413. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
  414. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
  415. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
  416. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
  417. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
  418. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
  419. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
  420. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
  421. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
  422. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
  423. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
  424. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/index.rst +0 -0
  425. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/pr/README.md +0 -0
  426. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
  427. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
  428. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.10.rst +0 -0
  429. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.11.rst +0 -0
  430. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.12.rst +0 -0
  431. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.13.rst +0 -0
  432. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.8.rst +0 -0
  433. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version0.9.rst +0 -0
  434. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version1.0.rst +0 -0
  435. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version2.0.rst +0 -0
  436. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version3.rst +0 -0
  437. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
  438. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version4.rst +0 -0
  439. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version5.rst +0 -0
  440. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version6.rst +0 -0
  441. {ipython-8.24.0 → ipython-8.26.0}/docs/source/whatsnew/version7.rst +0 -0
  442. {ipython-8.24.0 → ipython-8.26.0}/docs/sphinxext/apigen.py +0 -0
  443. {ipython-8.24.0 → ipython-8.26.0}/docs/sphinxext/configtraits.py +0 -0
  444. {ipython-8.24.0 → ipython-8.26.0}/docs/sphinxext/github.py +0 -0
  445. {ipython-8.24.0 → ipython-8.26.0}/docs/sphinxext/magics.py +0 -0
  446. {ipython-8.24.0 → ipython-8.26.0}/examples/Embedding/Index.ipynb +0 -0
  447. {ipython-8.24.0 → ipython-8.26.0}/examples/Embedding/embed_class_long.py +0 -0
  448. {ipython-8.24.0 → ipython-8.26.0}/examples/Embedding/embed_class_short.py +0 -0
  449. {ipython-8.24.0 → ipython-8.26.0}/examples/Embedding/embed_function.py +0 -0
  450. {ipython-8.24.0 → ipython-8.26.0}/examples/Embedding/start_ipython_config.py +0 -0
  451. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Animations Using clear_output.ipynb +0 -0
  452. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Background Jobs.ipynb +0 -0
  453. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Beyond Plain Python.ipynb +0 -0
  454. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Capturing Output.ipynb +0 -0
  455. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Cell Magics.ipynb +0 -0
  456. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Custom Display Logic.ipynb +0 -0
  457. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Importing Notebooks.ipynb +0 -0
  458. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Index.ipynb +0 -0
  459. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Plotting in the Notebook.ipynb +0 -0
  460. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Raw Input in the Notebook.ipynb +0 -0
  461. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Rich Output.ipynb +0 -0
  462. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Script Magics.ipynb +0 -0
  463. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/SymPy.ipynb +0 -0
  464. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Terminal Usage.ipynb +0 -0
  465. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Third Party Rich Output.ipynb +0 -0
  466. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Trapezoid Rule.ipynb +0 -0
  467. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Updating Displays.ipynb +0 -0
  468. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/Working With External Code.ipynb +0 -0
  469. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/data/flare.json +0 -0
  470. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/example-demo.py +0 -0
  471. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
  472. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
  473. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
  474. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
  475. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
  476. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/ipython.desktop +0 -0
  477. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/nbpackage/__init__.py +0 -0
  478. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/nbpackage/mynotebook.ipynb +0 -0
  479. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/nbpackage/nbs/__init__.py +0 -0
  480. {ipython-8.24.0 → ipython-8.26.0}/examples/IPython Kernel/nbpackage/nbs/other.ipynb +0 -0
  481. {ipython-8.24.0 → ipython-8.26.0}/examples/Index.ipynb +0 -0
  482. {ipython-8.24.0 → ipython-8.26.0}/examples/images/FrontendKernel.graffle/data.plist +0 -0
  483. {ipython-8.24.0 → ipython-8.26.0}/examples/images/FrontendKernel.graffle/image1.png +0 -0
  484. {ipython-8.24.0 → ipython-8.26.0}/examples/images/FrontendKernel.png +0 -0
  485. {ipython-8.24.0 → ipython-8.26.0}/examples/images/animation.m4v +0 -0
  486. {ipython-8.24.0 → ipython-8.26.0}/examples/images/ipython_logo.png +0 -0
  487. {ipython-8.24.0 → ipython-8.26.0}/examples/images/python_logo.svg +0 -0
  488. {ipython-8.24.0 → ipython-8.26.0}/examples/utils/cwd_prompt.py +0 -0
  489. {ipython-8.24.0 → ipython-8.26.0}/examples/utils/list_pyfiles.ipy +0 -0
  490. {ipython-8.24.0 → ipython-8.26.0}/examples/utils/list_subdirs.ipy +0 -0
  491. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/dependency_links.txt +0 -0
  492. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/entry_points.txt +0 -0
  493. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/not-zip-safe +0 -0
  494. {ipython-8.24.0 → ipython-8.26.0}/ipython.egg-info/top_level.txt +0 -0
  495. {ipython-8.24.0 → ipython-8.26.0}/long_description.rst +0 -0
  496. {ipython-8.24.0 → ipython-8.26.0}/scripts/ipython.ico +0 -0
  497. {ipython-8.24.0 → ipython-8.26.0}/scripts/ipython_nb.ico +0 -0
  498. {ipython-8.24.0 → ipython-8.26.0}/setup.cfg +0 -0
  499. {ipython-8.24.0 → ipython-8.26.0}/setup.py +0 -0
@@ -10,7 +10,6 @@ explicitly to actually raise a SyntaxError and stay as close as possible to
10
10
  Python semantics.
11
11
  """
12
12
 
13
-
14
13
  import ast
15
14
  import asyncio
16
15
  import inspect
@@ -152,9 +152,14 @@ def get_root_modules():
152
152
  return rootmodules
153
153
 
154
154
 
155
- def is_importable(module, attr, only_modules):
155
+ def is_importable(module, attr: str, only_modules) -> bool:
156
156
  if only_modules:
157
- return inspect.ismodule(getattr(module, attr))
157
+ try:
158
+ mod = getattr(module, attr)
159
+ except ModuleNotFoundError:
160
+ # See gh-14434
161
+ return False
162
+ return inspect.ismodule(mod)
158
163
  else:
159
164
  return not(attr[:2] == '__' and attr[-2:] == '__')
160
165
 
@@ -146,9 +146,11 @@ class HistoryApp(Application):
146
146
 
147
147
  def start(self):
148
148
  if self.subapp is None:
149
- print("No subcommand specified. Must specify one of: %s" % \
150
- (self.subcommands.keys()))
151
- print()
149
+ print(
150
+ "No subcommand specified. Must specify one of: "
151
+ + ", ".join(map(repr, self.subcommands))
152
+ + ".\n"
153
+ )
152
154
  self.print_description()
153
155
  self.print_subcommands()
154
156
  self.exit(1)
@@ -19,7 +19,7 @@ example, you could use a startup file like this::
19
19
 
20
20
  def calljed(self,filename, linenum):
21
21
  "My editor hook calls the jed editor directly."
22
- print "Calling my own editor, jed ..."
22
+ print("Calling my own editor, jed ...")
23
23
  if os.system('jed +%d %s' % (linenum,filename)) != 0:
24
24
  raise TryNext()
25
25
 
@@ -111,7 +111,7 @@ class CommandChainDispatcher:
111
111
  TryNext"""
112
112
  last_exc = TryNext()
113
113
  for prio,cmd in self.chain:
114
- #print "prio",prio,"cmd",cmd #dbg
114
+ # print("prio",prio,"cmd",cmd) # dbg
115
115
  try:
116
116
  return cmd(*args, **kw)
117
117
  except TryNext as exc:
@@ -320,7 +320,7 @@ class InputSplitter(object):
320
320
  prompt = '>>> ' + indent
321
321
  line = indent + raw_input(prompt)
322
322
  isp.push(line)
323
- print 'Input source was:\n', isp.source_reset(),
323
+ print('Input source was:\n', isp.source_reset())
324
324
  """
325
325
  # A cache for storing the current indentation
326
326
  # The first value stores the most recently processed source input
@@ -909,7 +909,7 @@ class InteractiveShell(SingletonConfigurable):
909
909
  paths = self.get_path_links(p)
910
910
 
911
911
  # In Cygwin paths like "c:\..." and '\cygdrive\c\...' are possible
912
- if p_venv.parts[1] == "cygdrive":
912
+ if len(p_venv.parts) > 2 and p_venv.parts[1] == "cygdrive":
913
913
  drive_name = p_venv.parts[2]
914
914
  p_venv = (drive_name + ":/") / Path(*p_venv.parts[3:])
915
915
 
@@ -2033,7 +2033,7 @@ class InteractiveShell(SingletonConfigurable):
2033
2033
  print(self.InteractiveTB.stb2text(stb))
2034
2034
  print("The original exception:")
2035
2035
  stb = self.InteractiveTB.structured_traceback(
2036
- (etype,value,tb), tb_offset=tb_offset
2036
+ etype, value, tb, tb_offset=tb_offset
2037
2037
  )
2038
2038
  return stb
2039
2039
 
@@ -191,7 +191,7 @@ which already exists. But you must first start the logging process with
191
191
  def log_write(self, data, kind='input'):
192
192
  """Write data to the log file, if active"""
193
193
 
194
- #print 'data: %r' % data # dbg
194
+ # print('data: %r' % data) # dbg
195
195
  if self.log_active and data:
196
196
  write = self.logfile.write
197
197
  if kind=='input':
@@ -452,7 +452,7 @@ class CodeMagics(Magics):
452
452
  # Load the parameter given as a variable. If not a string,
453
453
  # process it as an object instead (below)
454
454
 
455
- #print '*** args',args,'type',type(args) # dbg
455
+ # print('*** args',args,'type',type(args)) # dbg
456
456
  data = eval(args, shell.user_ns)
457
457
  if not isinstance(data, str):
458
458
  raise DataIsObject
@@ -636,8 +636,8 @@ class CodeMagics(Magics):
636
636
 
637
637
  In [1]: edit
638
638
  Editing... done. Executing edited code...
639
- Out[1]: 'def foo():\\n print "foo() was defined in an editing
640
- session"\\n'
639
+ Out[1]: 'def foo():\\n print("foo() was defined in an editing
640
+ session")\\n'
641
641
 
642
642
  We can then call the function foo()::
643
643
 
@@ -661,21 +661,21 @@ class CodeMagics(Magics):
661
661
  In [5]: edit
662
662
  Editing... done. Executing edited code...
663
663
  hello
664
- Out[5]: "print 'hello'\\n"
664
+ Out[5]: "print('hello')\\n"
665
665
 
666
666
  Now we call it again with the previous output (stored in _)::
667
667
 
668
668
  In [6]: edit _
669
669
  Editing... done. Executing edited code...
670
670
  hello world
671
- Out[6]: "print 'hello world'\\n"
671
+ Out[6]: "print('hello world')\\n"
672
672
 
673
673
  Now we call it with the output #8 (stored in _8, also as Out[8])::
674
674
 
675
675
  In [7]: edit _8
676
676
  Editing... done. Executing edited code...
677
677
  hello again
678
- Out[7]: "print 'hello again'\\n"
678
+ Out[7]: "print('hello again')\\n"
679
679
 
680
680
 
681
681
  Changing the default editor hook:
@@ -1256,7 +1256,7 @@ class ExecutionMagics(Magics):
1256
1256
  Wall time: 1.37
1257
1257
  Out[3]: 499999500000L
1258
1258
 
1259
- In [4]: %time print 'hello world'
1259
+ In [4]: %time print('hello world')
1260
1260
  hello world
1261
1261
  CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s
1262
1262
  Wall time: 0.00
@@ -1406,9 +1406,9 @@ class ExecutionMagics(Magics):
1406
1406
  44: x=1
1407
1407
  45: y=3
1408
1408
  46: z=x+y
1409
- 47: print x
1409
+ 47: print(x)
1410
1410
  48: a=5
1411
- 49: print 'x',x,'y',y
1411
+ 49: print('x',x,'y',y)
1412
1412
 
1413
1413
  you can create a macro with lines 44 through 47 (included) and line 49
1414
1414
  called my_macro with::
@@ -1428,7 +1428,7 @@ class ExecutionMagics(Magics):
1428
1428
 
1429
1429
  You can view a macro's contents by explicitly printing it with::
1430
1430
 
1431
- print macro_name
1431
+ print(macro_name)
1432
1432
 
1433
1433
  """
1434
1434
  opts,args = self.parse_options(parameter_s,'rq',mode='list')
@@ -1439,7 +1439,7 @@ class ExecutionMagics(Magics):
1439
1439
  "%macro insufficient args; usage '%macro name n1-n2 n3-4...")
1440
1440
  name, codefrom = args[0], " ".join(args[1:])
1441
1441
 
1442
- #print 'rng',ranges # dbg
1442
+ # print('rng',ranges) # dbg
1443
1443
  try:
1444
1444
  lines = self.shell.find_user_code(codefrom, 'r' in opts)
1445
1445
  except (ValueError, TypeError) as e:
@@ -1592,17 +1592,17 @@ def _format_time(timespan, precision=3):
1592
1592
  break
1593
1593
  return " ".join(time)
1594
1594
 
1595
-
1596
- # Unfortunately the unicode 'micro' symbol can cause problems in
1597
- # certain terminals.
1595
+
1596
+ # Unfortunately characters outside of range(128) can cause problems in
1597
+ # certain terminals.
1598
1598
  # See bug: https://bugs.launchpad.net/ipython/+bug/348466
1599
1599
  # Try to prevent crashes by being more secure than it needs to
1600
1600
  # E.g. eclipse is able to print a µ, but has no sys.stdout.encoding set.
1601
- units = [u"s", u"ms",u'us',"ns"] # the save value
1602
- if hasattr(sys.stdout, 'encoding') and sys.stdout.encoding:
1601
+ units = ["s", "ms", "us", "ns"] # the safe value
1602
+ if hasattr(sys.stdout, "encoding") and sys.stdout.encoding:
1603
1603
  try:
1604
- u'\xb5'.encode(sys.stdout.encoding)
1605
- units = [u"s", u"ms",u'\xb5s',"ns"]
1604
+ "μ".encode(sys.stdout.encoding)
1605
+ units = ["s", "ms", "μs", "ns"]
1606
1606
  except:
1607
1607
  pass
1608
1608
  scaling = [1, 1e3, 1e6, 1e9]
@@ -128,7 +128,7 @@ class HistoryMagics(Magics):
128
128
 
129
129
  In [6]: %history -n 4-6
130
130
  4:a = 12
131
- 5:print a**2
131
+ 5:print(a**2)
132
132
  6:%history -n 4-6
133
133
 
134
134
  """
@@ -43,7 +43,7 @@ class NamespaceMagics(Magics):
43
43
 
44
44
  '%pinfo object' is just a synonym for object? or ?object."""
45
45
 
46
- #print 'pinfo par: <%s>' % parameter_s # dbg
46
+ # print('pinfo par: <%s>' % parameter_s) # dbg
47
47
  # detail_level: 0 -> obj? , 1 -> obj??
48
48
  detail_level = 0
49
49
  # We need to detect if we got called as 'pinfo pinfo foo', which can
@@ -1196,7 +1196,7 @@ class Inspector(Colorable):
1196
1196
 
1197
1197
  - list_types(False): list all available object types for object matching.
1198
1198
  """
1199
- #print 'ps pattern:<%r>' % pattern # dbg
1199
+ # print('ps pattern:<%r>' % pattern) # dbg
1200
1200
 
1201
1201
  # defaults
1202
1202
  type_pattern = 'all'
@@ -1225,7 +1225,7 @@ class Inspector(Colorable):
1225
1225
  raise ValueError('invalid namespace <%s>. Valid names: %s' %
1226
1226
  (name,ns_table.keys()))
1227
1227
 
1228
- #print 'type_pattern:',type_pattern # dbg
1228
+ # print('type_pattern:',type_pattern) # dbg
1229
1229
  search_result, namespaces_seen = set(), set()
1230
1230
  for ns_name in ns_search:
1231
1231
  ns = ns_table[ns_name]
@@ -122,8 +122,8 @@ def _detect_screen_size(screen_lines_def):
122
122
  termios.tcsetattr(sys.stdout,termios.TCSANOW,term_flags)
123
123
  # Now we have what we needed: the screen size in rows/columns
124
124
  return screen_lines_real
125
- #print '***Screen size:',screen_lines_real,'lines x',\
126
- #screen_cols,'columns.' # dbg
125
+ # print('***Screen size:',screen_lines_real,'lines x',
126
+ # screen_cols,'columns.') # dbg
127
127
 
128
128
  def pager_page(strng, start=0, screen_lines=0, pager_cmd=None):
129
129
  """Display a string, piping through a pager after a certain length.
@@ -179,9 +179,9 @@ def pager_page(strng, start=0, screen_lines=0, pager_cmd=None):
179
179
  print(str_toprint)
180
180
  return
181
181
 
182
- #print 'numlines',numlines,'screenlines',screen_lines # dbg
182
+ # print('numlines',numlines,'screenlines',screen_lines) # dbg
183
183
  if numlines <= screen_lines :
184
- #print '*** normal print' # dbg
184
+ # print('*** normal print') # dbg
185
185
  print(str_toprint)
186
186
  else:
187
187
  # Try to open pager and default to internal one if that fails.
@@ -240,7 +240,7 @@ class PrefilterManager(Configurable):
240
240
 
241
241
  This implements the checker/handler part of the prefilter pipe.
242
242
  """
243
- # print "prefilter_line_info: ", line_info
243
+ # print("prefilter_line_info: ", line_info)
244
244
  handler = self.find_handler(line_info)
245
245
  return handler.handle(line_info)
246
246
 
@@ -267,7 +267,7 @@ class PrefilterManager(Configurable):
267
267
  transformers and then the checkers/handlers.
268
268
  """
269
269
 
270
- # print "prefilter_line: ", line, continue_prompt
270
+ # print("prefilter_line: ", line, continue_prompt)
271
271
  # All handlers *must* return a value, even if it's blank ('').
272
272
 
273
273
  # save the line away in case we crash, so the post-mortem handler can
@@ -300,7 +300,7 @@ class PrefilterManager(Configurable):
300
300
  return normal_handler.handle(line_info)
301
301
 
302
302
  prefiltered = self.prefilter_line_info(line_info)
303
- # print "prefiltered line: %r" % prefiltered
303
+ # print("prefiltered line: %r" % prefiltered)
304
304
  return prefiltered
305
305
 
306
306
  def prefilter_lines(self, lines, continue_prompt=False):
@@ -544,7 +544,7 @@ class PrefilterHandler(Configurable):
544
544
  )
545
545
 
546
546
  def handle(self, line_info):
547
- # print "normal: ", line_info
547
+ # print("normal: ", line_info)
548
548
  """Handle normal input lines. Use as a template for handlers."""
549
549
 
550
550
  # With autoindent on, we need some way to exit the input loop, and I
@@ -303,8 +303,11 @@ class ProfileApp(Application):
303
303
 
304
304
  def start(self):
305
305
  if self.subapp is None:
306
- print("No subcommand specified. Must specify one of: %s"%(self.subcommands.keys()))
307
- print()
306
+ print(
307
+ "No subcommand specified. Must specify one of: "
308
+ + ", ".join(map(repr, self.subcommands))
309
+ + ".\n"
310
+ )
308
311
  self.print_description()
309
312
  self.print_subcommands()
310
313
  self.exit(1)
@@ -14,7 +14,7 @@ from IPython.utils.decorators import flag_calls
14
14
 
15
15
 
16
16
  # Matplotlib backend resolution functionality moved from IPython to Matplotlib
17
- # in IPython 8.24 and Matplotlib 3.9.1. Need to keep `backends` and `backend2gui`
17
+ # in IPython 8.24 and Matplotlib 3.9.0. Need to keep `backends` and `backend2gui`
18
18
  # here for earlier Matplotlib and for external backend libraries such as
19
19
  # mplcairo that might rely upon it.
20
20
  _deprecated_backends = {
@@ -224,7 +224,7 @@ def mpl_runner(safe_execfile):
224
224
  import matplotlib
225
225
  import matplotlib.pyplot as plt
226
226
 
227
- #print '*** Matplotlib runner ***' # dbg
227
+ # print('*** Matplotlib runner ***') # dbg
228
228
  # turn off rendering until end of script
229
229
  with matplotlib.rc_context({"interactive": False}):
230
230
  safe_execfile(fname, *where, **kw)
@@ -345,8 +345,10 @@ def find_gui_and_backend(gui=None, gui_select=None):
345
345
  backend = matplotlib.rcParamsOrig["backend"]
346
346
  backend, gui = backend_registry.resolve_backend(backend)
347
347
  else:
348
+ gui = _convert_gui_to_matplotlib(gui)
348
349
  backend, gui = backend_registry.resolve_gui_or_backend(gui)
349
350
 
351
+ gui = _convert_gui_from_matplotlib(gui)
350
352
  return gui, backend
351
353
 
352
354
  # Fallback to previous behaviour (Matplotlib < 3.9)
@@ -485,6 +487,10 @@ def _matplotlib_manages_backends() -> bool:
485
487
  matplotlib.backends.registry.backend_registry is available along with
486
488
  member functions resolve_gui_or_backend, resolve_backend, list_all, and
487
489
  list_gui_frameworks.
490
+
491
+ This function can be removed as it will always return True when Python
492
+ 3.12, the latest version supported by Matplotlib < 3.9, reaches
493
+ end-of-life in late 2028.
488
494
  """
489
495
  global _matplotlib_manages_backends_value
490
496
  if _matplotlib_manages_backends_value is None:
@@ -509,10 +515,28 @@ def _list_matplotlib_backends_and_gui_loops() -> list[str]:
509
515
  if _matplotlib_manages_backends():
510
516
  from matplotlib.backends.registry import backend_registry
511
517
 
512
- ret = backend_registry.list_all() + backend_registry.list_gui_frameworks()
518
+ ret = backend_registry.list_all() + [
519
+ _convert_gui_from_matplotlib(gui)
520
+ for gui in backend_registry.list_gui_frameworks()
521
+ ]
513
522
  else:
514
523
  from IPython.core import pylabtools
515
524
 
516
525
  ret = list(pylabtools.backends.keys())
517
526
 
518
527
  return sorted(["auto"] + ret)
528
+
529
+
530
+ # Matplotlib and IPython do not always use the same gui framework name.
531
+ # Always use the approprate one of these conversion functions when passing a
532
+ # gui framework name to/from Matplotlib.
533
+ def _convert_gui_to_matplotlib(gui: str | None) -> str | None:
534
+ if gui and gui.lower() == "osx":
535
+ return "macosx"
536
+ return gui
537
+
538
+
539
+ def _convert_gui_from_matplotlib(gui: str | None) -> str | None:
540
+ if gui and gui.lower() == "macosx":
541
+ return "osx"
542
+ return gui
@@ -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 = 8
19
- _version_minor = 24
19
+ _version_minor = 26
20
20
  _version_patch = 0
21
21
  _version_extra = ".dev"
22
22
  # _version_extra = "rc1"
@@ -82,12 +82,14 @@ shell_flags['nosep']=(nosep_config, "Eliminate all spacing between prompts.")
82
82
  shell_flags['pylab'] = (
83
83
  {'InteractiveShellApp' : {'pylab' : 'auto'}},
84
84
  """Pre-load matplotlib and numpy for interactive use with
85
- the default matplotlib backend."""
85
+ the default matplotlib backend. The exact options available
86
+ depend on what Matplotlib provides at runtime.""",
86
87
  )
87
88
  shell_flags['matplotlib'] = (
88
89
  {'InteractiveShellApp' : {'matplotlib' : 'auto'}},
89
90
  """Configure matplotlib for interactive use with
90
- the default matplotlib backend."""
91
+ the default matplotlib backend. The exact options available
92
+ depend on what Matplotlib provides at runtime.""",
91
93
  )
92
94
 
93
95
  # it's possible we don't want short aliases for *all* of these:
@@ -114,7 +116,7 @@ shell_aliases['cache-size'] = 'InteractiveShell.cache_size'
114
116
  class MatplotlibBackendCaselessStrEnum(CaselessStrEnum):
115
117
  """An enum of Matplotlib backend strings where the case should be ignored.
116
118
 
117
- Prior to Matplotlib 3.9.1 the list of valid backends is hardcoded in
119
+ Prior to Matplotlib 3.9.0 the list of valid backends is hardcoded in
118
120
  pylabtools.backends. After that, Matplotlib manages backends.
119
121
 
120
122
  The list of valid backends is determined when it is first needed to avoid
@@ -205,12 +207,14 @@ class InteractiveShellApp(Configurable):
205
207
  matplotlib = MatplotlibBackendCaselessStrEnum(
206
208
  allow_none=True,
207
209
  help="""Configure matplotlib for interactive use with
208
- the default matplotlib backend.""",
210
+ the default matplotlib backend. The exact options available
211
+ depend on what Matplotlib provides at runtime.""",
209
212
  ).tag(config=True)
210
213
  pylab = MatplotlibBackendCaselessStrEnum(
211
214
  allow_none=True,
212
215
  help="""Pre-load matplotlib and numpy for interactive use,
213
216
  selecting a particular matplotlib backend and loop integration.
217
+ The exact options available depend on what Matplotlib provides at runtime.
214
218
  """,
215
219
  ).tag(config=True)
216
220
  pylab_import_all = Bool(
@@ -63,19 +63,19 @@ def split_user_input(line, pattern=None):
63
63
  pattern = line_split
64
64
  match = pattern.match(line)
65
65
  if not match:
66
- # print "match failed for line '%s'" % line
66
+ # print("match failed for line '%s'" % line)
67
67
  try:
68
68
  ifun, the_rest = line.split(None,1)
69
69
  except ValueError:
70
- # print "split failed for line '%s'" % line
70
+ # print("split failed for line '%s'" % line)
71
71
  ifun, the_rest = line, u''
72
72
  pre = re.match(r'^(\s*)(.*)',line).groups()[0]
73
73
  esc = ""
74
74
  else:
75
75
  pre, esc, ifun, the_rest = match.groups()
76
76
 
77
- #print 'line:<%s>' % line # dbg
78
- #print 'pre <%s> ifun <%s> rest <%s>' % (pre,ifun.strip(),the_rest) # dbg
77
+ # print('line:<%s>' % line) # dbg
78
+ # print('pre <%s> ifun <%s> rest <%s>' % (pre,ifun.strip(),the_rest)) # dbg
79
79
  return pre, esc or '', ifun.strip(), the_rest.lstrip()
80
80
 
81
81
 
@@ -26,7 +26,7 @@ else:
26
26
  if name.startswith('C'):
27
27
  c = C(name)
28
28
 
29
- #print >> sys.stderr, "ARGV:", sys.argv # dbg
29
+ # print("ARGV:", sys.argv, file=sys.stderr) # dbg
30
30
 
31
31
  # This next print statement is NOT debugging, we're making the check on a
32
32
  # completely separate process so we verify by capturing stdout:
@@ -5,6 +5,7 @@ directory, which we are removing. For now putting this here ensures at least
5
5
  we do run the test, though ultimately this functionality should all be tested
6
6
  with better-isolated tests that don't rely on the global instance in iptest.
7
7
  """
8
+
8
9
  from IPython.core.splitinput import LineInfo
9
10
  from IPython.core.prefilter import AutocallChecker
10
11
 
@@ -10,6 +10,9 @@ import sys
10
10
  import textwrap
11
11
  import unittest
12
12
 
13
+ from importlib.metadata import version
14
+
15
+
13
16
  from contextlib import contextmanager
14
17
 
15
18
  from traitlets.config.loader import Config
@@ -30,6 +33,9 @@ from IPython.core.completer import (
30
33
  CompletionContext,
31
34
  )
32
35
 
36
+ from packaging.version import parse
37
+
38
+
33
39
  # -----------------------------------------------------------------------------
34
40
  # Test functions
35
41
  # -----------------------------------------------------------------------------
@@ -531,7 +537,11 @@ class TestCompleter(unittest.TestCase):
531
537
  c = next(completions) # should be `%time` or similar
532
538
  assert c.type == "magic", "Type of magic was not assigned by completer"
533
539
 
534
- @pytest.mark.xfail(reason="Known failure on jedi<=0.18.0")
540
+ @pytest.mark.xfail(
541
+ parse(version("jedi")) <= parse("0.18.0"),
542
+ reason="Known failure on jedi<=0.18.0",
543
+ strict=True,
544
+ )
535
545
  def test_deduplicate_completions(self):
536
546
  """
537
547
  Test that completions are correctly deduplicated (even if ranges are not the same)
@@ -447,6 +447,11 @@ def test_decorator_skip_disabled():
447
447
  child.close()
448
448
 
449
449
 
450
+ @pytest.mark.xfail(
451
+ sys.version_info.releaselevel not in ("final", "candidate"),
452
+ reason="fails on 3.13.dev",
453
+ strict=True,
454
+ )
450
455
  @pytest.mark.skipif(platform.python_implementation() == "PyPy", reason="issues on PyPy")
451
456
  @skip_win32
452
457
  def test_decorator_skip_with_breakpoint():