o ?Ogd@s&dZddlZddlZddlZddlZddlZeedred7ZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd l mZdd lmZd ZdedddZdedddZeedrpd edddZd edddZGddde jZGdddee jZGdddZGdddZdS)!) StreamReader StreamWriterStreamReaderProtocolopen_connection start_serverNZAF_UNIX)open_unix_connectionstart_unix_server) coroutines)events) exceptions)format_helpers) protocols)logger)sleepi)limitc sb t}t||d}t||d|jfdd||fi|IdH\}}t|||}||fS)NrlooprcSNrprotocolr6/opt/alt/python310/lib64/python3.10/asyncio/streams.py1z!open_connection..)r get_running_looprrZcreate_connectionr) hostportrkwdsrreader transport_writerrrrrs  rcs8 tfdd}j|||fi|IdHS)Nctd}t|d}|SNrrrrr!rclient_connected_cbrrrrfactoryO zstart_server..factory)r rZ create_server)r*rrrr r+rr)rr6s rcs` t}t||d}t||d|jfdd|fi|IdH\}}t|||}||fS)Nrrcrrrrrrrrcrz&open_unix_connection..)r rrrZcreate_unix_connectionr)pathrr rr!r"r#r$rrrr[s   rcs6 tfdd}j||fi|IdHS)Ncr%r&r'r(r)rrr+lr,z"start_unix_server..factory)r rZcreate_unix_server)r*r-rr r+rr)rrgs rc@s@eZdZ dddZddZddZdd Zd d Zd d ZdS)FlowControlMixinNcCs8|dur tjdd|_n||_d|_t|_d|_dS)N) stacklevelF)r _get_event_loop_loop_paused collectionsdeque_drain_waiters_connection_lost)selfrrrr__init__s   zFlowControlMixin.__init__cCs$d|_|jrtd|dSdS)NTz%r pauses writing)r3r2 get_debugrdebugr8rrr pause_writings zFlowControlMixin.pause_writingcCs>d|_|jrtd||jD] }|s|dqdS)NFz%r resumes writing)r3r2r:rr;r6done set_resultr8waiterrrrresume_writings    zFlowControlMixin.resume_writingcCsFd|_|jsdS|jD]}|s |dur|dq ||q dSNT)r7r3r6r>r? set_exceptionr8excrArrrconnection_losts   z FlowControlMixin.connection_lostc s\|jrtd|js dS|j}|j|z|IdHW|j|dS|j|w)NzConnection lost)r7ConnectionResetErrorr3r2 create_futurer6appendremover@rrr _drain_helpers   zFlowControlMixin._drain_helpercCstr)NotImplementedErrorr8streamrrr_get_close_waiterz"FlowControlMixin._get_close_waiterr) __name__ __module__ __qualname__r9r=rBrGrLrPrrrrr.us    r.csdeZdZ dZdfdd ZeddZddZfdd Zd d Z d d Z ddZ ddZ Z S)rNcsttj|d|durt||_|j|_nd|_|dur ||_d|_d|_d|_ d|_ ||_ d|_ |j |_dS)NrF)superr9weakrefref_stream_reader_wr_source_traceback_strong_reader_reject_connection_stream_writer_task _transport_client_connected_cb _over_sslr2rI_closed)r8Z stream_readerr*r __class__rrr9s  zStreamReaderProtocol.__init__cCs|jdurdS|Sr)rXr<rrr_stream_readers z#StreamReaderProtocol._stream_readercCs|jrddi}|jr|j|d<|j||dS||_|j}|dur*|||ddu|_ |j durXt ||||j|_ | ||j }t |rS|j||_d|_dSdS)NmessagezpAn open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.Zsource_tracebackZ sslcontext)r[rYr2Zcall_exception_handlerabortr^rd set_transportget_extra_infor`r_rr\r Z iscoroutineZ create_taskr]rZ)r8r"contextr!resrrrconnection_mades2      z$StreamReaderProtocol.connection_madecs~|j}|dur|dur|n|||js+|dur%|jdn|j|t|d|_d|_ d|_ d|_ dSr) rdfeed_eofrDrar>r?rUrGrXr\r]r^)r8rFr!rbrrrGs      z$StreamReaderProtocol.connection_lostcCs |j}|dur||dSdSr)rd feed_data)r8datar!rrr data_receivedsz"StreamReaderProtocol.data_receivedcCs$|j}|dur ||jrdSdS)NFT)rdrlr`)r8r!rrr eof_received s z!StreamReaderProtocol.eof_receivedcC|jSr)rarNrrrrPz&StreamReaderProtocol._get_close_waitercCsDz|j}Wn tyYdSw|r|s |dSdSdSr)raAttributeErrorr> cancelled exception)r8closedrrr__del__s   zStreamReaderProtocol.__del__NN)rRrSrTrYr9propertyrdrkrGrorprPrw __classcell__rrrbrrs   rc@steZdZ ddZddZeddZddZd d Zd d Z d dZ ddZ ddZ ddZ dddZddZdS)rcCs4||_||_||_||_|j|_|jddSr)r^ _protocol_readerr2rIZ _complete_futr?)r8r"rr!rrrrr90s  zStreamWriter.__init__cCs@|jjd|jg}|jdur|d|jdd|S)N transport=zreader=<{}> )rcrRr^r|rJformatjoinr8inforrr__repr__:s zStreamWriter.__repr__cCrqrr^r<rrrr"@szStreamWriter.transportcC|j|dSr)r^writer8rnrrrrDzStreamWriter.writecCrr)r^ writelinesrrrrrGrzStreamWriter.writelinescC |jSr)r^ write_eofr<rrrrJ zStreamWriter.write_eofcCrr)r^ can_write_eofr<rrrrMrzStreamWriter.can_write_eofcCrr)r^closer<rrrrPrzStreamWriter.closecCrr)r^ is_closingr<rrrrSrzStreamWriter.is_closingcs|j|IdHdSr)r{rPr<rrr wait_closedVszStreamWriter.wait_closedNcCs|j||Sr)r^rh)r8namedefaultrrrrhYszStreamWriter.get_extra_infocsP |jdur|j}|dur||jrtdIdH|jIdHdS)Nr)r|rur^rrr{rL)r8rFrrrdrain\s    zStreamWriter.drainr)rRrSrTr9rryr"rrrrrrrrhrrrrrr&s     rc@seZdZdZedfddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZd&ddZd'ddZd d!Zd"d#Zd$d%ZdS)(rNcCsz|dkrtd||_|durt|_n||_t|_d|_d|_d|_ d|_ d|_ |j r;t td|_dSdS)NrzLimit cannot be <= 0Fr ) ValueError_limitr r1r2 bytearray_buffer_eof_waiter _exceptionr^r3r:r extract_stacksys _getframerY)r8rrrrrr9zs"   zStreamReader.__init__cCsdg}|jr|t|jd|jr|d|jtkr'|d|j|jr3|d|j|jr?|d|j|jrK|d|j|j rS|dd d |S) Nrz byteseofzlimit=zwaiter=z exception=r}Zpausedr~r) rrJlenrr_DEFAULT_LIMITrrr^r3rrrrrrrs    zStreamReader.__repr__cCrqr)rr<rrrrurrzStreamReader.exceptioncCs8||_|j}|durd|_|s||dSdSdSr)rrrtrDrErrrrDszStreamReader.set_exceptioncCs4 |j}|durd|_|s|ddSdSdSr)rrtr?r@rrr_wakeup_waiterszStreamReader._wakeup_waitercCs ||_dSrr)r8r"rrrrgs zStreamReader.set_transportcCs2|jrt|j|jkrd|_|jdSdSdS)NF)r3rrrr^resume_readingr<rrr_maybe_resume_transportsz$StreamReader._maybe_resume_transportcCsd|_|dSrC)rrr<rrrrls zStreamReader.feed_eofcCs |jo|j Sr)rrr<rrrat_eofszStreamReader.at_eofcCs|sdS|j|||jdur:|jsz|jWn ty4d|_YdSwd|_dSdSdSdS)NT) rextendrr^r3rrZ pause_readingrMrrrrrms      zStreamReader.feed_datacs` |jdurt|d|jrd|_|j|j|_z |jIdHWd|_dSd|_w)NzF() called while another coroutine is already waiting for incoming dataF)r RuntimeErrorr3r^rr2rI)r8Z func_namerrr_wait_for_datas   zStreamReader._wait_for_datac s d}t|}z ||IdH}W|Stjy)}z |jWYd}~Sd}~wtjyW}z"|j||jrC|jd|j|=n|j | t |j dd}~ww)N r) r readuntilr IncompleteReadErrorpartialLimitOverrunErrorr startswithconsumedclearrrargs)r8sepseplenlineerrrreadlines$  zStreamReader.readlinercs t|}|dkrtd|jdur|jd} t|j}|||krA|j||}|dkr0n-|d|}||jkrAtd||jrTt |j}|j t |d| dIdHq||jkrhtd||jd||}|jd||=| t |S) Nrz,Separator should be at least one-byte stringTr z2Separator is not found, and chunk exceed the limitrz2Separator is found, but chunk is longer than limit)rrrrfindrr rrbytesrrrr)r8Z separatorroffsetZbuflenZisepchunkrrrrsD         zStreamReader.readuntilrcs |jdur |j|dkrdS|dkr.g} ||jIdH}|s#n||qd|S|js<|js<|dIdHt|jd|}|jd|=| |S)NrTread) rrrrJrrrrrr)r8nZblocksblockrnrrrrss*     zStreamReader.readcs |dkr td|jdur|j|dkrdSt|j|krA|jr2t|j}|jt||| dIdHt|j|kst|j|krSt|j}|jnt|jd|}|jd|=| |S)Nrz*readexactly size can not be less than zeror readexactly) rrrrrrrr rrr)r8rZ incompleternrrrrs,       zStreamReader.readexactlycCs|Srrr<rrr __aiter__rQzStreamReader.__aiter__cs |IdH}|dkrt|S)Nr)rStopAsyncIteration)r8valrrr __anext__s zStreamReader.__anext__)r)r)rRrSrTrYrr9rrurDrrgrrlrrmrrrrrrrrrrrrvs&   [3) rrxr)__all__r4ZsocketrwarningsrVhasattrr r r r rlogrZtasksrrrrrrZProtocolr.rrrrrrrsB          "   @qP