You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/prompt_toolkit/output/defaults.py

74 lines
1.9 KiB

from __future__ import unicode_literals
import sys
from prompt_toolkit.application.current import get_app
from prompt_toolkit.eventloop.context import TaskLocal, TaskLocalNotSetError
from prompt_toolkit.utils import is_windows, is_conemu_ansi, get_term_environment_variable
from .base import Output
__all__ = [
'create_output',
'get_default_output',
'set_default_output',
]
def create_output(stdout=None):
"""
Return an :class:`~prompt_toolkit.output.Output` instance for the command
line.
:param stdout: The stdout object
"""
stdout = stdout or sys.__stdout__
if is_windows():
from .conemu import ConEmuOutput
from .win32 import Win32Output
from .windows10 import is_win_vt100_enabled, Windows10_Output
if is_win_vt100_enabled():
return Windows10_Output(stdout)
if is_conemu_ansi():
return ConEmuOutput(stdout)
else:
return Win32Output(stdout)
else:
from .vt100 import Vt100_Output
return Vt100_Output.from_pty(
stdout, term=get_term_environment_variable())
_default_output = TaskLocal()
def get_default_output():
"""
Get the output class to be used by default.
Called when creating a new Application(), when no `Output` has been passed.
"""
try:
value = _default_output.get()
except TaskLocalNotSetError:
# If an application is already running, take the output from there.
# (This is important for the "ENTER for continue" prompts after
# executing system commands and displaying readline-style completions.)
app = get_app(return_none=True)
if app:
return app.output
return create_output()
else:
return value
def set_default_output(output):
"""
Set the default `Output` class.
(Used for instance, for the telnet submodule.)
"""
assert isinstance(output, Output)
_default_output.set(output)