Call the lua scripts with given keys and args

        Parameters
        -----------
        key: str
            The key of the index sorted-set
        tmp_key: str
            The final temporary key where to store the filtered primary keys
        key_type: str
            The type of temporary key to use, either 'set' or 'zset'
        start: str
            The "start" argument to pass to the filtering sorted-set command
        end: str
            The "end" argument to pass to the filtering sorted-set command
        exclude: any
            A value to exclude from the filtered pks to save to the temporary key
        args: list
            Any other argument to be passed by a subclass will be passed as addition
            args to the script.

def call_script(self, key, tmp_key, key_type, start, end, exclude, *args):
        """Call the lua scripts with given keys and args

        Parameters
        -----------
        key: str
            The key of the index sorted-set
        tmp_key: str
            The final temporary key where to store the filtered primary keys
        key_type: str
            The type of temporary key to use, either 'set' or 'zset'
        start: str
            The "start" argument to pass to the filtering sorted-set command
        end: str
            The "end" argument to pass to the filtering sorted-set command
        exclude: any
            A value to exclude from the filtered pks to save to the temporary key
        args: list
            Any other argument to be passed by a subclass will be passed as addition
            args to the script.

        """
        self.model.database.call_script(
            # be sure to use the script dict at the class level
            # to avoid registering it many times
            script_dict=self.__class__.lua_filter_script,
            keys=[key, tmp_key],
            args=[key_type, start, end, exclude] + list(args)
        )