Конфигурация на уровне модуля
Анти-паттерн
Загрузка переменных окружения на уровне модуля небезопасна. В таком случае к ним имеет доступ любая функция или класс из данного модуля. Вдобавок, при импортировании модуля автоматически импортируются все объявленные переменные окружения.
Пример 1¶
Плохо:
from environs import Env
env = Env()
env.read_env()
Плохо:
from environs import Env
if __name__ == '__main__'
env = Env()
env.read_env()
Хорошо:
from environs import Env
def main():
env = Env()
env.read_env()
if __name__ == '__main__'
main()
Пример 2¶
Плохо:
from dotenv import load_dotenv
load_dotenv()
Плохо:
from dotenv import load_dotenv
if __name__ == '__main__'
load_dotenv()
Хорошо:
from dotenv import load_dotenv
def main():
load_dotenv()
if __name__ == '__main__'
main()