Pass in caches instead of arguments.
This commit is contained in:
parent
8ebd5bcb0a
commit
33973dc9fa
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
# This file is automatically generated by setup.py.
|
# This file is automatically generated by setup.py.
|
||||||
__version__ = '2.3.0.post131'
|
__version__ = '2.3.0.post133'
|
||||||
__sha__ = 'gfec4647'
|
__sha__ = 'g8ebd5bc'
|
||||||
__revision__ = 'gfec4647'
|
__revision__ = 'g8ebd5bc'
|
||||||
|
|
|
@ -233,10 +233,10 @@ class RefResolver(object):
|
||||||
first resolution
|
first resolution
|
||||||
:argument dict handlers: a mapping from URI schemes to functions that
|
:argument dict handlers: a mapping from URI schemes to functions that
|
||||||
should be used to retrieve them
|
should be used to retrieve them
|
||||||
:arguments callable cache_func: a function decorator used to cache
|
:arguments functools.lru_cache urljoin_cache: a cache that will be used for
|
||||||
expensive calls. Should support the `functools.lru_cache` interface.
|
caching the results of joining the resolution scope to subscopes.
|
||||||
:argument int cache_maxsize: number of items to store in the cache. Set
|
:arguments functools.lru_cache remote_cache: a cache that will be used for
|
||||||
this to 0 to disable caching. Defaults to 1000.
|
caching the results of resolved remote URLs.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -247,10 +247,14 @@ class RefResolver(object):
|
||||||
store=(),
|
store=(),
|
||||||
cache_remote=True,
|
cache_remote=True,
|
||||||
handlers=(),
|
handlers=(),
|
||||||
cache_func=lru_cache,
|
urljoin_cache=None,
|
||||||
cache_maxsize=1000,
|
remote_cache=None,
|
||||||
):
|
):
|
||||||
# This attribute is not used, it is for backwards compatibility
|
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.referrer = referrer
|
||||||
self.cache_remote = cache_remote
|
self.cache_remote = cache_remote
|
||||||
self.handlers = dict(handlers)
|
self.handlers = dict(handlers)
|
||||||
|
@ -263,8 +267,8 @@ class RefResolver(object):
|
||||||
self.store.update(store)
|
self.store.update(store)
|
||||||
self.store[base_uri] = referrer
|
self.store[base_uri] = referrer
|
||||||
|
|
||||||
self._urljoin_cache = cache_func(cache_maxsize)(urljoin)
|
self._urljoin_cache = urljoin_cache
|
||||||
self._resolve_cache = cache_func(cache_maxsize)(self.resolve_from_url)
|
self._remote_cache = remote_cache
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_schema(cls, schema, *args, **kwargs):
|
def from_schema(cls, schema, *args, **kwargs):
|
||||||
|
@ -280,7 +284,8 @@ class RefResolver(object):
|
||||||
|
|
||||||
def push_scope(self, scope):
|
def push_scope(self, scope):
|
||||||
self._scopes_stack.append(
|
self._scopes_stack.append(
|
||||||
self._urljoin_cache(self.resolution_scope, scope))
|
self._urljoin_cache(self.resolution_scope, scope),
|
||||||
|
)
|
||||||
|
|
||||||
def pop_scope(self):
|
def pop_scope(self):
|
||||||
try:
|
try:
|
||||||
|
@ -328,7 +333,7 @@ class RefResolver(object):
|
||||||
|
|
||||||
def resolve(self, ref):
|
def resolve(self, ref):
|
||||||
url = self._urljoin_cache(self.resolution_scope, ref)
|
url = self._urljoin_cache(self.resolution_scope, ref)
|
||||||
return url, self._resolve_cache(url)
|
return url, self._remote_cache(url)
|
||||||
|
|
||||||
def resolve_from_url(self, url):
|
def resolve_from_url(self, url):
|
||||||
url, fragment = urldefrag(url)
|
url, fragment = urldefrag(url)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
v2.3.0-131-gfec4647
|
v2.3.0-133-g8ebd5bc
|
Loading…
Reference in New Issue