File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/jinja2/__pycache__/loaders.cpython-310.pyc
Back
o ;j�] � @ s� d Z ddlZddlZddlZddlZddlZddlZddl Z ddl mZ ddlm Z ddlmZ ddlmZ ddlmZ dd lmZ ejrQdd lmZ ddlmZ ded eje fdd�ZG dd� d�ZG dd� de�Zejdkr�dejd ej ee!f fdd�Z"ndejd ej ee!f fdd�Z"G dd� de�Z#G dd� de�Z$G dd� de�Z%G dd � d e�Z&G d!d"� d"e�Z'G d#d$� d$e�Z(G d%d&� d&e�Z)dS )'zKAPI and implementations for loading templates from different data sources. � N)�abc)�sha1)� import_module)� ModuleType� )�TemplateNotFound)�internalcode)�Environment)�Template�template�returnc C sb g }| � d�D ]'}tjj|v stjjrtjj|v s|tjjkr#t| ��|r.|dkr.|�|� q|S )z�Split a path into segments and perform a sanity check. If it detects '..' in the path it will raise a `TemplateNotFound` error. �/�.)�split�os�path�sep�altsep�pardirr �append)r �piecesZpiece� r �B/opt/saltstack/salt/lib/python3.10/site-packages/jinja2/loaders.py�split_template_path s � �r c @ s� e Zd ZdZdZdddedejeeje ejej g e f f fdd�Zdeje fd d �Z e dddded ejejeejf ddfdd��ZdS )� BaseLoadera� Baseclass for all loaders. Subclass this and override `get_source` to implement a custom loading mechanism. The environment provides a `get_template` method that calls the loader's `load` method to get the :class:`Template` object. A very basic example for a loader that looks up templates on the file system could look like this:: from jinja2 import BaseLoader, TemplateNotFound from os.path import join, exists, getmtime class MyLoader(BaseLoader): def __init__(self, path): self.path = path def get_source(self, environment, template): path = join(self.path, template) if not exists(path): raise TemplateNotFound(template) mtime = getmtime(path) with open(path) as f: source = f.read() return source, path, lambda: mtime == getmtime(path) T�environmentr r r c C s"