From 0c5d00ea919d258742d1d83cc00a93422be5fd0b 2019-12-27 17:32:31 From: Dominik MiedziƄski Date: 2019-12-27 17:32:31 Subject: [PATCH] Fix handling of repeated NEWLINE tokens --- diff --git a/IPython/core/inputtransformer2.py b/IPython/core/inputtransformer2.py index 04f4232..4562fe0 100644 --- a/IPython/core/inputtransformer2.py +++ b/IPython/core/inputtransformer2.py @@ -674,8 +674,8 @@ class TransformerManager: while tokens_by_line[-1] and tokens_by_line[-1][-1].type in newline_types: tokens_by_line[-1].pop() - if len(tokens_by_line) == 1 and not tokens_by_line[-1]: - return 'incomplete', 0 + if not tokens_by_line[-1]: + return 'incomplete', find_last_indent(lines) if tokens_by_line[-1][-1].string == ':': # The last line starts a block (e.g. 'if foo:') diff --git a/IPython/core/tests/test_inputtransformer2.py b/IPython/core/tests/test_inputtransformer2.py index 8d6efc1..cde9eca 100644 --- a/IPython/core/tests/test_inputtransformer2.py +++ b/IPython/core/tests/test_inputtransformer2.py @@ -265,6 +265,8 @@ def test_check_complete(): for k in short: cc(c+k) + nt.assert_equal(cc("def f():\n x=0\n \\\n "), ('incomplete', 2)) + def test_check_complete_II(): """ Test that multiple line strings are properly handled.