/g2- d dl Z d dlmZ d dlmZ dZ eeed G d de j Z G d d
Z d Z
dS ) N)deque)_deprecatedznThe {name} module is deprecated and will be removed in Python {remove}. The recommended replacement is asyncio) )removec e Zd Z dZdZdZdZddZd Zd Z d Z
d Zd
Zd Z
d Zd
Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
async_chati r zlatin-1Nc d| _ g | _ t | _ t j | || d S N )ac_in_bufferincomingr
producer_fifoasyncore
dispatcher__init__)selfsockmaps //opt/alt/python311/lib64/python3.11/asynchat.pyr zasync_chat.__init__J sB
#WW$$T455555r c t d Nzmust be implemented in subclassNotImplementedErrorr datas r collect_incoming_dataz async_chat.collect_incoming_dataX !"CDDDr c : | j | d S N)r appendr s r _collect_incoming_dataz!async_chat._collect_incoming_data[ s
T"""""r c N d | j }| j d d = |S r )joinr )r ds r _get_datazasync_chat._get_data^ s( HHT]##M!!!r c t d r r r s r found_terminatorzasync_chat.found_terminatorc r r c t |t r| j rt || j }n*t |t
r|dk rt
d || _ d S )Nr z-the number of received bytes must be positive)
isinstancestruse_encodingbytesencodingint
ValueError
terminator)r terms r set_terminatorzasync_chat.set_terminatorf so dC NT%6 Nt}--DD
c
"
" NtaxxLMMMr c | j S r )r2 r( s r get_terminatorzasync_chat.get_terminatorq s
r c | | j }n1# t $ r Y d S t $ r | Y d S w xY wt |t r!| j rt t | j }| j
|z | _
| j
rt | j
}| }|s#|
| j
d| _
nt |t r|}||k r2|
| j
d| _
| j |z
| _ nM|
| j
d | | j
|d | _
d| _ | nt | }| j
| }|dk rT|dk r"|
| j
d | | j
||z d | _
| nxt% | j
| }|r@||k r8|
| j
d | | j
| d | _
d S |
| j
d| _
| j
d S d S )Nr r )recvac_in_buffer_sizeBlockingIOErrorOSErrorhandle_errorr+ r, r- r. r/ r
lenr6 r r0 r2 r) findfind_prefix_at_end)r r lbr2 nterminator_lenindexs r handle_readzasync_chat.handle_ready s 99T344DD FF FF dC -T%6 -dm,,D -4 3 0T&''B,,..J 0
0**4+<===$'!!J,, ,
066..t/@AAA(+D%&*o&:DOO..t/@!/DEEE(,(9!""(=D%&'DO))++++ "%Z)..z::B;;qyy 2243DVeV3LMMM(,(9%:N:O:O(PD% ))++++ /t/@*MME 0 B;; 66t7H5&7QRRR040A5&''0JD- 2243DEEE,/)g 3 0 3 0 3 0 3 0 3 0s
AA
Ac . | d S r )
initiate_sendr( s r handle_writezasync_chat.handle_write s r c . | d S r )closer( s r handle_closezasync_chat.handle_close s
r c t |t t t f st dt | | j }t | |k rGt dt | | D ]'}| j
||||z (n| j
| | d S )Nz#data argument must be byte-ish (%r)r )r+ r. bytearray
memoryview TypeErrortypeac_out_buffer_sizer> ranger r! rG )r r sabsis r pushzasync_chat.push s $ : >?? (A JJ( (
(&t99t1c$ii..
:
:"))$q4x.9999
:
%%d+++r c b | j | | d S r )r r! rG )r producers r push_with_producerzasync_chat.push_with_producer s1 !!(+++r c dS N r( s r readablezasync_chat.readable s >
qr c " | j p| j S r )r connectedr( s r writablezasync_chat.writable s >!9$.&89r c <