B H8͋ @ s d dl Z e jdkredd dlZd dlZd dlZd dlZd dlZd dlZd dl Z dZ dZejZej Z e Zddedd d ZG dd dZG d d dejZdS ) Nwin32z win32 only)pipePopenPIPE PipeHandlei F)TT)duplex overlappedbufsizec C s" t jdt ttd}| r>tj}tj tj B }|| }}ntj}tj }d| }}|tjO }|d rp|tj O }|d rtj }nd}d } } yZt||tjd||tjtj} t||dtjtj|tj} tj| dd}|d | | fS | d k rt| | d k rt| Y nX d S )Nz\\.\pipe\python-pipe-{:d}-{:d}-)prefixr T)r )tempfileZmktempformatosgetpidnext _mmap_counter_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ CreateFileZ OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultCloseHandle)r r r ZaddressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zov r :/opt/alt/python37/lib64/python3.7/asyncio/windows_utils.pyr sB r c @ sX e Zd Zdd Zdd Zedd Zdd Zej d d dZ dd Zdd Zdd Z dS )r c C s || _ d S )N)_handle)selfhandler r r __init__V s zPipeHandle.__init__c C s2 | j d k rd| j }nd}d| jj d| dS )Nzhandle=closed< >)r __class____name__)r r r r r __repr__Y s zPipeHandle.__repr__c C s | j S )N)r )r r r r r ` s zPipeHandle.handlec C s | j d krtd| j S )NzI/O operation on closed pipe)r ValueError)r r r r filenod s zPipeHandle.fileno)r c C s | j d k r|| j d | _ d S )N)r )r r r r r closei s zPipeHandle.closec C s, | j d k r(tjd| t| d | d S )Nz unclosed )source)r warningswarnResourceWarningr$ )r r r r __del__n s zPipeHandle.__del__c C s | S )Nr )r r r r __enter__t s zPipeHandle.__enter__c C s | d S )N)r$ )r tvtbr r r __exit__w s zPipeHandle.__exit__N)r __module____qualname__r r! propertyr r# r r r$ r) r* r. r r r r r Q s r c s e Zd Zd fdd Z ZS )r Nc s| d } }}d } } }|t kr@tddd\}} t|tj}n|}|t krhtdd\} } t| d}n|}|t krtdd\}}t|d}n|tkr|}n|}zy t j|f|||d| W n4 x$| | |fD ]}|d k rt | qW Y n>X | d k rt| | _| d k r"t| | _ |d k r6t|| _W d |t krNt| |t krbt| |t krvt| X d S )N)FTT)r r )TF)r r )stdinstdoutstderr)r r msvcrtZopen_osfhandler O_RDONLYSTDOUTsuperr r r r r2 r3 r4 r$ )r argsr2 r3 r4 kwdsZ stdin_rfdZ stdout_wfdZ stderr_wfdZstdin_whZ stdout_rhZ stderr_rhZstdin_rhZ stdout_whZ stderr_whh)r r r r sH zPopen.__init__)NNN)r r/ r0 r __classcell__r r )r r r ~ s r )sysplatformImportErrorr itertoolsr5 r subprocessr r&