uawdijnntqw1x1x1
IP : 3.135.205.24
Hostname : host45.registrar-servers.com
Kernel : Linux host45.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
..
/
lib64
/
cifs-utils
/
..
/
enchant
/
..
/
python3.6
/
__pycache__
/
asynchat.cpython-36.opt-1.pyc
/
/
3 \@,�@sDdZddlZddlmZGdd�dej�ZGdd�d�Zdd �ZdS) a�A class supporting chat-style (command/response) protocols. This class adds support for 'chat' style protocols - where one side sends a 'command', and the other sends a response (examples would be the common internet protocols - smtp, nntp, ftp, etc..). The handle_read() method looks at the input stream for the current 'terminator' (usually '\r\n' for single-line responses, '\r\n.\r\n' for multi-line output), calling self.found_terminator() on its receipt. for example: Say you build an async nntp client using this class. At the start of the connection, you'll have self.terminator set to '\r\n', in order to process the single-line greeting. Just before issuing a 'LIST' command you'll set it to '\r\n.\r\n'. The output of the LIST command will be accumulated (using your own 'collect_incoming_data' method) up to the terminator, and then control will be returned to you - by calling your self.found_terminator() method. �N)�dequec@s�eZdZdZdZdZdZdZd(dd�Zdd �Z d d�Z dd �Zdd�Zdd�Z dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�ZdS))� async_chatz�This is an abstract class. You must derive from this class, and add the two methods collect_incoming_data() and found_terminator()irzlatin-1NcCs(d|_g|_t�|_tjj|||�dS)N�)�ac_in_buffer�incomingr� producer_fifo�asyncore� dispatcher�__init__)�selfZsock�map�r � /usr/lib64/python3.6/asynchat.pyr Cszasync_chat.__init__cCstd��dS)Nzmust be implemented in subclass)�NotImplementedError)r�datar r r�collect_incoming_dataQsz async_chat.collect_incoming_datacCs|jj|�dS)N)r�append)rrr r r�_collect_incoming_dataTsz!async_chat._collect_incoming_datacCsdj|j�}|jdd�=|S)Nr)�joinr)r�dr r r� _get_dataWszasync_chat._get_datacCstd��dS)Nzmust be implemented in subclass)r)rr r r�found_terminator\szasync_chat.found_terminatorcCsBt|t�r|jrt||j�}nt|t�r8|dkr8td��||_dS)zdSet the input delimiter. Can be a fixed string of any length, an integer, or None. rz-the number of received bytes must be positiveN)� isinstance�str�use_encoding�bytes�encoding�int� ValueError� terminator)rZtermr r r�set_terminator_s zasync_chat.set_terminatorcCs|jS)N)r)rr r r�get_terminatorjszasync_chat.get_terminatorcCs�y|j|j�}Wn:tk r$dStk rJ}z|j�dSd}~XnXt|t�rh|jrhtt|j �}|j ||_ �xV|j �r�t|j �}|j�}|s�|j |j �d|_ qxt|t��r|}||kr�|j |j �d|_ |j||_n2|j |j d|��|j |d�|_ d|_|j�qxt|�}|j j|�}|dk�rp|dk�rR|j |j d|��|j ||d�|_ |j�qxt|j |�}|�r�||k�r�|j |j d|��|j |d�|_ Pqx|j |j �d|_ qxWdS)Nrr����)Zrecv�ac_in_buffer_size�BlockingIOError�OSError�handle_errorrrrrrr�lenr!rrrr�find�find_prefix_at_end)rrZwhyZlbr�nZterminator_len�indexr r r�handle_readrsR zasync_chat.handle_readcCs|j�dS)N)� initiate_send)rr r r�handle_write�szasync_chat.handle_writecCs|j�dS)N)�close)rr r r�handle_close�szasync_chat.handle_closecCs|t|tttf�stdt|���|j}t|�|krdx>tdt|�|�D]}|j j ||||��qBWn|j j |�|j�dS)Nz#data argument must be byte-ish (%r)r)rr� bytearray� memoryview� TypeError�type�ac_out_buffer_sizer(�rangerrr.)rrZsabs�ir r r�push�s zasync_chat.pushcCs|jj|�|j�dS)N)rrr.)rZproducerr r r�push_with_producer�szasync_chat.push_with_producercCsdS)z4predicate for inclusion in the readable for select()r"r )rr r r�readable�szasync_chat.readablecCs|jp|jS)z4predicate for inclusion in the writable for select())r� connected)rr r r�writable�szasync_chat.writablecCs|jjd�dS)zAautomatically close this channel once the outgoing queue is emptyN)rr)rr r r�close_when_done�szasync_chat.close_when_donecCs�x|jo|j�r|jd}|s<|jd=|dkr<|j�dS|j}y|d|�}Wn8tk r�|j�}|r||jj|�n|jd=wYnXt|t�r�|j r�t ||j�}y|j|�}Wnt k r�|j�dSX|�r|t|�ks�|t|�k�r||d�|jd<n|jd=dSWdS)Nr)rr<r1r6r4�more� appendleftrrrrr�sendr&r'r()r�firstZobsrZnum_sentr r rr.�s8 zasync_chat.initiate_sendcCs d|_|jdd�=|jj�dS)Nr)rrr�clear)rr r r�discard_buffersszasync_chat.discard_buffers)NN)�__name__� __module__�__qualname__�__doc__r$r6rrr rrrrr r!r-r/r1r9r:r;r=r>r.rDr r r rr4s, H(rc@seZdZddd�Zdd�ZdS)�simple_producer�cCs||_||_dS)N)r�buffer_size)rrrKr r rr szsimple_producer.__init__cCsJt|j�|jkr6|jd|j�}|j|jd�|_|S|j}d|_|SdS)Nr)r(rrK)r�resultr r rr?szsimple_producer.moreN)rJ)rErFrGr r?r r r rrIs rIcCs6t|�d}x$|r0|j|d|��r0|d8}qW|S)Nr")r(�endswith)ZhaystackZneedle�lr r rr*/sr*)rHr�collectionsrr rrIr*r r r r�<module>/s\
/home/../lib64/cifs-utils/../enchant/../python3.6/__pycache__/asynchat.cpython-36.opt-1.pyc