setup.cfg, Giga, Python. Code Format, Tools
https://giga.chat/link/gcsObBTGeV
Файл setup.cfg используется в экосистеме Python для хранения конфигурационной информации, необходимой для сборки,
публикации и развертывания Python-проектов.
По сути, этот файл заменяет старый способ описания проектов с помощью скрипта setup.py и соответствует рекомендациям
PEP 517 и PEP 518, направленных на улучшение процессов упаковки и доставки ПО.
Зачем нужен setup.cfg?
Раньше большинство информации о проекте задавалось в виде исполняемого сценария setup.py, написанного на Python.
Такой подход имел ряд недостатков: легко допустить ошибку в синтаксисе Python,
было сложно проверить валидность конфигурации перед запуском,
да и сам сценарий мог оказаться достаточно большим и запутанным.
Использование setup.cfg решает эти проблемы,
предоставляя удобный декларативный способ задать ключевые аспекты проекта:
- Имя и версия пакета.
- Авторские права и лицензии.
- Список включаемых файлов и директорий.
- Настройки компилятора и линковщика.
- Конфигурация тестов, документации и многое другое.
Типичная структура setup.cfg
Вот пример простого файла setup.cfg:
[metadata] name = my_package version = attr: version.__version__ author = John Doe author_email = john.doe@example.com url = http://example.com/my_package classifiers = Programming Language :: Python :: 3 License :: OSI Approved :: MIT License Operating System :: OS Independent [options] zip_safe = False install_requires = requests >= 2.20 beautifulsoup4 [options.packages.find] where = . exclude = tests* [options.extras_require] test = pytest coverage doc = sphinx sphinx_rtd_theme
Этот файл описывает базовую информацию о пакете, устанавливает зависимости,
управляет настройками упаковки и добавляет опции для расширений (например, тестовые зависимости).
Чем отличается от setup.py?
setup.pyтребует знания Python и потенциально подвержен ошибкам программирования.setup.cfgявляется простым текстом в INI-подобном формате, удобным для чтения и редактирования.- Обычно комбинация обоих файлов встречается редко, хотя возможен гибридный подход,
- где важные настройки остаются в
setup.py, а второстепенные — вsetup.cfg.
Однако рекомендуется постепенно переходить на использование только setup.cfg и pyproject.toml,
поскольку они предлагают более стабильную и предсказуемую систему сборки и распределения пакетов.
Итоги
setup.cfgиспользуется для декларативного задания всех необходимых деталей проекта.- Удобнее читать и поддерживать, чем
setup.py. - Полностью поддерживается современными системами сборки, такими как setuptools, flit и hatch.
Теперь современные Python-проекты стремятся минимизировать сложность своего инструментария и
предпочитают хранить всю необходимую информацию о проекте именно в таком удобочитаемом и понятном формате.
Комментариев нет:
Отправить комментарий