Resolving JSON References#
- class jsonschema.RefResolver(base_uri, referrer, store=(), cache_remote=True, handlers=(), urljoin_cache=None, remote_cache=None)[source]#
Resolve JSON References.
- Parameters:
base_uri (str) – The URI of the referring document
referrer – The actual referring document
store (dict) – A mapping from URIs to documents to cache
cache_remote (bool) – Whether remote refs should be cached after first resolution
handlers (dict) – A mapping from URI schemes to functions that should be used to retrieve them
urljoin_cache (
functools.lru_cache()
) – A cache that will be used for caching the results of joining the resolution scope to subscopes.remote_cache (
functools.lru_cache()
) – A cache that will be used for caching the results of resolved remote URLs.
- property base_uri#
Retrieve the current base URI, not including any fragment.
- classmethod from_schema(schema, id_of=<function _id_of>, *args, **kwargs)[source]#
Construct a resolver from a JSON schema object.
- Parameters:
schema – the referring schema
- Returns:
- pop_scope()[source]#
Exit the most recent entered scope.
Treats further dereferences as being performed underneath the original scope.
Don’t call this method more times than
push_scope
has been called.
- push_scope(scope)[source]#
Enter a given sub-scope.
Treats further dereferences as being performed underneath the given scope.
- property resolution_scope#
Retrieve the current resolution scope.
- resolve_fragment(document, fragment)[source]#
Resolve a
fragment
within the referenceddocument
.- Parameters:
document – The referent document
fragment (str) – a URI fragment to resolve within it
- resolve_remote(uri)[source]#
Resolve a remote
uri
.If called directly, does not check the store first, but after retrieving the document at the specified URI it will be saved in the store if
cache_remote
is True.Note
If the requests library is present,
jsonschema
will use it to request the remoteuri
, so that the correct encoding is detected and used.If it isn’t, or if the scheme of the
uri
is nothttp
orhttps
, UTF-8 is assumed.- Parameters:
uri (str) – The URI to resolve
- Returns:
The retrieved document