Mini Shell
"""
Jinja-specific decorators
"""
import logging
log = logging.getLogger(__name__)
class JinjaFilter:
"""
This decorator is used to specify that a function is to be loaded as a
Jinja filter.
"""
salt_jinja_filters = {}
def __init__(self, name=None):
""" """
self.name = name
def __call__(self, function):
""" """
name = self.name or function.__name__
if name not in self.salt_jinja_filters:
log.debug("Marking '%s' as a jinja filter", name)
self.salt_jinja_filters[name] = function
return function
jinja_filter = JinjaFilter
class JinjaTest:
"""
This decorator is used to specify that a function is to be loaded as a
Jinja test.
"""
salt_jinja_tests = {}
def __init__(self, name=None):
""" """
self.name = name
def __call__(self, function):
""" """
name = self.name or function.__name__
if name not in self.salt_jinja_tests:
log.debug("Marking '%s' as a jinja test", name)
self.salt_jinja_tests[name] = function
return function
jinja_test = JinjaTest
class JinjaGlobal:
"""
This decorator is used to specify that a function is to be loaded as a
Jinja global.
"""
salt_jinja_globals = {}
def __init__(self, name=None):
""" """
self.name = name
def __call__(self, function):
""" """
name = self.name or function.__name__
if name not in self.salt_jinja_globals:
log.debug("Marking '%s' as a jinja global", name)
self.salt_jinja_globals[name] = function
return function
jinja_global = JinjaGlobal
Zerion Mini Shell 1.0