î
)Ú X´  ã               @   s†   d  d l  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 d d l m Z Gd	 d
 „  d
 e ƒ Z d S)é    Né   )ÚMultiByteCharSetProber)ÚCodingStateMachine)ÚSJISDistributionAnalysis)ÚSJISContextAnalysis)ÚSJISSMModel)Ú	constantsc               @   sL   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S)Ú
SJISProberc             C   sB   t  j |  ƒ t t ƒ |  _ t ƒ  |  _ t ƒ  |  _ |  j	 ƒ  d  S)N)
r   Ú__init__r   r   Ú
_mCodingSMr   Ú_mDistributionAnalyzerr   Ú_mContextAnalyzerÚreset)Úself© r   úT/home/ubuntu/projects/ifolica/build/requests/requests/packages/chardet/sjisprober.pyr
   &   s
    zSJISProber.__init__c             C   s   t  j |  ƒ |  j j ƒ  d  S)N)r   r   r   )r   r   r   r   r   -   s    zSJISProber.resetc             C   s   |  j  j ƒ  S)N)r   Úget_charset_name)r   r   r   r   r   1   s    zSJISProber.get_charset_namec             C   så  t  | ƒ } xlt d | ƒ D][} |  j j | | ƒ } | t j k r‹ t j r{ t j j	 |  j
 ƒ  d t | ƒ d ƒ n  t j |  _ Pq | t j k rª t j |  _ Pq | t j k r |  j j ƒ  } | d k r"| d |  j d <|  j j |  j d | d  … | ƒ |  j j |  j | ƒ qw|  j j | | d | | d | … | ƒ |  j j | | d | d … | ƒ q q W| | d |  j d <|  j ƒ  t j k rÛ|  j j ƒ  rÛ|  j ƒ  t j k rÛt j |  _ qÛn  |  j ƒ  S)Nr   z prober hit error at byte Ú
r   é   é   )ÚlenÚranger   Z
next_stater   ZeErrorÚ_debugÚsysÚstderrÚwriter   ÚstrZeNotMeZ_mStateZeItsMeZeFoundItZeStartZget_current_charlenZ
_mLastCharr   Úfeedr   Z	get_stateZ
eDetectingZgot_enough_dataÚget_confidenceZSHORTCUT_THRESHOLD)r   ÚaBufZaLenÚiZcodingStateZcharLenr   r   r   r   4   s:    		"zSJISProber.feedc             C   s+   |  j  j ƒ  } |  j j ƒ  } t | | ƒ S)N)r   r   r   Úmax)r   ZcontxtCfZ	distribCfr   r   r   r   X   s    zSJISProber.get_confidenceN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r   r   r   r	   %   s
   $r	   )r   Zmbcharsetproberr   Zcodingstatemachiner   Zchardistributionr   Zjpcntxr   Zmbcssmr   Ú r   r	   r   r   r   r   Ú<module>   s   