Этот проект больше не поддерживается.
Содержимое
Tidypy - это инструмент, который инкапсулирует ряд других инструментов статического анализа и облегчает настройку, выполнение и просмотр их результатов.
*.py . В дополнение к выполнению ряда различных инструментов на вашем коде, он также может проверить ваши файлы YAML, JSON, PO, POT и RST.pyproject.toml , определяемый PEP 518. Все параметры для всех инструментов используются Tidypy в одном месте, а не требовало, чтобы вы настраивали каждый инструмент по -разному.# noqa Comment в вашем источнике Python, чтобы легко игнорировать проблемы, о которых сообщалось любым инструментом. При установке Tidypy ( pip install tidypy ), команда tidypy должна стать доступной в вашей среде:
$ tidypy -help
Использование: Tidypy [Options] Команда [args] ...
Инструмент, который выполняет несколько статических инструментов анализа при проекте Python
и объединяет результаты.
Параметры:
-Версия Покажите версию и выход.
-Покажите это сообщение и выход.
Команды:
CHECK выполняет инструменты на файлах проекта.
по умолчанию конфигурация выводит конфигурацию по умолчанию, которую можно использовать для
Нагрузка вашего собственного файла конфигурации.
Расширение выводит список всех доступных аккуратных расширений.
Install VCS Installs Tidypy в качестве крючка перед выпуском в указанный
ВК.
Списки выводит список всех известных кодов проблем, которые инструменты
может сообщить.
чистка-конфиг-концерт удаляет кэш конфигураций, извлеченных из
вне основной конфигурации.
Снимите VCS Удаляет тидипийский предварительный крюк из указанного
ВК.
Чтобы проанализировать свой проект, используйте подкомментию check :
$ Tidypy check -help
Использование: Tidypy проверка [Параметры] [Путь]
Выполняет инструменты в файлах проекта.
Принимает один аргумент, который является пути к основанию проекта Python.
Если не указано, по умолчанию в текущий рабочий каталог.
Параметры:
-x, -exclude regex определяет регулярное выражение
Против путей, которые вы хотите исключить из
экзамен. Может быть указано несколько
раз. Переопределяет указанные выражения
В файле конфигурации.
-t, -tool [bandit | dlint | readicate | jsonlint | manifest | mccabe | polint | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | Секреты | Vulture | yamllint]
Указывает название инструмента для использования во время
экзамен. Может быть указано несколько
раз. Переопределяет файл конфигурации.
-r,-report [Консоль, CSV, Custom, JSON, NULL, Pycodestyle, Pylint, Pylint-Parsable, Toml, Yaml] [: filename]
Указывает имя отчета для выполнения
После экзамена. Может указать
Необязательное имя выходного файла с помощью формы -r
Отчет: имя файла. Если имя файла не установлено,
Отчет будет написан на Stdout. Может быть
указано несколько раз. Переопределяет
Файл конфигурации.
-c, -config filename указывает путь к Tidypy
Файл конфигурации для использования вместо
конфигурация, найденная в проекте
pyproject.toml.
-работники num_workers количество работников, которые можно использовать для одновременно
выполнить инструменты. Переопределяет
Файл конфигурации.
-disable-merge отключить слияние проблем из разных
Инструменты, когда Tidypy считает их эквивалентными.
Переопределяет файл конфигурации.
-DISABLE-PROGRESS Отключить отображение панели прогресса.
-disable-noqa отключить способность игнорировать проблемы, используя
Комментарий "# noqa" в файлах Python.
-disable-config-cache отключить использование кэша при получении
Конфигурации, на которые ссылаются «расширяются»
вариант.
-Покажите это сообщение и выход.
Если вам нужно сгенерировать файл конфигурации скелета с параметрами по умолчанию, используйте подкоманду default-config :
$ tidypy default-config-help
Использование: Tidypy default-config [параметры]
Выводит конфигурацию по умолчанию, которую можно использовать для начальной загрузки
Файл конфигурации.
Параметры:
-Pyproject Вывод конфигурации, чтобы ее можно было использовать в pyproject.toml
файл.
-Покажите это сообщение и выход.
Если вы хотите увидеть список возможных кодов проблем, которые могут быть возвращены, используйте подкоды list-codes :
$ Tidypy List-Codes-Help
Использование: Tidypy List-Codes [Параметры]
Выводит список всех известных кодов проблем, о которых могут сообщать инструменты.
Параметры:
-t, -tool [bandit | dlint | readicate | jsonlint | manifest | mccabe | polint | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | Секреты | Vulture | yamllint]
Определяет название инструмента, коды которых
должен быть вывод. Если не указано, по умолчанию
ко всем инструментам.
-f, -формат [toml | json | yaml | csv]
Определяет формат, в котором инструменты
должен быть вывод. Если не указано, по умолчанию
TOML.
-Покажите это сообщение и выход.
Если вы хотите установить или удалить Tidypy в качестве подключения к подключению к предварительному коммитации в VCS вашего проекта, используйте подкоманды install-vcs / remove-vcs :
$ tidypy install-vcs-help
Использование: Tidypy Install-VCS [Параметры] VCS [PATH]
Устанавливает Tidypy в качестве предварительного крючка в указанный VCS.
Принимает два аргумента:
VCS: система управления версией для установки крючка. Выберите из:
git, Hg
Путь: путь к основанию репозитория для установки крючка.
Если не указано, по умолчанию в текущий рабочий каталог.
Параметры:
-Установить, должен ли крюк предотвратить коммит, если Tidypy найдет
проблемы.
-Покажите это сообщение и выход.
$ tidypy remove-vcs-help
Использование: Tidypy Remove-VCS [Параметры] VCS [PATH]
Удаляет тидипийский предварительный крюк из указанного VCS.
Принимает два аргумента:
VCS: система управления версией для удаления крючка. Выберите из:
git, Hg
Путь: Путь к основанию репозитория для удаления крючка. Если
Не указано, по умолчанию текущего рабочего каталога.
Параметры:
-Покажите это сообщение и выход.
Если вы хотите включить завершение Bash для Tidypy, запустите следующее в своей оболочке (или поместите его в сценарии запуска Bash):
$ eval "$ (_ tidypy_complete = source tidypy)"
Если вы не хотите устанавливать Tidypy локально на свою систему или в свою виртуальную картину, вы можете использовать опубликованное изображение Docker:
$ docker run -rm -tty -volume = `pwd`:/project tidypy/tidypy
Приведенная выше команда будет запускать tidypy check содержимое текущего каталога. Если вы хотите запустить его в другом каталоге, то измените `pwd` на любой путь, который вам нужен (цель - установить каталог проекта в объем контейнера /project ).
Запуск Tidypy таким образом имеет несколько ограничений, в основном связанных с тем фактом, что, поскольку Tidypy работает самостоятельно, изолированная среда Python, такие инструменты, как Pylint, не смогут инторгить пакеты, установленные в вашем проекте, поэтому он может сообщать о ложных позитивах вокруг «импортных ошибок», «беззаботных в модуле», «№ нет» и т. Д.
Если вы хотите запустить команду, кроме check , просто передайте это, когда вы вызываете Docker:
$ docker run-rm-tty-volume = `pwd`:/project tidypy/tidypy tidypy list-codes
Тодо
В дополнение к игнорированию целых файлов, инструментов или конкретных типов проблем из инструментов через ваш файл конфигурации, вы также можете использовать комментарии в ваших исходных файлах Python, чтобы игнорировать проблемы в определенных строках. Некоторые инструменты имеют свою собственную встроенную поддержку и обозначения для этого:
# pylint# nosec# noqa# noqa# pragma: whitelist secret Tidypy выходит за рамки этих флагов, специфичных для инструментов, для реализации # noqa в глобальном масштабе для исходных файлов Python. Он будет игнорировать проблемы для строк, которые имеют комментарий # noqa , независимо от того, какие инструменты поднимают проблемы. Если вы хотите игнорировать только конкретный тип проблемы на линии, вы можете использовать синтаксис, например, следующее:
# noqa: code1, code2
Или, если конкретный код используется в нескольких инструментах, вы можете указать точный инструмент в комментарии:
# noqa: pycodestyle: code1, pylint: code2
Или, если вы хотите игнорировать любую проблему, который поднимает конкретный инструмент на линии, вы можете указать инструмент:
# noqa: @pycodestyle, @pylint
Вы можете, конечно, смешать и сопоставить все три обозначения в одном комментарии, если вам нужно:
# noqa: code1, pylint: code2,@pycodestyle
Вы можете отключить поведение Tidypy NOQA, указав опцию --disable-noqa в командной строке или установив опцию noqa на false в вашем файле конфигурации. Предостережение, однако: в настоящее время Pycodestyle и Pydocstyle не уважают эту опцию и всегда будут уважать любые комментарии # noqa , которые они находят.
Вне коробки Tidypy включает в себя поддержку ряда инструментов:
Tidypy включает в себя ряд различных методов для представления и/или экспорта результатов анализа проекта. Вне коробки, он обеспечивает следующее:
filename , line , character , tool , code , message .Tidypy включает в себя несколько плагинов/интеграций, которые подключают его к другим инструментам.
--tidypy в командной строке при запуске Pytest или включить его как часть свойства addopts в свою конфигурацию Pytest.--with-tidypy в командной строке при запуска носа, либо установить with-tidypy свойство на 1 в hout setup.cfg .tidypy Test. Чтобы включить это, вы можете указать --extend=tidypy.plugin.pbbt в командной строке при запуске PBBT, либо установите свойство extend в вашей setup.cfg или pbbt.yaml tidypy.plugin.pbbt . Существует простой интерфейс для расширения Tidypy, чтобы включить больше и различных инструментов и репортеров. Чтобы добавить инструмент, создайте класс, который расширяет tidypy.tool, и в вашей setup.py объявите entry_point для tidypy.tools , который указывает на ваш класс:
inpit_points = {
'tidypy.tools': [
'mycooltool = path.to.model: mycooltoolclassname',
],
}
Чтобы добавить репортера, процесс почти идентичен, за исключением того, что вы расширяете Tidypy.Report и объявляете entry_point для tidypy.reports .
Да, это происходит. Философия, которой я решил следовать этим инструментом, заключается в том, что я не хотел, чтобы она что -то скрывала от меня. Я хотел, чтобы его поведение по умолчанию выполнило каждый инструмент в своем наборе, используя их наиболее неприятные условия. Затем, когда я смогу увидеть полный объем повреждений, я могу принять решение отключить конкретные инструменты или проблемы с помощью конфигурации на уровне проекта. Я подумал, что если кто -то понадобится время, чтобы реализовать проверку на конкретную проблему, он должен подумать, что это имеет какую -то ценность. Если мой инструмент скрывает это от меня по умолчанию, то я не смогу получить никаких преимуществ от этого.
В целом, я не рекомендую начинать использовать Linters или другие виды статических анализаторов, когда вы думаете, что вы «сделали». Вы должны включить их в свой рабочий процесс прямо в начале проекта - так же, как вы бы (или должны) свои модульные тесты. Таким образом, вы найдете вещи раньше и учитесь у них (или отключите их). Это гораздо менее сложная задача, с которой нужно решать, когда вы постепенно обращаетесь к ним.
Взносы наиболее приветствуются. Особенно, если они исправления ошибок! Чтобы взломать этот код, просто клонируйте его, а затем запустите make setup . Это создаст VirtualEnv со всеми инструментами, которые вам понадобятся. Makefile также имеет test цель для запуска Pytest Suite, а также lint цель для запуска Tidypy.
Tidypy выпускается в соответствии с условиями лицензии MIT.