File: //snap/core18/current/usr/lib/python3/dist-packages/jinja2/__pycache__/utils.cpython-36.pyc
3
���g.Q � @ s� d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z m
Z
mZmZ ddl
mZ ddl
mZ edf d d
d� i�� Ze� ZdjZd
ejd�kZdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Z dDdd�Z!dEd!d"�Z"d#d$� Z#dFd%d&�Z$dGd'd(�Z%dHd-d.�Z&dId0d1�Z'G d2d3� d3e(�Z)ydd4lm*Z* e*j+e)� W n e,k
�rP Y nX dJf d*dfd8d9�Z-dKd:d;�Z.eG d<d=� d=e(��Z/G d>d?� d?e(�Z0G d@dA� dAe(�Z1ye2dB� d*Z3W n e4k
�r� dZ3Y nX ddCl5m6Z6m7Z7m8Z8 dS )Lz�
jinja2.utils
~~~~~~~~~~~~
Utility functions.
:copyright: (c) 2017 by the Jinja Team.
:license: BSD, see LICENSE for more details.
� N)�deque)�Lock)� text_type�string_types�implements_iterator� url_quote)�
ascii_letters)�digitsZMissingType�__repr__c C s dS )N�missing� )�xr r �./usr/lib/python3/dist-packages/jinja2/utils.py�<lambda> s r � z\/�/c C s
d| _ | S )a+ This decorator can be used to mark a function or method context callable.
A context callable is passed the active :class:`Context` as first argument when
called from the template. This is useful if a function wants to get access
to the context or functions provided on the context object. For example
a function that returns a sorted list of template variables the current
template exports could look like this::
@contextfunction
def get_exported_names(context):
return sorted(context.exported_vars)
T)�contextfunction)�fr r r r "