
¾«‘_  ã            '   @   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`   		
	

