本文整理汇总了Python中jinja2.exceptions.UndefinedError方法的典型用法代码示例。如果您正苦于以下问题:Python exceptions.UndefinedError方法的具体用法?Python exceptions.UndefinedError怎么用?Python exceptions.UndefinedError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jinja2.exceptions
的用法示例。
在下文中一共展示了exceptions.UndefinedError方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: generate_by_context
# 需要导入模块: from jinja2 import exceptions [as 别名]
# 或者: from jinja2.exceptions import UndefinedError [as 别名]
def generate_by_context(self, context):
if context is None:
raise RuntimeError('Can\'t generate templates from None context')
templates = self._preprocess_templates(context.get('templates', []))
if len(templates) == 0:
templates = context.get('kubectl', [])
if len(templates) == 0:
return
output = []
for template in self._iterate_entries(templates):
try:
path = self._generate_file(template, settings.TEMP_DIR, context)
log.info('File "{}" successfully generated'.format(path))
output.append(path)
except TemplateNotFound as e:
raise TemplateRenderingError(
"Processing {}: template {} hasn't been found".format(template['template'], e.name))
except (UndefinedError, TemplateSyntaxError) as e:
raise TemplateRenderingError('Unable to render {}, due to: {}'.format(template, e))
return output
示例2: try_default
# 需要导入模块: from jinja2 import exceptions [as 别名]
# 或者: from jinja2.exceptions import UndefinedError [as 别名]
def try_default(value, default, ignore=False):
"""
This filter ignores undefined variables and returns
default value, if default value is undefined and 'ignore'
options is enabled then return 'False' otherwise raise
exception 'UndefinedError'.
"""
if not isinstance(value, Undefined):
return value
elif not isinstance(default, Undefined):
return default
elif isinstance(default, Undefined) and ignore:
return False
else:
raise UndefinedError("One of the nested variables are undefined")
示例3: test_templates
# 需要导入模块: from jinja2 import exceptions [as 别名]
# 或者: from jinja2.exceptions import UndefinedError [as 别名]
def test_templates(self):
"""
Just to check templates syntax
:return: None
"""
from jinja2 import Environment, exceptions
jinja_env = Environment(extensions=['jinja2.ext.i18n'])
templates = os.listdir('bot/templates')
for template in templates:
print('Testing template:{}'.format(template))
with open(os.path.join('bot/templates', template)) as f:
template_text = unicode(f.read())
try:
jinja_env.from_string(template_text).render()
except exceptions.TemplateAssertionError:
pass
except exceptions.UndefinedError:
pass
示例4: _validate_output_source
# 需要导入模块: from jinja2 import exceptions [as 别名]
# 或者: from jinja2.exceptions import UndefinedError [as 别名]
def _validate_output_source(self, output_source, input_context):
try:
render_from_template(
output_source.get('filename'), input_context)
render_string_or_list(
output_source.get('filenames'),
input_context)
render_from_template(
output_source.get('glob'), input_context)
except UndefinedError as e:
raise serializers.ValidationError({
'source':
'Error "%s" in output source "%s"' %
(e, output_source)})
示例5: evaluate
# 需要导入模块: from jinja2 import exceptions [as 别名]
# 或者: from jinja2.exceptions import UndefinedError [as 别名]
def evaluate(self):
"""
Evaluate trigger instance against the rule.
:return: ``True`` if the rule matches, ``False`` otherwise.
:rtype: ``boolean``
"""
rule_db = self._get_rule_db()
trigger_instance_db, trigger_db = self._get_trigger_instance_db()
# The trigger check needs to be performed here as that is not performed
# by RulesMatcher.
if rule_db.trigger != trigger_db.ref:
LOG.info('rule.trigger "%s" and trigger.ref "%s" do not match.',
rule_db.trigger, trigger_db.ref)
return False
# Check if rule matches criteria.
matcher = RulesMatcher(trigger_instance=trigger_instance_db, trigger=trigger_db,
rules=[rule_db], extra_info=True)
matching_rules = matcher.get_matching_rules()
# Rule does not match so early exit.
if len(matching_rules) < 1:
return False
# Check if rule can be enforced
enforcer = RuleEnforcer(trigger_instance=trigger_instance_db, rule=rule_db)
runner_type_db = mock.Mock()
runner_type_db.runner_parameters = {}
action_db = mock.Mock()
action_db.parameters = {}
params = rule_db.action.parameters # pylint: disable=no-member
context, additional_contexts = enforcer.get_action_execution_context(action_db=action_db,
trace_context=None)
# Note: We only return partially resolved parameters.
# To be able to return all parameters we would need access to corresponding ActionDB,
# RunnerTypeDB and ConfigDB object, but this would add a dependency on the database and the
# tool is meant to be used standalone.
try:
params = enforcer.get_resolved_parameters(action_db=action_db,
runnertype_db=runner_type_db,
params=params,
context=context,
additional_contexts=additional_contexts)
LOG.info('Action parameters resolved to:')
for param in six.iteritems(params):
LOG.info('\t%s: %s', param[0], param[1])
return True
except (UndefinedError, ValueError) as e:
LOG.error('Failed to resolve parameters\n\tOriginal error : %s', six.text_type(e))
return False
except:
LOG.exception('Failed to resolve parameters.')
return False