New safer text input function

* Avoids EOFError exceptions and just repeats the prompt
This commit is contained in:
2Shirt 2019-06-29 19:54:02 -06:00
parent b368b27faa
commit bca9c19053
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
3 changed files with 66 additions and 0 deletions

11
scripts/wk/__init__.py Normal file
View file

@ -0,0 +1,11 @@
'''WizardKit: wk module init'''
import wk.cfg
import wk.exe
import wk.hw
import wk.io
import wk.kit
import wk.net
import wk.os
import wk.std
import wk.sw

View file

@ -0,0 +1,6 @@
'''WizardKit: I/O Functions'''
# vim: sts=2 sw=2 ts=2
if __name__ == '__main__':
print("This file is not meant to be called directly.")

View file

@ -0,0 +1,49 @@
'''WizardKit: Standard Functions'''
# vim: sts=2 sw=2 ts=2
import os
import sys
try:
from termios import tcflush, TCIOFLUSH
except ImportError:
if os.name == 'posix':
raise
# STATIC VARIABLES
COLORS = {
'CLEAR': '\033[0m',
'RED': '\033[31m',
'ORANGE': '\033[31;1m',
'GREEN': '\033[32m',
'YELLOW': '\033[33m',
'BLUE': '\033[34m',
'PURPLE': '\033[35m',
'CYAN': '\033[36m',
}
# Functions
def input_text(prompt='Enter text'):
"""Get text from user, returns string."""
prompt = str(prompt)
response = None
if prompt[-1:] != ' ':
prompt += ' '
while response is None:
if os.name == 'posix':
# Flush input to (hopefully) avoid EOFError
tcflush(sys.stdin, TCIOFLUSH)
try:
response = input(prompt)
except EOFError:
# Ignore and try again
print('')
return response
if __name__ == '__main__':
print("This file is not meant to be called directly.")