Skip to content

Commit 675dfe7

Browse files
miss-islingtonStanFromIrelandambv
authored
[3.14] gh-138897: Use _pyrepl.pager for _sitebuiltins._Printer (GH-138898) (GH-143364)
(cherry picked from commit 0417dab) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl>
1 parent 80d8a7e commit 675dfe7

File tree

2 files changed

+8
-18
lines changed

2 files changed

+8
-18
lines changed

Lib/_sitebuiltins.py

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def __init__(self, name, data, files=(), dirs=()):
3636
import os
3737
self.__name = name
3838
self.__data = data
39-
self.__lines = None
39+
self.__lines = []
4040
self.__filenames = [os.path.join(dir, filename)
4141
for dir in dirs
4242
for filename in files]
@@ -65,24 +65,12 @@ def __repr__(self):
6565
return "Type %s() to see the full %s text" % ((self.__name,)*2)
6666

6767
def __call__(self):
68+
from _pyrepl.pager import get_pager
6869
self.__setup()
69-
prompt = 'Hit Return for more, or q (and Return) to quit: '
70-
lineno = 0
71-
while 1:
72-
try:
73-
for i in range(lineno, lineno + self.MAXLINES):
74-
print(self.__lines[i])
75-
except IndexError:
76-
break
77-
else:
78-
lineno += self.MAXLINES
79-
key = None
80-
while key is None:
81-
key = input(prompt)
82-
if key not in ('', 'q'):
83-
key = None
84-
if key == 'q':
85-
break
70+
71+
pager = get_pager()
72+
text = "\n".join(self.__lines)
73+
pager(text, title=self.__name)
8674

8775

8876
class _Helper(object):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Improved :data:`license`/:data:`copyright`/:data:`credits` display in the
2+
:term:`REPL`: now uses a pager.

0 commit comments

Comments
 (0)