예제 #1
0
    def __init__(
            self,
            base_uri,
            referrer,
            store=(),
            cache_remote=True,
            handlers=(),
            urljoin_cache=None,
            remote_cache=None,
    ):
        if urljoin_cache is None:
            urljoin_cache = lru_cache(1024)(urljoin)
        if remote_cache is None:
            remote_cache = lru_cache(1024)(self.resolve_from_url)

        self.referrer = referrer
        self.cache_remote = cache_remote
        self.handlers = dict(handlers)

        self._scopes_stack = [base_uri]
        self.store = _utils.URIDict(
            (id, validator.META_SCHEMA)
            for id, validator in iteritems(meta_schemas))
        self.store.update(store)
        self.store[base_uri] = referrer

        self._urljoin_cache = urljoin_cache
        self._remote_cache = remote_cache
예제 #2
0
    def __init__(
        self,
        base_uri,
        referrer,
        store=(),
        cache_remote=True,
        handlers=(),
        urljoin_cache=None,
        remote_cache=None,
    ):
        if urljoin_cache is None:
            urljoin_cache = lru_cache(1024)(urljoin)
        if remote_cache is None:
            remote_cache = lru_cache(1024)(self.resolve_from_url)

        self.referrer = referrer
        self.cache_remote = cache_remote
        self.handlers = dict(handlers)

        self._scopes_stack = [base_uri]
        self.store = _utils.URIDict(
            (id, validator.META_SCHEMA)
            for id, validator in iteritems(meta_schemas)
        )
        self.store.update(store)
        self.store[base_uri] = referrer

        self._urljoin_cache = urljoin_cache
        self._remote_cache = remote_cache
예제 #3
0
 def validate(self, data, schema, **kwargs):
     """Validate data using schema with ``JSONResolver``."""
     if not isinstance(schema, dict):
         schema = {'$ref': schema}
     refresolver_cls_kwargs = {}
     if self.refresolver_store:
         refresolver_cls_kwargs['store'] = self.refresolver_store
         refresolver_cls_kwargs['urljoin_cache'] = \
             lru_cache(1024)(urljoin_with_custom_scheme)
     return validate(
         data,
         schema,
         resolver=self.refresolver_cls.from_schema(
             schema, **refresolver_cls_kwargs),
         types=self.app.config.get('RECORDS_VALIDATION_TYPES', {}),
         **kwargs
     )
예제 #4
0
 def __init__(self, client):
     self.deref = client.deref
     self.definitions = client.definitions
     self._model_cache = lru_cache()(self.__model_class)