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 create_filterchain(self, filterchain_name, lst_str_filters, default_media=None, old_configuration=None): chain = filterchain.FilterChain(filterchain_name) index = 0 for s_filter in lst_str_filters: if s_filter == keys.get_empty_filter_name(): continue # Exception, remove the last -# pos = s_filter.rfind("-") if pos > 0: s_filter = s_filter[:pos] o_filter = self.create_filter(s_filter, index) index += 1 if o_filter is None: # error, cancel the transaction return None chain.add_filter(o_filter) chain.set_default_media_name(default_media) if old_configuration: old_chain_data = self.config.read_filterchain(old_configuration) if old_chain_data: if not chain.deserialize_update(filterchain_name, old_chain_data): logger.warning("Cannot deserialize old configuration of filterchain %s." % (filterchain_name)) else: logger.warning("The filterchain %s is supposed to be in memory if old exist." % filterchain_name) self.config.write_filterchain(chain) self.dct_filterchain[filterchain_name] = chain return 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 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 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 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 updateFiltersList(self, filterchain_name=None): if not filterchain_name: filterchain_name = self._get_selected_filterchain_name() self.ui.filterListWidget.clear() if filterchain_name == keys.get_empty_filterchain_name(): return info = self.controller.get_filterchain_info(filterchain_name) lst_filter = info.get("filters", None) if not lst_filter: logger.warning("Recieve empty filter list from filterchain %s" % filterchain_name) return for o_filter in lst_filter: if o_filter.name == keys.get_empty_filter_name(): continue self.ui.filterListWidget.addItem(o_filter.name) default_media = info.get("default_media", "") self.ui.media_default_edit.setText(default_media)
def update_filter_list(self, fc_name=None): if not fc_name: fc_name = self._get_selected_filterchain_name() self.ui.filterListWidget.clear() if fc_name == keys.get_empty_filterchain_name(): return info = self.controller.get_filterchain_info(fc_name) lst_filter = info.get("filters", None) if not lst_filter: logger.warning( "Recieve empty filter list from filterchain %s" % fc_name) return for o_filter in lst_filter: name = o_filter.get("name", "") if name == keys.get_empty_filter_name(): continue self.ui.filterListWidget.addItem(name) default_media = info.get("default_media", "") self.ui.media_default_edit.setText(default_media)
def create_filterchain(self, filterchain_name, lst_str_filters, default_media=None, old_configuration=None): chain = filterchain.FilterChain(filterchain_name) index = 0 for s_filter in lst_str_filters: if s_filter == keys.get_empty_filter_name(): continue # Exception, remove the last -# pos = s_filter.rfind("-") if pos > 0: s_filter = s_filter[:pos] o_filter = self.create_filter(s_filter, index) index += 1 if o_filter is None: # error, cancel the transaction return chain.add_filter(o_filter) chain.set_default_media_name(default_media) if old_configuration: old_chain_data = self.config.read_filterchain(old_configuration) if old_chain_data: if not chain.deserialize_update(filterchain_name, old_chain_data): logger.warning("Cannot deserialize old configuration of \ filterchain %s." % filterchain_name) else: logger.warning("The filterchain %s is supposed to be in \ memory if old exist." % filterchain_name) self.config.write_filterchain(chain) self.dct_filterchain[filterchain_name] = chain return chain