Size: a a a

2020 April 16

KK

Kirill (Cykooz) Kuzminykh in rannts
Ну или есть ещё вариант сделать поддержку .env файлов, из которых будут читаться переменные с настройками
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Есть готовые либы для работы с .env файлами
источник

in

ildar nizamov in rannts
имеешь в виду в программе? я бы предложил перейти на чтение параметров из окружения. Но программа не моя.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Ну или вообще прикрутить поддержку файлов с конфигами какого-либо формата
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
ildar nizamov
Есть ли возможность задать этот серкет в pycharm или выше (у пользователя Windows) и потом задать это как переменную окружения в окне Run/Debug configuration ? типа так: Parameters: --secret-opton $SECRET_VAR
Эту опцию всё равно будет видно в консоли, когда PyCharm запустит команду
источник

in

ildar nizamov in rannts
а её будет видно в таком виде --secret-opton $SECRET_VAR или с подставленным значением?
источник

in

ildar nizamov in rannts
нет пичарма и винды, чтобы проверить
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
И вообще передача секретов через опции командной строки - это дырка. В том же линухе обычно ведётся история последних выполненных команд, где сохранится этот секрет. Кроме того можно увидеть какой командой был запущен процесс.
источник

in

ildar nizamov in rannts
это богом хранимая винда, там такого нет, наверное
источник

in

ildar nizamov in rannts
с претензией к дизайну согласен
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Можешь попробовать в ярлыке для запуска PyCharm (или где там) прописать ENV переменную, и попробовать как ты написал
источник

RB

Roman Bolkhovitin in rannts
а какие либы для конфигов вы вообще пользуете?

есть проект, в нем все просто захардкожено в классы-конфиги, примерно как это показано в туториале к фласку, и всяких разных параметров дохера.
хотелось бы секреты и коннекшены вытащить в переменные окружения, а остальное в ямл или томл, но так чтобы через env можно было переписать если что

нашел какую-то либу по мотивам гошного viper'а, но может есть что-то питонячье общепринятое, а я не знаю
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Я использую самописную, на базе yaml. Есть возможность "наследоваться" от других yaml с переопределением настроек + поддержка jinja2 шаблонизатора. Т.е. сначала yaml-файл обратабывается как Jinja2 шаблон - за счёт этого можно в него вставлять ENV и другие переменные, переданные из рантайма.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Можно использовать или наследоваться от yaml, из другого питонячего пакета, указав путь к нему в виде other.package:/etc/config.yaml
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
С Jinja2 - это я конечно упоролся, можно было наверное добавить какие-то кастомные "теги" в сам yaml. Но так было проще и быстрее 😊
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Зато можно на более знакомом диалекте делать всякие штуки в конфиге (условия, циклы и др)
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Хотя кроме подстановки переменных ничего ещё ни разу не понадобилось
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Из похожего есть в pypi проект metayaml (от Антона (Байта С.)). Там нет Jinja2 и "наследование" работает по другому.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Общепринятого, как понимаю, в питоне нет. Есть просто разные варианты. От простого ini-файла, парсер которого есть из коробки, до чего угодно с помощью сторонних либ.
источник

RB

Roman Bolkhovitin in rannts
То что общепринятного вероятно нет конечно жаль.

А вы с Антоном свои решения начали писать потому что ничего подходящего не нашли или особо не искали?
источник