01-arcadia.patch 1.3 KB

123456789101112131415161718192021222324252627282930
  1. --- contrib/python/Jinja2/py3/jinja2/__init__.py (index)
  2. +++ contrib/python/Jinja2/py3/jinja2/__init__.py (working tree)
  3. @@ -22,6 +22,7 @@ from .loaders import FunctionLoader
  4. from .loaders import ModuleLoader as ModuleLoader
  5. from .loaders import PackageLoader as PackageLoader
  6. from .loaders import PrefixLoader as PrefixLoader
  7. +from .loaders import ResourceLoader as ResourceLoader
  8. from .runtime import ChainableUndefined as ChainableUndefined
  9. from .runtime import DebugUndefined as DebugUndefined
  10. from .runtime import make_logging_undefined as make_logging_undefined
  11. --- contrib/python/Jinja2/py3/jinja2/loaders.py (index)
  12. +++ contrib/python/Jinja2/py3/jinja2/loaders.py (working tree)
  13. @@ -659,3 +659,17 @@ class ModuleLoader(BaseLoader):
  14. return environment.template_class.from_module_dict(
  15. environment, mod.__dict__, globals
  16. )
  17. +
  18. +
  19. +class ResourceLoader(BaseLoader):
  20. + def __init__(self, prefix, module_loader):
  21. + self.prefix = prefix
  22. + self.module_loader = module_loader
  23. +
  24. + def get_source(self, environment, template):
  25. + if self.module_loader is None:
  26. + raise TemplateNotFound(template)
  27. + try:
  28. + return self.module_loader.get_data(os.path.join(self.prefix, template)).decode('utf-8'), None, None
  29. + except IOError:
  30. + raise TemplateNotFound(template)