def __call__(self, *args):
        """
        Returns batches of values from ``inp``. Every batch contains values that have same key from
        ``keys_to_extract`` attribute. The order of elements of ``keys_to_extract`` is preserved.

        Args:
            inp: A sequence of dictionaries with identical keys

        Returns:
            A list of lists of values of dictionaries from ``inp``
        """
        self.n_task = len(args)
        if self.preprocessors is None:
            # Defining preprocessor list while we call the function, as only he
            self.preprocessors = [self.preprocessor
                                  for _ in range(self.n_task)]
        answer = []
        for i in range(len(args)):
            if all([j is None for j in args[i]]):
                log.debug('All nones received')
                answer.append([])
            else:
                texts_a, texts_b = self.split(args[i])
                #log.debug(f'Preprocessor {self.preprocessors[i]}')
                if all([j is None for j in texts_a]):
                    log.debug('All nones')
                    answer.append([])
                else:
                    if 'choice' in str(self.preprocessors[i]):
                        if isinstance(texts_a[0], str) and isinstance(texts_b[0],list):
                            for j in range(len(texts_b)):
                                texts_a[j] = [texts_a[j] for _ in range(len(texts_b[j]))]
                        if self.prefix:
                            for j in range(len(texts_a)):
                                 texts_a[j] = [' '.join([self.prefix, text]) for text in texts_a[j]]
                    else:
                        if self.prefix:
                            texts_a = [' '.join([self.prefix, text]) for text in texts_a]
                    answer.append(self.preprocessors[i](texts_a, texts_b))
                    if not self.printed and self.print_first_example:
                        print((texts_a, texts_b))
                        print(answer[-1])
                        self.printed = True
        if answer == [[]]:
            raise Exception('Empty answer')
        return answer

        Returns batches of values from ``inp``. Every batch contains values that have same key from
        ``keys_to_extract`` attribute. The order of elements of ``keys_to_extract`` is preserved.

        Args:
            inp: A sequence of dictionaries with identical keys

        Returns:
            A list of lists of values of dictionaries from ``inp``
        
deeppavlov/models/preprocessors/multitask_preprocessor.py