def context_for(self, ident=None, **kwargs): key = "&".join(k + "=" + getattr(kwargs[k], 'identifier', str(kwargs[k])) for k in sorted(kwargs.keys())) res = self.__ad_hoc_contexts.get(key) if res is None: if ident: ctxid = ident else: ctxid = self.identifier + '/context_for?' + key self.__ad_hoc_contexts[key] = Context.contextualize( self.context)(ident=ctxid) res = self.__ad_hoc_contexts[key] return res
def as_context(self): if self.context is not None: return Context.contextualize(self.context)(ident=self.make_context_identifier()) else: return Context(ident=self.make_context_identifier())