Created
August 5, 2017 07:34
-
-
Save jikuja/a269f27303891cb4062733c3a23a2a1d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
An example that demonstrates how `patch_stdout` works. | |
This makes sure that output from other threads doesn't disturb the rendering of | |
the prompt, but instead is printed nicely above the prompt. | |
""" | |
from __future__ import unicode_literals | |
from prompt_toolkit import prompt | |
import threading | |
import time | |
def main(): | |
# Print a counter every second in another thread. | |
running = True | |
def thread(): | |
i = 0 | |
while running: | |
i += 1 | |
print('i=%i' % i) | |
time.sleep(1) | |
t = threading.Thread(target=thread) | |
t.daemon = True | |
t.start() | |
# Now read the input. The print statements of the other thread | |
# should not disturb anything. | |
while True: | |
result = prompt('Say something: ', patch_stdout=True) | |
print('You said: %s' % result) | |
# Stop thread. | |
running = False | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment