B 7Acg @sdZddlZeedred7ZddlmZddlmZddlmZdd lmZdd l m Z d Z Gd d d e Z GdddeZd!de dddZd"de dddZeedrd#de dddZd$de dddZGdddejZGdddeejZGdddZGdd d ZdS)%) StreamReader StreamWriterStreamReaderProtocolopen_connection start_serverIncompleteReadErrorLimitOverrunErrorNZAF_UNIX)open_unix_connectionstart_unix_server) coroutines)events) protocols)logger)sleepics$eZdZfddZddZZS)rcs,tt|d|d||_||_dS)Nz bytes read on a total of z expected bytes)super__init__lenpartialexpected)selfrr) __class__2/opt/alt/python37/lib/python3.7/asyncio/streams.pyrszIncompleteReadError.__init__cCst||j|jffS)N)typerr)rrrr __reduce__#szIncompleteReadError.__reduce__)__name__ __module__ __qualname__rr __classcell__rr)rrrs rcs$eZdZfddZddZZS)rcst|||_dS)N)rrconsumed)rmessager )rrrr-s zLimitOverrunError.__init__cCst||jd|jffS)Nr)rargsr )rrrrr1szLimitOverrunError.__reduce__)rrrrrrrr)rrr's r)looplimitc sb|dkrt}t||d}t||d|jfdd||f|IdH\}}t|||}||fS)N)r$r#)r#csS)Nrr)protocolrrMz!open_connection..)r get_event_looprrZcreate_connectionr) hostportr#r$kwdsreader transport_writerr)r%rr5s   rcs8dkrtfdd}j|||f|IdHS)Ncstd}t|d}|S)N)r$r#)r#)rr)r,r%)client_connected_cbr$r#rrfactoryls zstart_server..factory)r r(Z create_server)r0r)r*r#r$r+r1r)r0r$r#rrRsrcs`|dkrt}t||d}t||d|jfdd|f|IdH\}}t|||}||fS)N)r$r#)r#csS)Nrr)r%rrr&r'z&open_unix_connection..)r r(rrZcreate_unix_connectionr)pathr#r$r+r,r-r.r/r)r%rr xs  r cs6dkrtfdd}j||f|IdHS)Ncstd}t|d}|S)N)r$r#)r#)rr)r,r%)r0r$r#rrr1s z"start_unix_server..factory)r r(Zcreate_unix_server)r0r2r#r$r+r1r)r0r$r#rr sr c@s6eZdZd ddZddZddZdd Zd d ZdS) FlowControlMixinNcCs0|dkrt|_n||_d|_d|_d|_dS)NF)r r(_loop_paused _drain_waiter_connection_lost)rr#rrrrs  zFlowControlMixin.__init__cCs d|_|jrtd|dS)NTz%r pauses writing)r5r4 get_debugrdebug)rrrr pause_writings zFlowControlMixin.pause_writingcCsFd|_|jrtd||j}|dk rBd|_|sB|ddS)NFz%r resumes writing)r5r4r8rr9r6done set_result)rwaiterrrrresume_writings  zFlowControlMixin.resume_writingcCsVd|_|jsdS|j}|dkr"dSd|_|r4dS|dkrH|dn ||dS)NT)r7r5r6r;r< set_exception)rexcr=rrrconnection_losts z FlowControlMixin.connection_lostcs<|jrtd|jsdS|j}|j}||_|IdHdS)NzConnection lost)r7ConnectionResetErrorr5r6r4 create_future)rr=rrr _drain_helpers zFlowControlMixin._drain_helper)N)rrrrr:r>rArDrrrrr3s   r3csJeZdZdfdd ZddZfddZdd Zd d Zd d ZZ S)rNcs6tj|d||_d|_||_d|_|j|_dS)N)r#F) rr_stream_reader_stream_writer_client_connected_cb _over_sslr4rC_closed)rZ stream_readerr0r#)rrrrs zStreamReaderProtocol.__init__cCsd|j||ddk |_|jdk r`t|||j|j|_||j|j}t |r`|j |dS)NZ sslcontext) rE set_transportget_extra_inforHrGrr4rFr Z iscoroutineZ create_task)rr-Zresrrrconnection_mades    z$StreamReaderProtocol.connection_madecsr|jdk r*|dkr|jn |j||jsV|dkrJ|jdn |j|t|d|_d|_dS)N) rEfeed_eofr?rIr;r<rrArF)rr@)rrrrAs      z$StreamReaderProtocol.connection_lostcCs|j|dS)N)rE feed_data)rdatarrr data_receivedsz"StreamReaderProtocol.data_receivedcCs|j|jrdSdS)NFT)rErMrH)rrrr eof_receiveds z!StreamReaderProtocol.eof_receivedcCs"|j}|r|s|dS)N)rIr; cancelled exception)rclosedrrr__del__ szStreamReaderProtocol.__del__)NN) rrrrrLrArPrQrUrrr)rrrs    rc@sreZdZddZddZeddZddZd d Zd d Z d dZ ddZ ddZ ddZ dddZddZdS)rcCs||_||_||_||_dS)N) _transport _protocol_readerr4)rr-r%r,r#rrrrszStreamWriter.__init__cCs@|jjd|jg}|jdk r0|d|jdd|S)Nz transport=zreader=z<{}> )rrrVrXappendformatjoin)rinforrr__repr__&s zStreamWriter.__repr__cCs|jS)N)rV)rrrrr-,szStreamWriter.transportcCs|j|dS)N)rVwrite)rrOrrrr_0szStreamWriter.writecCs|j|dS)N)rV writelines)rrOrrrr`3szStreamWriter.writelinescCs |jS)N)rV write_eof)rrrrra6szStreamWriter.write_eofcCs |jS)N)rV can_write_eof)rrrrrb9szStreamWriter.can_write_eofcCs |jS)N)rVclose)rrrrrc<szStreamWriter.closecCs |jS)N)rV is_closing)rrrrrd?szStreamWriter.is_closingcs|jjIdHdS)N)rWrI)rrrr wait_closedBszStreamWriter.wait_closedNcCs|j||S)N)rVrK)rnamedefaultrrrrKEszStreamWriter.get_extra_infocsR|jdk r |j}|dk r ||jr>td|jdIdH|jIdHdS)Nr)r#)rXrSrVrdrr4rWrD)rr@rrrdrainHs   zStreamWriter.drain)N)rrrrr^propertyr-r_r`rarbrcrdrerKrhrrrrrs   rc@seZdZedfddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZd&ddZd'ddZd d!Zd"d#Zd$d%ZdS)(rNcCsZ|dkrtd||_|dkr*t|_n||_t|_d|_d|_d|_ d|_ d|_ dS)NrzLimit cannot be <= 0F) ValueError_limitr r(r4 bytearray_buffer_eof_waiter _exceptionrVr5)rr$r#rrrras zStreamReader.__init__cCsdg}|jr"|t|jd|jr2|d|jtkrN|d|j|jrf|d|j|jr~|d|j|jr|d|j|j r|dd d |S) Nrz byteseofzlimit=zwaiter=z exception=z transport=Zpausedz<{}>rY) rmrZrrnrk_DEFAULT_LIMITrorprVr5r[r\)rr]rrrr^ts    zStreamReader.__repr__cCs|jS)N)rp)rrrrrSszStreamReader.exceptioncCs0||_|j}|dk r,d|_|s,||dS)N)rprorRr?)rr@r=rrrr?s zStreamReader.set_exceptioncCs*|j}|dk r&d|_|s&|ddS)N)rorRr<)rr=rrr_wakeup_waiters zStreamReader._wakeup_waitercCs ||_dS)N)rV)rr-rrrrJszStreamReader.set_transportcCs*|jr&t|j|jkr&d|_|jdS)NF)r5rrmrkrVresume_reading)rrrr_maybe_resume_transportsz$StreamReader._maybe_resume_transportcCsd|_|dS)NT)rnrs)rrrrrMszStreamReader.feed_eofcCs|jo |j S)N)rnrm)rrrrat_eofszStreamReader.at_eofcCst|sdS|j|||jdk rp|jspt|jd|jkrpy|jWntk rhd|_YnXd|_dS)NT) rmextendrsrVr5rrkZ pause_readingNotImplementedError)rrOrrrrNs   zStreamReader.feed_datacsX|jdk rt|d|jr.d|_|j|j|_z|jIdHWdd|_XdS)NzF() called while another coroutine is already waiting for incoming dataF)ro RuntimeErrorr5rVrtr4rC)rZ func_namerrr_wait_for_datas    zStreamReader._wait_for_datac sd}t|}y||IdH}Wntk rD}z|jSd}~XYnftk r}zH|j||jrx|jd|j|=n |j| t |j dWdd}~XYnX|S)N r) r readuntilrrrrm startswithr clearrurjr")rsepseplenlineerrrreadlines  zStreamReader.readliner|cst|}|dkrtd|jdk r(|jd}xt|j}|||kr||j||}|dkr\P|d|}||jkr|td||jrt|j}|j t |d| dIdHq.W||jkrtd||jd||}|jd||=| t|S)Nrz,Separator should be at least one-byte stringr z2Separator is not found, and chunk exceed the limitr}z2Separator is found, but chunk is longer than limit) rrjrprmfindrkrrnbytesrrr{ru)rZ separatorroffsetbuflenZisepchunkrrrr}s:         zStreamReader.readuntilrcs|jdk r|j|dkrdS|dkrZg}x&||jIdH}|sBP||q*Wd|S|jsv|jsv|dIdHt|jd|}|jd|=| |S)Nrr'read) rprrkrZr\rmrnr{rru)rnZblocksblockrOrrrrWs$    zStreamReader.readcs|dkrtd|jdk r |j|dkr,dSxFt|j|krr|jr`t|j}|jt|||dIdHq.Wt|j|krt|j}|jnt|jd|}|jd|=| |S)Nrz*readexactly size can not be less than zeror' readexactly) rjrprrmrnrrrr{ru)rrZ incompleterOrrrrs&       zStreamReader.readexactlycCs|S)Nr)rrrr __aiter__szStreamReader.__aiter__cs|IdH}|dkrt|S)Nr')rStopAsyncIteration)rvalrrr __anext__szStreamReader.__anext__)r|)r)rrrrrrr^rSr?rsrJrurMrvrNr{rr}rrrrrrrrr_s"  [ 2)r)NN)NN)N)N)__all__Zsockethasattrr r rlogrZtasksrrrEOFErrorr Exceptionrrrr r ZProtocolr3rrrrrrrs0      "  A@K