Как установить Travis для отказа, когда я не пройду свой порог пилинга [дубликат]

Вот общий подход, который применяется к числам, строкам, вложенным спискам и смешанным контейнерам.

Код

from collections import Iterable


def flatten(items):
    """Yield items from any nested iterable; see Reference."""
    for x in items:
        if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
            for sub_x in flatten(x):
                yield sub_x
        else:
            yield x

Примечание: в Python 3, yield from flatten(x) может заменить for sub_x in flatten(x): yield sub_x

Демо

lst = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
list(flatten(lst))                                         # nested lists
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

mixed = [[1, [2]], (3, 4, {5, 6}, 7), 8, "9"]              # numbers, strs, nested & mixed
list(flatten(mixed))
# [1, 2, 3, 4, 5, 6, 7, 8, '9']

Ссылка

  • Это решение модифицировано из рецепта в Beazley, D. and B. Джонс. Рецепт 4.14, Поваренная книга Python 3rd Ed., O'Reilly Media Inc. Севастополь, Калифорния: 2013.
  • Найден ранее SO post , возможно, оригинальная демонстрация.

13
задан Alexey Kachayev 16 September 2012 в 21:14
поделиться

2 ответа

Вы можете использовать что-то вроде Travis-CI и запускать pylint как часть ваших тестов по строкам:

language: python
install: "pip install nose pylint"
script: "nosetests && pylint"

Конечно, это не удается для незначительных стилистических нарушений - вы, вероятно, захотите отключить определенные сообщения или использовать pylint --errors-only, чтобы сделать его менее строгим

6
ответ дан dbr 1 September 2018 в 05:37
поделиться

У меня был тот же вопрос, и я только что нашел этот пост в блоге , описывающий проект под названием pylint-server для выполнения чего-то подобного (хотя он был запущен на событиях сборки CSR Travis, а не тянет).

Из README:

Маленькое приложение Flask, чтобы отслеживать отчеты и рейтинги pylint на основе каждого репозитория.

Я еще не пробовал, поэтому я не могу прокомментировать его качество. Если кто-нибудь попробует, прокомментируйте и сообщите нам, как вам это нравится.

2
ответ дан Stew 1 September 2018 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: