Sindbad~EG File Manager

Current Path : /lib/python3.6/site-packages/webencodings/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/webencodings/__pycache__/__init__.cpython-36.pyc

3

�O�XS)�@s�dZddlmZddlZddlmZdZddd	d
d�ZiZdd
�Z	dd�Z
dd�ZGdd�de�Z
e
d�Ze
d�Ze
d�Zd+dd�Zdd�Zedfdd�Zd,dd �Zd!d"�Zedfd#d$�Zd%d&�ZGd'd(�d(e�ZGd)d*�d*e�ZdS)-a

    webencodings
    ~~~~~~~~~~~~

    This is a Python implementation of the `WHATWG Encoding standard
    <http://encoding.spec.whatwg.org/>`. See README for details.

    :copyright: Copyright 2012 by Simon Sapin
    :license: BSD, see LICENSE for details.

�)�unicode_literalsN�)�LABELSz0.5.1z
iso-8859-8zmac-cyrillicz	mac-romanZcp874)ziso-8859-8-izx-mac-cyrillic�	macintoshzwindows-874cCs|jd�j�jd�S)a9Transform (only) ASCII letters to lower case: A-Z is mapped to a-z.

    :param string: An Unicode string.
    :returns: A new Unicode string.

    This is used for `ASCII case-insensitive
    <http://encoding.spec.whatwg.org/#ascii-case-insensitive>`_
    matching of encoding labels.
    The same matching is also used, among other things,
    for `CSS keywords <http://dev.w3.org/csswg/css-values/#keywords>`_.

    This is different from the :meth:`~py:str.lower` method of Unicode strings
    which also affect non-ASCII characters,
    sometimes mapping them into the ASCII range:

        >>> keyword = u'Bac\N{KELVIN SIGN}ground'
        >>> assert keyword.lower() == u'background'
        >>> assert ascii_lower(keyword) != keyword.lower()
        >>> assert ascii_lower(keyword) == u'bac\N{KELVIN SIGN}ground'

    �utf8)�encode�lower�decode)�string�r�/usr/lib/python3.6/__init__.py�ascii_lower#sr
cCsxt|jd��}tj|�}|dkr$dStj|�}|dkrt|dkrLddlm}ntj||�}tj	|�}t
||�}|t|<|S)u<
    Look for an encoding by its label.
    This is the spec’s `get an encoding
    <http://encoding.spec.whatwg.org/#concept-encoding-get>`_ algorithm.
    Supported labels are listed there.

    :param label: A string.
    :returns:
        An :class:`Encoding` object, or :obj:`None` for an unknown label.

    z	

 Nzx-user-definedr)�
codec_info)r
�stripr�get�CACHEZx_user_definedr�PYTHON_NAMES�codecs�lookup�Encoding)Zlabel�name�encodingrZpython_namerrrr=s




rcCs.t|d�r|St|�}|dkr*td|��|S)z�
    Accept either an encoding object or label.

    :param encoding: An :class:`Encoding` object or a label string.
    :returns: An :class:`Encoding` object.
    :raises: :exc:`~exceptions.LookupError` for an unknown label.

    rNzUnknown encoding label: %r)�hasattrr�LookupError)Zencoding_or_labelrrrr�
_get_encoding[s	
rc@s eZdZdZdd�Zdd�ZdS)raOReresents a character encoding such as UTF-8,
    that can be used for decoding or encoding.

    .. attribute:: name

        Canonical name of the encoding

    .. attribute:: codec_info

        The actual implementation of the encoding,
        a stdlib :class:`~codecs.CodecInfo` object.
        See :func:`codecs.register`.

    cCs||_||_dS)N)rr)�selfrrrrr�__init__|szEncoding.__init__cCs
d|jS)Nz
<Encoding %s>)r)rrrr�__repr__�szEncoding.__repr__N)�__name__�
__module__�__qualname__�__doc__rrrrrrrmsrzutf-8zutf-16lezutf-16be�replacecCs2t|�}t|�\}}|p|}|jj||�d|fS)a�
    Decode a single string.

    :param input: A byte string
    :param fallback_encoding:
        An :class:`Encoding` object or a label string.
        The encoding to use if :obj:`input` does note have a BOM.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
    :return:
        A ``(output, encoding)`` tuple of an Unicode string
        and an :obj:`Encoding`.

    r)r�_detect_bomrr	)�input�fallback_encoding�errorsZbom_encodingrrrrr	�sr	cCsV|jd�rt|dd�fS|jd�r4t|dd�fS|jd�rNt|dd�fSd|fS)zBReturn (bom_encoding, input), with any BOM removed from the input.s���Ns��s�)�
startswith�_UTF16LE�_UTF16BE�UTF8)r$rrrr#�s


r#�strictcCst|�jj||�dS)a;
    Encode a single string.

    :param input: An Unicode string.
    :param encoding: An :class:`Encoding` object or a label string.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
    :return: A byte string.

    r)rrr)r$rr&rrrr�srcCs$t||�}t||�}t|�}||fS)a�
    "Pull"-based decoder.

    :param input:
        An iterable of byte strings.

        The input is first consumed just enough to determine the encoding
        based on the precense of a BOM,
        then consumed on demand when the return value is.
    :param fallback_encoding:
        An :class:`Encoding` object or a label string.
        The encoding to use if :obj:`input` does note have a BOM.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
    :returns:
        An ``(output, encoding)`` tuple.
        :obj:`output` is an iterable of Unicode strings,
        :obj:`encoding` is the :obj:`Encoding` that is being used.

    )�IncrementalDecoder�_iter_decode_generator�next)r$r%r&�decoder�	generatorrrrr�iter_decode�s

r3ccs�|j}t|�}xf|D].}||�}|r|jdk	s2t�|jV|VPqW|ddd�}|jdk	s`t�|jV|rr|VdSx|D]}||�}|r||Vq|W|ddd�}|r�|VdS)zqReturn a generator that first yields the :obj:`Encoding`,
    then yields output chukns as Unicode strings.

    N�T)�final)r	�iterr�AssertionError)r$r1r	�chunck�outputrrrr/�s,


r/cCst||�j}t||�S)uY
    “Pull”-based encoder.

    :param input: An iterable of Unicode strings.
    :param encoding: An :class:`Encoding` object or a label string.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
    :returns: An iterable of byte strings.

    )�IncrementalEncoderr�_iter_encode_generator)r$rr&rrrr�iter_encode�sr<ccs:x|D]}||�}|r|VqW|ddd�}|r6|VdS)N�T)r5r)r$rr8r9rrrr;s

r;c@s$eZdZdZd	dd�Zd
dd�ZdS)r.uO
    “Push”-based decoder.

    :param fallback_encoding:
        An :class:`Encoding` object or a label string.
        The encoding to use if :obj:`input` does note have a BOM.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.

    r"cCs&t|�|_||_d|_d|_d|_dS)Nr4)r�_fallback_encoding�_errors�_buffer�_decoderr)rr%r&rrrrs

zIncrementalDecoder.__init__FcCs~|j}|dk	r|||�S|j|}t|�\}}|dkrXt|�dkrR|rR||_dS|j}|jj|j�j}||_||_	|||�S)z�Decode one chunk of the input.

        :param input: A byte string.
        :param final:
            Indicate that no more input is available.
            Must be :obj:`True` if this is the last call.
        :returns: An Unicode string.

        Nr(r=)
rAr@r#�lenr>r�incrementaldecoderr?r	r)rr$r5r1rrrrr	's


zIncrementalDecoder.decodeN)r")F)rrr r!rr	rrrrr.s

r.c@seZdZdZedfdd�ZdS)r:u�
    “Push”-based encoder.

    :param encoding: An :class:`Encoding` object or a label string.
    :param errors: Type of error handling. See :func:`codecs.register`.
    :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.

    .. method:: encode(input, final=False)

        :param input: An Unicode string.
        :param final:
            Indicate that no more input is available.
            Must be :obj:`True` if this is the last call.
        :returns: A byte string.

    r-cCst|�}|jj|�j|_dS)N)rr�incrementalencoderr)rrr&rrrrTszIncrementalEncoder.__init__N)rrr r!r,rrrrrr:Csr:)r")r")r!Z
__future__rrZlabelsr�VERSIONrrr
rr�objectrr,r*r+r	r#rr3r/r<r;r.r:rrrr�<module>
s2

 
3

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists