Module signals_notebook.jinja_env

Expand source code
import logging
import os

from jinja2 import Environment, FileSystemLoader, PackageLoader, select_autoescape, Template, TemplateNotFound

package_env = Environment(loader=PackageLoader('signals_notebook'), autoescape=select_autoescape())

log = logging.getLogger(__name__)


class TemplateLocationWrapper:
    """Wrapper to get template location"""

    def get_template(self, template_name: str) -> Template:
        """Get template

        Args:
            template_name: Full path to the template

        Returns:

        """
        dir_path, file_name = os.path.split(template_name)
        try:
            file_system_env = Environment(loader=FileSystemLoader(os.path.abspath(dir_path)))
            return file_system_env.get_template(file_name)
        except TemplateNotFound:
            log.info('There is no template in the system. Searching in package location...')

        try:
            return package_env.get_template(file_name)
        except TemplateNotFound:
            log.info('There is no template in the package.')
            raise


env = TemplateLocationWrapper()

Classes

class TemplateLocationWrapper

Wrapper to get template location

Expand source code
class TemplateLocationWrapper:
    """Wrapper to get template location"""

    def get_template(self, template_name: str) -> Template:
        """Get template

        Args:
            template_name: Full path to the template

        Returns:

        """
        dir_path, file_name = os.path.split(template_name)
        try:
            file_system_env = Environment(loader=FileSystemLoader(os.path.abspath(dir_path)))
            return file_system_env.get_template(file_name)
        except TemplateNotFound:
            log.info('There is no template in the system. Searching in package location...')

        try:
            return package_env.get_template(file_name)
        except TemplateNotFound:
            log.info('There is no template in the package.')
            raise

Methods

def get_template(self, template_name: str) ‑> jinja2.environment.Template

Get template

Args

template_name
Full path to the template

Returns:

Expand source code
def get_template(self, template_name: str) -> Template:
    """Get template

    Args:
        template_name: Full path to the template

    Returns:

    """
    dir_path, file_name = os.path.split(template_name)
    try:
        file_system_env = Environment(loader=FileSystemLoader(os.path.abspath(dir_path)))
        return file_system_env.get_template(file_name)
    except TemplateNotFound:
        log.info('There is no template in the system. Searching in package location...')

    try:
        return package_env.get_template(file_name)
    except TemplateNotFound:
        log.info('There is no template in the package.')
        raise