extensions.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:filters 作者: eflglobal 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号