ipython 8.23.0__tar.gz → 8.25.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 (500) hide show
  1. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/completerlib.py +7 -2
  2. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/debugger.py +38 -48
  3. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/display_functions.py +1 -1
  4. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/excolors.py +20 -3
  5. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/historyapp.py +5 -3
  6. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/hooks.py +2 -2
  7. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/inputsplitter.py +1 -1
  8. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/interactiveshell.py +9 -2
  9. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/logger.py +1 -1
  10. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/code.py +6 -6
  11. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/execution.py +12 -12
  12. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/history.py +1 -1
  13. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/namespace.py +1 -1
  14. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/pylab.py +10 -6
  15. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/oinspect.py +2 -2
  16. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/page.py +4 -4
  17. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/prefilter.py +4 -4
  18. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/profileapp.py +5 -2
  19. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/pylabtools.py +131 -22
  20. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/release.py +1 -1
  21. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/shellapp.py +71 -27
  22. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/splitinput.py +4 -4
  23. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/tclass.py +1 -1
  24. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_inputsplitter.py +1 -1
  25. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_magic.py +8 -0
  26. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_pylabtools.py +91 -9
  27. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/storemagic.py +2 -2
  28. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/lexers.py +2 -2
  29. {ipython-8.23.0 → ipython-8.25.0}/IPython/sphinxext/ipython_directive.py +3 -3
  30. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/embed.py +1 -1
  31. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/interactiveshell.py +11 -5
  32. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/ipapp.py +1 -1
  33. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/glut.py +2 -2
  34. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/pyglet.py +2 -2
  35. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/wx.py +2 -2
  36. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/ipunittest.py +1 -1
  37. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/ipdoctest.py +2 -2
  38. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/pytest_ipdoctest.py +26 -10
  39. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/tools.py +2 -2
  40. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_sysinfo.py +1 -1
  41. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/coloransi.py +28 -3
  42. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/path.py +2 -2
  43. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/strdispatch.py +1 -1
  44. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_path.py +2 -2
  45. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/text.py +41 -18
  46. {ipython-8.23.0/ipython.egg-info → ipython-8.25.0}/PKG-INFO +10 -9
  47. {ipython-8.23.0 → ipython-8.25.0}/docs/requirements.txt +1 -1
  48. ipython-8.25.0/docs/source/conf.py +273 -0
  49. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/intro.rst +3 -4
  50. ipython-8.25.0/docs/source/interactive/plotting.rst +81 -0
  51. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/reference.rst +18 -38
  52. ipython-8.25.0/docs/source/sphinx.toml +70 -0
  53. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.11.rst +1 -1
  54. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version8.rst +60 -1
  55. {ipython-8.23.0 → ipython-8.25.0/ipython.egg-info}/PKG-INFO +10 -9
  56. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/SOURCES.txt +1 -1
  57. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/requires.txt +11 -8
  58. {ipython-8.23.0 → ipython-8.25.0}/pyproject.toml +167 -8
  59. {ipython-8.23.0 → ipython-8.25.0}/setupbase.py +2 -2
  60. ipython-8.23.0/docs/source/conf.py +0 -337
  61. ipython-8.23.0/docs/source/development/parallel_messages.rst +0 -8
  62. ipython-8.23.0/docs/source/interactive/plotting.rst +0 -67
  63. {ipython-8.23.0 → ipython-8.25.0}/.flake8 +0 -0
  64. {ipython-8.23.0 → ipython-8.25.0}/.mailmap +0 -0
  65. {ipython-8.23.0 → ipython-8.25.0}/.pre-commit-config.yaml +0 -0
  66. {ipython-8.23.0 → ipython-8.25.0}/COPYING.rst +0 -0
  67. {ipython-8.23.0 → ipython-8.25.0}/IPython/__init__.py +0 -0
  68. {ipython-8.23.0 → ipython-8.25.0}/IPython/__main__.py +0 -0
  69. {ipython-8.23.0 → ipython-8.25.0}/IPython/conftest.py +0 -0
  70. {ipython-8.23.0 → ipython-8.25.0}/IPython/consoleapp.py +0 -0
  71. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/__init__.py +0 -0
  72. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/alias.py +0 -0
  73. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/application.py +0 -0
  74. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/async_helpers.py +0 -0
  75. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/autocall.py +0 -0
  76. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/builtin_trap.py +0 -0
  77. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/compilerop.py +0 -0
  78. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/completer.py +0 -0
  79. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/crashhandler.py +0 -0
  80. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/display.py +0 -0
  81. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/display_trap.py +0 -0
  82. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/displayhook.py +0 -0
  83. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/displaypub.py +0 -0
  84. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/error.py +0 -0
  85. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/events.py +0 -0
  86. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/extensions.py +0 -0
  87. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/formatters.py +0 -0
  88. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/getipython.py +0 -0
  89. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/guarded_eval.py +0 -0
  90. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/history.py +0 -0
  91. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/inputtransformer.py +0 -0
  92. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/inputtransformer2.py +0 -0
  93. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/latex_symbols.py +0 -0
  94. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/macro.py +0 -0
  95. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magic.py +0 -0
  96. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magic_arguments.py +0 -0
  97. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/__init__.py +0 -0
  98. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/ast_mod.py +0 -0
  99. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/auto.py +0 -0
  100. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/basic.py +0 -0
  101. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/config.py +0 -0
  102. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/display.py +0 -0
  103. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/extension.py +0 -0
  104. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/logging.py +0 -0
  105. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/osm.py +0 -0
  106. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/packaging.py +0 -0
  107. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/magics/script.py +0 -0
  108. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/payload.py +0 -0
  109. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/payloadpage.py +0 -0
  110. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/profile/README_STARTUP +0 -0
  111. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/profiledir.py +0 -0
  112. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/prompts.py +0 -0
  113. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/2x2.jpg +0 -0
  114. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/2x2.png +0 -0
  115. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/__init__.py +0 -0
  116. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/bad_all.py +0 -0
  117. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/daft_extension/daft_extension.py +0 -0
  118. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/nonascii.py +0 -0
  119. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/nonascii2.py +0 -0
  120. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/print_argv.py +0 -0
  121. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/refbug.py +0 -0
  122. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/simpleerr.py +0 -0
  123. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_alias.py +0 -0
  124. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_application.py +0 -0
  125. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_async_helpers.py +0 -0
  126. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_autocall.py +0 -0
  127. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_compilerop.py +0 -0
  128. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_completer.py +0 -0
  129. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_completerlib.py +0 -0
  130. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_debugger.py +0 -0
  131. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_display.py +0 -0
  132. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_displayhook.py +0 -0
  133. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_events.py +0 -0
  134. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_exceptiongroup_tb.py +0 -0
  135. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_extension.py +0 -0
  136. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_formatters.py +0 -0
  137. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_guarded_eval.py +0 -0
  138. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_handlers.py +0 -0
  139. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_history.py +0 -0
  140. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_hooks.py +0 -0
  141. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_imports.py +0 -0
  142. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_inputtransformer.py +0 -0
  143. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_inputtransformer2.py +0 -0
  144. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_inputtransformer2_line.py +0 -0
  145. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_interactiveshell.py +0 -0
  146. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_iplib.py +0 -0
  147. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_logger.py +0 -0
  148. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_magic_arguments.py +0 -0
  149. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_magic_terminal.py +0 -0
  150. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_oinspect.py +0 -0
  151. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_page.py +0 -0
  152. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_paths.py +0 -0
  153. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_prefilter.py +0 -0
  154. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_profile.py +0 -0
  155. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_prompts.py +0 -0
  156. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_run.py +0 -0
  157. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_shellapp.py +0 -0
  158. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_splitinput.py +0 -0
  159. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/tests/test_ultratb.py +0 -0
  160. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/ultratb.py +0 -0
  161. {ipython-8.23.0 → ipython-8.25.0}/IPython/core/usage.py +0 -0
  162. {ipython-8.23.0 → ipython-8.25.0}/IPython/display.py +0 -0
  163. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/__init__.py +0 -0
  164. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/autoreload.py +0 -0
  165. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/tests/__init__.py +0 -0
  166. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/tests/test_autoreload.py +0 -0
  167. {ipython-8.23.0 → ipython-8.25.0}/IPython/extensions/tests/test_storemagic.py +0 -0
  168. {ipython-8.23.0 → ipython-8.25.0}/IPython/external/__init__.py +0 -0
  169. {ipython-8.23.0 → ipython-8.25.0}/IPython/external/qt_for_kernel.py +0 -0
  170. {ipython-8.23.0 → ipython-8.25.0}/IPython/external/qt_loaders.py +0 -0
  171. {ipython-8.23.0 → ipython-8.25.0}/IPython/external/tests/__init__.py +0 -0
  172. {ipython-8.23.0 → ipython-8.25.0}/IPython/external/tests/test_qt_loaders.py +0 -0
  173. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/__init__.py +0 -0
  174. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/backgroundjobs.py +0 -0
  175. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/clipboard.py +0 -0
  176. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/deepreload.py +0 -0
  177. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/demo.py +0 -0
  178. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/display.py +0 -0
  179. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/editorhooks.py +0 -0
  180. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/guisupport.py +0 -0
  181. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/latextools.py +0 -0
  182. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/pretty.py +0 -0
  183. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/__init__.py +0 -0
  184. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test.wav +0 -0
  185. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_backgroundjobs.py +0 -0
  186. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_clipboard.py +0 -0
  187. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_deepreload.py +0 -0
  188. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_display.py +0 -0
  189. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_editorhooks.py +0 -0
  190. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_imports.py +0 -0
  191. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_latextools.py +0 -0
  192. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_lexers.py +0 -0
  193. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_pretty.py +0 -0
  194. {ipython-8.23.0 → ipython-8.25.0}/IPython/lib/tests/test_pygments.py +0 -0
  195. {ipython-8.23.0 → ipython-8.25.0}/IPython/paths.py +0 -0
  196. {ipython-8.23.0 → ipython-8.25.0}/IPython/py.typed +0 -0
  197. {ipython-8.23.0 → ipython-8.25.0}/IPython/sphinxext/__init__.py +0 -0
  198. {ipython-8.23.0 → ipython-8.25.0}/IPython/sphinxext/custom_doctests.py +0 -0
  199. {ipython-8.23.0 → ipython-8.25.0}/IPython/sphinxext/ipython_console_highlighting.py +0 -0
  200. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/__init__.py +0 -0
  201. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/console.py +0 -0
  202. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/debugger.py +0 -0
  203. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/magics.py +0 -0
  204. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/prompts.py +0 -0
  205. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/__init__.py +0 -0
  206. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/asyncio.py +0 -0
  207. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/gtk.py +0 -0
  208. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/gtk3.py +0 -0
  209. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/gtk4.py +0 -0
  210. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/osx.py +0 -0
  211. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/qt.py +0 -0
  212. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/pt_inputhooks/tk.py +0 -0
  213. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/ptutils.py +0 -0
  214. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/shortcuts/__init__.py +0 -0
  215. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/shortcuts/auto_match.py +0 -0
  216. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/shortcuts/auto_suggest.py +0 -0
  217. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/shortcuts/filters.py +0 -0
  218. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/__init__.py +0 -0
  219. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_debug_magic.py +0 -0
  220. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_embed.py +0 -0
  221. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_help.py +0 -0
  222. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_interactivshell.py +0 -0
  223. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_pt_inputhooks.py +0 -0
  224. {ipython-8.23.0 → ipython-8.25.0}/IPython/terminal/tests/test_shortcuts.py +0 -0
  225. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/__init__.py +0 -0
  226. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/decorators.py +0 -0
  227. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/globalipapp.py +0 -0
  228. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/Makefile +0 -0
  229. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/README.txt +0 -0
  230. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/__init__.py +0 -0
  231. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/dtexample.py +0 -0
  232. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/setup.py +0 -0
  233. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/simple.py +0 -0
  234. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/simplevars.py +0 -0
  235. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/test_combo.txt +0 -0
  236. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/test_example.txt +0 -0
  237. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/test_exampleip.txt +0 -0
  238. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/test_ipdoctest.py +0 -0
  239. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/plugin/test_refs.py +0 -0
  240. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/skipdoctest.py +0 -0
  241. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/tests/__init__.py +0 -0
  242. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/tests/test_decorators.py +0 -0
  243. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/tests/test_ipunittest.py +0 -0
  244. {ipython-8.23.0 → ipython-8.25.0}/IPython/testing/tests/test_tools.py +0 -0
  245. {ipython-8.23.0 → ipython-8.25.0}/IPython/tests/cve.py +0 -0
  246. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/PyColorize.py +0 -0
  247. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/__init__.py +0 -0
  248. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_cli.py +0 -0
  249. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_common.py +0 -0
  250. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_emscripten.py +0 -0
  251. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_posix.py +0 -0
  252. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_win32.py +0 -0
  253. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/_process_win32_controller.py +0 -0
  254. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/capture.py +0 -0
  255. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/colorable.py +0 -0
  256. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/contexts.py +0 -0
  257. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/daemonize.py +0 -0
  258. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/data.py +0 -0
  259. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/decorators.py +0 -0
  260. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/dir2.py +0 -0
  261. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/docs.py +0 -0
  262. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/encoding.py +0 -0
  263. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/eventful.py +0 -0
  264. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/frame.py +0 -0
  265. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/generics.py +0 -0
  266. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/importstring.py +0 -0
  267. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/io.py +0 -0
  268. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/ipstruct.py +0 -0
  269. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/jsonutil.py +0 -0
  270. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/localinterfaces.py +0 -0
  271. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/log.py +0 -0
  272. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/module_paths.py +0 -0
  273. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/openpy.py +0 -0
  274. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/process.py +0 -0
  275. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/py3compat.py +0 -0
  276. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/sentinel.py +0 -0
  277. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/shimmodule.py +0 -0
  278. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/signatures.py +0 -0
  279. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/sysinfo.py +0 -0
  280. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/syspathcontext.py +0 -0
  281. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tempdir.py +0 -0
  282. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/terminal.py +0 -0
  283. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/__init__.py +0 -0
  284. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_capture.py +0 -0
  285. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_decorators.py +0 -0
  286. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_deprecated.py +0 -0
  287. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_dir2.py +0 -0
  288. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_imports.py +0 -0
  289. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_importstring.py +0 -0
  290. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_io.py +0 -0
  291. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_module_paths.py +0 -0
  292. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_openpy.py +0 -0
  293. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_process.py +0 -0
  294. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_pycolorize.py +0 -0
  295. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_shimmodule.py +0 -0
  296. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_sysinfo.py +0 -0
  297. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_tempdir.py +0 -0
  298. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_text.py +0 -0
  299. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_tokenutil.py +0 -0
  300. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tests/test_wildcard.py +0 -0
  301. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/timing.py +0 -0
  302. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tokenutil.py +0 -0
  303. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/traitlets.py +0 -0
  304. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/tz.py +0 -0
  305. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/ulinecache.py +0 -0
  306. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/version.py +0 -0
  307. {ipython-8.23.0 → ipython-8.25.0}/IPython/utils/wildcard.py +0 -0
  308. {ipython-8.23.0 → ipython-8.25.0}/LICENSE +0 -0
  309. {ipython-8.23.0 → ipython-8.25.0}/MANIFEST.in +0 -0
  310. {ipython-8.23.0 → ipython-8.25.0}/README.rst +0 -0
  311. {ipython-8.23.0 → ipython-8.25.0}/_build_meta.py +0 -0
  312. {ipython-8.23.0 → ipython-8.25.0}/docs/Makefile +0 -0
  313. {ipython-8.23.0 → ipython-8.25.0}/docs/README.rst +0 -0
  314. {ipython-8.23.0 → ipython-8.25.0}/docs/autogen_api.py +0 -0
  315. {ipython-8.23.0 → ipython-8.25.0}/docs/autogen_config.py +0 -0
  316. {ipython-8.23.0 → ipython-8.25.0}/docs/autogen_magics.py +0 -0
  317. {ipython-8.23.0 → ipython-8.25.0}/docs/autogen_shortcuts.py +0 -0
  318. {ipython-8.23.0 → ipython-8.25.0}/docs/make.cmd +0 -0
  319. {ipython-8.23.0 → ipython-8.25.0}/docs/man/ipython.1 +0 -0
  320. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/2.0/running-crop.png +0 -0
  321. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/2.0/running.png +0 -0
  322. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/2.0/treeview.png +0 -0
  323. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/2.0/user-interface.png +0 -0
  324. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/2.0/widgets.png +0 -0
  325. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_1_prompt_no_text.png +0 -0
  326. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_2_print_hello_suggest.png +0 -0
  327. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_3_print_hello_suggest.png +0 -0
  328. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_4_print_hello.png +0 -0
  329. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_d_completions.png +0 -0
  330. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_d_phantom.png +0 -0
  331. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_def_completions.png +0 -0
  332. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_def_phantom.png +0 -0
  333. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_match_parens.png +0 -0
  334. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/auto_suggest_second_prompt.png +0 -0
  335. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/8.0/pathlib_pathlib_everywhere.jpg +0 -0
  336. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/autosuggest.gif +0 -0
  337. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_dashboard.png +0 -0
  338. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_dashboard_cluster.png +0 -0
  339. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_cythonmagic.png +0 -0
  340. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_long_out.png +0 -0
  341. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_octavemagic.png +0 -0
  342. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_rmagic.png +0 -0
  343. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_script_cells.png +0 -0
  344. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_spectrogram.png +0 -0
  345. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_notebook_tooltip.png +0 -0
  346. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_par_tb.png +0 -0
  347. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_qtconsole_baboon.png +0 -0
  348. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipy_013_qtconsole_completer.png +0 -0
  349. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ipython-6-screenshot.png +0 -0
  350. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/jedi_type_inference_60.png +0 -0
  351. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/kernel_selector_screenshot.png +0 -0
  352. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ms_visual_studio.png +0 -0
  353. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/notebook_specgram.png +0 -0
  354. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/ptshell_features.png +0 -0
  355. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/qtconsole.png +0 -0
  356. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/qtconsole_tabbed.png +0 -0
  357. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_images/unicode_completion.png +0 -0
  358. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_static/favicon.ico +0 -0
  359. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_static/logo.png +0 -0
  360. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_static/theme_overrides.css +0 -0
  361. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_templates/breadcrumbs.html +0 -0
  362. {ipython-8.23.0 → ipython-8.25.0}/docs/source/_templates/notebook_redirect.html +0 -0
  363. {ipython-8.23.0 → ipython-8.25.0}/docs/source/about/history.rst +0 -0
  364. {ipython-8.23.0 → ipython-8.25.0}/docs/source/about/index.rst +0 -0
  365. {ipython-8.23.0 → ipython-8.25.0}/docs/source/about/license_and_copyright.rst +0 -0
  366. {ipython-8.23.0 → ipython-8.25.0}/docs/source/api/index.rst +0 -0
  367. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/callbacks.rst +0 -0
  368. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/custommagics.rst +0 -0
  369. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/details.rst +0 -0
  370. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/eventloops.rst +0 -0
  371. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/extensions/autoreload.rst +0 -0
  372. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/extensions/index.rst +0 -0
  373. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/extensions/storemagic.rst +0 -0
  374. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/index.rst +0 -0
  375. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/inputtransforms.rst +0 -0
  376. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/integrating.rst +0 -0
  377. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/options/index.rst +0 -0
  378. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/shell_mimerenderer.rst +0 -0
  379. {ipython-8.23.0 → ipython-8.25.0}/docs/source/config/shortcuts/index.rst +0 -0
  380. {ipython-8.23.0 → ipython-8.25.0}/docs/source/coredev/index.rst +0 -0
  381. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/config.rst +0 -0
  382. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/execution.rst +0 -0
  383. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/figs/ipy_kernel_and_terminal.png +0 -0
  384. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/figs/ipy_kernel_and_terminal.svg +0 -0
  385. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/figs/other_kernels.png +0 -0
  386. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/figs/other_kernels.svg +0 -0
  387. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/how_ipython_works.rst +0 -0
  388. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/index.rst +0 -0
  389. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/inputhook_app.rst +0 -0
  390. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/kernels.rst +0 -0
  391. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/lexer.rst +0 -0
  392. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/messaging.rst +0 -0
  393. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/pycompat.rst +0 -0
  394. {ipython-8.23.0 → ipython-8.25.0}/docs/source/development/wrapperkernels.rst +0 -0
  395. {ipython-8.23.0 → ipython-8.25.0}/docs/source/index.rst +0 -0
  396. {ipython-8.23.0 → ipython-8.25.0}/docs/source/install/index.rst +0 -0
  397. {ipython-8.23.0 → ipython-8.25.0}/docs/source/install/install.rst +0 -0
  398. {ipython-8.23.0 → ipython-8.25.0}/docs/source/install/kernel_install.rst +0 -0
  399. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/autoawait.rst +0 -0
  400. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/figs/besselj.png +0 -0
  401. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/figs/colors_dark.png +0 -0
  402. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/figs/jn.html +0 -0
  403. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/figs/jn.xhtml +0 -0
  404. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/index.rst +0 -0
  405. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/magics.rst +0 -0
  406. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/python-ipython-diff.rst +0 -0
  407. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/shell.rst +0 -0
  408. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/tips.rst +0 -0
  409. {ipython-8.23.0 → ipython-8.25.0}/docs/source/interactive/tutorial.rst +0 -0
  410. {ipython-8.23.0 → ipython-8.25.0}/docs/source/links.txt +0 -0
  411. {ipython-8.23.0 → ipython-8.25.0}/docs/source/overview.rst +0 -0
  412. {ipython-8.23.0 → ipython-8.25.0}/docs/source/parallel/index.rst +0 -0
  413. {ipython-8.23.0 → ipython-8.25.0}/docs/source/sphinxext.rst +0 -0
  414. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/development.rst +0 -0
  415. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-0.11.rst +0 -0
  416. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-0.12.rst +0 -0
  417. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-0.13.rst +0 -0
  418. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-1.0.rst +0 -0
  419. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-2.0.rst +0 -0
  420. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-3.rst +0 -0
  421. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-4.rst +0 -0
  422. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-5.rst +0 -0
  423. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-6.rst +0 -0
  424. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-7.rst +0 -0
  425. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/github-stats-8.rst +0 -0
  426. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/index.rst +0 -0
  427. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/pr/README.md +0 -0
  428. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/pr/antigravity-feature.rst +0 -0
  429. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/pr/incompat-switching-to-perl.rst +0 -0
  430. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.10.rst +0 -0
  431. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.12.rst +0 -0
  432. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.13.rst +0 -0
  433. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.8.rst +0 -0
  434. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version0.9.rst +0 -0
  435. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version1.0.rst +0 -0
  436. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version2.0.rst +0 -0
  437. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version3.rst +0 -0
  438. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version3_widget_migration.rst +0 -0
  439. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version4.rst +0 -0
  440. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version5.rst +0 -0
  441. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version6.rst +0 -0
  442. {ipython-8.23.0 → ipython-8.25.0}/docs/source/whatsnew/version7.rst +0 -0
  443. {ipython-8.23.0 → ipython-8.25.0}/docs/sphinxext/apigen.py +0 -0
  444. {ipython-8.23.0 → ipython-8.25.0}/docs/sphinxext/configtraits.py +0 -0
  445. {ipython-8.23.0 → ipython-8.25.0}/docs/sphinxext/github.py +0 -0
  446. {ipython-8.23.0 → ipython-8.25.0}/docs/sphinxext/magics.py +0 -0
  447. {ipython-8.23.0 → ipython-8.25.0}/examples/Embedding/Index.ipynb +0 -0
  448. {ipython-8.23.0 → ipython-8.25.0}/examples/Embedding/embed_class_long.py +0 -0
  449. {ipython-8.23.0 → ipython-8.25.0}/examples/Embedding/embed_class_short.py +0 -0
  450. {ipython-8.23.0 → ipython-8.25.0}/examples/Embedding/embed_function.py +0 -0
  451. {ipython-8.23.0 → ipython-8.25.0}/examples/Embedding/start_ipython_config.py +0 -0
  452. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Animations Using clear_output.ipynb +0 -0
  453. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Background Jobs.ipynb +0 -0
  454. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Beyond Plain Python.ipynb +0 -0
  455. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Capturing Output.ipynb +0 -0
  456. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Cell Magics.ipynb +0 -0
  457. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Custom Display Logic.ipynb +0 -0
  458. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Importing Notebooks.ipynb +0 -0
  459. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Index.ipynb +0 -0
  460. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Plotting in the Notebook.ipynb +0 -0
  461. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Raw Input in the Notebook.ipynb +0 -0
  462. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Rich Output.ipynb +0 -0
  463. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Script Magics.ipynb +0 -0
  464. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/SymPy.ipynb +0 -0
  465. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Terminal Usage.ipynb +0 -0
  466. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Third Party Rich Output.ipynb +0 -0
  467. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Trapezoid Rule.ipynb +0 -0
  468. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Updating Displays.ipynb +0 -0
  469. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/Working With External Code.ipynb +0 -0
  470. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/data/flare.json +0 -0
  471. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/example-demo.py +0 -0
  472. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/gui/gui-glut.py +0 -0
  473. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/gui/gui-gtk4.py +0 -0
  474. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/gui/gui-qt.py +0 -0
  475. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/ipython-completion.bash +0 -0
  476. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/ipython-get-history.py +0 -0
  477. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/ipython.desktop +0 -0
  478. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/nbpackage/__init__.py +0 -0
  479. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/nbpackage/mynotebook.ipynb +0 -0
  480. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/nbpackage/nbs/__init__.py +0 -0
  481. {ipython-8.23.0 → ipython-8.25.0}/examples/IPython Kernel/nbpackage/nbs/other.ipynb +0 -0
  482. {ipython-8.23.0 → ipython-8.25.0}/examples/Index.ipynb +0 -0
  483. {ipython-8.23.0 → ipython-8.25.0}/examples/images/FrontendKernel.graffle/data.plist +0 -0
  484. {ipython-8.23.0 → ipython-8.25.0}/examples/images/FrontendKernel.graffle/image1.png +0 -0
  485. {ipython-8.23.0 → ipython-8.25.0}/examples/images/FrontendKernel.png +0 -0
  486. {ipython-8.23.0 → ipython-8.25.0}/examples/images/animation.m4v +0 -0
  487. {ipython-8.23.0 → ipython-8.25.0}/examples/images/ipython_logo.png +0 -0
  488. {ipython-8.23.0 → ipython-8.25.0}/examples/images/python_logo.svg +0 -0
  489. {ipython-8.23.0 → ipython-8.25.0}/examples/utils/cwd_prompt.py +0 -0
  490. {ipython-8.23.0 → ipython-8.25.0}/examples/utils/list_pyfiles.ipy +0 -0
  491. {ipython-8.23.0 → ipython-8.25.0}/examples/utils/list_subdirs.ipy +0 -0
  492. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/dependency_links.txt +0 -0
  493. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/entry_points.txt +0 -0
  494. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/not-zip-safe +0 -0
  495. {ipython-8.23.0 → ipython-8.25.0}/ipython.egg-info/top_level.txt +0 -0
  496. {ipython-8.23.0 → ipython-8.25.0}/long_description.rst +0 -0
  497. {ipython-8.23.0 → ipython-8.25.0}/scripts/ipython.ico +0 -0
  498. {ipython-8.23.0 → ipython-8.25.0}/scripts/ipython_nb.ico +0 -0
  499. {ipython-8.23.0 → ipython-8.25.0}/setup.cfg +0 -0
  500. {ipython-8.23.0 → ipython-8.25.0}/setup.py +0 -0
@@ -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
 
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  Pdb debugger class.
4
3
 
@@ -101,17 +100,25 @@ All the changes since then are under the same license as IPython.
101
100
  #
102
101
  #*****************************************************************************
103
102
 
103
+ from __future__ import annotations
104
+
104
105
  import inspect
105
106
  import linecache
106
- import sys
107
- import re
108
107
  import os
108
+ import re
109
+ import sys
110
+ from contextlib import contextmanager
111
+ from functools import lru_cache
109
112
 
110
113
  from IPython import get_ipython
111
- from contextlib import contextmanager
112
- from IPython.utils import PyColorize
113
- from IPython.utils import coloransi, py3compat
114
114
  from IPython.core.excolors import exception_colors
115
+ from IPython.utils import PyColorize, coloransi, py3compat
116
+
117
+ from typing import TYPE_CHECKING
118
+
119
+ if TYPE_CHECKING:
120
+ # otherwise circular import
121
+ from IPython.core.interactiveshell import InteractiveShell
115
122
 
116
123
  # skip module docstests
117
124
  __skip_doctest__ = True
@@ -149,16 +156,10 @@ def BdbQuit_excepthook(et, ev, tb, excepthook=None):
149
156
  parameter.
150
157
  """
151
158
  raise ValueError(
152
- "`BdbQuit_excepthook` is deprecated since version 5.1",
159
+ "`BdbQuit_excepthook` is deprecated since version 5.1. It is still arround only because it is still imported by ipdb.",
153
160
  )
154
161
 
155
162
 
156
- def BdbQuit_IPython_excepthook(self, et, ev, tb, tb_offset=None):
157
- raise ValueError(
158
- "`BdbQuit_IPython_excepthook` is deprecated since version 5.1",
159
- DeprecationWarning, stacklevel=2)
160
-
161
-
162
163
  RGX_EXTRA_INDENT = re.compile(r'(?<=\n)\s+')
163
164
 
164
165
 
@@ -191,6 +192,8 @@ class Pdb(OldPdb):
191
192
 
192
193
  """
193
194
 
195
+ shell: InteractiveShell
196
+
194
197
  if CHAIN_EXCEPTIONS:
195
198
  MAX_CHAINED_EXCEPTION_DEPTH = 999
196
199
 
@@ -261,21 +264,6 @@ class Pdb(OldPdb):
261
264
  C = coloransi.TermColors
262
265
  cst = self.color_scheme_table
263
266
 
264
- cst['NoColor'].colors.prompt = C.NoColor
265
- cst['NoColor'].colors.breakpoint_enabled = C.NoColor
266
- cst['NoColor'].colors.breakpoint_disabled = C.NoColor
267
-
268
- cst['Linux'].colors.prompt = C.Green
269
- cst['Linux'].colors.breakpoint_enabled = C.LightRed
270
- cst['Linux'].colors.breakpoint_disabled = C.Red
271
-
272
- cst['LightBG'].colors.prompt = C.Blue
273
- cst['LightBG'].colors.breakpoint_enabled = C.LightRed
274
- cst['LightBG'].colors.breakpoint_disabled = C.Red
275
-
276
- cst['Neutral'].colors.prompt = C.Blue
277
- cst['Neutral'].colors.breakpoint_enabled = C.LightRed
278
- cst['Neutral'].colors.breakpoint_disabled = C.Red
279
267
 
280
268
  # Add a python parser so we can syntax highlight source while
281
269
  # debugging.
@@ -471,24 +459,11 @@ class Pdb(OldPdb):
471
459
 
472
460
  return line
473
461
 
474
- def new_do_frame(self, arg):
475
- OldPdb.do_frame(self, arg)
476
-
477
462
  def new_do_quit(self, arg):
478
-
479
- if hasattr(self, 'old_all_completions'):
480
- self.shell.Completer.all_completions = self.old_all_completions
481
-
482
463
  return OldPdb.do_quit(self, arg)
483
464
 
484
465
  do_q = do_quit = decorate_fn_with_doc(new_do_quit, OldPdb.do_quit)
485
466
 
486
- def new_do_restart(self, arg):
487
- """Restart command. In the context of ipython this is exactly the same
488
- thing as 'quit'."""
489
- self.msg("Restart doesn't make sense here. Using 'quit' instead.")
490
- return self.do_quit(arg)
491
-
492
467
  def print_stack_trace(self, context=None):
493
468
  Colors = self.color_scheme_table.active_colors
494
469
  ColorsNormal = Colors.Normal
@@ -941,22 +916,37 @@ class Pdb(OldPdb):
941
916
  Utility to tell us whether we are in a decorator internal and should stop.
942
917
 
943
918
  """
944
-
945
919
  # if we are disabled don't skip
946
920
  if not self._predicates["debuggerskip"]:
947
921
  return False
948
922
 
923
+ return self._cachable_skip(frame)
924
+
925
+ @lru_cache(1024)
926
+ def _cached_one_parent_frame_debuggerskip(self, frame):
927
+ """
928
+ Cache looking up for DEBUGGERSKIP on parent frame.
929
+
930
+ This should speedup walking through deep frame when one of the highest
931
+ one does have a debugger skip.
932
+
933
+ This is likely to introduce fake positive though.
934
+ """
935
+ while getattr(frame, "f_back", None):
936
+ frame = frame.f_back
937
+ if self._get_frame_locals(frame).get(DEBUGGERSKIP):
938
+ return True
939
+ return None
940
+
941
+ @lru_cache(1024)
942
+ def _cachable_skip(self, frame):
949
943
  # if frame is tagged, skip by default.
950
944
  if DEBUGGERSKIP in frame.f_code.co_varnames:
951
945
  return True
952
946
 
953
947
  # if one of the parent frame value set to True skip as well.
954
-
955
- cframe = frame
956
- while getattr(cframe, "f_back", None):
957
- cframe = cframe.f_back
958
- if self._get_frame_locals(cframe).get(DEBUGGERSKIP):
959
- return True
948
+ if self._cached_one_parent_frame_debuggerskip(frame):
949
+ return True
960
950
 
961
951
  return False
962
952
 
@@ -111,7 +111,7 @@ def display(
111
111
  display_id=None,
112
112
  raw=False,
113
113
  clear=False,
114
- **kwargs
114
+ **kwargs,
115
115
  ):
116
116
  """Display a Python object in all frontends.
117
117
 
@@ -34,9 +34,10 @@ def exception_colors():
34
34
  >>> ec.active_scheme_name
35
35
  'NoColor'
36
36
  >>> sorted(ec.active_colors.keys())
37
- ['Normal', 'caret', 'em', 'excName', 'filename', 'filenameEm', 'line',
38
- 'lineno', 'linenoEm', 'name', 'nameEm', 'normalEm', 'topline', 'vName',
39
- 'val', 'valEm']
37
+ ['Normal', 'breakpoint_disabled', 'breakpoint_enabled', 'caret', 'em',
38
+ 'excName', 'filename', 'filenameEm', 'line', 'lineno', 'linenoEm', 'name',
39
+ 'nameEm', 'normalEm', 'prompt', 'topline', 'vName', 'val', 'valEm']
40
+
40
41
  """
41
42
 
42
43
  ex_colors = ColorSchemeTable()
@@ -70,6 +71,10 @@ def exception_colors():
70
71
  "line": C.NoColor,
71
72
  "caret": C.NoColor,
72
73
  "Normal": C.NoColor,
74
+ # debugger
75
+ "prompt": C.NoColor,
76
+ "breakpoint_enabled": C.NoColor,
77
+ "breakpoint_disabled": C.NoColor,
73
78
  },
74
79
  )
75
80
  )
@@ -99,6 +104,10 @@ def exception_colors():
99
104
  "line": C.Yellow,
100
105
  "caret": C.White,
101
106
  "Normal": C.Normal,
107
+ # debugger
108
+ "prompt": C.Green,
109
+ "breakpoint_enabled": C.LightRed,
110
+ "breakpoint_disabled": C.Red,
102
111
  },
103
112
  )
104
113
  )
@@ -132,6 +141,10 @@ def exception_colors():
132
141
  "line": C.Red,
133
142
  "caret": C.Normal,
134
143
  "Normal": C.Normal,
144
+ # debugger
145
+ "prompt": C.Blue,
146
+ "breakpoint_enabled": C.LightRed,
147
+ "breakpoint_disabled": C.Red,
135
148
  },
136
149
  )
137
150
  )
@@ -161,6 +174,10 @@ def exception_colors():
161
174
  "line": C.Red,
162
175
  "caret": C.Normal,
163
176
  "Normal": C.Normal,
177
+ # debugger
178
+ "prompt": C.Blue,
179
+ "breakpoint_enabled": C.LightRed,
180
+ "breakpoint_disabled": C.Red,
164
181
  },
165
182
  )
166
183
  )
@@ -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
 
@@ -3654,10 +3654,17 @@ class InteractiveShell(SingletonConfigurable):
3654
3654
  make sense in all contexts, for example a terminal ipython can't
3655
3655
  display figures inline.
3656
3656
  """
3657
+ from .pylabtools import _matplotlib_manages_backends
3658
+
3659
+ if not _matplotlib_manages_backends() and gui in (None, "auto"):
3660
+ # Early import of backend_inline required for its side effect of
3661
+ # calling _enable_matplotlib_integration()
3662
+ import matplotlib_inline.backend_inline
3663
+
3657
3664
  from IPython.core import pylabtools as pt
3658
3665
  gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select)
3659
3666
 
3660
- if gui != 'inline':
3667
+ if gui != None:
3661
3668
  # If we have our first gui selection, store it
3662
3669
  if self.pylab_gui_select is None:
3663
3670
  self.pylab_gui_select = gui
@@ -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
@@ -18,19 +18,19 @@ from IPython.core import magic_arguments
18
18
  from IPython.core.magic import Magics, magics_class, line_magic
19
19
  from IPython.testing.skipdoctest import skip_doctest
20
20
  from warnings import warn
21
- from IPython.core.pylabtools import backends
22
21
 
23
22
  #-----------------------------------------------------------------------------
24
23
  # Magic implementation classes
25
24
  #-----------------------------------------------------------------------------
26
25
 
27
26
  magic_gui_arg = magic_arguments.argument(
28
- 'gui', nargs='?',
29
- help="""Name of the matplotlib backend to use %s.
27
+ "gui",
28
+ nargs="?",
29
+ help="""Name of the matplotlib backend to use such as 'qt' or 'widget'.
30
30
  If given, the corresponding matplotlib backend is used,
31
31
  otherwise it will be matplotlib's default
32
32
  (which you can set in your matplotlib config file).
33
- """ % str(tuple(sorted(backends.keys())))
33
+ """,
34
34
  )
35
35
 
36
36
 
@@ -93,8 +93,12 @@ class PylabMagics(Magics):
93
93
  """
94
94
  args = magic_arguments.parse_argstring(self.matplotlib, line)
95
95
  if args.list:
96
- backends_list = list(backends.keys())
97
- print("Available matplotlib backends: %s" % backends_list)
96
+ from IPython.core.pylabtools import _list_matplotlib_backends_and_gui_loops
97
+
98
+ print(
99
+ "Available matplotlib backends: %s"
100
+ % _list_matplotlib_backends_and_gui_loops()
101
+ )
98
102
  else:
99
103
  gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui)
100
104
  self._show_matplotlib_backend(args.gui, backend)
@@ -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)