当前位置: 首页>>代码示例>>Python>>正文


Python Resource.create_filter方法代码示例

本文整理汇总了Python中resource.Resource.create_filter方法的典型用法代码示例。如果您正苦于以下问题:Python Resource.create_filter方法的具体用法?Python Resource.create_filter怎么用?Python Resource.create_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在resource.Resource的用法示例。


在下文中一共展示了Resource.create_filter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: FilterChain

# 需要导入模块: from resource import Resource [as 别名]
# 或者: from resource.Resource import create_filter [as 别名]
class FilterChain(object):
    """ Observable.  Contains the chain of filters to execute on an image.

    The observer must be a method that receive a filter and an image as param.
    The observer method is called after each execution of a filter in the \
    filter chain.
    """

    def __init__(self, filterchain_name, serialize=None,
                 default_media_name=None):
        # to limit the infini import, we import in the init
        from resource import Resource

        self.resource = Resource()

        self.filters = []
        # {"filter_name":[observator,]}
        self.image_observers = {}
        self.filter_output_observers = []
        self.filterchain_name = filterchain_name
        self.original_image_observer = []
        self.dct_global_param = {}
        self.dct_media_param = {}
        # If starting filterchain with empty media_name, we take the default
        # media
        self.default_media_name = default_media_name

        if serialize:
            self.deserialize(filterchain_name, serialize)
        else:
            # add default filter
            self.add_filter(Filter(keys.get_empty_filter_name()))

        self.do_configure()

    def destroy(self):
        # clean everything!
        for obs in self.filter_output_observers:
            self.remove_filter_output_observer(obs)

        for obs in self.original_image_observer:
            self.remove_image_observer(obs, keys.get_filter_original_name())

        for filter_name, lst_obs in self.image_observers.items():
            for obs in lst_obs:
                self.remove_image_observer(obs, filter_name)

        for o_filter in self.filters:
            o_filter.destroy_param()
            o_filter.destroy()

    def serialize(self, is_config=False):
        # Keep list of filter with param
        dct = {"lst_filter": [o_filter.serialize(is_config=is_config)
                              for o_filter in self.filters if
                              o_filter.name != keys.get_empty_filter_name()]}
        if self.default_media_name:
            dct["default_media_name"] = self.default_media_name
        return dct

    def deserialize(self, name, value):
        status = True
        self.filterchain_name = name
        lst_filter = value.get("lst_filter", [])
        self.default_media_name = value.get("default_media_name", None)
        self.filters = []
        index = 0
        # add default filter
        self.add_filter(Filter(keys.get_empty_filter_name()))
        for filter_to_ser in lst_filter:
            filter_name = filter_to_ser.get("filter_name", None)
            o_filter = self.resource.create_filter(filter_name, index)
            index += 1
            if not o_filter:
                log.print_function(
                    logger.warning,
                    "Cannot create filter %s, maybe it not exists." %
                    filter_name)
                continue
            status &= o_filter.deserialize(filter_to_ser)
            self.add_filter(o_filter)
        if status:
            log.print_function(
                logger.info,
                "Deserialize filterchain %s success." %
                name)
        else:
            log.print_function(
                logger.warning,
                "Deserialize filterchain %s failed." %
                name)
        return status

    def deserialize_update(self, name, value):
        status = True
        self.filterchain_name = name
        lst_filter = value.get("lst_filter", [])
        if self.default_media_name is None:
            self.default_media_name = value.get("default_media_name", None)

#.........这里部分代码省略.........
开发者ID:Octets,项目名称:SeaGoatVision,代码行数:103,代码来源:filterchain.py


注:本文中的resource.Resource.create_filter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。