Resolution конфигурации¶
Конфигурация должна быть детерминированной: один и тот же набор env-переменных и .env даёт один и тот же AvitoSettings. Это важно для CLI, CI и долгоживущих фоновых задач.
flowchart TD
process[Process environment] --> merge[Resolution]
dotenv[.env file] --> merge
defaults[Defaults] --> merge
merge --> settings[AvitoSettings]
settings --> client[AvitoClient]
Приоритет¶
Значения из process environment имеют приоритет над .env. .env имеет приоритет над значениями по умолчанию. Если env_file передан явно, SDK читает именно этот файл. Если обязательные OAuth credentials отсутствуют, клиент поднимает ConfigurationError при создании, до первого HTTP-запроса.
Иммутабельность клиента¶
После создания AvitoClient настройки не меняются. Если нужен другой base_url, user_id, auth или retry policy, создаётся новый клиент. Это убирает класс ошибок, где часть доменных объектов работает со старой конфигурацией, а часть — с новой.
Полная таблица env-переменных и per-operation overrides находится в reference по конфигурации.