ž 7’Rec@sΐddlZddlZddlmZmZmZmZddlmZm Z m Z ddl m Z dZe dk r„eƒZndd„ZGdd „d eƒZGd d „d eƒZdS( iNi(uAnsiForeuAnsiBacku AnsiStyleuStyle(uWinTermuWinColoruWinStyle(uwindllcCst|dƒo|jƒS(Nuisatty(uhasattruisatty(ustream((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuis_a_ttysuis_a_ttycBs>|EeZdZdZdd„Zdd„Zdd„ZdS( u StreamWrapperu΄ Wraps a stream (such as stdout), acting as a transparent proxy for all attribute access apart from method 'write()', which is delegated to our Converter instance. cCs||_||_dS(N(u_StreamWrapper__wrappedu_StreamWrapper__convertor(uselfuwrappedu converter((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu__init__s uStreamWrapper.__init__cCst|j|ƒS(N(ugetattru_StreamWrapper__wrapped(uselfuname((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu __getattr__suStreamWrapper.__getattr__cCs|jj|ƒdS(N(u_StreamWrapper__convertoruwrite(uselfutext((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuwrite"suStreamWrapper.writeN(u__name__u __module__u __qualname__u__doc__u__init__u __getattr__uwrite(u __locals__((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu StreamWrappers  u StreamWrappercBsͺ|EeZdZdZejdƒZddddd„Z dd„Z dd„Z d d „Z d d „Z d d„Zdd„Zdd„Zdd„Zdd„ZdS(u AnsiToWin32uΎ Implements a 'write()' method which, on Windows, will strip ANSI character sequences from the text, and if outputting to a tty, will convert them into win32 function calls. u\[((?:\d|;)*)([a-zA-Z])cCs¦||_||_t||ƒ|_tjjdƒ}|dkrK|}n||_|dkru|oot |ƒ}n||_ |j ƒ|_ |jtj k|_dS(Nuwin(uwrappedu autoresetu StreamWrapperustreamusysuplatformu startswithuNoneustripuis_a_ttyuconvertuget_win32_callsu win32_callsustderru on_stderr(uselfuwrappeduconvertustripu autoresetu on_windows((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu__init__.s       uAnsiToWin32.__init__cCs|jp|jp|jS(uj True if this class is actually needed. If false, then the output stream will not be affected, nor will win32 calls be issued, so wrapping stdout is not actually required. This will generally be False on non-Windows platforms, unless optional functionality like autoreset has been requested using kwargs to init() (uconvertustripu autoreset(uself((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu should_wrapKsuAnsiToWin32.should_wrapcCsι|jrεtrεitjftj6tjtjftj6tjtjftj 6tjtjftj6tj t j ft j 6tj t jft j6tj t jft j6tj t jft j6tj t jft j6tj t jft j6tj t jft j6tj t jft j6tj ft j6tjt j ftj 6tjt jftj6tjt jftj6tjt jftj6tjt jftj6tjt jftj6tjt jftj6tjt jftj6tjftj6SdS(N(uconvertuwintermu reset_allu AnsiStyleu RESET_ALLustyleuWinStyleuBRIGHTuNORMALuDIMuforeuWinColoruBLACKuAnsiForeuREDuGREENuYELLOWuBLUEuMAGENTAuCYANuGREYuWHITEuRESETubackuAnsiBack(uself((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuget_win32_callsVs0uAnsiToWin32.get_win32_callscCsY|js|jr"|j|ƒn|jj|ƒ|jjƒ|jrU|jƒndS(N(ustripuconvertuwrite_and_convertuwrappeduwriteuflushu autoresetu reset_all(uselfutext((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuwriters   uAnsiToWin32.writecCsR|jr|jddƒn2|jj rNt|jƒrN|jjtjƒndS(Numi(i(uconvertu call_win32uwrappeducloseduis_a_ttyuwriteuStyleu RESET_ALL(uself((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu reset_all|s uAnsiToWin32.reset_allcCs~d}xX|jj|ƒD]D}|jƒ\}}|j|||ƒ|j|jƒŒ|}qW|j||t|ƒƒdS(uͺ Write the given text to our wrapped stream, stripping any ANSI sequences from the text, and optionally converting them into win32 calls. iN(uANSI_REufinditeruspanuwrite_plain_textu convert_ansiugroupsulen(uselfutextucursorumatchustartuend((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuwrite_and_convertƒs uAnsiToWin32.write_and_convertcCs:||kr6|jj|||…ƒ|jjƒndS(N(uwrappeduwriteuflush(uselfutextustartuend((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuwrite_plain_text’s uAnsiToWin32.write_plain_textcCs/|jr+|j|ƒ}|j||ƒndS(N(uconvertuextract_paramsu call_win32(uselfu paramstringucommanduparams((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu convert_ansi˜s uAnsiToWin32.convert_ansicCsdd„}t||ƒƒS(Ncss8x1|jdƒD] }|dkrt|ƒVqqWdS(Nu;u(usplituint(u paramstringup((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyusplitŸs u)AnsiToWin32.extract_params..split(utuple(uselfu paramstringusplit((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyuextract_paramsžs uAnsiToWin32.extract_paramsc Cs@|gkrdg}n|dkrx|D]^}||jkr+|j|}|d}|dd…}td|jƒ}|||Žq+q+Wn¬|d kr»tj}||d|jƒn|dkrζtj}||d|jƒnV|dkr<|fks |dkrd}n |d}tj}||d|jƒndS( Niumiu on_stderruHufuJuA(uHuf(u win32_callsudictu on_stderruwintermuset_cursor_positionu erase_datauNoneu cursor_up( uselfucommanduparamsuparamu func_argsufuncuargsukwargsunum_rows((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu call_win32¦s,              uAnsiToWin32.call_win32NF(u__name__u __module__u __qualname__u__doc__ureucompileuANSI_REuNoneuFalseu__init__u should_wrapuget_win32_callsuwriteu reset_alluwrite_and_convertuwrite_plain_textu convert_ansiuextract_paramsu call_win32(u __locals__((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyu AnsiToWin32&s      u AnsiToWin32(ureusysuansiuAnsiForeuAnsiBacku AnsiStyleuStyleuwintermuWinTermuWinColoruWinStyleuwin32uwindlluNoneuis_a_ttyuobjectu StreamWrapperu AnsiToWin32(((u9/tmp/pip-zej_zi-build/pip/_vendor/colorama/ansitowin32.pyus  "