def ensure_runtime_engine(self, key: str) -> Engine: self.lock.acquire(True) try: engines = self.runtime_engines if key in engines: # pragma: nocover return engines[key] engine = engines[key] = self.runtime_engine_factory( ChainLoader([DictLoader({}), self.engine.loader]) ) def render( name: str, ctx: typing.Mapping[str, typing.Any], local_defs: typing.Mapping[str, typing.Any], super_defs: typing.Mapping[str, typing.Any], ) -> str: try: return engine.renders[name](ctx, local_defs, super_defs) except KeyError: self.preprocess_template(engine, name, ctx) return engine.renders[name](ctx, local_defs, super_defs) engine.global_vars["_r"] = render return engine finally: self.lock.release()
def setUp(self) -> None: self.loader = ChainLoader(loaders=[ DictLoader(templates={ "tmpl1.html": "x1", }), DictLoader(templates={"shared/master.html": "x2"}), ])
def setUp(self): from wheezy.template.loader import ChainLoader from wheezy.template.loader import DictLoader self.loader = ChainLoader(loaders=[ DictLoader(templates={ 'tmpl1.html': 'x1', }), DictLoader(templates={'shared/master.html': 'x2'}) ])
def ensure_runtime_engine(self, key): self.lock.acquire(1) try: engines = self.runtime_engines if key in engines: # pragma: nocover return engines[key] engine = engines[key] = self.runtime_engine_factory( loader=ChainLoader([DictLoader({}), self.engine.loader])) def render(name, ctx, local_defs, super_defs): try: return engine.renders[name](ctx, local_defs, super_defs) except KeyError: self.preprocess_template(engine, name, ctx) return engine.renders[name](ctx, local_defs, super_defs) engine.global_vars['_r'] = render return engine finally: self.lock.release()