Exemple #1
0
 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
Exemple #3
0
    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 __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()
Exemple #6
0
 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)
Exemple #9
0
    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)
Exemple #10
0
    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