Source code for msdss_users_api.env
from msdss_base_dotenv import DotEnv
from .defaults import DEFAULT_DOTENV_KWARGS
[docs]class UsersDotEnv(DotEnv):
"""
Class to manage user environment variables.
* Extends :class:`msdss_base_dotenv:msdss_base_dotenv.core.DotEnv`
Parameters
----------
cookie_secret : str
The environmental variable name for ``cookie_secret``.
jwt_secret : str
The environmental variable name for ``jwt_secret``.
reset_password_token_secret : str
The environmental variable name for ``reset_password_token_secret``.
verification_token_secret : str
The environmental variable name for ``verification_token_secret``.
defaults : dict
Default values for above parameters if they are not set.
env_file : str
The path of the file with environmental variables.
key_path : str
The path of the key file for the ``env_file``.
Author
------
Richard Wen <rrwen.dev@gmail.com>
Example
-------
.. jupyter-execute::
from msdss_users_api.env import UsersDotEnv
# Get default env vars
env = UsersDotEnv()
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 users env with diff var names for secrets
alt_env = UsersDotEnv(
cookie_secret='MSDSS_USERS_SECRET_B',
reset_password_token_secret='MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET_B',
verification_token_secret='MSDSS_USERS_VERIFICATION_TOKEN_SECRET_B'
)
# Set secret
alt_env.set('cookie_secret', 'some-secret-phrase')
# Set verification token secret and delete
alt_env.set('verification_token_secret', 'to-be-deleted')
alt_env.delete('verification_token_secret')
# Check if reset password token is set
reset_password_is_set = alt_env.is_set('reset_password_token_secret')
# 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('reset_password_is_set: ' + str(reset_password_is_set))
# Clear alt env files
alt_env.clear()
"""
def __init__(
self,
jwt_secret=DEFAULT_DOTENV_KWARGS['jwt_secret'],
cookie_secret=DEFAULT_DOTENV_KWARGS['cookie_secret'],
reset_password_token_secret=DEFAULT_DOTENV_KWARGS['reset_password_token_secret'],
verification_token_secret=DEFAULT_DOTENV_KWARGS['verification_token_secret'],
defaults=DEFAULT_DOTENV_KWARGS.get('defaults', {}),
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)