Lines Matching refs:self
81 """The `self` in templates."""
83 def __init__(self, context):
84 self.__context = context
86 def __getitem__(self, name):
87 blocks = self.__context.blocks[name]
88 return BlockReference(name, self.__context, blocks, 0)
90 def __repr__(self):
92 self.__class__.__name__,
93 self.__context.name
157 def __init__(self, environment, parent, name, blocks):
158 self.parent = parent
159 self.vars = {}
160 self.environment = environment
161 self.eval_ctx = EvalContext(self.environment, name)
162 self.exported_vars = set()
163 self.name = name
168 self.blocks = dict((k, [v]) for k, v in iteritems(blocks))
172 if self._fast_resolve_mode:
173 self.resolve_or_missing = MethodType(resolve_or_missing, self)
175 def super(self, name, current):
178 blocks = self.blocks[name]
182 return self.environment.undefined('there is no parent block '
185 return BlockReference(name, self, blocks, index)
187 def get(self, key, default=None):
192 return self[key]
196 def resolve(self, key):
200 if self._legacy_resolve_mode:
201 rv = resolve_or_missing(self, key)
203 rv = self.resolve_or_missing(key)
205 return self.environment.undefined(name=key)
208 def resolve_or_missing(self, key):
212 if self._legacy_resolve_mode:
213 rv = self.resolve(key)
217 return resolve_or_missing(self, key)
219 def get_exported(self):
221 return dict((k, self.vars[k]) for k in self.exported_vars)
223 def get_all(self):
228 if not self.vars:
229 return self.parent
230 if not self.parent:
231 return self.vars
232 return dict(self.parent, **self.vars)
268 def derived(self, locals=None):
273 context = new_context(self.environment, self.name, {},
274 self.get_all(), True, None, locals)
275 context.eval_ctx = self.eval_ctx
276 context.blocks.update((k, list(v)) for k, v in iteritems(self.blocks))
280 proxy = lambda self: getattr(self.get_all(), meth)()
296 def __contains__(self, name):
297 return name in self.vars or name in self.parent
299 def __getitem__(self, key):
303 item = self.resolve_or_missing(key)
308 def __repr__(self):
310 self.__class__.__name__,
311 repr(self.get_all()),
312 self.name
327 def __init__(self, name, context, stack, depth):
328 self.name = name
329 self._context = context
330 self._stack = stack
331 self._depth = depth
334 def super(self):
336 if self._depth + 1 >= len(self._stack):
337 return self._context.environment. \
339 self.name, name='super')
340 return BlockReference(self.name, self._context, self._stack,
341 self._depth + 1)
344 def __call__(self):
345 rv = concat(self._stack[self._depth](self._context))
346 if self._context.eval_ctx.autoescape:
359 def __init__(self, undefined, recurse=None, depth0=0):
360 self._undefined = undefined
361 self._recurse = recurse
362 self.index0 = -1
363 self.depth0 = depth0
364 self._last_checked_value = missing
366 def cycle(self, *args):
370 return args[self.index0 % len(args)]
372 def changed(self, *value):
374 if self._last_checked_value != value:
375 self._last_checked_value = value
387 def previtem(self):
388 if self._before is _first_iteration:
389 return self._undefined('there is no previous item')
390 return self._before
393 def nextitem(self):
394 if self._after is _last_iteration:
395 return self._undefined('there is no next item')
396 return self._after
398 def __len__(self):
399 return self.length
402 def loop(self, iterable):
403 if self._recurse is None:
406 return self._recurse(iterable, self._recurse, self.depth0 + 1)
413 def __repr__(self):
415 self.__class__.__name__,
416 self.index,
417 self.length
423 def __init__(self, iterable, undefined, recurse=None, depth0=0):
424 LoopContextBase.__init__(self, undefined, recurse, depth0)
425 self._iterator = iter(iterable)
432 self._length = len(iterable)
434 self._length = None
435 self._after = self._safe_next()
438 def length(self):
439 if self._length is None:
444 iterable = tuple(self._iterator)
445 self._iterator = iter(iterable)
446 iterations_done = self.index0 + 2
447 self._length = len(iterable) + iterations_done
448 return self._length
450 def __iter__(self):
451 return LoopContextIterator(self)
453 def _safe_next(self):
455 return next(self._iterator)
465 def __init__(self, context):
466 self.context = context
468 def __iter__(self):
469 return self
471 def __next__(self):
472 ctx = self.context
485 def __init__(self, environment, func, name, arguments,
488 self._environment = environment
489 self._func = func
490 self._argument_count = len(arguments)
491 self.name = name
492 self.arguments = arguments
493 self.catch_kwargs = catch_kwargs
494 self.catch_varargs = catch_varargs
495 self.caller = caller
496 self.explicit_caller = 'caller' in arguments
499 self._default_autoescape = default_autoescape
503 def __call__(self, *args, **kwargs):
525 autoescape = self._default_autoescape
528 arguments = list(args[:self._argument_count])
538 if off != self._argument_count:
539 for idx, name in enumerate(self.arguments[len(arguments):]):
548 found_caller = self.explicit_caller
553 if self.caller and not found_caller:
556 caller = self._environment.undefined('No caller defined',
560 if self.catch_kwargs:
566 'most likely a bug.' % self.name)
568 (self.name, next(iter(kwargs))))
569 if self.catch_varargs:
570 arguments.append(args[self._argument_count:])
571 elif len(args) > self._argument_count:
573 (self.name, len(self.arguments)))
575 return self._invoke(arguments, autoescape)
577 def _invoke(self, arguments, autoescape):
579 rv = self._func(*arguments)
584 def __repr__(self):
586 self.__class__.__name__,
587 self.name is None and 'anonymous' or repr(self.name)
609 def __init__(self, hint=None, obj=missing, name=None, exc=UndefinedError):
610 self._undefined_hint = hint
611 self._undefined_obj = obj
612 self._undefined_name = name
613 self._undefined_exception = exc
616 def _fail_with_undefined_error(self, *args, **kwargs):
620 if self._undefined_hint is None:
621 if self._undefined_obj is missing:
622 hint = '%r is undefined' % self._undefined_name
623 elif not isinstance(self._undefined_name, string_types):
625 object_type_repr(self._undefined_obj),
626 self._undefined_name
630 object_type_repr(self._undefined_obj),
631 self._undefined_name
634 hint = self._undefined_hint
635 raise self._undefined_exception(hint)
638 def __getattr__(self, name):
641 return self._fail_with_undefined_error()
650 def __eq__(self, other):
651 return type(self) is type(other)
653 def __ne__(self, other):
654 return not self.__eq__(other)
656 def __hash__(self):
657 return id(type(self))
659 def __str__(self):
662 def __len__(self):
665 def __iter__(self):
669 def __nonzero__(self):
673 def __repr__(self):
722 def _fail_with_undefined_error(self, *args, **kwargs):
724 return base._fail_with_undefined_error(self, *args, **kwargs)
725 except self._undefined_exception as e:
729 def __str__(self):
730 rv = base.__str__(self)
731 _log_message(self)
734 def __iter__(self):
735 rv = base.__iter__(self)
736 _log_message(self)
740 def __nonzero__(self):
741 rv = base.__nonzero__(self)
742 _log_message(self)
745 def __unicode__(self):
746 rv = base.__unicode__(self)
747 _log_message(self)
750 def __bool__(self):
751 rv = base.__bool__(self)
752 _log_message(self)
774 def __str__(self):
775 if self._undefined_hint is None:
776 if self._undefined_obj is missing:
777 return u'{{ %s }}' % self._undefined_name
779 object_type_repr(self._undefined_obj),
780 self._undefined_name
782 return u'{{ undefined value printed: %s }}' % self._undefined_hint