B x `'@sddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z ddlm Z dd lm Z dd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlZddlmZddlmZddlmZyddlmZejZejZWnek rRdZYnXe e Z ej!Z!e!j"Z"e!j#Z#e!j$Z$e!j%Z%e!j&Z&eedej!fZ'ee eee e dej(fZ)eej ej dej!fZ*e"dZ+e"dZ,e"dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5d Z6d!Z7Gd"d#d#ej8Z9edkr*dZ:n dBd%d&Z:Gd'd(d(ej;ZGd-d.d.e?Z@Gd/d0d0e?ZAeBZCd1d2ZDd3d4ZEd5d6ZFd7d8ZGerd9d:ZHeHZId;d<ZJeEeFeGd=ZKd>d?ZLd@dAZMdS)CN)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) pythonapiGetCommandLineWCommandLineToArgvW LocalFreeiiiiic @sjeZdZdefdefdefdefdefdefdefdefd efd efd efg Z e rfe d d edfdS) Py_bufferbufobjlenitemsizereadonlyndimformatshapestrides suboffsetsZinternalZ smalltablerN) __name__ __module__ __qualname__rr rrr c_ssize_p_fields_rinsertr/r/5/tmp/pip-unpacked-wheel-za9e8r29/click/_winconsole.pyrUs rFc CsPt}|rtnt}tt|t||zt|j}||j St t|XdS)N) rPyBUF_WRITABLE PyBUF_SIMPLEPyObject_GetBufferr rrr from_addressrPyBuffer_Release)rwritablerflagsZ buffer_typer/r/r0 get_bufferns   r8c@seZdZddZddZdS)_WindowsConsoleRawIOBasecCs ||_dS)N)handle)selfr:r/r/r0__init__zsz!_WindowsConsoleRawIOBase.__init__cCstj|dS)NT)io RawIOBaseisatty)r;r/r/r0r?}s z_WindowsConsoleRawIOBase.isattyN)r)r*r+r<r?r/r/r/r0r9ysr9c@seZdZddZddZdS)_WindowsConsoleReadercCsdS)NTr/)r;r/r/r0readablesz_WindowsConsoleReader.readablecCst|}|sdS|dr tdt|dd}|d}t}tt|j||t|d}tt krht d|s|t d t|dtkrdSd|jS)Nrrz>cannot read odd number of bytes from UTF-16-LE encoded consoleT)r6g?zWindows error: {})r ValueErrorr8r ReadConsoleWrr:r GetLastErrorERROR_OPERATION_ABORTEDtimesleepOSErrorr$EOFvalue)r;bZbytes_to_be_readbufferZcode_units_to_be_readZcode_units_readrvr/r/r0readintos,    z_WindowsConsoleReader.readintoN)r)r*r+rArNr/r/r/r0r@sr@c@s(eZdZddZeddZddZdS)_WindowsConsoleWritercCsdS)NTr/)r;r/r/r0r6sz_WindowsConsoleWriter.writablecCs"|tkr dS|tkrdSd|S)N ERROR_SUCCESSERROR_NOT_ENOUGH_MEMORYzWindows error {})rPrQr$)errnor/r/r0_get_error_messages z(_WindowsConsoleWriter._get_error_messagecCslt|}t|}t|td}t}tt|j||t|dd|j }|dkrh|dkrht | t |S)Nrr) r r8minMAX_BYTES_WRITTENr WriteConsoleWrr:rrJrHrSrD)r;rKZbytes_to_be_writtenrZcode_units_to_be_writtenZcode_units_writtenZ bytes_writtenr/r/r0writes z_WindowsConsoleWriter.writeN)r)r*r+r6 staticmethodrSrWr/r/r/r0rOs rOc@sHeZdZddZeddZddZddZd d Zd d Z d dZ dS) ConsoleStreamcCs||_||_dS)N) _text_streamrL)r; text_streamZ byte_streamr/r/r0r<szConsoleStream.__init__cCs|jjS)N)rLname)r;r/r/r0r\szConsoleStream.namecCsDt|tr|j|Sy |Wntk r6YnX|j|S)N) isinstancerrZrWflush ExceptionrL)r;xr/r/r0rWs   zConsoleStream.writecCsx|D]}||qWdS)N)rW)r;linesliner/r/r0 writeliness zConsoleStream.writelinescCs t|j|S)N)getattrrZ)r;r\r/r/r0 __getattr__szConsoleStream.__getattr__cCs |jS)N)rLr?)r;r/r/r0r?szConsoleStream.isattycCsd|j|jS)Nz')r$r\encoding)r;r/r/r0__repr__szConsoleStream.__repr__N) r)r*r+r<propertyr\rWrcrer?rgr/r/r/r0rYs  rYc@s(eZdZdZddZddZddZdS) 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. cCs ||_dS)N)_WindowsChunkedWriter__wrapped)r;wrappedr/r/r0r<szWindowsChunkedWriter.__init__cCs t|j|S)N)rdrj)r;r\r/r/r0resz WindowsChunkedWriter.__getattr__cCsLt|}d}x:||krFt||t}|j||||||7}qWdS)Nr)r rTrUrjrW)r;textZtotal_to_writeZwrittenZto_writer/r/r0rWs  zWindowsChunkedWriter.writeN)r)r*r+__doc__r<rerWr/r/r/r0risricCsDtr@tdddkr@|tkr@tt|ttt|t|dS)Nr)r)rsysgetwindowsversion_wrapped_std_streamssetattrrirdadd)r\r/r/r0_wrap_std_streams rtcCs$ttttdddd}t||S)Nz utf-16-lestrictT)line_buffering)rr=BufferedReaderr@ STDIN_HANDLErY) buffer_streamr[r/r/r0_get_text_stdins  rzcCs$ttttdddd}t||S)Nz utf-16-leruT)rv)rr=BufferedWriterrO STDOUT_HANDLErY)ryr[r/r/r0_get_text_stdouts  r}cCs$ttttdddd}t||S)Nz utf-16-leruT)rv)rr=r{rO STDERR_HANDLErY)ryr[r/r/r0_get_text_stderr"s  rcCstdtjddS)Nr)zlibcrc32joinroargvr/r/r/r0 _hash_py_argv.srcstd}ttt|s"tzfddtd|jD}WdtXtt ds|dd}xDt |dkr|d}| dr|dkrP|dd}| drfPqfW|ddS)Nrcsg|] }|qSr/r/).0i) argv_unicoder/r0 9sz%_get_windows_argv..frozenr-)z-cz-m) rrrrr rangerJrhasattrror startswith)Zargcrargr/)rr0_get_windows_argv3s$    r)rrrcCsNt|dsdSy |}Wntk r.dSXt|}tt|ttS)NfilenoF) rrrHmsvcrtZ get_osfhandleboolGetConsoleModerr)frr:r/r/r0 _is_consoleRs   rcCsrtdk rn|dkrn|dkrnt|rnt|}|dk rntsTt|dd}|dkrfdSnt|t j ||SdS)N)z utf-16-leN)ruNrL) r8r_stream_factoriesgetrrrdrZsetmodeosO_BINARY)rrferrorsfuncr/r/r0_get_windows_console_stream_s r)F)Nctypesr=rrorFrrrrrrrrr r r r r Zctypes.wintypesrrrrr_compatrrrrr3r5 ImportErrorr,kernel32Z GetStdHandlerCrVrrDrshell32rrrxr|r~r2r1rPrQrEZ STDIN_FILENOZ STDOUT_FILENOZ STDERR_FILENOrIrU Structurerr8r>r9r@rOobjectrYrisetrqrtrzr}rrZ_initial_argv_hashrrrrr/r/r/r0 s                            # "