Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 96afe65

Browse files
committed
Inspect continuation prompt signature and pass only viable arguments.
Closes #14273
1 parent 46a3714 commit 96afe65

2 files changed

Lines changed: 21 additions & 4 deletions

File tree

IPython/terminal/interactiveshell.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import asyncio
44
import os
55
import sys
6+
import inspect
67
from warnings import warn
78
from typing import Union as UnionType, Optional
89

@@ -66,8 +67,8 @@
6667
PTK3 = ptk_version.startswith('3.')
6768

6869

69-
class _NoStyle(Style): pass
70-
70+
class _NoStyle(Style):
71+
pass
7172

7273

7374
_style_overrides_light_bg = {
@@ -84,6 +85,20 @@ class _NoStyle(Style): pass
8485
Token.OutPromptNum: '#ansired bold',
8586
}
8687

88+
89+
def _backward_compat_continuation_prompt_tokens(method, width: int, *, lineno: int):
90+
"""
91+
Sagemath use custom prompt and we broke them in 8.19.
92+
"""
93+
sig = inspect.signature(method)
94+
if "lineno" in inspect.signature(method).parameters or any(
95+
[p.kind == p.VAR_KEYWORD for p in sig.parameters.values()]
96+
):
97+
return method(width, lineno=lineno)
98+
else:
99+
return method(width)
100+
101+
87102
def get_default_editor():
88103
try:
89104
return os.environ['EDITOR']
@@ -764,7 +779,9 @@ def get_message():
764779
"message": get_message,
765780
"prompt_continuation": (
766781
lambda width, lineno, is_soft_wrap: PygmentsTokens(
767-
self.prompts.continuation_prompt_tokens(width, lineno=lineno)
782+
_backward_compat_continuation_prompt_tokens(
783+
self.prompts.continuation_prompt_tokens, width, lineno=lineno
784+
)
768785
)
769786
),
770787
"multiline": True,

docs/source/config/details.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ which defines the defaults. The required interface is like this:
3434
:class:`~.TerminalInteractiveShell` instance.
3535

3636
.. method:: in_prompt_tokens(cli=None)
37-
continuation_prompt_tokens(self, cli=None, width=None)
37+
continuation_prompt_tokens(self, width=None)
3838
rewrite_prompt_tokens()
3939
out_prompt_tokens()
4040

0 commit comments

Comments
 (0)