core

DotEnv

class msdss_base_dotenv.core.DotEnv(env_file='./.env', key_path=None, defaults={}, **kwargs)[source]

Class to manage environmental variables.

Parameters
  • env_file (str) – The path of the file with environmental variables.

  • key_path (str) – The path of the key file for the env_file.

  • defaults (dict) – Key and value pairs representing default environment values to be loaded. These will be loaded if ones in the env_file do not exist or are unset.

  • **kwargs

    Keyword arguments defining the environmental variable name mappings for this object:

    • Each key represents an alias name referring to an environmental variable

    • Each value represents the environmental variable name

    • This allows changing env vars to refer to the same keys

env_file

Same as parameter env_file.

Type

str

key_path

Same as parameter key_path.

Type

str

defaults

Same as parameter defaults.

Type

dict

mappings

Dictionary of key and values relative to kwargs.

Type

dict

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import DotEnv

# Create env
env = DotEnv(secret='MSDSS_SECRET', password='PASSWORD')

# Set an env var
env.set('password', 'msdss123')

# Get an existing env var
password = env.get('password')
print('password: ' + password)

# Get a non-existent env var
# Will print the default value 'secret-default'
secret = env.get('secret', 'secret-default')
print('secret: ' + secret)

# Del the password
env.delete('password')
password = env.get('password')
print('password_after_del: ' + str(password))

# Set the password
env.set('password', 'new-password')
password = env.get('password')
print('password_after_set: ' + str(password))

# Save the env file
env.save()

# Load the saved env file
env.load()

# Remove the env files
env.clear()
password: msdss123
secret: secret-default
password_after_del: None
password_after_set: new-password

clear

DotEnv.clear()[source]

Delete env and key files.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create env
env = DotEnv(secret='MSDSS_SECRET', password='PASSWORD')

# Set an env var
env.set('password', 'msdss123')

# Save the current specified env vars to an encrypted file
env.save()

# Create files
env.clear()

delete

DotEnv.delete(key, throw_error=False)[source]

Delete an environment variable if it exists.

Parameters
  • key (str) – The key to delete a reference env var.

  • throw_error (bool) – Throw an error if the environment variable does not exist.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(user='USER', password='PASSWORD')

# Set env var values
env.set('user', 'msdss')
env.set('password', 'msdss123')
before_delete = env.get('password')

# Delete an env var based on key alias
env.delete('password')
after_delete = env.get('password')

# Print results
print('before_delete: ' + before_delete)
print('after_delete: ' + str(after_delete))
before_delete: msdss123
after_delete: None

exists

DotEnv.exists()[source]

Check if a set of env vars exist based on the env and key files.

Returns

Whether the env exists or not.

Return type

bool

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(user='USER', password='PASSWORD')

# Set env var values
env.set('user', 'msdss')
env.set('password', 'msdss123')

# Check that env exists
env.save()
before_clear = env.exists()

# Clear and check again
env.clear()
after_clear = env.exists()

# Print results
print('before_clear: ' + str(before_clear))
print('after_clear: ' + str(after_clear))
before_clear: True
after_clear: False

get

DotEnv.get(key, default=None)[source]

Obtain the value of an env var.

Parameters
  • key (str) – The key to get a reference env var.

  • default (str or None) – A default value if there is no value set for the env var. If None, it will use the value set in attribute .defaults before defaulting to None.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(
    someuser='SOME_USER',
    password='PASSWORD',
    defaults=dict(
        someuser='default-user'
    )
)

# Set env var values
env.set('password', 'msdss123')

# Get the PASSWORD var
password = env.get('password')
print('password: ' + password)

# Check if user is set
user_is_set = env.is_set('someuser')
print('user_is_set: ' + str(user_is_set))

# Get the USER var
# Will be default since it does not exist
user = env.get('someuser')
print('user: ' + user)
password: msdss123
user_is_set: False
user: default-user

is_set

DotEnv.is_set(key)[source]

Check whether an environment variable is set.

Parameters

key (str) – The key to get a reference env var.

Returns

Whether or not the environment variable from key is set.

Return type

bool

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(
    someuser='SOME_USER',
    password='PASSWORD',
    defaults=dict(
        someuser='default-user'
    )
)

# Get the USER var
user_is_set = env.is_set('someuser')
print('user_is_set: ' + str(user_is_set))

# Get the USER var again
env.set('someuser', 'new-user')
user_is_set = env.is_set('someuser')
print('user_is_set_after: ' + str(user_is_set))
user_is_set: False
user_is_set_after: True

load

DotEnv.load()[source]

Load env vars from the saved env file.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(user='USER', password='PASSWORD')
env.set('user', 'new-user')

# Save the env vars
env.save()

# Load and see env vars
env.load()
user = env.get('user')
print('user: ' + user)

# Clear env files
env.clear()
user: new-user

save

DotEnv.save()[source]

Save env vars to a file.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(user='USER', password='PASSWORD')
env.set('user', 'new-user')

# Save the env vars
env.save()

# Load and see env vars
env.load()
user = env.get('user')
print('user: ' + user)

# Clear env files
env.clear()
user: new-user

set

DotEnv.set(key, value)[source]

Sets an env var and saves it in the file.

Parameters
  • key (str) – The key to get a reference env var.

  • value (str) – A value to set for the env var.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_base_dotenv import *

# Create default key value env
env = DotEnv(user='USER', password='PASSWORD')

# Set env var values
env.set('user', 'msdss')
env.set('password', 'msdss123')

# Get env var values to check
user = env.get('user')
password = env.get('password')
print('user: ' + user)
print('password: ' + password)
user: msdss
password: msdss123