本文整理汇总了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)
#.........这里部分代码省略.........