
_              '   @   sK  d  Z  d d l Z e j d d k Z d d   Z y" e Z e e f Z e	 e
 f Z Wn* e k
 r e Z e f Z e	 f Z Yn Xe s d d   Z d d   Z d d   Z d d	 l m Z d d
 l m Z d d l j Z d d d  Z e Z nf d d   Z d d   Z d d   Z d d l m Z d d
 l m Z d d l Z e d  d d   Z d d   Z d Z e e d  rGd d   d e   Z! y0 y e!    e"    Wd QRXWn   Yn XWn) e# k
 rd Z Yn e" k
 rYn Xy d d l$ m% Z% Wn e& k
 rd d   Z% Yn XGd d   d e   Z' e' d  d! d  Z( d S)"z
    flask._compat
    ~~~~~~~~~~~~~

    Some py2/py3 compatibility support based on a stripped down
    version of six so we don't have to depend on a specific version
    of it.

    :copyright: 2010 Pallets
    :license: BSD-3-Clause
    N   c             C   s   |  S)N )xr   r   ./tmp/pip-build-5gj8f0j9/flask/flask/_compat.py<lambda>   s    r   c             C   s   t  |  j    S)N)iterkeys)dr   r   r   r      s    c             C   s   t  |  j    S)N)r   values)r	   r   r   r   r      s    c             C   s   t  |  j    S)N)r   items)r	   r   r   r   r      s    )getfullargspec)StringIOc             C   s(   | j  | k	 r | j |   |  d  S)N)__traceback__with_traceback)tpvaluetbr   r   r   reraise$   s    r   c             C   s
   |  j    S)N)iterkeys)r	   r   r   r   r   ,   s    c             C   s
   |  j    S)N)
itervalues)r	   r   r   r   r   -   s    c             C   s
   |  j    S)N)	iteritems)r	   r   r   r   r   .   s    )
getargspecz5def reraise(tp, value, tb=None):
 raise tp, value, tbc             C   s   |  j  |  _ d d   |  _  |  S)Nc             S   s   |  j    j d  S)Nzutf-8)__unicode__encode)r   r   r   r   r   8   s    z&implements_to_string.<locals>.<lambda>)__str__r   )clsr   r   r   implements_to_string6   s    r   c                s5   G   f d d   d t   } t  j | d f  i   S)z%Create a base class with a metaclass.c                   s%   e  Z d  Z    f d d   Z d S)z!with_metaclass.<locals>.metaclassc                s    |   |  S)Nr   )metaclsname
this_basesr	   )basesmetar   r   __new__B   s    z)with_metaclass.<locals>.metaclass.__new__N)__name__
__module____qualname__r"   r   )r    r!   r   r   	metaclassA   s   r&   temporary_class)typer"   )r!   r    r&   r   )r    r!   r   with_metaclass<   s    r)   Fpypy_version_infoc               @   s(   e  Z d  Z d d   Z d d   Z d S)_Mgrc             C   s   |  S)Nr   )selfr   r   r   	__enter__W   s    z_Mgr.__enter__c             G   s   t  t d  r t j   d  S)N	exc_clear)hasattrsysr.   )r,   argsr   r   r   __exit__Z   s    z_Mgr.__exit__N)r#   r$   r%   r-   r2   r   r   r   r   r+   V   s   r+   T)fspathc             C   s   t  |  d  r |  j   S|  S)N
__fspath__)r/   r4   )pathr   r   r   r3   r   s    r3   c               @   sR   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z e Z d S)_DeprecatedBoolc             C   s"   d j  | |  |  _ | |  _ d  S)Nz5'{}' is deprecated and will be removed in version {}.)formatmessager   )r,   r   versionr   r   r   r   __init__w   s    z_DeprecatedBool.__init__c             C   s)   d d  l  } | j |  j t d d d  S)Nr   
stacklevelr   )warningswarnr8   DeprecationWarning)r,   r<   r   r   r   _warn}   s    z_DeprecatedBool._warnc             C   s   |  j    | |  j k S)N)r?   r   )r,   otherr   r   r   __eq__   s    
z_DeprecatedBool.__eq__c             C   s   |  j    | |  j k S)N)r?   r   )r,   r@   r   r   r   __ne__   s    
z_DeprecatedBool.__ne__c             C   s   |  j    |  j S)N)r?   r   )r,   r   r   r   __bool__   s    
z_DeprecatedBool.__bool__N)	r#   r$   r%   r:   r?   rA   rB   rC   __nonzero__r   r   r   r   r6   v   s   r6   zflask.json_availablez2.0.0))__doc__r0   version_infoPY2	_identityunicode	text_typestrstring_typesintlonginteger_types	NameErrorr   r   r   inspectr   r   ior   collections.abcabcZcollections_abcr   r   	cStringIOcollectionsexecr)   ZBROKEN_PYPY_CTXMGR_EXITr/   objectr+   AssertionError	TypeErrorosr3   ImportErrorr6   Zjson_availabler   r   r   r   <module>   s`   		
	

