관리-도구
편집 파일: asynchat.cpython-311.opt-2.pyc
� c��f2- � � � 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 dZdZdZdZdd�Zd� 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_buffer�incomingr � producer_fifo�asyncore� dispatcher�__init__)�self�sock�maps �//opt/alt/python311/lib64/python3.11/asynchat.pyr zasync_chat.__init__J sB � ���� �� � #�W�W�����$�$�T�4��5�5�5�5�5r c � � t d� � ��Nzmust be implemented in subclass��NotImplementedError�r �datas r �collect_incoming_dataz async_chat.collect_incoming_dataX � � �!�"C�D�D�Dr 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( � ��H�H�T�]�#�#���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)� isinstance�str�use_encoding�bytes�encoding�int� ValueError� terminator)r �terms r �set_terminatorzasync_chat.set_terminatorf so � � � �d�C� � � N�T�%6� N���t�}�-�-�D�D� ��c� "� "� N�t�a�x�x��L�M�M�M�����r 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 �r�t | j � � }| � � � }|s#| � | j � � d| _ �n�t |t � � r�|}||k r2| � | j � � d| _ | j |z | _ �nM| � | j d |� � � | j |d � | _ d| _ | � � � n�t |� � }| 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 ���)�recv�ac_in_buffer_size�BlockingIOError�OSError�handle_errorr+ r, r- r. r/ r �lenr6 r r0 r2 r) �find�find_prefix_at_end)r r �lbr2 �n�terminator_len�indexs r �handle_readzasync_chat.handle_ready s� � � ��9�9�T�3�4�4�D�D��� � � ��F�F�� � � ��������F�F� ���� �d�C� � � -�T�%6� -���d�m�,�,�D� �-��4��� �� 3 0��T�&�'�'�B��,�,�.�.�J�� 0 0��*�*�4�+<�=�=�=�$'��!�!��J��,�,� , 0�����6�6��.�.�t�/@�A�A�A�(+�D�%�&*�o��&:�D�O�O��.�.�t�/@��!��/D�E�E�E�(,�(9�!�"�"�(=�D�%�&'�D�O��)�)�+�+�+�+� "%�Z�����)�.�.�z�:�:���B�;�;��q�y�y� �2�2�4�3D�V�e�V�3L�M�M�M�(,�(9�%��:N�:O�:O�(P�D�%� �)�)�+�+�+�+� /�t�/@�*�M�M�E�� 0� �B�;�;� �6�6�t�7H��5�&��7Q�R�R�R�04�0A�5�&�'�'�0J�D�-��� �2�2�4�3D�E�E�E�,/��)�g �� 3 0� 3 0� 3 0� 3 0� 3 0s � � A�A� 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� TypeError�type�ac_out_buffer_sizer>