Package: envdatareader
EnvDataReaderEnvDataReader- универсальная библиотека, разработанная для эффективного управления переменными окружения и конфигурациями в ваших проектах. Она предоставляет интуитивно понятные инструменты для создания, управления и плавного переключения между различными настройками окружения, что значительно упрощает процесс разработки.С помощьюEnvDataReaderвы легко сможете:Определять и управлять переменными окружения.Настраивать параметры подключения к различным сервисам и базам данных.Управлять настройками приложения в зависимости от текущего окружения (например, разработка, тестирование, продакшн).Эта библиотека предлагает следующие преимущества:Гибкость: Легко адаптировать приложения к различным условиям работы без изменения кода.Надежность: Создание более надежных и масштабируемых приложений путем эффективного управления окружением с минимальными усилиями и максимальной эффективностью.EnvDataReaderдает разработчикам возможность создавать устойчивые приложения, упрощая управление окружением и обеспечивая адаптацию к различным операционным контекстам без лишних сложностей.Использование EnvDataReaderДля интеграцииenvdatareaderв ваш проект выполните следующие шаги:Установка EnvDataReader:УстановитеEnvDataReaderчерез ваш менеджер пакетов. Например, если вы используете pip:PowerShell | CMDpipinstallenvdatareaderLinuxpip3installenvdatareaderИспользование envdatareader:После установки библиотеки, вы можете создать экземплярEnvDataReaderдля управления вашими переменными окружения. Вот пример использования:# Импортируем класс EnvDataReader из библиотеки envdatareaderfromenvdatareaderimportEnvDataReader# Создаем экземпляр envdatareader без явного указания пути к файлу .env# По умолчанию будет считываться файл .env из корня проектаenv=EnvDataReader()# Получаем значение переменной DP_HOST из файла .env и выводим егоprint(env.get_value("DP_HOST"))В этом примереenvdatareaderсоздается без явного указания пути к файлу .env. По умолчанию,envdatareaderбудет пытаться считать файл.envиз корня проекта. Вы можете использовать метод get_value для извлечения значения конкретной переменной окружения, например, переменнойDP_HOST.fromenvdatareaderimportEnvDataReader# По умолчанию мы считываем файл `.env` из корня проекта. Однако, если ваш файл `.env` хранится в другом месте,# вы можете создать переменную с путем к файлу:custom_env_file_path="env\\.env"# Для использования файла `.env`, расположенного в другом месте, создайте экземпляр envdatareader,# указав путь к файлу:env=EnvDataReader(file_path=custom_env_file_path)# Этот пример показывает, как указать путь к файлу `.env` вне корня проекта при создании экземпляра EnvDataReader.# Затем вы можете получить значения переменных окружения, например, значение переменной DP_HOST.print(env.get_value("DP_HOST"))В данном примере создается экземплярEnvDataReader, где указывается путь к файлу.envвне корня проекта. Это демонстрирует способ использованияEnvDataReaderс пользовательским путем к файлу.env, который отличается от стандартного пути в корне проекта.# Можно также указать путь к файлу `.env` непосредственно при объявлении класса:fromenvdatareaderimportEnvDataReader# При создании экземпляра EnvDataReader сразу пропишем путь к файлу `.env` в его конструкторе:env=EnvDataReader(file_path="env\\.env")# Этот код демонстрирует создание экземпляра EnvDataReader с указанием пути к файлу `.env` внутри объявления класса.# Затем вы можете получить значения переменных окружения, например, значение переменной DP_HOST.print(env.get_value("DP_HOST"))В данном примере экземплярEnvDataReaderсоздается с указанием пути к файлу.envпрямо в конструкторе класса. Это позволяет сразу при создании экземпляра указывать путь к файлу.env, который будет использоваться для работы с переменными окружения.Значение по умолчанию:В случае, если значение переменной окружения отсутствует или не установлено в файле.env, можно установить значение по умолчанию. Пример:fromenvdatareaderimportEnvDataReader# Создаем экземпляр EnvDataReader без указания пути к файлу .envenv=EnvDataReader()# Получаем значение переменной, но если оно отсутствует, используем значение по умолчаниюdefault_value=env.get_value("SOME_VARIABLE_NAME",default="DEFAULT_VALUE")print(default_value)Этот пример иллюстрирует способ использованияEnvDataReaderдля извлечения значения переменнойSOME_VARIABLE_NAMEиз файла.env. В случае, если данная переменная отсутствует или не имеет значения, установленного в файле, будет использовано значение по умолчанию, указанное какDEFAULT_VALUE. Такой механизм предоставляет гибкость в работе с переменными окружения, позволяя задавать значения по умолчанию для обеспечения более предсказуемой работы приложения, даже если некоторые переменные не были установлены или не найдены в файле.env.Управление переменными окружения:В настоящее времяEnvDataReaderпредоставляет возможности только для чтения значений переменных окружения из файла.env. Операции изменения или удаления переменных окружения непосредственно черезEnvDataReaderне поддерживаются в текущей версии библиотеки.В будущих версиях планируется расширение функциональности для управления переменными окружения, включая добавление, изменение и удаление переменных. При появлении обновлений вам будет доступна возможность более активно взаимодействовать с переменными окружения с помощьюEnvDataReader.Использование переменных окружения в условиях:Переменные окружения могут быть использованы для управления поведением вашего приложения в зависимости от среды исполнения или установленных настроек. Пример использования переменных окружения в условиях:fromenvdatareaderimportEnvDataReader# Создаем экземпляр EnvDataReader для доступа к переменным окруженияenv=EnvDataReader()# Проверяем наличие переменной и выполняем определенные действия, если она установленаifenv.get_value("DEBUG_MODE")=="True":# Выполняем действия в режиме отладкиprint("Debug mode is enabled.")else:# Выполняем обычные действияprint("Running in standard mode.")Расширение и Наследование EnvDataReaderБиблиотека EnvDataReader разработана с учетом гибкости и расширяемости, что позволяет легко наследовать ее и добавлять собственные функциональности, если вам нужно дополнительное поведение или поддержка специфических требований вашего проекта.6.1Наследование EnvDataReaderЧтобы наследоватьEnvDataReaderи добавить собственные функции, просто создайте новый класс, унаследованный отEnvDataReader, и добавьте свои методы. Например:fromenvdatareaderimportEnvDataReaderclassMyEnvManager(EnvDataReader):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)defmy_custom_function(self):# Ваш собственный код и логикаpass6.2Добавление новых методовВы можете легко добавить свои собственные методы к наследованному классу. Например, предположим, что вы хотите добавить метод для проверки наличия всех необходимых переменных окружения:fromenvdatareaderimportEnvDataReaderclassMyEnvManager(EnvDataReader):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)defcheck_required_variables(self,required_variables):forvarinrequired_variables:ifnotself.get_value(var):raiseValueError(f"Variable '{var}' is required but not set in the environment.")6.3Использование наследованных классовПосле создания вашего наследованного класса, вы можете использовать его так же, как и оригинальныйEnvDataReader. Вот пример:frommyenvmanagerimportMyEnvManager# Создаем экземпляр нашего наследованного классаmy_env=MyEnvManager()# Используем стандартные методы EnvDataReaderprint(my_env.get_value("DP_HOST"))# Используем наши собственные методыmy_env.check_required_variables(["API_KEY","SECRET_KEY"])# Вызываем собственный методmy_env.my_custom_function()Таким образом, вы можете создать наследованный класс, который сочетает в себе функциональностьEnvDataReaderи ваши собственные уникальные возможности, что делает его более адаптивным к специфическим требованиям вашего проекта.