[Python-checkins] bpo-35610: IDLE - Replace .context_use_ps1 with .prompt_last_line (GH-11307)

Terry Jan Reedy webhook-mailer at python.org
Sun Jun 2 14:56:51 EDT 2019


https://github.com/python/cpython/commit/6bdc4dee01788599808c7858e2fe9fdd72cf6792
commit: 6bdc4dee01788599808c7858e2fe9fdd72cf6792
branch: master
author: Cheryl Sabella <cheryl.sabella at gmail.com>
committer: Terry Jan Reedy <tjreedy at udel.edu>
date: 2019-06-02T14:56:47-04:00
summary:

bpo-35610: IDLE - Replace .context_use_ps1 with .prompt_last_line (GH-11307)

Changes in bpo- 31858 made the less informative 'context_use_ps1' redundant.

files:
A Misc/NEWS.d/next/IDLE/2019-06-02-14-10-52.bpo-35610.0w_v6Y.rst
M Lib/idlelib/NEWS.txt
M Lib/idlelib/editor.py
M Lib/idlelib/hyperparser.py
M Lib/idlelib/idle_test/test_autocomplete.py
M Lib/idlelib/idle_test/test_hyperparser.py
M Lib/idlelib/idle_test/test_parenmatch.py
M Lib/idlelib/pyshell.py

diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index b260d4e5ef1b..982af7767251 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,9 @@ Released on 2019-10-20?
 ======================================
 
 
+bpo-35610: Replace now redundant editor.context_use_ps1 with
+.prompt_last_line.  This finishes change started in bpo-31858.
+
 bpo-32411: Stop sorting dict created with desired line order.
 
 bpo-37038: Make idlelib.run runnable; add test clause.
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 83260329640e..89b7239a96ea 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -228,10 +228,6 @@ def __init__(self, flist=None, filename=None, key=None, root=None):
         self.indentwidth = self.tabwidth
         self.set_notabs_indentwidth()
 
-        # If context_use_ps1 is true, parsing searches back for a ps1 line;
-        # else searches for a popular (if, def, ...) Python stmt.
-        self.context_use_ps1 = False
-
         # When searching backwards for a reliable place to begin parsing,
         # first start num_context_lines[0] lines back, then
         # num_context_lines[1] lines back if that didn't work, and so on.
@@ -1337,14 +1333,13 @@ def newline_and_indent_event(self, event):
             # open/close first need to find the last stmt
             lno = index2line(text.index('insert'))
             y = pyparse.Parser(self.indentwidth, self.tabwidth)
-            if not self.context_use_ps1:
+            if not self.prompt_last_line:
                 for context in self.num_context_lines:
                     startat = max(lno - context, 1)
                     startatindex = repr(startat) + ".0"
                     rawtext = text.get(startatindex, "insert")
                     y.set_code(rawtext)
                     bod = y.find_good_parse_start(
-                              self.context_use_ps1,
                               self._build_char_in_string_func(startatindex))
                     if bod is not None or startat == 1:
                         break
diff --git a/Lib/idlelib/hyperparser.py b/Lib/idlelib/hyperparser.py
index 7e7e0ae80247..77baca782b3f 100644
--- a/Lib/idlelib/hyperparser.py
+++ b/Lib/idlelib/hyperparser.py
@@ -35,7 +35,7 @@ def index2line(index):
             return int(float(index))
         lno = index2line(text.index(index))
 
-        if not editwin.context_use_ps1:
+        if not editwin.prompt_last_line:
             for context in editwin.num_context_lines:
                 startat = max(lno - context, 1)
                 startatindex = repr(startat) + ".0"
diff --git a/Lib/idlelib/idle_test/test_autocomplete.py b/Lib/idlelib/idle_test/test_autocomplete.py
index 398cb359e093..6181b29ec250 100644
--- a/Lib/idlelib/idle_test/test_autocomplete.py
+++ b/Lib/idlelib/idle_test/test_autocomplete.py
@@ -19,7 +19,7 @@ def __init__(self, root, text):
         self.text = text
         self.indentwidth = 8
         self.tabwidth = 8
-        self.context_use_ps1 = True
+        self.prompt_last_line = '>>>'  # Currently not used by autocomplete.
 
 
 class AutoCompleteTest(unittest.TestCase):
diff --git a/Lib/idlelib/idle_test/test_hyperparser.py b/Lib/idlelib/idle_test/test_hyperparser.py
index 8dbfc63779d3..343843c4166e 100644
--- a/Lib/idlelib/idle_test/test_hyperparser.py
+++ b/Lib/idlelib/idle_test/test_hyperparser.py
@@ -11,7 +11,7 @@ def __init__(self, text):
         self.text = text
         self.indentwidth = 8
         self.tabwidth = 8
-        self.context_use_ps1 = True
+        self.prompt_last_line = '>>>'
         self.num_context_lines = 50, 500, 1000
 
     _build_char_in_string_func = EditorWindow._build_char_in_string_func
@@ -53,7 +53,7 @@ def setUp(self):
 
     def tearDown(self):
         self.text.delete('1.0', 'end')
-        self.editwin.context_use_ps1 = True
+        self.editwin.prompt_last_line = '>>>'
 
     def get_parser(self, index):
         """
@@ -71,7 +71,7 @@ def test_init(self):
         self.assertIn('precedes', str(ve.exception))
 
         # test without ps1
-        self.editwin.context_use_ps1 = False
+        self.editwin.prompt_last_line = ''
 
         # number of lines lesser than 50
         p = self.get_parser('end')
diff --git a/Lib/idlelib/idle_test/test_parenmatch.py b/Lib/idlelib/idle_test/test_parenmatch.py
index f58819abf112..4a41d8433d54 100644
--- a/Lib/idlelib/idle_test/test_parenmatch.py
+++ b/Lib/idlelib/idle_test/test_parenmatch.py
@@ -17,7 +17,7 @@ def __init__(self, text):
         self.text = text
         self.indentwidth = 8
         self.tabwidth = 8
-        self.context_use_ps1 = True
+        self.prompt_last_line = '>>>' # Currently not used by parenmatch.
 
 
 class ParenMatchTest(unittest.TestCase):
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 2de42658b01c..6e0707d68bb6 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -881,7 +881,7 @@ def __init__(self, flist=None):
         self.usetabs = True
         # indentwidth must be 8 when using tabs.  See note in EditorWindow:
         self.indentwidth = 8
-        self.context_use_ps1 = True
+
         self.sys_ps1 = sys.ps1 if hasattr(sys, 'ps1') else '>>> '
         self.prompt_last_line = self.sys_ps1.split('\n')[-1]
         self.prompt = self.sys_ps1  # Changes when debug active
diff --git a/Misc/NEWS.d/next/IDLE/2019-06-02-14-10-52.bpo-35610.0w_v6Y.rst b/Misc/NEWS.d/next/IDLE/2019-06-02-14-10-52.bpo-35610.0w_v6Y.rst
new file mode 100644
index 000000000000..0042ab70497a
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2019-06-02-14-10-52.bpo-35610.0w_v6Y.rst
@@ -0,0 +1,2 @@
+Replace now redundant .context_use_ps1 with .prompt_last_line. This finishes
+change started in bpo-31858.



More information about the Python-checkins mailing list