# Path: statik/templatetags.py
# class TemplateTagStore(object):
#     def __init__(self):
#     def invoke_tag(self, tag_name, context, *args, **kwargs):
#     def register_tag(self, name, fn):
#     def register_filter(self, name, fn):
#     def simple_tag(self, *args, **kwargs):
#             def decorator(fn):
#     def filter(self, *args, **kwargs):
#             def decorator(fn):


from io import open
from statik.errors import *
from statik.utils import *
from statik import templatetags
import os.path
import jinja2
import pystache
import logging
            # dynamically import modules; they register themselves with our template tag store
            import_python_modules_by_path(self.templatetags_path)

        extensions = [
            'statik.jinja2ext.StatikUrlExtension',
            'statik.jinja2ext.StatikAssetExtension',
            'statik.jinja2ext.StatikLoremIpsumExtension',
            'statik.jinja2ext.StatikTemplateTagsExtension',
            'jinja2.ext.do',
            'jinja2.ext.loopcontrols',
            'jinja2.ext.with_',
            'jinja2.ext.autoescape',
        ]

        jinja2_config = project.config.vars.get('jinja2', dict())
        extensions.extend(jinja2_config.get('extensions', list()))

        self.env = jinja2.Environment(
            loader=jinja2.FileSystemLoader(
                engine.template_paths,
                encoding=project.config.encoding
            ),
            extensions=extensions
        )

        if templatetags.store.filters:
            logger.debug(
                "Loaded custom template tag filters: %s",
                ", ".join(templatetags.store.filters)
            )

# Path: statik/templatetags.py
# class TemplateTagStore(object):
#     def __init__(self):
#     def invoke_tag(self, tag_name, context, *args, **kwargs):
#     def register_tag(self, name, fn):
#     def register_filter(self, name, fn):
#     def simple_tag(self, *args, **kwargs):
#             def decorator(fn):
#     def filter(self, *args, **kwargs):
#             def decorator(fn):


# Path: statik/templating.py
from io import open
from statik.errors import *
from statik.utils import *
from statik import templatetags
import os.path
import jinja2
import pystache
import logging

            # dynamically import modules; they register themselves with our template tag store
            import_python_modules_by_path(self.templatetags_path)

        extensions = [
            'statik.jinja2ext.StatikUrlExtension',
            'statik.jinja2ext.StatikAssetExtension',
            'statik.jinja2ext.StatikLoremIpsumExtension',
            'statik.jinja2ext.StatikTemplateTagsExtension',
            'jinja2.ext.do',
            'jinja2.ext.loopcontrols',
            'jinja2.ext.with_',
            'jinja2.ext.autoescape',
        ]

        jinja2_config = project.config.vars.get('jinja2', dict())
        extensions.extend(jinja2_config.get('extensions', list()))

        self.env = jinja2.Environment(
            loader=jinja2.FileSystemLoader(
                engine.template_paths,
                encoding=project.config.encoding
            ),
            extensions=extensions
        )

        if templatetags.store.filters:
            logger.debug(
                "Loaded custom template tag filters: %s",
                ", ".join(templatetags.store.filters)
            )

            self.env.filters.update(templatetags.store.filters)