� ��^i�$��.�ddlmZmZmZddlmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZmZmZGd�de��ZGd�d e��ZGd �d e��ZGd �d e��ZGd�de��ZGd�de��ZGd�de��ZdS)�)�EUCTW_CHAR_TO_FREQ_ORDER�EUCTW_TABLE_SIZE� EUCTW_TYPICAL_DISTRIBUTION_RATIO)�EUCKR_CHAR_TO_FREQ_ORDER�EUCKR_TABLE_SIZE� EUCKR_TYPICAL_DISTRIBUTION_RATIO)�GB2312_CHAR_TO_FREQ_ORDER�GB2312_TABLE_SIZE�!GB2312_TYPICAL_DISTRIBUTION_RATIO)�BIG5_CHAR_TO_FREQ_ORDER�BIG5_TABLE_SIZE�BIG5_TYPICAL_DISTRIBUTION_RATIO)�JIS_CHAR_TO_FREQ_ORDER�JIS_TABLE_SIZE�JIS_TYPICAL_DISTRIBUTION_RATIOc�B�eZdZdZdZdZdZd�Zd�Zd�Z d�Z d �Z d �Z d S) �CharDistributionAnalysisig�G�z��?g{�G�z�?�c��d|_d|_d|_d|_d|_d|_|���dS�N)�_char_to_freq_order� _table_size�typical_distribution_ratio�_done� _total_chars� _freq_chars�reset��selfs ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/chardet/chardistribution.py�__init__z!CharDistributionAnalysis.__init__.sF��$(�� ���� +/��'��� � ������ � � � � � � � �c�0�d|_d|_d|_dS)zreset analyser, clear any stateF�N)rrrrs r rzCharDistributionAnalysis.reset=s!���� ��������r"c���|dkr|�|��}nd}|dkr>|xjdz c_||jkr%d|j|kr|xjdz c_dSdSdSdS)z"feed a character with known length������r$riN)� get_orderrrrr)r�char�char_len�orders r �feedzCharDistributionAnalysis.feedFs��� �q�=�=��N�N�4�(�(�E�E��E� �A�:�:� � � �� "� � ��t�'�'�'���1�%�8�8�8��$�$��)�$�$�$�$� �:�(�'�8�8r"c���|jdks|j|jkr|jS|j|jkr,|j|j|jz |jzz }||jkr|S|jS)z(return confidence based on existing datar$)rr�MINIMUM_DATA_THRESHOLD�SURE_NOr�SURE_YES)r�rs r �get_confidencez'CharDistributionAnalysis.get_confidenceTs|�� � �� !� !�T�%5��9T�%T�%T��<� � � �� 0� 0� 0��!�d�&7�$�:J�&J��2�&3�4�A��4�=� � ����}�r"c�"�|j|jkSr)r�ENOUGH_DATA_THRESHOLDrs r �got_enough_dataz(CharDistributionAnalysis.got_enough_datads��� �4�#=�=�=r"c��dS)Nr'�)r�byte_strs r r(z"CharDistributionAnalysis.get_orderis �� �rr"N) �__name__� __module__� __qualname__r4r0r/r.r!rr,r2r5r(r7r"r rr(s������� ���H��G��� � � ���� *� *� *���� >�>�>� ����r"rc�$��eZdZ�fd�Zd�Z�xZS)�EUCTWDistributionAnalysisc���tt|�����t|_t |_t|_dSr) �superr=r!rrrrrr�r� __class__s �r r!z"EUCTWDistributionAnalysis.__init__r�>��� �'��.�.�7�7�9�9�9�#;�� �+���*J��'�'�'r"c�J�|d}|dkrd|dz z|dzdz SdS)Nr$���^r�r'r7�rr8� first_chars r r(z#EUCTWDistributionAnalysis.get_orderx�;�� �a�[� � �� � ���d�*�+�h�q�k�9�D�@� @��2r"�r9r:r;r!r(� __classcell__�rAs@r r=r=q�L�������K�K�K�K�K� � � � � � � r"r=c�$��eZdZ�fd�Zd�Z�xZS)�EUCKRDistributionAnalysisc���tt|�����t|_t |_t|_dSr) r?rOr!rrrrrrr@s �r r!z"EUCKRDistributionAnalysis.__init__�rBr"c�J�|d}|dkrd|dz z|dzdz SdS)Nr$�rErrFr'r7rGs r r(z#EUCKRDistributionAnalysis.get_order�rIr"rJrLs@r rOrO�rMr"rOc�$��eZdZ�fd�Zd�Z�xZS)�GB2312DistributionAnalysisc���tt|�����t|_t |_t|_dSr) r?rTr!r rr rr rr@s �r r!z#GB2312DistributionAnalysis.__init__�s>��� �(�$�/�/�8�8�:�:�:�#<�� �,���*K��'�'�'r"c�Z�|d|d}}|dkr|dkrd|dz z|zdz SdS)Nr$rrRrFrEr'r7�rr8rH� second_chars r r(z$GB2312DistributionAnalysis.get_order�sI�� #+�1�+�x��{�K� � �$� � �[�D�%8�%8���d�*�+�k�9�D�@� @��2r"rJrLs@r rTrT�sL�������L�L�L�L�L� � � � � � � r"rTc�$��eZdZ�fd�Zd�Z�xZS)�Big5DistributionAnalysisc���tt|�����t|_t |_t|_dSr) r?rZr!r rr rrrr@s �r r!z!Big5DistributionAnalysis.__init__�s>��� �&��-�-�6�6�8�8�8�#:�� �*���*I��'�'�'r"c�|�|d|d}}|dkr%|dkrd|dz z|zdz dzSd|dz z|zdz SdS) Nr$r�rF��?�@r'r7rWs r r(z"Big5DistributionAnalysis.get_order�si�� #+�1�+�x��{�K� � �� � ��d�"�"��j�4�/�0�;�>��E��J�J��j�4�/�0�;�>��E�E��2r"rJrLs@r rZrZ�sL�������J�J�J�J�J� � � � � � � r"rZc�$��eZdZ�fd�Zd�Z�xZS)�SJISDistributionAnalysisc���tt|�����t|_t |_t|_dSr) r?rbr!rrrrrrr@s �r r!z!SJISDistributionAnalysis.__init__�s>��� �&��-�-�6�6�8�8�8�#9�� �)���*H��'�'�'r"c��|d|d}}|dkr|dkr d|dz z}n|dkr|dkr d|dz dzz}nd S||zd z }|d krd }|S) Nr$r��������r'r`�r7)rr8rHrXr+s r r(z"SJISDistributionAnalysis.get_order�s��� #+�1�+�x��{�K� � �$� � �Z�4�%7�%7��:��,�-�E�E��D� � �z�T�'9�'9��:��,�r�1�2�E�E��2�� �#�d�*�� �� � ��E�� r"rJrLs@r rbrb�sL�������I�I�I�I�I� ������r"rbc�$��eZdZ�fd�Zd�Z�xZS)�EUCJPDistributionAnalysisc���tt|�����t|_t |_t|_dSr) r?rmr!rrrrrrr@s �r r!z"EUCJPDistributionAnalysis.__init__�s>��� �'��.�.�7�7�9�9�9�#9�� �)���*H��'�'�'r"c�J�|d}|dkrd|dz z|dzdz SdS)Nr$�rErFrr'r7)rr8r)s r r(z#EUCJPDistributionAnalysis.get_order�s8�� ��{�� �4�<�<�����%��� �3�d�:� :��2r"rJrLs@r rmrm�sL�������I�I�I�I�I� � � � � � � r"rmN)� euctwfreqrrr� euckrfreqrrr� gb2312freqr r r �big5freqr r r�jisfreqrrr�objectrr=rOrTrZrbrmr7r"r �rws>��8:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�<�<�<�<�<�<�<�<�<�<�8�8�8�8�8�8�8�8�8�8�6�6�6�6�6�6�6�6�6�6�F�F�F�F�F�v�F�F�F�R����� 8����&����� 8����&�����!9����&�����7����,�����7����2����� 8�����r"