3
\f[                   @   sn  d Z ddlZejd dkZeedZdd ZeseZe	Z
eZefZefZdd Zdd Zd	d ZddlZdd
lmZmZ eZdddZeZeZeZejZeZ eZ!eZ"neZe#Ze$Z
ee#fZee%fZdd Zdd Zdd Zddl&Zddl'mZmZ eZe(d ddl)mZmZmZ eZdd Z dd Z!dd Z"dd Z*yddl+m,Z- W n" e.k
rh   ddl/m0Z- Y nX dS )a#  
    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.
    N   Zpypy_translation_infoc             C   s   | S )N )xr   r   @C:\prj\env\wsgidav_build_3.6\lib\site-packages\jinja2\_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    )BytesIO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   8   s    c             C   s   | j  S )N)
itervalues)r	   r   r   r   r   9   s    c             C   s   | j  S )N)	iteritems)r	   r   r   r   r   :   s    )r   r   z5def reraise(tp, value, tb=None):
 raise tp, value, tb)imapizipifilterc             C   s   | j | _| ` | S )N)__next__next)clsr   r   r   implements_iteratorE   s    r   c             C   s   | j | _dd | _ | S )Nc             S   s   | j  jdS )Nzutf-8)__unicode__encode)r   r   r   r   r   L   s    z&implements_to_string.<locals>.<lambda>)__str__r   )r   r   r   r   implements_to_stringJ   s    
r!   c             C   s   t | tr| jdS | S )Nzutf-8)
isinstanceunicoder   )filenamer   r   r   encode_filenameO   s    

r%   c                s&   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   )r   name
this_basesr	   )basesmetar   r   __new__[   s    z)with_metaclass.<locals>.metaclass.__new__N)__name__
__module____qualname__r*   r   )r(   r)   r   r   	metaclassZ   s   r.   temporary_class)typer*   )r)   r(   r.   r   )r(   r)   r   with_metaclassU   s    r1   )quote_from_bytes)quote)N)1__doc__sysversion_infoPY2hasattrPYPY	_identitychrunichrrange
range_typestr	text_typestring_typesintinteger_typesr   r   r   pickleior   r   NativeStringIOr   filterr   mapr   zipr   internr   r!   r%   r#   xrangelongcPickle	cStringIOexec	itertoolsr1   urllib.parser2   	url_quoteImportErrorurllibr3   r   r   r   r   <module>   s\   

