o ai) @ s d dl Z d dlZd dlZddlmZmZmZmZmZ ddl m Z mZmZ ddl mZmZ dZ edur5e 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-python310-pip-21.3.1-5.el8.x86_64/opt/alt/python310/lib/python3.10/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 | j j|i |S r )r __enter__r argskwargsr r r r s zStreamWrapper.__enter__c O r 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 sT | j }dtjv r|d ur|tju s|tju rdS z|j}W | S ty) Y dS w )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 w 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}|ot }|d u r'|p&| jj o&| j }|| _ |d u r:|o9| jj o9| j }|| _ | | _| j t ju | _d S )Nnt)r autoresetr r+ r$ r r r. r) stripconvertget_win32_callswin32_callsr&