コード例 #1
0
ファイル: filter_manager.py プロジェクト: TEAM-HRA/hra_suite
    def addFilter(self, _filter_object_or_handler_or_names):
        """
        filter entity could be passed as filter object itself, handler method
        or a name of filter class
        """
        arg_count = get_method_arguments_count(_filter_object_or_handler_or_names) # @IgnorePep8

        # filter as a string
        if isinstance(_filter_object_or_handler_or_names, str):
            for filter_name in expand_to_real_filters_names(
                                        _filter_object_or_handler_or_names):
                if filter_name == None:
                    return
                _module = get_package_for_filter(filter_name)
                filter_object = create_class_object_with_suffix(
                                    get_package_for_filter(filter_name),
                                    filter_name,
                                    _suffix='Filter')
                filter_object = filter_object(_shift=self.__shift__)
                filter_object.arg_count = -1
                self.__filters__.append(filter_object)
        # filter as a function
        elif arg_count > -1:
            filter_method = _filter_object_or_handler_or_names
            filter_method.arg_count = arg_count
            self.__filters__.append(filter_method)
        # filter as an object
        else:
            filter_object = _filter_object_or_handler_or_names
            filter_object.arg_count = -1
            self.__filters__.append(filter_object)
コード例 #2
0
ファイル: filter_manager.py プロジェクト: TEAM-HRA/hra_suite
    def addFilter(self, _filter_object_or_handler_or_names):
        """
        filter entity could be passed as filter object itself, handler method
        or a name of filter class
        """
        arg_count = get_method_arguments_count(
            _filter_object_or_handler_or_names)  # @IgnorePep8

        # filter as a string
        if isinstance(_filter_object_or_handler_or_names, str):
            for filter_name in expand_to_real_filters_names(
                    _filter_object_or_handler_or_names):
                if filter_name == None:
                    return
                _module = get_package_for_filter(filter_name)
                filter_object = create_class_object_with_suffix(
                    get_package_for_filter(filter_name),
                    filter_name,
                    _suffix='Filter')
                filter_object = filter_object(_shift=self.__shift__)
                filter_object.arg_count = -1
                self.__filters__.append(filter_object)
        # filter as a function
        elif arg_count > -1:
            filter_method = _filter_object_or_handler_or_names
            filter_method.arg_count = arg_count
            self.__filters__.append(filter_method)
        # filter as an object
        else:
            filter_object = _filter_object_or_handler_or_names
            filter_object.arg_count = -1
            self.__filters__.append(filter_object)
コード例 #3
0
 def handler(self, _handler):
     if _handler:
         #name of a handler is a name of statistic
         self.name = getattr(_handler, 'name', None)
         if self.name is None:
             self.name = locals().get('_handler').__name__
         self.__handler__ = _handler
         #add number of arguments of a handler
         self.__handler__.arg_count = \
                         get_method_arguments_count(self.__handler__)
コード例 #4
0
ファイル: statistics.py プロジェクト: TEAM-HRA/hra_suite
 def handler(self, _handler):
     if _handler:
         #name of a handler is a name of statistic
         self.name = getattr(_handler, 'name', None)
         if self.name is None:
             self.name = locals().get('_handler').__name__
         self.__handler__ = _handler
         #add number of arguments of a handler
         self.__handler__.arg_count = \
                         get_method_arguments_count(self.__handler__)