Об этом проекте
Black — это Python-форматер кода, поддерживаемый Python Software Foundation. Его цель — убрать споры о ручном форматировании, применяя единый konsistenый стиль: пользователи отказываются от контроля над мелочами форматирования в обмен на скорость, детерминированность и отсутствие предупреждений от проверок стиля.
Основные характеристики:
- Переформатирует целые файлы на месте, игнорируя предыдущее форматирование (с оговорёнными исключениями).
- Намеренно ограниченные настройки; подчёркиваются разумные значения по умолчанию, настройки проекта читаются из pyproject.toml (например, шаблоны include/exclude).
- Стремится создавать минимально возможные diff, что, по словам проекта, ускоряет code review.
- Включает проверку безопасности, гарантирующую, что переформатированный код по-прежнему порождает валидный AST, эквивалентный оригиналу; флаг --fast пропускает эту проверку.
- Заявляет соответствие PEP 8 и политику стабильности, регулируемую изменениями стиля.
Установка и использование:
- Установка через pip install black; требуется Python 3.10 или новее.
- Форматирование Jupyter Notebook доступно через экстру black[jupyter].
- Самостоятельные исполняемые файлы, собранные PyInstaller, предлагаются в релизах GitHub для пользователей без установленной Python.
- Запуск: black {source_file_or_directory} или python -m black {source_file_or_directory}.
Экосистема и распространение:
В README перечислены многие open-source проекты, использующие Black, включая pytest, tox, Pyramid, Django, Django Channels, Hypothesis, attrs, SQLAlchemy, Poetry, приложения PyPA, pandas, Pillow, Twisted, LocalStack, Home Assistant, Zulip и Kedro. Также указаны такие организации, как Dropbox, Lyft, Mozilla, Quora, Duolingo и Tesla. Приведены отзывы разработчиков, включая Mike Bayer, Hynek Schlawack, Kenneth Reitz и Carl Meyer.
Проект лицензирован под MIT, предоставляет документацию на ReadTheDocs, ведёт changelog и список авторов в отдельных файлах, приглашает к участию через документацию для контрибьюторов и Discord-чат. Также упоминается Python Community Code of Conduct.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.