o 0¦i - ã @ s\ d dl Z d dlmZ d dlmZ ededd� G dd„ de jƒZG d d „ d ƒZdd„ Z dS ) é N)Údeque)ÚwarnzlThe asynchat module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncioé )Ú stacklevelc @ s¨ e Zd Z dZdZdZdZd'dd„Zdd„ Zd d „ Z dd„ Z d d„ Zdd„ Zdd„ Z dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ ZdS )(Ú async_chati r zlatin-1Nc C s( d| _ g | _tƒ | _tj | ||¡ d S ©Nó )Úac_in_bufferÚincomingr Ú producer_fifoÚasyncoreÚ dispatcherÚ__init__)ÚselfZsockÚmap© r ú//opt/alt/python310/lib64/python3.10/asynchat.pyr K s zasync_chat.__init__c C ó t dƒ‚©Nzmust be implemented in subclass©ÚNotImplementedError©r Údatar r r Úcollect_incoming_dataY ó z async_chat.collect_incoming_datac C s | j |¡ d S ©N)r Úappendr r r r Ú_collect_incoming_data\ s z!async_chat._collect_incoming_datac C s d | j¡}| jd d …= |S r )Újoinr )r Údr r r Ú _get_data_ s zasync_chat._get_datac C r r r ©r r r r Úfound_terminatord r zasync_chat.found_terminatorc C sD t |tƒr| jrt|| jƒ}n t |tƒr|dk rtdƒ‚|| _d S )Nr z-the number of received bytes must be positive)Ú isinstanceÚstrÚuse_encodingÚbytesÚencodingÚintÚ ValueErrorÚ terminator)r Ztermr r r Úset_terminatorg s zasync_chat.set_terminatorc C s | j S r )r* r! r r r Úget_terminatorr s zasync_chat.get_terminatorc C s¼ z| | j¡}W n ty Y d S ty | ¡ Y d S w t|tƒr.| jr.tt| j ƒ}| j | | _ | j rÜt| j ƒ}| ¡ }|sL| | j ¡ d| _ n‹t|tƒr�|}||k rg| | j ¡ d| _ | j| | _np| | j d |… ¡ | j |d … | _ d| _| ¡ nVt|ƒ}| j |¡}|dkr¬|dkr�| | j d |… ¡ | j || d … | _ | ¡ n+t| j |ƒ}|rÎ||krÌ| | j d | … ¡ | j | d … | _ d S | | j ¡ d| _ | j s7d S d S )Nr r éÿÿÿÿ)ZrecvÚac_in_buffer_sizeÚBlockingIOErrorÚOSErrorÚhandle_errorr# r$ r% r&