%PDF- %PDF-
Direktori : /proc/thread-self/root/lib/python2.7/site-packages/salt/utils/decorators/ |
Current File : //proc/thread-self/root/lib/python2.7/site-packages/salt/utils/decorators/jinja.py |
# -*- coding: utf-8 -*- ''' Jinja-specific decorators ''' from __future__ import absolute_import, print_function, unicode_literals # Import Python libs # Ensure we're using the custom logging from Salt import salt.log.setup as logging log = logging.getLogger(__name__) class JinjaFilter(object): ''' 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(object): ''' 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(object): ''' 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