a
    lcZ                     @   s   d dl Z e jdksJ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ dgZdZdZG dd dZee edddZdS )    Nwin32)byrefwindll)DWORDHANDLE)AnyOptionalTextIOSize)STD_OUTPUT_HANDLE   )Output)
ColorDepth)Vt100_Output)Win32OutputWindows10_Output   c                   @   sX   e Zd ZdZdeee ddddZddddZe	e
dd	d
ZeedddZdS )r   zV
    Windows 10 output abstraction. This enables and uses vt100 escape sequences.
    N)stdoutdefault_color_depthreturnc                 C   s8   t ||d| _t|dd |d| _ttjt| _	d S )N)r   c                   S   s
   t ddS )Nr   r
    r   r   [/var/www/html/django/DPS/env/lib/python3.9/site-packages/prompt_toolkit/output/windows10.py<lambda>$       z+Windows10_Output.__init__.<locals>.<lambda>)
r   win32_outputr   vt100_outputr   r   kernel32GetStdHandler   	_hconsole)selfr   r   r   r   r   __init__   s
    
zWindows10_Output.__init__r   c              
   C   sj   t d}tj| jt| tj| jt ttB  z| j	
  W tj| j| ntj| j| 0 dS )z3
        Write to output stream and flush.
        r   N)r   r   r   GetConsoleModer   r   SetConsoleModeENABLE_PROCESSED_INPUT"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr   flush)r    original_moder   r   r   r'   (   s    
zWindows10_Output.flushc                 C   s   dS )NFr   )r    r   r   r   responds_to_cpr=   s    z Windows10_Output.responds_to_cpr)namer   c                 C   s$   |dv rt | j|S t | j|S d S )N)	get_sizeZget_rows_below_cursor_positionZenable_mouse_supportZdisable_mouse_supportZscroll_buffer_to_promptZget_win32_screen_buffer_infoZenable_bracketed_pasteZdisable_bracketed_pasteZget_default_color_depth)getattrr   r   )r    r*   r   r   r   __getattr__A   s    zWindows10_Output.__getattr__)N)__name__
__module____qualname____doc__r	   r   r   r!   r'   propertyboolr)   strr   r-   r   r   r   r   r      s    	r"   c               
   C   s|   t jdkrdS ttjt} td}tj| t	| z.tj
| tttB }|dkW tj
| | S tj
| | 0 dS )z_
    Returns True when we're running Windows and VT100 escape sequences are
    supported.
    r   Fr   r   N)sysplatformr   r   r   r   r   r   r#   r   r$   r%   r&   )Zhconsoler(   resultr   r   r   is_win_vt100_enabledU   s    
r8   )r5   r6   ctypesr   r   Zctypes.wintypesr   r   typingr   r   r	   Zprompt_toolkit.data_structuresr   Zprompt_toolkit.win32_typesr   baser   Zcolor_depthr   Zvt100r   r   r   __all__r%   r&   r   registerr3   r8   r   r   r   r   <module>   s"   8
