L i!jUddlmZddlmZddlZddlZddlZddlZ ddl m Z ddl m Z ddl m Z ddl mZddl mZddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddlmZddlmZddlmZddlmZddlmZej:dk(sJddlZddl mZddl m Z eeZ!ejDZ"e"jFZ#e"jHZ$e"jJZ%e"jLZ&e"jNZ'e edejDfZ(e eeeeedejRfZ*e eedejDfZ+e#dZ,e#dZ-e#dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d Z7d!Z8e jrr dd"lm:Z: dd#l m=Z=Gd$d%eZ>e=j~Z?e=jZ@d7d8d&ZAGd'd(ejZCGd)d*eCZDGd+d,eCZEGd-d.ZFd9d/ZGd9d0ZHd9d1ZIeGeHeId2ZJd3eKd4<d:d5ZL d;d6ZMy#e;$r dd"l5:u= ) 377*K!,!9!9#''!BC U3Z ( U3Z (s /A==Bc(eZdZddZdfd ZxZS)_WindowsConsoleRawIOBasec||_yr6)handle)selfrDs r4__init__z!_WindowsConsoleRawIOBase.__init__ws  r3c"t|yNT)superisatty)rE __class__s r4rJz_WindowsConsoleRawIOBase.isattyzs r3)rDz int | NonereturnNonerLzt.Literal[True])r-r.r/rFrJ __classcell__)rKs@r4rBrBvsr3rBceZdZddZddZy)_WindowsConsoleReadercyrHr2rEs r4readablez_WindowsConsoleReader.readabler3ct|}|sy|dzr tdt|d}|dz}t}t t |j ||t|d}ttk(rtjd|stdt|dtk(ryd|jzS)Nrrz>cannot read odd number of bytes from UTF-16-LE encoded consoleT)r<g?zWindows error: )r$ ValueErrorr@r ReadConsoleWrrDr GetLastErrorERROR_OPERATION_ABORTEDtimesleepOSErrorEOFvalue)rEbbytes_to_be_readbuffercode_units_to_be_readcode_units_readrvs r4readintoz_WindowsConsoleReader.readintosq6  !P A- 0A 5!)  4;;   ! / "    >4 4 JJsOOLN+;<= = !9 ?((((r3NrNr`rrLint)r-r.r/rTrfr2r3r4rQrQs )r3rQc.eZdZddZeddZddZy)_WindowsConsoleWritercyrHr2rSs r4r<z_WindowsConsoleWriter.writablerUr3c4|tk(ry|tk(ryd|S)N ERROR_SUCCESSERROR_NOT_ENOUGH_MEMORYzWindows error )rmrn)errnos r4_get_error_messagez(_WindowsConsoleWriter._get_error_messages& M !" - -,w''r3c8t|}t|}t|tdz}t }t t |j||t|dd|jz}|dk(r'|dkDr"t|jt|S)Nrr) r$r@minMAX_BYTES_WRITTENr WriteConsoleWrrDrr_r]rprY)rEr`bytes_to_be_writtenr"code_units_to_be_writtencode_units_written bytes_writtens r4writez_WindowsConsoleWriter.writes!!fm#&':)rencodingrSs r4__repr__zConsoleStream.__repr__s %dii]*T]] K 66!((M+}E FFr3cttjttddd}t j t jt||Sr) rrBufferedWriterrj STDOUT_HANDLErrrr}rs r4_get_text_stdoutrG* / >? K 66!((M+}E FFr3cttjttddd}t j t jt||Sr) rrrrj STDERR_HANDLErrrr}rs r4_get_text_stderrrrr3)rrrz5cabc.Mapping[int, t.Callable[[t.BinaryIO], t.TextIO]]_stream_factoriesc t|dsy |j}t j |}tt|ttS#ttjf$rYywxYw)NfilenoF) hasattrrr]rUnsupportedOperationmsvcrt get_osfhandlerGetConsoleModerr)frrDs r4 _is_consolersh 1h  ! !& )F vuUW~6 77 R,, -sAA65A6ct|dvs|dvs t|sytj|j }|yt |dd}|y||S)N>Nr>Nrrb)r@rrgetrr)rrerrorsfuncr`s r4_get_windows_console_streamrsc  . . ) )1~   ,D |8T"Ay 7Nr3)F)r#rr<rrLz Array[c_char])rrrLr)rrrLr)rrr str | NonerrrLzt.TextIO | None)N __future__rcollections.abcabccabcrsysr[typingrctypesrrrrrr r r r r rctypes.wintypesrrrr_compatrplatformrrrr0kernel32 GetStdHandlerXrtrrYrshell32rrrrrr8r7rmrnrZ STDIN_FILENO STDOUT_FILENO STDERR_FILENOr^rs TYPE_CHECKINGr ImportErrortyping_extensionsrr!r9r;r@ RawIOBaserBrQrjr}rrrr__annotations__rrr2r3r4rse# !"#"- ||w  I  ??$$ $$ && (($$ %+f%'8&//&JKJ['75>J6>>* ,K( +[&//,J K C S! S!       ??- +$)   I  #55 11 )r|| )4 )F4@PP@GGGLH 8%/9Q -,- Js$H H( H%$H%(H21H2