def _get_cache(self):
# type: () -> Dict[Text, Type[BaseFilter]]
if self._cache is None:
self._cache = {}
try:
for target in iter_entry_points(self.group): # type: EntryPoint
filter_ = target.load()
ift_result = is_filter_type(filter_)
if ift_result is True:
logger.debug(
'Registering extension filter '
'{cls.__module__}.{cls.__name__} as {name}.'.format(
cls = filter_,
name = target.name,
),
)
self._cache[target.name] = filter_
else:
logger.debug(
'Using legacy extension loader for '
'{target.name} ({reason}).'.format(
reason = ift_result,
target = target,
),
)
self._cache.update(iter_filters_in(filter_))
except DeprecationWarning:
# The user has ``simplefilter('error')`` set; reset the
# cache so that the next time we try to load extension
# filters, we don't miss anything.
self._cache = None
raise
# noinspection PyTypeChecker
return self._cache
评论列表
文章目录