Skip to content

Commit 7ebdd92

Browse files
import completion discover happens during idle
1 parent 5fa4130 commit 7ebdd92

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

bpython/curtsies.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import sys
44
import code
55
from optparse import Option
6+
from itertools import izip
67

78
import curtsies
89
import curtsies.window
@@ -61,12 +62,12 @@ def mainloop(config, locals_, banner, interp=None, paste=None, interactive=True)
6162
refresh_requests = []
6263
def request_refresh():
6364
refresh_requests.append(curtsies.events.RefreshRequestEvent())
64-
def event_or_refresh():
65+
def event_or_refresh(timeout=None):
6566
while True:
6667
if refresh_requests:
6768
yield refresh_requests.pop()
6869
else:
69-
yield input_generator.next()
70+
yield input_generator.send(timeout)
7071

7172
with Repl(config=config,
7273
locals_=locals_,
@@ -80,6 +81,7 @@ def event_or_refresh():
8081
sys.repl = repl
8182

8283
def process_event(e):
84+
"""If None is passed in, just paint the screen"""
8385
try:
8486
if e is not None:
8587
repl.process_event(e)
@@ -96,8 +98,10 @@ def process_event(e):
9698
if paste:
9799
process_event(paste)
98100

99-
[None for _ in find_iterator] #TODO get idle events working (instead of this)
100-
refresh_requests.append(None) #priming the pump (do a display before waiting for first event)
101+
process_event(None) #priming the pump (do a display before waiting for first event)
102+
for _, e in izip(find_iterator, event_or_refresh(0)):
103+
if e is not None:
104+
process_event(e)
101105
for e in event_or_refresh():
102106
process_event(e)
103107

0 commit comments

Comments
 (0)