a
    xd'                     @   s  d dl Z d dlZd dlZd dlZd dlZd dl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 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 dlmZ d dlmZ d dlmZ d dlmZ d dlZddlmZ ddlmZ ddlmZ zd dl mZ ejZejZW n eyP   dZY n0 ee
Z ej!Z!e!j"Z"e!j#Z#e!j$Z$e!j%Z%e!j&Z&eedej!fZ'eeeeee	dej(fZ)ee je jdej!fZ*e"dZ+e"dZ,e"dZ-d Z.dZ/d Z0dZ1dZ2d Z3dZ4dZ5d Z6d!Z7G d"d# d#e j8Z9edu r(dZ:n
dBd%d&Z:G d'd( d(ej;Z<G d)d* d*e<Z=G d+d, d,e<Z>G d-d. d.e?Z@G d/d0 d0e?ZAeB ZCd1d2 ZDd3d4 ZEd5d6 ZFd7d8 ZGerd9d: ZHeH ZId;d< ZJeEeFeGd=ZKd>d? ZLd@dA ZMdS )C    N)byref)c_char)c_char_p)c_int)	c_ssize_t)c_ulong)c_void_p)POINTER)	py_object)windll)WinError)WINFUNCTYPE)DWORD)HANDLE)LPCWSTR)LPWSTR   )_NonClosingTextIOWrapper)PY2)	text_type)	pythonapiGetCommandLineWCommandLineToArgvW	LocalFreeiii   i        i  c                   @   sj   e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefgZ	e
rfe	dded f dS )	Py_bufferbufobjlenitemsizereadonlyndimformatshapestrides
suboffsetsZinternalZ
smalltabler   N)__name__
__module____qualname__r   r
   r   r   r   	c_ssize_p_fields_r   insert r/   r/   I/var/www/html/Ranjet/env/lib/python3.9/site-packages/click/_winconsole.pyr   U   s   r   Fc              	   C   s^   t  }|rtnt}tt| t|| z$t|j }||j	W t
t| S t
t| 0 d S N)r   PyBUF_WRITABLEPyBUF_SIMPLEPyObject_GetBufferr
   r   r   r    from_addressr   PyBuffer_Release)r   writabler   flagsZbuffer_typer/   r/   r0   
get_buffern   s    
r9   c                   @   s   e Zd Zdd Zdd ZdS )_WindowsConsoleRawIOBasec                 C   s
   || _ d S r1   )handle)selfr;   r/   r/   r0   __init__z   s    z!_WindowsConsoleRawIOBase.__init__c                 C   s   t j|  dS NT)io	RawIOBaseisattyr<   r/   r/   r0   rA   }   s    z_WindowsConsoleRawIOBase.isattyN)r)   r*   r+   r=   rA   r/   r/   r/   r0   r:   y   s   r:   c                   @   s   e Zd Zdd Zdd ZdS )_WindowsConsoleReaderc                 C   s   dS r>   r/   rB   r/   r/   r0   readable   s    z_WindowsConsoleReader.readablec                 C   s   t |}|sdS |d r tdt|dd}|d }t }tt| j||t|d }t t	krht
d |s|tdt |d tkrdS d|j S )Nr   r   z>cannot read odd number of bytes from UTF-16-LE encoded consoleT)r7   g?zWindows error: {})r    
ValueErrorr9   r   ReadConsoleWr   r;   r   GetLastErrorERROR_OPERATION_ABORTEDtimesleepOSErrorr$   EOFvalue)r<   bZbytes_to_be_readbufferZcode_units_to_be_readZcode_units_readrvr/   r/   r0   readinto   s0    

z_WindowsConsoleReader.readintoN)r)   r*   r+   rD   rQ   r/   r/   r/   r0   rC      s   rC   c                   @   s(   e Zd Zdd Zedd Zdd ZdS )_WindowsConsoleWriterc                 C   s   dS r>   r/   rB   r/   r/   r0   r7      s    z_WindowsConsoleWriter.writablec                 C   s"   | t krdS | tkrdS d| S )NERROR_SUCCESSERROR_NOT_ENOUGH_MEMORYzWindows error {})rS   rT   r$   )errnor/   r/   r0   _get_error_message   s
    z(_WindowsConsoleWriter._get_error_messagec                 C   sl   t |}t|}t|td }t }tt| j||t|d  d|j	 }|dkrh|dkrht
| t |S )Nr   r   )r    r9   minMAX_BYTES_WRITTENr   WriteConsoleWr   r;   r   rM   rK   rV   rG   )r<   rN   Zbytes_to_be_writtenr   Zcode_units_to_be_writtenZcode_units_writtenZbytes_writtenr/   r/   r0   write   s    
z_WindowsConsoleWriter.writeN)r)   r*   r+   r7   staticmethodrV   rZ   r/   r/   r/   r0   rR      s   
rR   c                   @   sH   e Zd Zdd Zedd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )ConsoleStreamc                 C   s   || _ || _d S r1   )_text_streamrO   )r<   text_streamZbyte_streamr/   r/   r0   r=      s    zConsoleStream.__init__c                 C   s   | j jS r1   )rO   namerB   r/   r/   r0   r_      s    zConsoleStream.namec                 C   sB   t |tr| j|S z|   W n ty4   Y n0 | j|S r1   )
isinstancer   r]   rZ   flush	ExceptionrO   )r<   xr/   r/   r0   rZ      s    
zConsoleStream.writec                 C   s   |D ]}|  | qd S r1   )rZ   )r<   linesliner/   r/   r0   
writelines   s    zConsoleStream.writelinesc                 C   s   t | j|S r1   )getattrr]   r<   r_   r/   r/   r0   __getattr__   s    zConsoleStream.__getattr__c                 C   s
   | j  S r1   )rO   rA   rB   r/   r/   r0   rA      s    zConsoleStream.isattyc                 C   s   d | j| jS )Nz'<ConsoleStream name={!r} encoding={!r}>)r$   r_   encodingrB   r/   r/   r0   __repr__   s    zConsoleStream.__repr__N)r)   r*   r+   r=   propertyr_   rZ   rf   ri   rA   rk   r/   r/   r/   r0   r\      s   
	r\   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	WindowsChunkedWriterz
    Wraps a stream (such as stdout), acting as a transparent proxy for all
    attribute access apart from method 'write()' which we wrap to write in
    limited chunks due to a Windows limitation on binary console streams.
    c                 C   s
   || _ d S r1   )_WindowsChunkedWriter__wrapped)r<   wrappedr/   r/   r0   r=      s    zWindowsChunkedWriter.__init__c                 C   s   t | j|S r1   )rg   rn   rh   r/   r/   r0   ri      s    z WindowsChunkedWriter.__getattr__c                 C   sH   t |}d}||k rDt|| t}| j||||   ||7 }qd S )Nr   )r    rW   rX   rn   rZ   )r<   textZtotal_to_writeZwrittenZto_writer/   r/   r0   rZ      s    zWindowsChunkedWriter.writeN)r)   r*   r+   __doc__r=   ri   rZ   r/   r/   r/   r0   rm      s   rm   c                 C   sD   t r@t d d dkr@| tvr@tt| ttt|  t|  d S )Nr   )   r   )r   sysgetwindowsversion_wrapped_std_streamssetattrrm   rg   add)r_   r/   r/   r0   _wrap_std_stream  s    rx   c                 C   s$   t tttdddd}t|| S N	utf-16-lestrictT)line_buffering)r   r?   BufferedReaderrC   STDIN_HANDLEr\   Zbuffer_streamr^   r/   r/   r0   _get_text_stdin  s    r   c                 C   s$   t tttdddd}t|| S ry   )r   r?   BufferedWriterrR   STDOUT_HANDLEr\   r   r/   r/   r0   _get_text_stdout  s    r   c                 C   s$   t tttdddd}t|| S ry   )r   r?   r   rR   STDERR_HANDLEr\   r   r/   r/   r0   _get_text_stderr"  s    r   c                   C   s   t dtjdd  S )N r   )zlibcrc32joinrs   argvr/   r/   r/   r0   _hash_py_argv.  s    r   c                     s   t d} tt t|   s"t z( fddtd| jD }W t   nt   0 tt	ds|dd  }t
|dkr|d }|dr|dkrq|dd  }|drnqqn|dd  S )Nr   c                    s   g | ]} | qS r/   r/   ).0iZargv_unicoder/   r0   
<listcomp>9      z%_get_windows_argv.<locals>.<listcomp>frozenr   -)z-cz-m)r   r   r   r   r   rangerM   r   hasattrrs   r    
startswith)Zargcr   argr/   r   r0   _get_windows_argv3  s(    

r   )r   r   r   c                 C   sN   t | dsdS z|  }W n ty.   Y dS 0 t|}tt|tt S )NfilenoF)	r   r   rK   msvcrtZget_osfhandleboolGetConsoleModer   r   )fr   r;   r/   r/   r0   _is_consoleR  s    

r   c                 C   sr   t d urn|dv rn|dv rnt| rnt|  }|d urntsTt| dd } | d u rfd S nt|  t	j
 || S d S )N)rz   N)r{   NrO   )r9   r   _stream_factoriesgetr   r   rg   r   ZsetmodeosO_BINARY)r   rj   errorsfuncr/   r/   r0   _get_windows_console_stream_  s     r   )F)Nctypesr?   r   rs   rI   r   r   r   r   r   r   r   r   r	   r
   r   r   r   Zctypes.wintypesr   r   r   r   r   _compatr   r   r   r   r4   r6   ImportErrorr,   kernel32ZGetStdHandlerF   rY   r   rG   r   shell32r   r   r~   r   r   r3   r2   rS   rT   rH   ZSTDIN_FILENOZSTDOUT_FILENOZSTDERR_FILENOrL   rX   	Structurer   r9   r@   r:   rC   rR   objectr\   rm   setru   rx   r   r   r   r   Z_initial_argv_hashr   r   r   r   r/   r/   r/   r0   <module>
   s   



	# "


