MarkovTextGenerator/markov_text_generator.py
def chain_generator(self):
        """
        Возвращает генератор, формата:
            (("токен", ...), "вариант")
            Где количество токенов определяет переменная объекта chain_order.
        """
        n_chain = self.chain_order
        if n_chain < 1:
            raise MarkovTextExcept(
                "Цепь не может быть {0}-порядка.".format(n_chain)
            )
        n_chain += 1  # Последнее значение - результат возврата.
        changing_array = deque(maxlen=n_chain)
        for token in self.tokens_array:
            changing_array.append(token)
            if len(changing_array) < n_chain:
                continue  # Массив ещё неполон.
            yield (tuple(changing_array)[:-1], changing_array[-1])
def chain_generator(self):
        """
        Возвращает генератор, формата:
            (("токен", ...), "вариант")
            Где количество токенов определяет переменная объекта chain_order.
        """
        n_chain = self.chain_order
        if n_chain < 1:
            raise MarkovTextExcept(
                "Цепь не может быть {0}-порядка.".format(n_chain)
            )
        n_chain += 1  # Последнее значение - результат возврата.
        changing_array = deque(maxlen=n_chain)
        for token in self.tokens_array:
            changing_array.append(token)
            if len(changing_array) < n_chain:
                continue  # Массив ещё неполон.
            yield (tuple(changing_array)[:-1], changing_array[-1])
Возвращает генератор, формата:
            (("токен", ...), "вариант")
            Где количество токенов определяет переменная объекта chain_order.