î
)Ú X¸  ã               @   s£   d  d l  m Z d d l Z 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 Z d Z d Z d  Z d	 Z Gd
 d „  d ƒ Z d S)é   )Ú	constantsé    N)ÚLatin1Prober)ÚMBCSGroupProber)ÚSBCSGroupProber)ÚEscCharSetProbergš™™™™™É?é   c               @   s@   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 S)
ÚUniversalDetectorc             C   sD   t  j d ƒ |  _ t  j d ƒ |  _ d  |  _ g  |  _ |  j ƒ  d  S)Ns   [€-ÿ]s   (|~{))ÚreÚcompileÚ_highBitDetectorÚ_escDetectorÚ_mEscCharSetProberÚ_mCharSetProbersÚreset)Úself© r   ú[/home/ubuntu/projects/ifolica/build/requests/requests/packages/chardet/universaldetector.pyÚ__init__-   s
    		zUniversalDetector.__init__c             C   s   i d  d 6d d 6|  _  d |  _ d |  _ d |  _ t |  _ d |  _ |  j r] |  j j ƒ  n  x |  j	 D] } | j ƒ  qg Wd  S)NÚencodingg        Ú
confidenceFTó    )
ÚresultÚdoneZ_mStartÚ	_mGotDataÚ
ePureAsciiÚ_mInputStateÚ
_mLastCharr   r   r   )r   Úproberr   r   r   r   4   s    						zUniversalDetector.resetc             C   sN  |  j  r d  St | ƒ } | s# d  S|  j sŽ| d  d … t j k r_ i d d 6d d 6|  _ qŽ| d  d … t j k r’ i d d 6d d 6|  _ qŽ| d  d … t j k rÅ i d d 6d d 6|  _ qŽ| d  d … d	 k rõ i d
 d 6d d 6|  _ qŽ| d  d … d k r%i d d 6d d 6|  _ qŽ| d  d … t j k rXi d d 6d d 6|  _ qŽ| d  d … t j	 k rŽi d d 6d d 6|  _ qŽn  d |  _ |  j d rÄ|  j d d k rÄd |  _  d  S|  j
 t k r(|  j j | ƒ rñt |  _
 q(|  j
 t k r(|  j j |  j | ƒ r(t |  _
 q(n  | d d  … |  _ |  j
 t k rµ|  j sbt ƒ  |  _ n  |  j j | ƒ t j k rJi |  j j ƒ  d 6|  j j ƒ  d 6|  _ d |  _  qJn• |  j
 t k rJ|  j sët ƒ  t ƒ  t ƒ  g |  _ n  x\ |  j D]N } | j | ƒ t j k rõi | j ƒ  d 6| j ƒ  d 6|  _ d |  _  PqõqõWn  d  S)Né   z	UTF-8-SIGr   g      ð?r   é   zUTF-32LEzUTF-32BEs   þÿ  zX-ISO-10646-UCS-4-3412s     ÿþzX-ISO-10646-UCS-4-2143r   zUTF-16LEzUTF-16BETg        r   éÿÿÿÿ)r   Úlenr   ÚcodecsÚBOM_UTF8r   ÚBOM_UTF32_LEÚBOM_UTF32_BEÚBOM_LEÚBOM_BEr   r   r   ÚsearchÚ	eHighbyter   r   Ú	eEscAsciir   r   Úfeedr   ZeFoundItÚget_charset_nameÚget_confidencer   r   r   r   )r   ÚaBufZaLenr   r   r   r   r,   @   sh    			 				zUniversalDetector.feedc             C   s€  |  j  r d  S|  j s6 t j r2 t j j d ƒ n  d  Sd |  _  |  j t k rl i d d 6d d 6|  _	 |  j	 S|  j t
 k rd  } d } d  } xD |  j D]9 } | s© q— n  | j ƒ  } | | k r— | } | } q— q— W| r| t k ri | j ƒ  d 6| j ƒ  d 6|  _	 |  j	 Sn  t j r|t j j d ƒ xM |  j d	 j D]8 } | sOq=n  t j j d
 | j ƒ  | j ƒ  f ƒ q=Wn  d  S)Nzno data received!
TÚasciir   g      ð?r   g        z"no probers hit minimum threshhold
r   z%s confidence = %s
)r   r   r   Ú_debugÚsysÚstderrÚwriter   r   r   r*   r   r.   ÚMINIMUM_THRESHOLDr-   ZmProbers)r   ZproberConfidenceZmaxProberConfidenceZ	maxProberr   r   r   r   Úclose†   sB    				
		zUniversalDetector.closeN)Ú__name__Ú
__module__Ú__qualname__r   r   r,   r6   r   r   r   r   r	   ,   s   Fr	   )Ú r   r2   r#   Zlatin1proberr   Zmbcsgroupproberr   Zsbcsgroupproberr   Z	escproberr   r
   r5   r   r+   r*   r	   r   r   r   r   Ú<module>   s   