У меня есть общая http-клиентская библиотека, которая обеспечивает синхронизацию и асинхронность интерфейсов.Под ним используется либо requests
, либо aiohttp
.В большинстве моих проектов используется либо синхронная, либо асинхронная версия, поэтому нет оснований требовать как aiohttp
, так и requests
в setup.py
.Для решения этой проблемы у меня есть следующее extras_require
в setup.py
:
extras_require={
"async": ["aiohttp"],
"sync": ["requests"],
"all": ["aiohttp", "requests"],
}
Единственная проблема заключается в том, что если вы устанавливаете мой клиентский пакет http без каких-либо дополнительных функций, это не имеет смысла, так как вы не будетебыть в состоянии использовать обе версии из-за отсутствующих зависимостей.
Есть ли способ проверить, что мой пакет Python устанавливается по крайней мере с одним из указанных дополнений?Может быть какой-то крючок в моем setup.py
?