예제 #1
0
    def resolve_spec(self, path_or_spec):
        if path_or_spec is None:
            return path_or_spec

        package, filename = resolve_resource_spec(path_or_spec,
                                                  self.package)
        if package is None:
            return filename # absolute filename
        return '%s:%s' % (package, filename)
예제 #2
0
파일: static.py 프로젝트: rjweir/pyramid
 def __init__(self, root_dir, cache_max_age=3600, package_name=None):
     # package_name is for bw compat; it is preferred to pass in a
     # package-relative path as root_dir
     # (e.g. ``anotherpackage:foo/static``).
     caller_package_name = caller_package().__name__
     package_name = package_name or caller_package_name
     package_name, root_dir = resolve_resource_spec(root_dir, package_name)
     if package_name is None:
         app = StaticURLParser(root_dir, cache_max_age=cache_max_age)
     else:
         app = PackageURLParser(package_name, root_dir, cache_max_age=cache_max_age)
     self.app = app
예제 #3
0
def renderer_factory(path):
    from mako.lookup import TemplateLookup
    registry = get_current_registry()
    lookup = registry.queryUtility(IMakoLookup)
    if lookup is None:
        settings = get_settings() or {}
        reload_templates = settings.get('reload_templates', False)
        directories = settings.get('mako.directories')
        module_directory = settings.get('mako.module_directory')
        input_encoding = settings.get('mako.input_encoding', 'utf-8')
        if directories is None:
            raise ConfigurationError(
                'Mako template used without a lookup path')
        directories = directories.splitlines()
        directories = [ abspath_from_resource_spec(d) for d in directories ]
        lookup = TemplateLookup(directories=directories,
                                module_directory=module_directory,
                                input_encoding=input_encoding,
                                filesystem_checks=reload_templates)
        registry.registerUtility(lookup, IMakoLookup)
    _, path = resolve_resource_spec(path)
    return MakoLookupTemplateRenderer(path, lookup)
예제 #4
0
 def get_template(self, uri):
     """Fetch a template from the cache, or check the filesystem
     for it
     
     In addition to the basic filesystem lookup, this subclass will
     use pkg_resource to load a file using the resource
     specification syntax.
     
     """
     isabs = os.path.isabs(uri)
     if (not isabs) and (':' in uri):
         try:
             if self.filesystem_checks:
                 return self._check(uri, self._collection[uri])
             else:
                 return self._collection[uri]
         except KeyError:
             pname, path = resolve_resource_spec(uri)
             srcfile = abspath_from_resource_spec(path, pname)
             if os.path.isfile(srcfile):
                 return self._load(srcfile, uri)
             raise exceptions.TopLevelLookupException(
                 "Cant locate template for uri %r" % uri)
     return TemplateLookup.get_template(self, uri)
예제 #5
0
 def _callFUT(self, spec, package_name='__main__'):
     from pyramid.resource import resolve_resource_spec
     return resolve_resource_spec(spec, package_name)