관리-도구
편집 파일: sandbox.cpython-39.pyc
a &��gD � @ s� d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z ddl mZ ddl mZ dd l mZ dd l mZ ddl mZ ddl mZ dd lmZ ddlmZ dZer�h d�Zne� Zh d�ZddhZddhZddhZejddeed� efZ e!fZ"e#fZ$z6ddl%m%Z%m&Z& ddl'm'Z' e"e%e&f7 Z"e e'f7 Z W n e(�yF Y n0 zddl)m*Z* e e*f7 Z W n e(�yv Y n0 e ej+f7 Z e"ej,f7 Z"e$ej-f7 Z$e e.g d��fe"e.g d��fe$e.g d ��fee.g d!��ffZ/G d"d#� d#ej0�Z1d$d%� Z2d&d'� Z3d(d)� Z4d*d+� Z5G d,d-� d-e�Z6G d.d/� d/e6�Z7zdd0l8m9Z9 W n e(�yV d1d2� Z9Y n0 G d3d4� d4e:�Z;G d5d6� d6e;e �Z<G d7d8� d8e;e�Z=dS )9z�A sandbox layer that ensures unsafe operations cannot be performed. Useful when the template itself comes from an untrusted source. � N)�deque)�update_wrapper)� Formatter)�EscapeFormatter)�Markup� )�abc)�PY2)� range_type)�string_types)�Environment)� SecurityErrori�� > Zfunc_closureZ func_codeZ func_dictZ func_defaultsZfunc_globals> Zim_funcZim_classZim_self�gi_frame�gi_code�cr_frame�cr_code�ag_code�ag_frame�ignorezthe sets module)�module)�UserDict� DictMixin)�UserList)�Set)�add�clear�difference_update�discard�pop�remove�symmetric_difference_update�update)r r �popitem� setdefaultr! )�append�reverse�insert�sort�extendr ) r$ � appendleftr r( � extendleftr �popleftr �rotatec @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd S )�_MagicFormatMappingz�This class implements a dummy wrapper to fix a bug in the Python standard library for string formatting. See https://bugs.python.org/issue13598 for information about why this is necessary. c C s || _ || _d| _d S )Nr )�_args�_kwargs�_last_index��self�args�kwargs� r5 �2/usr/lib/python3.9/site-packages/jinja2/sandbox.py�__init__� s z_MagicFormatMapping.__init__c C sN |dkrD| j }| j d7 _ z| j| W S ty: Y n0 t|�}| j| S )N� r )r0 r. �LookupError�strr/ )r2 �key�idxr5 r5 r6 �__getitem__� s z_MagicFormatMapping.__getitem__c C s t | j�S �N)�iterr/ �r2 r5 r5 r6 �__iter__� s z_MagicFormatMapping.__iter__c C s t | j�S r>