a Re) @ s d dl Z d dlZd dlZddlmZmZmZmZmZ ddl m Z mZmZ ddl mZmZ dZ edurje Z G dd deZG dd d eZdS ) N )AnsiForeAnsiBack AnsiStyleStyleBEL)WinTermWinColorWinStyle)windllwinapi_testc @ sL e Zd ZdZdd Zdd Zdd Zdd Zd d Zdd Z e dd ZdS ) StreamWrapperz 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. c C s || _ || _d S N)_StreamWrapper__wrapped_StreamWrapper__convertor)selfwrapped converter r /builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py__init__ s zStreamWrapper.__init__c C s t | j|S r )getattrr )r namer r r __getattr__ s zStreamWrapper.__getattr__c O s | j j|i |S r )r __enter__r argskwargsr r r r s zStreamWrapper.__enter__c O s | j j|i |S r )r __exit__r r r r r % s zStreamWrapper.__exit__c C s | j | d S r )r writer textr r r r ( s zStreamWrapper.writec C sZ | j }dtjv r0|d ur0|tju s,|tju r0dS z |j}W n tyN Y dS 0 | S d S )NPYCHARM_HOSTEDTF)r osenvironsys __stdout__ __stderr__isattyAttributeError)r stream stream_isattyr r r r( + s zStreamWrapper.isattyc C s( | j }z|jW S ty" Y dS 0 d S NT)r closedr) )r r* r r r r- 7 s zStreamWrapper.closedN)__name__ __module____qualname____doc__r r r r r r( propertyr- r r r r r s r c @ s~ e Zd ZdZedZedZdddZdd Z d d Z dd Zdd Zdd Z dd Zdd Zdd Zdd Zdd ZdS )AnsiToWin32z 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. z?\[((?:\d|;)*)([a-zA-Z])?z?\]([^]*)()?NFc C s || _ || _t|| | _tjdk}|o*t }|d u rN|pL| jj oL| j }|| _ |d u rt|or| jj or| j }|| _ | | _| j t ju | _d S )Nnt)r autoresetr r* r# r r r- r( stripconvertget_win32_callswin32_callsr% stderr on_stderr)r r r7 r6 r5 on_windowsconversion_supportedr r r r I s zAnsiToWin32.__init__c C s | j p| jp| jS )aj 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() )r7 r6 r5 r r r r should_wrapj s zAnsiToWin32.should_wrapc N C s@ | j r:tr:tjtjftjtjtjftjtjtj ftj tjtj ft jtjt jft jtjt jft jtjt jft jtjt jft jtjt jft jtjt jft jtjt jft jtjt jft jtjft jtjt jdft jtjt jdft jtjt jdft jtjt jdft jtjt jdft jtjt jdft jtjt jdft jtjt jdftjtj t jftjtj t jftjtj t jftjtj t jftjtj t jftjtj t jftjtj t jftjtj t jftjtj ftjtj t jdftjtj t jdftjtj t jdftjtj t jdftjtj t jdftjtj t jdftjtj t jdftjtj t jdfi&S