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
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
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 )
def __init__(self, client): self.deref = client.deref self.definitions = client.definitions self._model_cache = lru_cache()(self.__model_class)