grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B Ž¥»cÇZ1²ã@s@ddlZddlmZGdd„dejƒZGdd„dƒZdd„ZdS) éN)Údequec@s¦eZdZdZdZdZdZd'dd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„ZdS)(Ú async_chatirzlatin-1NcCs(d|_g|_tƒ|_tj |||¡dS)Nó)Ú ac_in_bufferÚincomingrÚ producer_fifoÚasyncoreÚ dispatcherÚ__init__)ÚselfZsockÚmap©r ú-/opt/alt/python37/lib64/python3.7/asynchat.pyr Cszasync_chat.__init__cCs tdƒ‚dS)Nzmust be implemented in subclass)ÚNotImplementedError)r Údatar r rÚcollect_incoming_dataQsz async_chat.collect_incoming_datacCs|j |¡dS)N)rÚappend)r rr r rÚ_collect_incoming_dataTsz!async_chat._collect_incoming_datacCsd |j¡}|jdd…=|S)Nr)Újoinr)r Údr r rÚ _get_dataWs  zasync_chat._get_datacCs tdƒ‚dS)Nzmust be implemented in subclass)r)r r r rÚfound_terminator\szasync_chat.found_terminatorcCsBt|tƒr|jrt||jƒ}nt|tƒr8|dkr8tdƒ‚||_dS)Nrz-the number of received bytes must be positive)Ú isinstanceÚstrÚ use_encodingÚbytesÚencodingÚintÚ ValueErrorÚ terminator)r Ztermr r rÚset_terminator_s zasync_chat.set_terminatorcCs|jS)N)r)r r r rÚget_terminatorjszasync_chat.get_terminatorc CsÔy| |j¡}Wn<tk r$dStk rL}z | ¡dSd}~XYnXt|tƒrj|jrjtt|j ƒ}|j ||_ �xV|j �rÎt |j ƒ}|  ¡}|s¬|  |j ¡d|_ qzt|tƒ�r|}||krä|  |j ¡d|_ |j||_n2|  |j d|…¡|j |d…|_ d|_| ¡qzt |ƒ}|j  |¡}|dk�rr|dk�rT|  |j d|…¡|j ||d…|_ | ¡qzt|j |ƒ}|�rº||k�r¶|  |j d| …¡|j | d…|_ Pqz|  |j ¡d|_ qzWdS)Nrréÿÿÿÿ)ZrecvÚac_in_buffer_sizeÚBlockingIOErrorÚOSErrorÚ handle_errorrrrrrrÚlenr!rrrrÚfindÚfind_prefix_at_end)r rZwhyZlbrÚnZterminator_lenÚindexr r rÚ handle_readrsR               zasync_chat.handle_readcCs | ¡dS)N)Ú initiate_send)r r r rÚ handle_writeºszasync_chat.handle_writecCs | ¡dS)N)Úclose)r r r rÚ handle_close½szasync_chat.handle_closecCs|t|tttfƒstdt|ƒƒ‚|j}t|ƒ|krdx>tdt|ƒ|ƒD]}|j   ||||…¡qBWn |j   |¡|  ¡dS)Nz#data argument must be byte-ish (%r)r) rrÚ bytearrayÚ memoryviewÚ TypeErrorÚtypeÚac_out_buffer_sizer'Úrangerrr-)r rZsabsÚir r rÚpushÀs   zasync_chat.pushcCs|j |¡| ¡dS)N)rrr-)r Zproducerr r rÚpush_with_producerÌs zasync_chat.push_with_producercCsdS)Nér )r r r rÚreadableÐszasync_chat.readablecCs|jp |j S)N)rÚ connected)r r r rÚwritableØszasync_chat.writablecCs|j d¡dS)N)rr)r r r rÚclose_when_doneÜszasync_chat.close_when_donecCs�x|j�r|j�r|jd}|s>|jd=|dkr>| ¡dS|j}y|d|…}Wn8tk rŒ| ¡}|r~|j |¡n|jd=wYnXt|tƒrª|j rªt ||j ƒ}y|  |¡}Wnt k rÔ| ¡dSX|�r|t|ƒksö|t|ƒk�r ||d…|jd<n|jd=dSWdS)Nr)rr<r0r5r3ÚmoreÚ appendleftrrrrrÚsendr%r&r')r ÚfirstZobsrZnum_sentr r rr-às8  zasync_chat.initiate_sendcCs d|_|jdd…=|j ¡dS)Nr)rrrÚclear)r r r rÚdiscard_bufferss zasync_chat.discard_buffers)NN)Ú__name__Ú __module__Ú __qualname__r#r5rrr rrrrr r!r,r.r0r8r9r;r=r>r-rDr r r rr4s*  H (rc@seZdZddd„Zdd„ZdS)Úsimple_producerécCs||_||_dS)N)rÚ buffer_size)r rrJr r rr szsimple_producer.__init__cCsJt|jƒ|jkr6|jd|j…}|j|jd…|_|S|j}d|_|SdS)Nr)r'rrJ)r Úresultr r rr?szsimple_producer.moreN)rI)rErFrGr r?r r r rrHs rHcCs4t|ƒd}x"|r.| |d|…¡s.|d8}qW|S)Nr:)r'Úendswith)ZhaystackZneedleÚlr r rr)/s  r))rÚ collectionsrr rrHr)r r r rÚ0s  \