Source code for uriregistry

import os
import yaml
import logging

from pyramid.config import Configurator

from .models import Application, UriTemplate
from .registry import get_uri_registry, _build_uri_registry

log = logging.getLogger(__name__)


[docs]def _parse_settings(settings): """ Parse the relevant settings for this application. :param dict settings: """ log.debug(settings) prefix = 'uriregistry' defaults = { 'config': os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'sample.yaml')) } urireg_settings = defaults.copy() for short_key_name in ('config',): key_name = f'{prefix}.{short_key_name}' if key_name in settings: urireg_settings[short_key_name] = \ settings.get(key_name, defaults.get(short_key_name, None)) for short_key in urireg_settings: long_key = f'{prefix}.{short_key}' settings[long_key] = urireg_settings[short_key] return urireg_settings
[docs]def _load_configuration(path): """ Load the configuration for the UriRegistry. :param str path: Path to the config file in YAML format. :returns: A :class:`dict` with the config options. """ log.debug('Loading uriregistry config from %s.' % path) f = open(path) content = yaml.full_load(f.read()) log.debug(content) f.close() return content
[docs]def main(global_config, **settings): """ This function returns a Pyramid WSGI application. :param pyramid.config.Configurator global_config: """ config = Configurator(settings=settings) urireg_settings = _parse_settings(config.registry.settings) registryconfig = _load_configuration(urireg_settings['config']) _build_uri_registry(config.registry, registryconfig) config.add_directive('get_uri_registry', get_uri_registry) config.add_request_method(get_uri_registry, 'uri_registry', reify=True) from pyramid_urireferencer.renderers import json_renderer config.add_renderer('json', json_renderer) config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('home', '/') config.add_route('references', '/references') config.scan() return config.make_wsgi_app()