ó
¹×-]c           @   s%  d  Z  d d l Z e j d d k Z 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 n Xe sá d „  Z d „  Z d „  Z d d	 l m Z d d
 l m Z d d l j Z d d „ Z e Z nX d „  Z d „  Z d „  Z d d l m Z d d
 l m Z d d l Z d d Ud „  Z d „  Z e Z e  e d ƒ rÈd e! f d „  ƒ  YZ" y. y e" ƒ   e# ƒ  ‚ Wd QXWn
 ‚  n XWqÈe$ k
 r´e% Z qÈe# k
 rÄqÈXn  y d d l& m' Z' Wn e( k
 rød „  Z' n Xd e! f d „  ƒ  YZ) e) d d e% ƒ Z* d S(   sî   
    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
iÿÿÿÿNi    i   c         C   s   |  S(   N(    (   t   x(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   <lambda>   t    c         C   s   t  |  j ƒ  ƒ S(   N(   t   itert   keys(   t   d(    (    s,   lib/python2.7/site-packages/flask/_compat.pyR      R   c         C   s   t  |  j ƒ  ƒ S(   N(   R   t   values(   R   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR      R   c         C   s   t  |  j ƒ  ƒ S(   N(   R   t   items(   R   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR      R   (   t   getfullargspec(   t   StringIOc         C   s+   | j  | k	 r! | j | ƒ ‚ n  | ‚ d  S(   N(   t   __traceback__t   with_traceback(   t   tpt   valuet   tb(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   reraise$   s    c         C   s
   |  j  ƒ  S(   N(   t   iterkeys(   R   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR   ,   R   c         C   s
   |  j  ƒ  S(   N(   t
   itervalues(   R   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR   -   R   c         C   s
   |  j  ƒ  S(   N(   t	   iteritems(   R   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR   .   R   (   t
   getargspecs5   def reraise(tp, value, tb=None):
 raise tp, value, tbc         C   s   |  j  |  _ d „  |  _  |  S(   Nc         S   s   |  j  ƒ  j d ƒ S(   Ns   utf-8(   t   __unicode__t   encode(   R    (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR   8   R   (   t   __str__R   (   t   cls(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   implements_to_string6   s    c            s5   d t  f ‡  ‡ f d †  ƒ  Y} t  j | d d i  ƒ S(   s%   Create a base class with a metaclass.t	   metaclassc              s   e  Z ‡  ‡ f d  †  Z RS(   c            s   ˆ | ˆ  | ƒ S(   N(    (   t   metaclst   namet
   this_basesR   (   t   basest   meta(    s,   lib/python2.7/site-packages/flask/_compat.pyt   __new__B   s    (   t   __name__t
   __module__R   (    (   R   R   (    s,   lib/python2.7/site-packages/flask/_compat.pyR   A   s   t   temporary_class(    (   t   typeR   (   R   R   R   (    (   R   R   s,   lib/python2.7/site-packages/flask/_compat.pyt   with_metaclass<   s    t   pypy_version_infot   _Mgrc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   |  S(   N(    (   t   self(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt	   __enter__W   s    c         G   s    t  t d ƒ r t j ƒ  n  d  S(   Nt	   exc_clear(   t   hasattrt   sysR)   (   R'   t   args(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   __exit__Z   s    (   R    R!   R(   R-   (    (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR&   V   s   	(   t   fspathc         C   s   t  |  d ƒ r |  j ƒ  S|  S(   Nt
   __fspath__(   R*   R/   (   t   path(    (    s,   lib/python2.7/site-packages/flask/_compat.pyR.   r   s    t   _DeprecatedBoolc           B   s;   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e Z RS(   c         C   s"   d j  | | ƒ |  _ | |  _ d  S(   Ns5   '{}' is deprecated and will be removed in version {}.(   t   formatt   messageR   (   R'   R   t   versionR   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   __init__w   s    c         C   s)   d d  l  } | j |  j t d d ƒd  S(   Niÿÿÿÿt
   stackleveli   (   t   warningst   warnR3   t   DeprecationWarning(   R'   R7   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   _warn}   s    c         C   s   |  j  ƒ  | |  j k S(   N(   R:   R   (   R'   t   other(    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   __eq__‚   s    
c         C   s   |  j  ƒ  | |  j k S(   N(   R:   R   (   R'   R;   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   __ne__†   s    
c         C   s   |  j  ƒ  |  j S(   N(   R:   R   (   R'   (    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   __bool__Š   s    
(   R    R!   R5   R:   R<   R=   R>   t   __nonzero__(    (    (    s,   lib/python2.7/site-packages/flask/_compat.pyR1   v   s   					s   flask.json_availables   2.0.0(+   t   __doc__R+   t   version_infot   PY2t	   _identityt   unicodet	   text_typet   strt   string_typest   intt   longt   integer_typest	   NameErrorR   R   R   t   inspectR   R   t   ioR	   t   collections.abct   abct   collections_abct   NoneR   R   t	   cStringIOt   collectionsR$   t   Falset   BROKEN_PYPY_CTXMGR_EXITR*   t   objectR&   t   AssertionErrort	   TypeErrort   Truet   osR.   t   ImportErrorR1   t   json_available(    (    (    s,   lib/python2.7/site-packages/flask/_compat.pyt   <module>   s`   												
	