U
    yc                     @   s   d Z ddlZddlZddlmZmZmZ ddlmZ ddl	m
Z
 dee eeeee d	d
dZdeee  ddddZedkre  dS )a  
Script which takes one or more file paths and reports on their detected
encodings

Example::

    % chardetect somefile someotherfile
    somefile: windows-1252 with confidence 0.5
    someotherfile: ascii with confidence 1.0

If no paths are provided, it takes its input from stdin.

    N)IterableListOptional   )__version__)UniversalDetectorstdinF)linesnameminimalshould_rename_legacyreturnc                 C   sx   t |d}| D ] }t|}|| |jr q0q|  |j}|rJ|d S |d rn| d|d  d|d  S | dS )a  
    Return a string describing the probable encoding of a file or
    list of strings.

    :param lines: The lines to get the encoding of.
    :type lines: Iterable of bytes
    :param name: Name of file or collection of lines
    :type name: str
    :param should_rename_legacy:  Should we rename legacy encodings to
                                  their more modern equivalents?
    :type should_rename_legacy:   ``bool``
    )r   encodingz: z with confidence 
confidencez: no result)r   	bytearrayfeeddonecloseresult)r	   r
   r   r   uliner    r   A/tmp/pip-build-0we0fmvo/pip/pip/_vendor/chardet/cli/chardetect.pydescription_of   s    

r   )argvr   c                 C   s   t jdd}|jddt ddtjjgd |jdd	d
d |jdddd
d |jdddt d || }|j	D ]4}|
 rtdtjd tt||j|j|jd qtdS )z
    Handles command line arguments and gets things started.

    :param argv: List of arguments, as if specified on the command-line.
                 If None, ``sys.argv[1:]`` is used instead.
    :type argv: list of str
    zATakes one or more file paths and reports their detected encodings)descriptioninputz@File whose encoding we would like to determine. (default: stdin)rb*)helptypenargsdefaultz	--minimalz*Print only the encoding to standard output
store_true)r   actionz-lz--legacyz,Rename legacy encodings to more modern ones.z	--versionversionz	%(prog)s )r$   r%   zYou are running chardetect interactively. Press CTRL-D twice at the start of a blank line to signal the end of your input. If you want help, run chardetect --help
)file)r   r   N)argparseArgumentParseradd_argumentFileTypesysr   bufferr   
parse_argsr   isattyprintstderrr   r
   r   legacy)r   parserargsfr   r   r   main:   sR    	  

   r5   __main__)r   FF)N)__doc__r'   r+   typingr   r   r    r   universaldetectorr   bytesstrboolr   r5   __name__r   r   r   r   <module>   s$      "5