import functools
from threading import Lock
-from .utils import supports_terminal_sequences, write_string
+from .utils import supports_terminal_sequences, write_string
CONTROL_SEQUENCES = {
'DOWN': '\n',
'''
@param f String representation of formatting to apply in the form:
[style] [light] font_color [on [light] bg_color]
- Eg: "red", "bold green on light blue"
+ E.g. "red", "bold green on light blue"
'''
f = f.upper()
tokens = f.strip().split()
raise SyntaxError(f'Invalid format {" ".join(tokens)!r} in {f!r}')
if fg_color or bg_color:
+ text = text.replace(CONTROL_SEQUENCES['RESET'], f'{fg_color}{bg_color}')
return f'{fg_color}{bg_color}{text}{CONTROL_SEQUENCES["RESET"]}'
else:
return text
*text, CONTROL_SEQUENCES['ERASE_LINE'],
f'{CONTROL_SEQUENCES["UP"]}{CONTROL_SEQUENCES["ERASE_LINE"]}' * self.maximum)
else:
- self.write(*text, ' ' * self._lastlength)
+ self.write('\r', ' ' * self._lastlength, '\r')