B
    Ǉb                 @   s  U 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 ejdkstd dlZd dlmZ d dlmZ 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edejfZ&edZ'edZ(edZ)d Z*dZ+d Z,dZ-dZ.d Z/dZ0dZ1dZ2dZ3yd d lm4Z4 W n e5k
r   dZ6Y n(X G d!d" d"eZ7e4j8Z8e4j9Z9d=d$d%Z6G d&d' d'e j:Z;G d(d) d)e;Z<G d*d+ d+e;Z=G d,d- d-Z>ej?ej@d.d/d0ZAej?ej@d.d1d2ZBej?ej@d.d3d4ZCeAeBeCd5ZDejEeFejGej?gej@f f eHd6< ej@eId7d8d9ZJej@ejKeL ejKeL ejKej@ d:d;d<ZMdS )>    N)byref)c_char)c_char_p)c_int)	c_ssize_t)c_ulong)c_void_p)POINTER)	py_object)	Structure)DWORD)HANDLE)LPCWSTR)LPWSTR   )_NonClosingTextIOWrapperwin32)windll)WINFUNCTYPEGetCommandLineWCommandLineToArgvW	LocalFreeiii   i        i  )	pythonapic               @   sR   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	dS )	Py_bufferbufobjlenitemsizereadonlyndimformatshapestrides
suboffsetsZinternalN)
__name__
__module____qualname__r   r
   r   r   r   	c_ssize_pZ_fields_ r+   r+   e/var/www/downstreamdata.science/rtclock/rtclock-venv/lib/python3.7/site-packages/click/_winconsole.pyr   K   s   r   Fc          	   C   sP   t  }|rtnt}tt| t|| zt|j }||j	S t
t| X d S )N)r   PyBUF_WRITABLEPyBUF_SIMPLEPyObject_GetBufferr
   r   r   r   Zfrom_addressr   PyBuffer_Release)r   writabler   flagsZbuffer_typer+   r+   r,   
get_buffer]   s    
r3   c                   s$   e Zd Zdd Z fddZ  ZS )_WindowsConsoleRawIOBasec             C   s
   || _ d S )N)handle)selfr5   r+   r+   r,   __init__j   s    z!_WindowsConsoleRawIOBase.__init__c                s   t    dS )NT)superisatty)r6   )	__class__r+   r,   r9   m   s    
z_WindowsConsoleRawIOBase.isatty)r'   r(   r)   r7   r9   __classcell__r+   r+   )r:   r,   r4   i   s   r4   c               @   s   e Zd Zdd Zdd ZdS )_WindowsConsoleReaderc             C   s   dS )NTr+   )r6   r+   r+   r,   readables   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)r1   g?zWindows error: )r   
ValueErrorr3   r   ReadConsoleWr   r5   r   GetLastErrorERROR_OPERATION_ABORTEDtimesleepOSErrorEOFvalue)r6   bZbytes_to_be_readbufferZcode_units_to_be_readZcode_units_readrvr+   r+   r,   readintov   s,    

z_WindowsConsoleReader.readintoN)r'   r(   r)   r=   rJ   r+   r+   r+   r,   r<   r   s   r<   c               @   s(   e Zd Zdd Zedd Zdd ZdS )_WindowsConsoleWriterc             C   s   dS )NTr+   )r6   r+   r+   r,   r1      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 )rL   rM   )errnor+   r+   r,   _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   r3   minMAX_BYTES_WRITTENr   WriteConsoleWr   r5   r   rF   rD   rO   r@   )r6   rG   Zbytes_to_be_writtenr   Zcode_units_to_be_writtenZcode_units_writtenZbytes_writtenr+   r+   r,   write   s    
z_WindowsConsoleWriter.writeN)r'   r(   r)   r1   staticmethodrO   rS   r+   r+   r+   r,   rK      s   rK   c               @   s   e Zd ZejejddddZeedddZ	ej
edd	d
Zejej
 ddddZeejdddZedddZdd ZdS )ConsoleStreamN)text_streambyte_streamreturnc             C   s   || _ || _d S )N)_text_streamrH   )r6   rV   rW   r+   r+   r,   r7      s    zConsoleStream.__init__)rX   c             C   s   | j jS )N)rH   name)r6   r+   r+   r,   rZ      s    zConsoleStream.name)xrX   c             C   sD   t |tr| j|S y|   W n tk
r6   Y nX | j|S )N)
isinstancestrrY   rS   flush	ExceptionrH   )r6   r[   r+   r+   r,   rS      s    
zConsoleStream.write)linesrX   c             C   s   x|D ]}|  | qW d S )N)rS   )r6   r`   liner+   r+   r,   
writelines   s    
zConsoleStream.writelines)rZ   rX   c             C   s   t | j|S )N)getattrrY   )r6   rZ   r+   r+   r,   __getattr__   s    zConsoleStream.__getattr__c             C   s
   | j  S )N)rH   r9   )r6   r+   r+   r,   r9      s    zConsoleStream.isattyc             C   s   d| j d| jdS )Nz<ConsoleStream name=z
 encoding=>)rZ   encoding)r6   r+   r+   r,   __repr__   s    zConsoleStream.__repr__)r'   r(   r)   tTextIOBinaryIOr7   propertyr]   rZ   AnyStrintrS   Iterablerb   Anyrd   boolr9   rg   r+   r+   r+   r,   rU      s   	rU   )buffer_streamrX   c             C   s.   t tttdddd}ttjt|| S )Nz	utf-16-lestrictT)line_buffering)	r   ioBufferedReaderr<   STDIN_HANDLErh   castri   rU   )rq   rV   r+   r+   r,   _get_text_stdin   s    rx   c             C   s.   t tttdddd}ttjt|| S )Nz	utf-16-lerr   T)rs   )	r   rt   BufferedWriterrK   STDOUT_HANDLErh   rw   ri   rU   )rq   rV   r+   r+   r,   _get_text_stdout   s    r{   c             C   s.   t tttdddd}ttjt|| S )Nz	utf-16-lerr   T)rs   )	r   rt   ry   rK   STDERR_HANDLErh   rw   ri   rU   )rq   rV   r+   r+   r,   _get_text_stderr   s    r}   )r   r   r   _stream_factories)frX   c          	   C   sT   t | dsdS y|  }W n ttjfk
r4   dS X t|}tt|t	t
 S )NfilenoF)hasattrr   rD   rt   UnsupportedOperationmsvcrtZget_osfhandlerp   GetConsoleModer   r   )r   r   r5   r+   r+   r,   _is_console   s    

r   )r   rf   errorsrX   c             C   sZ   t d k	rV|dkrV|dkrVt| rVt|  }|d k	rVt| dd }|d krNd S ||S d S )N>   N	utf-16-le>   Nrr   rH   )r3   r   r~   getr   rc   )r   rf   r   funcrG   r+   r+   r,   _get_windows_console_stream  s    r   )F)Nrt   sysrB   typingrh   ctypesr   r   r   r   r   r   r   r	   r
   r   Zctypes.wintypesr   r   r   r   Z_compatr   platformAssertionErrorr   r   r   r*   kernel32ZGetStdHandler?   rR   r   r@   r   Zshell32r   r   rv   rz   r|   r.   r-   rL   rM   rA   ZSTDIN_FILENOZSTDOUT_FILENOZSTDERR_FILENOrE   rQ   r   ImportErrorr3   r   r/   r0   	RawIOBaser4   r<   rK   rU   rj   ri   rx   r{   r}   r~   Mappingrm   Callable__annotations__rp   r   Optionalr]   r   r+   r+   r+   r,   <module>	   s    

	#  

*