##// END OF EJS Templates
Merge branch 'main' into tc
M Bussonnier -
r28892:b7cc43d2 merge
parent child Browse files
Show More
@@ -159,7 +159,7 b' By default results from all matchers are combined, in the order determined by'
159 their priority. Matchers can request to suppress results from subsequent
159 their priority. Matchers can request to suppress results from subsequent
160 matchers by setting ``suppress`` to ``True`` in the ``MatcherResult``.
160 matchers by setting ``suppress`` to ``True`` in the ``MatcherResult``.
161
161
162 When multiple matchers simultaneously request surpression, the results from of
162 When multiple matchers simultaneously request suppression, the results from of
163 the matcher with higher priority will be returned.
163 the matcher with higher priority will be returned.
164
164
165 Sometimes it is desirable to suppress most but not all other matchers;
165 Sometimes it is desirable to suppress most but not all other matchers;
@@ -2651,7 +2651,7 b' class IPCompleter(Completer):'
2651 )
2651 )
2652 can_close_quote = can_close_quote and self.auto_close_dict_keys
2652 can_close_quote = can_close_quote and self.auto_close_dict_keys
2653
2653
2654 # fast path if closing qoute should be appended but not suffix is allowed
2654 # fast path if closing quote should be appended but not suffix is allowed
2655 if not can_close_quote and not can_close_bracket and closing_quote:
2655 if not can_close_quote and not can_close_bracket and closing_quote:
2656 return [leading + k for k in matches]
2656 return [leading + k for k in matches]
2657
2657
@@ -167,7 +167,7 b' def is_possible_submodule(module, attr):'
167 try:
167 try:
168 obj = getattr(module, attr)
168 obj = getattr(module, attr)
169 except AttributeError:
169 except AttributeError:
170 # Is possilby an unimported submodule
170 # Is possibly an unimported submodule
171 return True
171 return True
172 except TypeError:
172 except TypeError:
173 # https://github.com/ipython/ipython/issues/9678
173 # https://github.com/ipython/ipython/issues/9678
@@ -19,7 +19,7 b' Global Configuration'
19 --------------------
19 --------------------
20
20
21 The IPython debugger will by read the global ``~/.pdbrc`` file.
21 The IPython debugger will by read the global ``~/.pdbrc`` file.
22 That is to say you can list all comands supported by ipdb in your `~/.pdbrc`
22 That is to say you can list all commands supported by ipdb in your `~/.pdbrc`
23 configuration file, to globally configure pdb.
23 configuration file, to globally configure pdb.
24
24
25 Example::
25 Example::
@@ -177,7 +177,7 b' def BdbQuit_excepthook(et, ev, tb, excepthook=None):'
177 parameter.
177 parameter.
178 """
178 """
179 raise ValueError(
179 raise ValueError(
180 "`BdbQuit_excepthook` is deprecated since version 5.1. It is still arround only because it is still imported by ipdb.",
180 "`BdbQuit_excepthook` is deprecated since version 5.1. It is still around only because it is still imported by ipdb.",
181 )
181 )
182
182
183
183
@@ -132,7 +132,7 b' def _get_external(module_name: str, access_path: Sequence[str]):'
132
132
133 Raises:
133 Raises:
134 * `KeyError` if module is removed not found, and
134 * `KeyError` if module is removed not found, and
135 * `AttributeError` if acess path does not match an exported object
135 * `AttributeError` if access path does not match an exported object
136 """
136 """
137 member_type = sys.modules[module_name]
137 member_type = sys.modules[module_name]
138 for attr in access_path:
138 for attr in access_path:
@@ -235,7 +235,7 b' class SelectivePolicy(EvaluationPolicy):'
235 accept = has_original_attr and has_original_attribute
235 accept = has_original_attr and has_original_attribute
236
236
237 if accept:
237 if accept:
238 # We still need to check for overriden properties.
238 # We still need to check for overridden properties.
239
239
240 value_class = type(value)
240 value_class = type(value)
241 if not hasattr(value_class, attr):
241 if not hasattr(value_class, attr):
@@ -332,7 +332,7 b' class EvaluationContext(NamedTuple):'
332 evaluation: Literal[
332 evaluation: Literal[
333 "forbidden", "minimal", "limited", "unsafe", "dangerous"
333 "forbidden", "minimal", "limited", "unsafe", "dangerous"
334 ] = "forbidden"
334 ] = "forbidden"
335 #: Whether the evalution of code takes place inside of a subscript.
335 #: Whether the evaluation of code takes place inside of a subscript.
336 #: Useful for evaluating ``:-1, 'col'`` in ``df[:-1, 'col']``.
336 #: Useful for evaluating ``:-1, 'col'`` in ``df[:-1, 'col']``.
337 in_subscript: bool = False
337 in_subscript: bool = False
338
338
@@ -373,7 +373,7 b' def guarded_eval(code: str, context: EvaluationContext):'
373 # getitem at all, for example it fails on simple `[0][1]`
373 # getitem at all, for example it fails on simple `[0][1]`
374
374
375 if context.in_subscript:
375 if context.in_subscript:
376 # syntatic sugar for ellipsis (:) is only available in susbcripts
376 # syntactic sugar for ellipsis (:) is only available in subscripts
377 # so we need to trick the ast parser into thinking that we have
377 # so we need to trick the ast parser into thinking that we have
378 # a subscript, but we need to be able to later recognise that we did
378 # a subscript, but we need to be able to later recognise that we did
379 # it so we can ignore the actual __getitem__ operation
379 # it so we can ignore the actual __getitem__ operation
@@ -97,7 +97,7 b' def num_ini_spaces(s):'
97 """
97 """
98 warnings.warn(
98 warnings.warn(
99 "`num_ini_spaces` is Pending Deprecation since IPython 8.17."
99 "`num_ini_spaces` is Pending Deprecation since IPython 8.17."
100 "It is considered fro removal in in future version. "
100 "It is considered for removal in in future version. "
101 "Please open an issue if you believe it should be kept.",
101 "Please open an issue if you believe it should be kept.",
102 stacklevel=2,
102 stacklevel=2,
103 category=PendingDeprecationWarning,
103 category=PendingDeprecationWarning,
@@ -1627,7 +1627,7 b' class InteractiveShell(SingletonConfigurable):'
1627 Returns
1627 Returns
1628 -------
1628 -------
1629 parts_ok: bool
1629 parts_ok: bool
1630 wether we were properly able to parse parts.
1630 whether we were properly able to parse parts.
1631 parts: list of str
1631 parts: list of str
1632 extracted parts
1632 extracted parts
1633
1633
@@ -5,7 +5,7 b' with ast-transformers it is not easy to directly manipulate ast.'
5
5
6
6
7 IPython has pre-code and post-code hooks, but are ran from within the IPython
7 IPython has pre-code and post-code hooks, but are ran from within the IPython
8 machinery so may be inappropriate, for example for performance mesurement.
8 machinery so may be inappropriate, for example for performance measurement.
9
9
10 This module give you tools to simplify this, and expose 2 classes:
10 This module give you tools to simplify this, and expose 2 classes:
11
11
@@ -460,7 +460,7 b' class Inspector(Colorable):'
460
460
461 mime_hooks = traitlets.Dict(
461 mime_hooks = traitlets.Dict(
462 config=True,
462 config=True,
463 help="dictionary of mime to callable to add informations into help mimebundle dict",
463 help="dictionary of mime to callable to add information into help mimebundle dict",
464 ).tag(config=True)
464 ).tag(config=True)
465
465
466 def __init__(
466 def __init__(
@@ -528,7 +528,7 b' def _list_matplotlib_backends_and_gui_loops() -> list[str]:'
528
528
529
529
530 # Matplotlib and IPython do not always use the same gui framework name.
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
531 # Always use the appropriate one of these conversion functions when passing a
532 # gui framework name to/from Matplotlib.
532 # gui framework name to/from Matplotlib.
533 def _convert_gui_to_matplotlib(gui: str | None) -> str | None:
533 def _convert_gui_to_matplotlib(gui: str | None) -> str | None:
534 if gui and gui.lower() == "osx":
534 if gui and gui.lower() == "osx":
@@ -204,7 +204,7 b' def test_line_split():'
204 # was at the end of part1. So an empty part2 represents someone hitting
204 # was at the end of part1. So an empty part2 represents someone hitting
205 # tab at the end of the line, the most common case.
205 # tab at the end of the line, the most common case.
206 t = [
206 t = [
207 ("run some/scrip", "", "some/scrip"),
207 ("run some/script", "", "some/script"),
208 ("run scripts/er", "ror.py foo", "scripts/er"),
208 ("run scripts/er", "ror.py foo", "scripts/er"),
209 ("echo $HOM", "", "HOM"),
209 ("echo $HOM", "", "HOM"),
210 ("print sys.pa", "", "sys.pa"),
210 ("print sys.pa", "", "sys.pa"),
@@ -140,7 +140,7 b' def test_image_filename_defaults():'
140 format="badformat",
140 format="badformat",
141 embed=True,
141 embed=True,
142 )
142 )
143 # check boths paths to allow packages to test at build and install time
143 # check both paths to allow packages to test at build and install time
144 imgfile = os.path.join(tpath, 'core/tests/2x2.png')
144 imgfile = os.path.join(tpath, 'core/tests/2x2.png')
145 img = display.Image(filename=imgfile)
145 img = display.Image(filename=imgfile)
146 assert "png" == img.format
146 assert "png" == img.format
@@ -660,7 +660,7 b' class TestSystemRaw(ExitCodeChecks):'
660 @mock.patch('os.system', side_effect=KeyboardInterrupt)
660 @mock.patch('os.system', side_effect=KeyboardInterrupt)
661 def test_control_c(self, *mocks):
661 def test_control_c(self, *mocks):
662 try:
662 try:
663 self.system("sleep 1 # wont happen")
663 self.system("sleep 1 # won't happen")
664 except KeyboardInterrupt: # pragma: no cove
664 except KeyboardInterrupt: # pragma: no cove
665 self.fail(
665 self.fail(
666 "system call should intercept "
666 "system call should intercept "
@@ -579,7 +579,7 b' def test_run_tb():'
579 def test_multiprocessing_run():
579 def test_multiprocessing_run():
580 """Set we can run mutiprocesgin without messing up up main namespace
580 """Set we can run mutiprocesgin without messing up up main namespace
581
581
582 Note that import `nose.tools as nt` mdify the value s
582 Note that import `nose.tools as nt` modify the values
583 sys.module['__mp_main__'] so we need to temporarily set it to None to test
583 sys.module['__mp_main__'] so we need to temporarily set it to None to test
584 the issue.
584 the issue.
585 """
585 """
@@ -158,14 +158,14 b' class NestedGenExprTestCase(unittest.TestCase):'
158
158
159
159
160 indentationerror_file = """if True:
160 indentationerror_file = """if True:
161 zoon()
161 zoom()
162 """
162 """
163
163
164 class IndentationErrorTest(unittest.TestCase):
164 class IndentationErrorTest(unittest.TestCase):
165 def test_indentationerror_shows_line(self):
165 def test_indentationerror_shows_line(self):
166 # See issue gh-2398
166 # See issue gh-2398
167 with tt.AssertPrints("IndentationError"):
167 with tt.AssertPrints("IndentationError"):
168 with tt.AssertPrints("zoon()", suppress=False):
168 with tt.AssertPrints("zoom()", suppress=False):
169 ip.run_cell(indentationerror_file)
169 ip.run_cell(indentationerror_file)
170
170
171 with TemporaryDirectory() as td:
171 with TemporaryDirectory() as td:
@@ -174,7 +174,7 b' class IndentationErrorTest(unittest.TestCase):'
174 f.write(indentationerror_file)
174 f.write(indentationerror_file)
175
175
176 with tt.AssertPrints("IndentationError"):
176 with tt.AssertPrints("IndentationError"):
177 with tt.AssertPrints("zoon()", suppress=False):
177 with tt.AssertPrints("zoom()", suppress=False):
178 ip.magic('run %s' % fname)
178 ip.magic('run %s' % fname)
179
179
180 @skip_without("pandas")
180 @skip_without("pandas")
@@ -541,7 +541,7 b' class RawText:'
541 class CallExpression:
541 class CallExpression:
542 """ Object which emits a line-wrapped call expression in the form `__name(*args, **kwargs)` """
542 """ Object which emits a line-wrapped call expression in the form `__name(*args, **kwargs)` """
543 def __init__(__self, __name, *args, **kwargs):
543 def __init__(__self, __name, *args, **kwargs):
544 # dunders are to avoid clashes with kwargs, as python's name manging
544 # dunders are to avoid clashes with kwargs, as python's name managing
545 # will kick in.
545 # will kick in.
546 self = __self
546 self = __self
547 self.name = __name
547 self.name = __name
@@ -555,7 +555,7 b' class CallExpression:'
555 return inner
555 return inner
556
556
557 def _repr_pretty_(self, p, cycle):
557 def _repr_pretty_(self, p, cycle):
558 # dunders are to avoid clashes with kwargs, as python's name manging
558 # dunders are to avoid clashes with kwargs, as python's name managing
559 # will kick in.
559 # will kick in.
560
560
561 started = False
561 started = False
@@ -77,7 +77,7 b' class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):'
77 def connect(self, pt_app: PromptSession):
77 def connect(self, pt_app: PromptSession):
78 self._connected_apps.append(pt_app)
78 self._connected_apps.append(pt_app)
79 # note: `on_text_changed` could be used for a bit different behaviour
79 # note: `on_text_changed` could be used for a bit different behaviour
80 # on character deletion (i.e. reseting history position on backspace)
80 # on character deletion (i.e. resetting history position on backspace)
81 pt_app.default_buffer.on_text_insert.add_handler(self.reset_history_position)
81 pt_app.default_buffer.on_text_insert.add_handler(self.reset_history_position)
82 pt_app.default_buffer.on_cursor_position_changed.add_handler(self._dismiss)
82 pt_app.default_buffer.on_cursor_position_changed.add_handler(self._dismiss)
83
83
@@ -207,7 +207,7 b' class PassThrough(Filter):'
207 pass_through = PassThrough()
207 pass_through = PassThrough()
208
208
209 # these one is callable and re-used multiple times hence needs to be
209 # these one is callable and re-used multiple times hence needs to be
210 # only defined once beforhand so that transforming back to human-readable
210 # only defined once beforehand so that transforming back to human-readable
211 # names works well in the documentation.
211 # names works well in the documentation.
212 default_buffer_focused = has_focus(DEFAULT_BUFFER)
212 default_buffer_focused = has_focus(DEFAULT_BUFFER)
213
213
@@ -370,7 +370,7 b' def num_ini_spaces(strng: str) -> int:'
370 """Return the number of initial spaces in a string"""
370 """Return the number of initial spaces in a string"""
371 warnings.warn(
371 warnings.warn(
372 "`num_ini_spaces` is Pending Deprecation since IPython 8.17."
372 "`num_ini_spaces` is Pending Deprecation since IPython 8.17."
373 "It is considered fro removal in in future version. "
373 "It is considered for removal in in future version. "
374 "Please open an issue if you believe it should be kept.",
374 "Please open an issue if you believe it should be kept.",
375 stacklevel=2,
375 stacklevel=2,
376 category=PendingDeprecationWarning,
376 category=PendingDeprecationWarning,
@@ -431,7 +431,7 b' def wrap_paragraphs(text: str, ncols: int = 80) -> List[str]:'
431 """
431 """
432 warnings.warn(
432 warnings.warn(
433 "`wrap_paragraphs` is Pending Deprecation since IPython 8.17."
433 "`wrap_paragraphs` is Pending Deprecation since IPython 8.17."
434 "It is considered fro removal in in future version. "
434 "It is considered for removal in in future version. "
435 "Please open an issue if you believe it should be kept.",
435 "Please open an issue if you believe it should be kept.",
436 stacklevel=2,
436 stacklevel=2,
437 category=PendingDeprecationWarning,
437 category=PendingDeprecationWarning,
@@ -512,7 +512,7 b' def strip_ansi(source: str) -> str:'
512 """
512 """
513 warnings.warn(
513 warnings.warn(
514 "`strip_ansi` is Pending Deprecation since IPython 8.17."
514 "`strip_ansi` is Pending Deprecation since IPython 8.17."
515 "It is considered fro removal in in future version. "
515 "It is considered for removal in in future version. "
516 "Please open an issue if you believe it should be kept.",
516 "Please open an issue if you believe it should be kept.",
517 stacklevel=2,
517 stacklevel=2,
518 category=PendingDeprecationWarning,
518 category=PendingDeprecationWarning,
@@ -761,7 +761,7 b' def compute_item_matrix('
761 """
761 """
762 warnings.warn(
762 warnings.warn(
763 "`compute_item_matrix` is Pending Deprecation since IPython 8.17."
763 "`compute_item_matrix` is Pending Deprecation since IPython 8.17."
764 "It is considered fro removal in in future version. "
764 "It is considered for removal in in future version. "
765 "Please open an issue if you believe it should be kept.",
765 "Please open an issue if you believe it should be kept.",
766 stacklevel=2,
766 stacklevel=2,
767 category=PendingDeprecationWarning,
767 category=PendingDeprecationWarning,
@@ -112,7 +112,7 b' try:'
112 )
112 )
113
113
114 except ModuleNotFoundError:
114 except ModuleNotFoundError:
115 # In case intersphinx_registry is not yet packages on current plaform
115 # In case intersphinx_registry is not yet packages on current platform
116 # as it is quite recent.
116 # as it is quite recent.
117 print("/!\\ intersphinx_registry not installed, relying on local mapping.")
117 print("/!\\ intersphinx_registry not installed, relying on local mapping.")
118 intersphinx_mapping = config["intersphinx_mapping"]
118 intersphinx_mapping = config["intersphinx_mapping"]
@@ -221,7 +221,7 b' New features'
221 * Gather/scatter are now implemented in the client to reduce the work load
221 * Gather/scatter are now implemented in the client to reduce the work load
222 of the controller and improve performance.
222 of the controller and improve performance.
223
223
224 * Complete rewrite of the IPython docuementation. All of the documentation
224 * Complete rewrite of the IPython documentation. All of the documentation
225 from the IPython website has been moved into docs/source as restructured
225 from the IPython website has been moved into docs/source as restructured
226 text documents. PDF and HTML documentation are being generated using
226 text documents. PDF and HTML documentation are being generated using
227 Sphinx.
227 Sphinx.
@@ -191,7 +191,7 b' Virtualenv handling fixes:'
191
191
192 - init_virtualenv now uses Pathlib :ghpull:`12548`
192 - init_virtualenv now uses Pathlib :ghpull:`12548`
193 - Fix Improper path comparison of virtualenv directories :ghpull:`13140`
193 - Fix Improper path comparison of virtualenv directories :ghpull:`13140`
194 - Fix virtual environment user warning for lower case pathes :ghpull:`13094`
194 - Fix virtual environment user warning for lower case paths :ghpull:`13094`
195 - Adapt to all sorts of drive names for cygwin :ghpull:`13153`
195 - Adapt to all sorts of drive names for cygwin :ghpull:`13153`
196
196
197 New Features:
197 New Features:
@@ -589,7 +589,7 b' issues and pushing 8.0 forward.'
589 Here are thus some of the changes for IPython 7.20.
589 Here are thus some of the changes for IPython 7.20.
590
590
591 - Support for PyQt5 >= 5.11 :ghpull:`12715`
591 - Support for PyQt5 >= 5.11 :ghpull:`12715`
592 - ``%reset`` remove imports more agressively :ghpull:`12718`
592 - ``%reset`` remove imports more aggressively :ghpull:`12718`
593 - fix the ``%conda`` magic :ghpull:`12739`
593 - fix the ``%conda`` magic :ghpull:`12739`
594 - compatibility with Jedi 0.18, and bump minimum Jedi version. :ghpull:`12793`
594 - compatibility with Jedi 0.18, and bump minimum Jedi version. :ghpull:`12793`
595
595
@@ -868,7 +868,7 b' IPython.'
868 Increase Tab Completion Menu Height
868 Increase Tab Completion Menu Height
869 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
869 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
870
870
871 In terminal IPython it is possible to increase the hight of the tab-completion
871 In terminal IPython it is possible to increase the height of the tab-completion
872 menu. To do so set the value of
872 menu. To do so set the value of
873 :configtrait:`TerminalInteractiveShell.space_for_menu`, this will reserve more
873 :configtrait:`TerminalInteractiveShell.space_for_menu`, this will reserve more
874 space at the bottom of the screen for various kind of menus in IPython including
874 space at the bottom of the screen for various kind of menus in IPython including
@@ -1050,7 +1050,7 b' IPython has decided to follow the informational `NEP 29'
1050 policy as to which version of (C)Python and NumPy are supported.
1050 policy as to which version of (C)Python and NumPy are supported.
1051
1051
1052 We thus dropped support for Python 3.5, and cleaned up a number of code path
1052 We thus dropped support for Python 3.5, and cleaned up a number of code path
1053 that were Python-version dependant. If you are on 3.5 or earlier pip should
1053 that were Python-version dependent. If you are on 3.5 or earlier pip should
1054 automatically give you the latest compatible version of IPython so you do not
1054 automatically give you the latest compatible version of IPython so you do not
1055 need to pin to a given version.
1055 need to pin to a given version.
1056
1056
@@ -1117,7 +1117,7 b' progressively enable these features by default in the next few releases, and'
1117 contribution is welcomed.
1117 contribution is welcomed.
1118
1118
1119 We welcome any feedback on the API. See :ref:`shell_mimerenderer` for more
1119 We welcome any feedback on the API. See :ref:`shell_mimerenderer` for more
1120 informations.
1120 information.
1121
1121
1122 This is originally based on work form in :ghpull:`10610` from @stephanh42
1122 This is originally based on work form in :ghpull:`10610` from @stephanh42
1123 started over two years ago, and still a lot need to be done.
1123 started over two years ago, and still a lot need to be done.
@@ -1371,7 +1371,7 b' IPython 7.3.0'
1371
1371
1372
1372
1373 IPython 7.3.0 bring several bug fixes and small improvements that you will
1373 IPython 7.3.0 bring several bug fixes and small improvements that you will
1374 described bellow.
1374 described below.
1375
1375
1376 The biggest change to this release is the implementation of the ``%conda`` and
1376 The biggest change to this release is the implementation of the ``%conda`` and
1377 ``%pip`` magics, that will attempt to install packages in the **current
1377 ``%pip`` magics, that will attempt to install packages in the **current
@@ -1456,7 +1456,7 b' unwillingly relying on a bug in CPython.'
1456
1456
1457 New Core Dev:
1457 New Core Dev:
1458
1458
1459 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
1459 - We welcome Jonathan Slenders to the committers. Jonathan has done a fantastic
1460 work on prompt_toolkit, and we'd like to recognise his impact by giving him
1460 work on prompt_toolkit, and we'd like to recognise his impact by giving him
1461 commit rights. :ghissue:`11397`
1461 commit rights. :ghissue:`11397`
1462
1462
@@ -46,7 +46,7 b' IPython 8.27'
46 New release of IPython after a month off (not enough changes). We can see a few
46 New release of IPython after a month off (not enough changes). We can see a few
47 important changes for this release.
47 important changes for this release.
48
48
49 - autocall was beeing call getitem, :ghpull:`14486`
49 - autocall was being call getitem, :ghpull:`14486`
50 - Only copy files in startup dir if we just created it. :ghpull:`14497`
50 - Only copy files in startup dir if we just created it. :ghpull:`14497`
51 - Fix some tests on Python 3.13 RC1 :ghpull:`14504`; this one I guess make this
51 - Fix some tests on Python 3.13 RC1 :ghpull:`14504`; this one I guess make this
52 the first IPython release officially compatible with Python 3.13; you will
52 the first IPython release officially compatible with Python 3.13; you will
@@ -680,7 +680,7 b' Python 3.12 changed its tokenizer to have better support for f-strings and allow'
680 This is a great new feature and performance improvement in Python 3.12.
680 This is a great new feature and performance improvement in Python 3.12.
681
681
682 Unfortunately this means the new tokenizer does not support incomplete or invalid Python which will
682 Unfortunately this means the new tokenizer does not support incomplete or invalid Python which will
683 break many features of IPython. Thus compatibility of IPython with Python 3.12 is not guarantied.
683 break many features of IPython. Thus compatibility of IPython with Python 3.12 is not guaranteed.
684 It is unclear to which extent IPython is affected, and whether we can/should try to still support magics, shell
684 It is unclear to which extent IPython is affected, and whether we can/should try to still support magics, shell
685 escape (``! ....``), ..., as well as how to do it if we can.
685 escape (``! ....``), ..., as well as how to do it if we can.
686
686
@@ -933,7 +933,7 b' We introduce more descriptive names for the ``%autoreload`` parameter:'
933 whitelisted by ``%aimport`` statements.
933 whitelisted by ``%aimport`` statements.
934 - ``%autoreload all`` (also ``%autoreload 2``) - turn on autoreload for all modules except those
934 - ``%autoreload all`` (also ``%autoreload 2``) - turn on autoreload for all modules except those
935 blacklisted by ``%aimport`` statements.
935 blacklisted by ``%aimport`` statements.
936 - ``%autoreload complete`` (also ``%autoreload 3``) - all the fatures of ``all`` but also adding new
936 - ``%autoreload complete`` (also ``%autoreload 3``) - all the features of ``all`` but also adding new
937 objects from the imported modules (see
937 objects from the imported modules (see
938 IPython/extensions/tests/test_autoreload.py::test_autoload_newly_added_objects).
938 IPython/extensions/tests/test_autoreload.py::test_autoload_newly_added_objects).
939
939
@@ -1464,7 +1464,7 b' values in order to prevent potential Execution with Unnecessary Privileges.'
1464 Almost all version of IPython looks for configuration and profiles in current
1464 Almost all version of IPython looks for configuration and profiles in current
1465 working directory. Since IPython was developed before pip and environments
1465 working directory. Since IPython was developed before pip and environments
1466 existed it was used a convenient way to load code/packages in a project
1466 existed it was used a convenient way to load code/packages in a project
1467 dependant way.
1467 dependent way.
1468
1468
1469 In 2022, it is not necessary anymore, and can lead to confusing behavior where
1469 In 2022, it is not necessary anymore, and can lead to confusing behavior where
1470 for example cloning a repository and starting IPython or loading a notebook from
1470 for example cloning a repository and starting IPython or loading a notebook from
@@ -2394,4 +2394,4 b' The following attribute/methods have been removed::'
2394
2394
2395 ------
2395 ------
2396
2396
2397 .. [1] If this make you incomfortable feel free to not use IPython 8.23.
2397 .. [1] If this make you uncomfortable feel free to not use IPython 8.23.
@@ -11,7 +11,7 b''
11 "cell_type": "markdown",
11 "cell_type": "markdown",
12 "metadata": {},
12 "metadata": {},
13 "source": [
13 "source": [
14 "A number of third party libraries defined their own custom display logic. This gives their objcts rich output by default when used in the Notebook."
14 "A number of third party libraries defined their own custom display logic. This gives their objects rich output by default when used in the Notebook."
15 ]
15 ]
16 },
16 },
17 {
17 {
@@ -48,7 +48,7 b' def get_auth_token():'
48 return token
48 return token
49
49
50 print(
50 print(
51 "Get a token fom https://github.com/settings/tokens with public repo and gist."
51 "Get a token from https://github.com/settings/tokens with public repo and gist."
52 )
52 )
53 token = getpass.getpass("Token: ", stream=sys.stderr)
53 token = getpass.getpass("Token: ", stream=sys.stderr)
54
54
General Comments 0
You need to be logged in to leave comments. Login now