Source code for msdss_models_api.env
from msdss_base_dotenv import DotEnv
from .defaults import DEFAULT_DOTENV_KWARGS
[docs]class ModelsDotEnv(DotEnv):
"""
Class to manage model environment variables.
* Extends :class:`msdss_base_dotenv:msdss_base_dotenv.core.DotEnv`
Parameters
----------
broker_url : str
Link to connect to a `RabbitMQ <https://www.rabbitmq.com/>`_ broker.
backend_url : str
Link to connect to a `RabbitMQ <https://www.rabbitmq.com/>`_ backend.
folder : str
Path to the folder to store saved models and instances.
Author
------
Richard Wen <rrwen.dev@gmail.com>
Example
-------
.. jupyter-execute::
from msdss_models_api.env import ModelsDotEnv
# Get default env vars
env = ModelsDotEnv()
env.save() # save to .env file
env.load() # load the same file
# Print defaults
print('default_env:\\n')
for k, name in env.mappings.items():
value = str(env.get(k))
print(f'{name}: {value}')
# Remove saved .env file
env.clear()
# Create models env with diff var names
alt_env = ModelsDotEnv(
broker_url='MSDSS_MODELS_BROKER_URL_B',
backend_url='MSDSS_MODELS_BACKEND_URL_B',
folder='MSDSS_MODELS_FOLDER_B'
)
# Set secret
alt_env.set('broker_url', 'redis://localhost:6379/0')
# Set folder
alt_env.set('folder', './path/to/folder')
alt_env.delete('folder')
# Check if backend url is set
backend_is_set = alt_env.is_set('backend_url')
# Print custom env
# See new env
print('\\nalt_env:\\n')
for k, name in alt_env.mappings.items():
value = str(alt_env.get(k))
print(f'{name}: {value}')
print('backend_is_set: ' + str(backend_is_set))
# Clear alt env files
alt_env.clear()
"""
def __init__(
self,
broker_url=DEFAULT_DOTENV_KWARGS['broker_url'],
backend_url=DEFAULT_DOTENV_KWARGS['backend_url'],
folder=DEFAULT_DOTENV_KWARGS['folder'],
env_file=DEFAULT_DOTENV_KWARGS['env_file'],
key_path=DEFAULT_DOTENV_KWARGS['key_path']):
kwargs = locals()
del kwargs['self']
del kwargs['__class__']
super().__init__(**kwargs)