o
    ê}”e´  ã                	   @   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srJ ‚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Z/dZ0dZ1dZ2zd d lm3Z3 W n e4yí   dZ5Y nw G d!d"„ d"eƒZ6e3j7Z7e3j8Z8d?d$d%„Z5G d&d'„ d'e j9ƒZ:G d(d)„ d)e:ƒZ;G d*d+„ d+e:ƒZ<G d,d-„ d-ƒZ=d.ej>d/ej?fd0d1„Z@d.ej>d/ej?fd2d3„ZAd.ej>d/ej?fd4d5„ZBe@eAeBd6œZCejDeEejFej>gej?f f eGd7< d8ej?d/eHfd9d:„ZId8ej?d;ejJeK d<ejJeK d/ejJej? fd=d>„ZLd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Ú	LocalFreeiöÿÿÿiõÿÿÿiôÿÿÿé   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_pÚ_fields_© r,   r,   úZ/Users/abhinavbhinder/Documents/map/venv/lib/python3.10/site-packages/click/_winconsole.pyr   K   s    õr   Fc              	   C   sZ   t ƒ }|rtnt}tt| ƒt|ƒ|ƒ zt|j }| |j	¡W t
t|ƒƒ S t
t|ƒƒ w ©N)r   ÚPyBUF_WRITABLEÚPyBUF_SIMPLEÚPyObject_GetBufferr
   r   r   r   Úfrom_addressr   ÚPyBuffer_Release)r   Úwritabler   ÚflagsZbuffer_typer,   r,   r-   Ú
get_buffer]   s   
r6   c                       s$   e Zd Zdd„ Z‡ fdd„Z‡  ZS )Ú_WindowsConsoleRawIOBasec                 C   s
   || _ d S r.   )Úhandle)Úselfr8   r,   r,   r-   Ú__init__j   ó   
z!_WindowsConsoleRawIOBase.__init__c                    s   t ƒ  ¡  dS ©NT)ÚsuperÚisatty©r9   ©Ú	__class__r,   r-   r>   m   s   
z_WindowsConsoleRawIOBase.isatty)r'   r(   r)   r:   r>   Ú__classcell__r,   r,   r@   r-   r7   i   s    r7   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_WindowsConsoleReaderc                 C   ó   dS r<   r,   r?   r,   r,   r-   Úreadables   ó   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r4t
 d¡ |s>tdtƒ › �ƒ‚|d tkrFdS d|j S )Nr   r   z>cannot read odd number of bytes from UTF-16-LE encoded consoleT)r4   gš™™™™™¹?zWindows error: )r   Ú
ValueErrorr6   r   ÚReadConsoleWr   r8   r   ÚGetLastErrorÚERROR_OPERATION_ABORTEDÚtimeÚsleepÚOSErrorÚEOFÚvalue)r9   ÚbZbytes_to_be_readÚbufferZcode_units_to_be_readZcode_units_readÚrvr,   r,   r-   Úreadintov   s0   ÿû


z_WindowsConsoleReader.readintoN)r'   r(   r)   rE   rS   r,   r,   r,   r-   rC   r   s    rC   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )Ú_WindowsConsoleWriterc                 C   rD   r<   r,   r?   r,   r,   r-   r4   –   rF   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 )rU   rV   )Ú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r4|dkr4t
|  tƒ ¡ƒ‚|S )Nr   r   )r   r6   ÚminÚMAX_BYTES_WRITTENr   ÚWriteConsoleWr   r8   r   rO   rM   rX   rI   )r9   rP   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)   r4   ÚstaticmethodrX   r\   r,   r,   r,   r-   rT   •   s
    
rT   c                   @   s�   e Zd Zdejdejddfdd„Zedefdd„ƒZ	d	ej
defd
d„Zdejej
 ddfdd„Zdedejfdd„Zdefdd„Zdd„ ZdS )ÚConsoleStreamÚtext_streamÚbyte_streamÚreturnNc                 C   s   || _ || _d S r.   )Ú_text_streamrQ   )r9   r_   r`   r,   r,   r-   r:   ¶   s   
zConsoleStream.__init__c                 C   s   | j jS r.   )rQ   Únamer?   r,   r,   r-   rc   º   s   zConsoleStream.nameÚxc                 C   sB   t |tƒr| j |¡S z|  ¡  W n	 ty   Y nw | j |¡S r.   )Ú
isinstanceÚstrrb   r\   ÚflushÚ	ExceptionrQ   )r9   rd   r,   r,   r-   r\   ¾   s   
ÿzConsoleStream.writeÚlinesc                 C   s   |D ]}|   |¡ qd S r.   )r\   )r9   ri   Úliner,   r,   r-   Ú
writelinesÇ   s   ÿzConsoleStream.writelinesrc   c                 C   s   t | j|ƒS r.   )Úgetattrrb   )r9   rc   r,   r,   r-   Ú__getattr__Ë   s   zConsoleStream.__getattr__c                 C   s
   | j  ¡ S r.   )rQ   r>   r?   r,   r,   r-   r>   Î   r;   zConsoleStream.isattyc                 C   s   d| j ›d| j›d�S )Nz<ConsoleStream name=z
 encoding=ú>)rc   Úencodingr?   r,   r,   r-   Ú__repr__Ñ   s   zConsoleStream.__repr__)r'   r(   r)   ÚtÚTextIOÚBinaryIOr:   Úpropertyrf   rc   ÚAnyStrÚintr\   ÚIterablerk   ÚAnyrm   Úboolr>   rp   r,   r,   r,   r-   r^   µ   s    	r^   Úbuffer_streamra   c                 C   ó.   t t ttƒ¡dddd�}t tjt|| ƒ¡S ©Nú	utf-16-leÚstrictT)Úline_buffering)	r   ÚioÚBufferedReaderrC   ÚSTDIN_HANDLErq   Úcastrr   r^   ©rz   r_   r,   r,   r-   Ú_get_text_stdinÕ   ó   ür…   c                 C   r{   r|   )	r   r€   ÚBufferedWriterrT   ÚSTDOUT_HANDLErq   rƒ   rr   r^   r„   r,   r,   r-   Ú_get_text_stdoutß   r†   r‰   c                 C   r{   r|   )	r   r€   r‡   rT   ÚSTDERR_HANDLErq   rƒ   rr   r^   r„   r,   r,   r-   Ú_get_text_stderré   r†   r‹   )r   r   r   Ú_stream_factoriesÚfc              	   C   sT   t | dƒsdS z|  ¡ }W n ttjfy   Y dS w t |¡}tt|t	t
ƒ ƒƒƒS )NÚfilenoF)ÚhasattrrŽ   rM   r€   ÚUnsupportedOperationÚmsvcrtZget_osfhandlery   ÚGetConsoleModer   r   )r�   rŽ   r8   r,   r,   r-   Ú_is_consoleú   s   
ÿ
r“   ro   Úerrorsc                 C   sj   t d ur+|dv r-|dv r/t| ƒr1t |  ¡ ¡}|d ur3t| dd ƒ}|d u r'd S ||ƒS d S d S d S d S d S )N>   Nr}   >   Nr~   rQ   )r6   r“   rŒ   ÚgetrŽ   rl   )r�   ro   r”   ÚfuncrP   r,   r,   r-   Ú_get_windows_console_stream  s    ÿþýüór—   )F)Mr€   ÚsysrK   Útypingrq   Úctypesr   r   r   r   r   r   r   r	   r
   r   Zctypes.wintypesr   r   r   r   Z_compatr   Úplatformr‘   r   r   r*   Zkernel32ZGetStdHandlerH   r[   r’   rI   r   Zshell32r   r   r‚   rˆ   rŠ   r0   r/   rU   rV   rJ   ZSTDIN_FILENOZSTDOUT_FILENOZSTDERR_FILENOrN   rZ   r   ÚImportErrorr6   r   r1   r3   Ú	RawIOBaser7   rC   rT   r^   rs   rr   r…   r‰   r‹   rŒ   ÚMappingrv   ÚCallableÚ__annotations__ry   r“   ÚOptionalrf   r—   r,   r,   r,   r-   Ú<module>   sœ   
ÿý
	#  

(ýÿÿÿ
þ