конфигом через BaseSettings. у меня есть переменная USER и в файле .env есть переменная USER, но pydantic всё время переписывает эту переменную значением этой переменной из моего environment операционной системы. Как мне сделать или что бы он не переписывал или что бы просто в конечном конфиге была переменная USER со значением из файлы .env ?
выкинуть .env и взять какой-то формат конфига, который ты будешь больше контролировать. Например ini или toml
что-то невнятное, но которое конфигпарсер жрет
То есть когда у ini-файла может быть фиг знает сколько вариаций, у нас всё хорошо, для .env — это большая проблема? :-D
нет, это такая же проблема, но томл только в 3.11 из коробки. Но как минимум 1. ини не пытается изображать переенныее окружния 2. дефолтная реализация не пытается искать файл хоть где-нибудь, а грузит по фиксированному пути 3. если файла нет, есть явное повдение - ошибка
тут всю эту магию делает не .env файл, а pydantic
ну они вместе там стараются
дотенв штука более стандартизированная мне кажется
хз я дотенв воспринимаю как штуку на которой я могу сделать source и запустить программу и всё будет хорошо
Потому что тот дотэнв который либы читают работает немного не так как баш. Например, не умеет в $() и зато умеет пробелы около =. Ну и экспорт надо не забывать тогда, если оррентируешься на source
ну вроде бы принято писать без пробелов вокруг равно и тем более shell expansions
Ну тем не менее python-dotenv кушает с пробелами. И даже умеет подставлять переменные
Обсуждают сегодня