й¼]¼ã@sDddlZejdkr'edƒ‚ddlZddlZddlZddlZddlZddlZddl Z ddl Z dddddgZ d Z ej Z ejZejƒZeedƒrÛejZnejejdd d„Zd d d dde dd„ZGdd„dƒZGdd„dejƒZdS)éNÚwin32z win32 onlyÚ socketpairÚpipeÚPopenÚPIPEÚ PipeHandlei c Csk|tjkrd}n$|tjkr0d}n tdƒ‚|tjkrWtdƒ‚|dkrotdƒ‚tj|||ƒ}zÏ|j|dfƒ|jdƒ|jƒdd…\}}tj|||ƒ}yb|jd ƒy|j ||fƒWnt t fk rYnX|jd ƒ|j ƒ\}} Wn|j ƒ‚YnXWd|j ƒX||fS) Nz 127.0.0.1z::1z?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedrzOnly protocol zero is supportedééFT)ÚsocketÚAF_INETÚAF_INET6Ú ValueErrorÚ SOCK_STREAMÚbindÚlistenÚ getsocknameÚ setblockingÚconnectÚBlockingIOErrorÚInterruptedErrorÚacceptÚclose) ÚfamilyÚtypeÚprotoÚhostZlsockÚaddrÚportZcsockZssockÚ_©rú2/opt/alt/python35/lib64/python3.5/windows_utils.pyr%s8            ÚduplexFÚ overlappedTÚbufsizec Cs‹tjddtjƒttƒfƒ}|rWtj}tjtj B}||}}ntj }tj }d|}}|tj O}|drš|tj O}|dr°tj }nd}d} } y‡tj ||tjd||tjtjƒ} tj||dtjtj|tjƒ} tj| ddƒ} | jdƒ| | fSWn=| dk rftj| ƒ| dk rtj| ƒ‚YnXdS)NÚprefixz\\.\pipe\python-pipe-%d-%d-rrr"T)ÚtempfileÚmktempÚosÚgetpidÚnextÚ _mmap_counterÚ_winapiZPIPE_ACCESS_DUPLEXZ GENERIC_READZ GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ CreateFileZ OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultÚ CloseHandle) r!r"r#ÚaddressZopenmodeÚaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovrrr rSs@                 c@seZdZdd„Zdd„Zedd„ƒZdd„Zd ej d d „Z d d „Z dd„Z dd„Z dS)rcCs ||_dS)N)Ú_handle)ÚselfÚhandlerrr Ú__init__ˆszPipeHandle.__init__cCs9|jdk rd|j}nd}d|jj|fS)Nz handle=%rÚclosedz<%s %s>)r/Ú __class__Ú__name__)r0r1rrr Ú__repr__‹szPipeHandle.__repr__cCs|jS)N)r/)r0rrr r1’szPipeHandle.handlecCs"|jdkrtdƒ‚|jS)NzI/O operatioon on closed pipe)r/r )r0rrr Úfileno–s zPipeHandle.filenor,cCs)|jdk r%||jƒd|_dS)N)r/)r0r,rrr r›s zPipeHandle.closecCs1|jdk r-tjd|tƒ|jƒdS)Nz unclosed %r)r/ÚwarningsÚwarnÚResourceWarningr)r0rrr Ú__del__ szPipeHandle.__del__cCs|S)Nr)r0rrr Ú __enter__¥szPipeHandle.__enter__cCs|jƒdS)N)r)r0ÚtÚvÚtbrrr Ú__exit__¨szPipeHandle.__exit__N)r5Ú __module__Ú __qualname__r2r6Úpropertyr1r7r+r,rr;r<r@rrrr rƒs      cs+eZdZddd‡fdd†Z‡S)rNc sd}}}d} } } |tkr[tdd ddƒ\} } tj| tjƒ}n|}|tkr—tdd ƒ\} } tj| dƒ}n|}|tkrÓtdd ƒ\} }tj|dƒ}n|tkrè|}n|}z¿y)tƒj|d|d|d||�Wn>x0| | | fD]}|dk r0t j |ƒq0W‚YnRX| dk rvt | ƒ|_ | dk r‘t | ƒ|_ | dk r¬t | ƒ|_Wd|tkrÉtj|ƒ|tkrâtj|ƒ|tkrûtj|ƒXdS) Nr"FTr!rÚstdinÚstdoutÚstderr)FT)TF)TF)rrÚmsvcrtÚopen_osfhandler'ÚO_RDONLYÚSTDOUTÚsuperr2r+r,rrDrErFr)r0ÚargsrDrErFÚkwdsZ stdin_rfdZ stdout_wfdZ stderr_wfdZstdin_whZ stdout_rhZ stderr_rhZstdin_rhZ stdout_whZ stderr_whÚh)r4rr r2´sH              zPopen.__init__)r5rArBr2rr)r4r r¯s )TT)ÚsysÚplatformÚ ImportErrorr+Ú itertoolsrGr'r Ú subprocessr%r8Ú__all__ÚBUFSIZErrJÚcountr*Úhasattrrr rrrrrrrr Ús*              .0,