a  ze h@s&dZddlZddlZddlZddlZeedr6ed7ZddlmZddlmZddlm Z dd lm Z dd lm Z dd l m Z dd lmZd ZddedddZd dedddZeedrd!dedddZd"dedddZGddde jZGdddee jZGdddZGdddZdS)#) StreamReader StreamWriterStreamReaderProtocolopen_connection start_serverNAF_UNIX)open_unix_connectionstart_unix_server) coroutines)events) exceptions)format_helpers) protocols)logger)sleepi)looplimitc sx|durt}ntjdtddt||d}t||d|jfdd||fi|IdH\}}t|||}||fS)N[The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10. stacklevelrrrcsSNrprotocolrC/opt/bitninja-python-dojo/embedded/lib/python3.9/asyncio/streams.py5z!open_connection..) r get_event_loopwarningswarnDeprecationWarningrrcreate_connectionr) hostportrrkwdsreader transport_writerrrrrs   rcsNdurtntjdtddfdd}j|||fi|IdHS)Nrrrcstd}t|d}|SNrrrrr)rclient_connected_cbrrrrfactoryXs  zstart_server..factory)r r!r"r#r$ create_server)r1r&r'rrr(r2rr0rr:s rcsv|durt}ntjdtddt||d}t||d|jfdd|fi|IdH\}}t|||}||fS)NrrrrrcsSrrrrrrrpr z&open_unix_connection..) r r!r"r#r$rrZcreate_unix_connectionr)pathrrr(r)r*r+r,rrrrds    rcsLdurtntjdtddfdd}j||fi|IdHS)Nrrrcstd}t|d}|Sr-r.r/r0rrr2~s  z"start_unix_server..factory)r r!r"r#r$Zcreate_unix_server)r1r4rrr(r2rr0rr ts r c@s>eZdZdddZddZddZdd Zd d Zd d ZdS)FlowControlMixinNcCs0|durt|_n||_d|_d|_d|_dSNF)r r!_loop_paused _drain_waiter_connection_lost)selfrrrr__init__s  zFlowControlMixin.__init__cCs d|_|jrtd|dS)NTz%r pauses writing)r8r7 get_debugrdebugr;rrr pause_writings zFlowControlMixin.pause_writingcCsFd|_|jrtd||j}|durBd|_|sB|ddS)NFz%r resumes writing)r8r7r=rr>r9done set_resultr;waiterrrrresume_writings  zFlowControlMixin.resume_writingcCsVd|_|jsdS|j}|dur"dSd|_|r4dS|durH|dn ||dSNT)r:r8r9rArB set_exceptionr;excrDrrrconnection_losts z FlowControlMixin.connection_lostcs<|jrtd|jsdS|j}|j}||_|IdHdS)NzConnection lost)r:ConnectionResetErrorr8r9r7 create_futurerCrrr _drain_helpers zFlowControlMixin._drain_helpercCstdSr)NotImplementedErrorr;streamrrr_get_close_waitersz"FlowControlMixin._get_close_waiter)N) __name__ __module__ __qualname__r<r@rErJrMrQrrrrr5s    r5csbeZdZdZdfdd ZeddZddZfdd Zd d Z d d Z ddZ ddZ Z S)rNcsntj|d|dur,t||_|j|_nd|_|dur@||_d|_d|_d|_ ||_ d|_ |j |_dS)NrF)superr<weakrefref_stream_reader_wr_source_traceback_strong_reader_reject_connection_stream_writer _transport_client_connected_cb _over_sslr7rL_closed)r;Z stream_readerr1r __class__rrr<s  zStreamReaderProtocol.__init__cCs|jdurdS|Sr)rXr?rrr_stream_readers z#StreamReaderProtocol._stream_readercCs|jr6ddi}|jr|j|d<|j||dS||_|j}|durT|||ddu|_ |j durt ||||j|_ | ||j }t |r|j|d|_dS)NmessagezpAn open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.Zsource_tracebackZ sslcontext)r[rYr7Zcall_exception_handlerabortr]rc set_transportget_extra_infor_r^rr\r Z iscoroutineZ create_taskrZ)r;r*contextr)resrrrconnection_mades0      z$StreamReaderProtocol.connection_madecsx|j}|dur*|dur |n |||jsV|durJ|jdn |j|t|d|_d|_ d|_ dSr) rcfeed_eofrGr`rArBrUrJrXr\r])r;rIr)rarrrJ s     z$StreamReaderProtocol.connection_lostcCs|j}|dur||dSr)rc feed_data)r;datar)rrr data_receivedsz"StreamReaderProtocol.data_receivedcCs$|j}|dur||jr dSdS)NFT)rcrkr_)r;r)rrr eof_received s z!StreamReaderProtocol.eof_receivedcCs|jSr)r`rOrrrrQ+sz&StreamReaderProtocol._get_close_waitercCs"|j}|r|s|dSr)r`rA cancelled exception)r;closedrrr__del__.szStreamReaderProtocol.__del__)NN)rRrSrTrYr<propertyrcrjrJrnrorQrs __classcell__rrrarrs    rc@sreZdZddZddZeddZddZd d Zd d Z d dZ ddZ ddZ ddZ dddZddZdS)rcCs4||_||_||_||_|j|_|jddSr)r] _protocol_readerr7rLZ _complete_futrB)r;r*rr)rrrrr<@s  zStreamWriter.__init__cCs@|jjd|jg}|jdur0|d|jdd|S)N transport=zreader=<{}> )rbrRr]rwappendformatjoinr;inforrr__repr__Js zStreamWriter.__repr__cCs|jSrr]r?rrrr*PszStreamWriter.transportcCs|j|dSr)r]writer;rmrrrrTszStreamWriter.writecCs|j|dSr)r] writelinesrrrrrWszStreamWriter.writelinescCs |jSr)r] write_eofr?rrrrZszStreamWriter.write_eofcCs |jSr)r] can_write_eofr?rrrr]szStreamWriter.can_write_eofcCs |jSr)r]closer?rrrr`szStreamWriter.closecCs |jSr)r] is_closingr?rrrrcszStreamWriter.is_closingcs|j|IdHdSr)rvrQr?rrr wait_closedfszStreamWriter.wait_closedNcCs|j||Sr)r]rg)r;namedefaultrrrrgiszStreamWriter.get_extra_infocsL|jdur |j}|dur ||jr8tdIdH|jIdHdS)Nr)rwrqr]rrrvrM)r;rIrrrdrainls   zStreamWriter.drain)N)rRrSrTr<rrtr*rrrrrrrrgrrrrrr6s    rc@seZdZdZedfddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZd&ddZd'ddZd d!Zd"d#Zd$d%ZdS)(rNcCsv|dkrtd||_|dur*t|_n||_t|_d|_d|_d|_ d|_ d|_ |j rrt td|_dS)NrzLimit cannot be <= 0Fr ) ValueError_limitr r!r7 bytearray_buffer_eof_waiter _exceptionr]r8r=r extract_stacksys _getframerY)r;rrrrrr<s   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=rxZpausedryrz) rr{lenrr_DEFAULT_LIMITrrr]r8r|r}r~rrrrs    zStreamReader.__repr__cCs|jSr)rr?rrrrqszStreamReader.exceptioncCs0||_|j}|dur,d|_|s,||dSr)rrrprGrHrrrrGs zStreamReader.set_exceptioncCs*|j}|dur&d|_|s&|ddSr)rrprBrCrrr_wakeup_waiters zStreamReader._wakeup_waitercCs ||_dSrr)r;r*rrrrfszStreamReader.set_transportcCs*|jr&t|j|jkr&d|_|jdSr6)r8rrrr]resume_readingr?rrr_maybe_resume_transportsz$StreamReader._maybe_resume_transportcCsd|_|dSrF)rrr?rrrrkszStreamReader.feed_eofcCs|jo |j Sr)rrr?rrrat_eofszStreamReader.at_eofcCsr|sdS|j|||jdurn|jsnt|jd|jkrnz|jWntyfd|_Yn0d|_dS)NrT) rextendrr]r8rrZ pause_readingrNrrrrrls    zStreamReader.feed_datacs^|jdurt|d|jr.d|_|j|j|_z|jIdHWd|_nd|_0dS)NzF() called while another coroutine is already waiting for incoming dataF)r RuntimeErrorr8r]rr7rL)r; func_namerrr_wait_for_datas   zStreamReader._wait_for_datac sd}t|}z||IdH}WntjyL}z|jWYd}~Sd}~0tjy}zP|j||jr|jd|j|=n |j | t |j dWYd}~n d}~00|S)N r) r readuntilr IncompleteReadErrorpartialLimitOverrunErrorr startswithconsumedclearrrargs)r;sepseplenlineerrrreadline s $zStreamReader.readlinercst|}|dkrtd|jdur(|jd}t|j}|||kr||j||}|dkrZq|d|}||jkr|td||jrt |j}|j t |d| dIdHq,||jkrtd||jd||}|jd||=| t |S)Nrz,Separator should be at least one-byte stringr z2Separator is not found, and chunk exceed the limitrz2Separator is found, but chunk is longer than limit)rrrrfindrr rrbytesrrrr)r; separatorroffsetbuflenZisepchunkrrrr(s<         zStreamReader.readuntilrcs|jdur|j|dkrdS|dkrVg}||jIdH}|s@qL||q(d|S|jsr|jsr|dIdHt|jd|}|jd|=| |S)Nrr read) rrrr{r}rrrrr)r;nZblocksblockrmrrrrs"     zStreamReader.readcs|dkrtd|jdur |j|dkr,dSt|j|krr|jr`t|j}|jt||| dIdHq,t|j|krt|j}|jnt|jd|}|jd|=| |S)Nrz*readexactly size can not be less than zeror readexactly) rrrrrrrr rrr)r;rZ incompletermrrrrs&       zStreamReader.readexactlycCs|Srrr?rrr __aiter__szStreamReader.__aiter__cs|IdH}|dkrt|S)Nr )rStopAsyncIteration)r;valrrr __anext__szStreamReader.__anext__)r)r)rRrSrTrYrr<rrqrGrrfrrkrrlrrrrrrrrrrrrs$  [ 2)r)NN)NN)N)N)__all__socketrr"rVhasattrr r r rrlogrZtasksrrrrrr Protocolr5rrrrrrrs>         ! '   DkP