ó
~9Vc           @   sï  d  Z  d d l Z e j d d k Z e e d ƒ Z d „  Z e sï e Z e	 Z
 e Z e f Z e f Z d „  Z d „  Z d	 „  Z d d l Z d d
 l m Z m Z e Z d d „ Z e Z e Z e Z e j  Z  e Z! e Z" e Z# d „  Z$ n» e Z e% Z e& Z
 e e% f Z e e' f Z d „  Z d „  Z d „  Z d d l( Z d d l) m Z m Z e Z d d Ud d l* m Z m Z m Z e  Z  d „  Z! d „  Z" d „  Z$ d „  Z# d „  Z+ y d d l, m- Z. Wn! e/ k
 rêd d l0 m1 Z. n Xd S(   s#  
    jinja2._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: Copyright 2013 by the Jinja team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿNi    i   t   pypy_translation_infoc         C   s   |  S(   N(    (   t   x(    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   <lambda>   s    c         C   s   t  |  j ƒ  ƒ S(   N(   t   itert   keys(   t   d(    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR      s    c         C   s   t  |  j ƒ  ƒ S(   N(   R   t   values(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR      s    c         C   s   t  |  j ƒ  ƒ S(   N(   R   t   items(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR      s    (   t   BytesIOt   StringIOc         C   s+   | j  | k	 r! | j | ƒ ‚ n  | ‚ d  S(   N(   t   __traceback__t   with_traceback(   t   tpt   valuet   tb(    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   reraise#   s    c         C   s   |  j  S(   N(   t   __next__(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   0   s    c         C   s
   |  j  ƒ  S(   N(   t   iterkeys(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   9   s    c         C   s
   |  j  ƒ  S(   N(   t
   itervalues(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   :   s    c         C   s
   |  j  ƒ  S(   N(   t	   iteritems(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   ;   s    (   R	   R	   s5   def reraise(tp, value, tb=None):
 raise tp, value, tb(   t   imapt   izipt   ifilterc         C   s   |  j  |  _ |  `  |  S(   N(   R   t   next(   t   cls(    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   implements_iteratorF   s    c         C   s   |  j  |  _ d „  |  _  |  S(   Nc         S   s   |  j  ƒ  j d ƒ S(   Ns   utf-8(   t   __unicode__t   encode(   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   M   s    (   t   __str__R   (   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   implements_to_stringK   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR   P   s    c         C   s    t  |  t ƒ r |  j d ƒ S|  S(   Ns   utf-8(   t
   isinstancet   unicodeR   (   t   filename(    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   encode_filenameR   s    c            s/   d ˆ f ‡  ‡ f d †  ƒ  Y} | d d  i  ƒ S(   Nt	   metaclassc              s,   e  Z e j Z e j Z ‡  ‡ f d  †  Z RS(   c            s2   | d  k r" t j |  | d | ƒ Sˆ | ˆ  | ƒ S(   N(    (   t   Nonet   typet   __new__(   R   t   namet
   this_basesR   (   t   basest   meta(    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR%   e   s    (   t   __name__t
   __module__R$   t   __call__t   __init__R%   (    (   R(   R)   (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyR"   b   s   		t   temporary_class(   R#   (   R)   R(   R"   (    (   R(   R)   s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   with_metaclassX   s    
(   t   quote_from_bytes(   t   quote(2   t   __doc__t   syst   version_infot   PY2t   hasattrt   PYPYt	   _identityt   chrt   unichrt   ranget
   range_typet   strt	   text_typet   string_typest   intt   integer_typesR   R   R   t   picklet   ioR   R	   t   NativeStringIOR#   R   t   filterR   t   mapR   t   zipR   t   internR   R   R!   t   get_nextR   t   xranget   longt   cPicklet	   cStringIOt	   itertoolsR/   t   urllib.parseR0   t	   url_quotet   ImportErrort   urllibR1   (    (    (    s.   /tmp/pip-build-zHWFj_/Jinja2/jinja2/_compat.pyt   <module>   s`   															