forked from mindsdb/mindsdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
50 lines (37 loc) · 1.66 KB
/
config.py
File metadata and controls
50 lines (37 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import random
import json
def generate_random_db_name(base_name: str, min_value: int = 1000, max_value: int = 9999) -> str:
"""
Generates a random database name by appending a random number to the base name.
Args:
base_name (str): The base name for the database.
min_value (int, optional): The minimum value for the random number (inclusive). Defaults to 1000.
max_value (int, optional): The maximum value for the random number (inclusive). Defaults to 9999.
Returns:
str: The generated database name.
"""
random_number = random.randint(min_value, max_value)
return f"{base_name}_{random_number}"
def get_value_from_json_env_var(env_var_name: str, key: str):
"""
Retrieve a value from a JSON string stored in as an environment variable.
Args:
env_var_name (str): The name of the environment variable.
key (str): The key in the JSON object to retrieve.
Raises:
EnvironmentError: If the environment variable is not set or is not a valid JSON string.
KeyError: If the key doesn't exist in the parsed dictionary.
Returns:
The value associated with the provided key.
"""
json_str = os.environ.get(env_var_name)
if json_str is None:
raise EnvironmentError(f'Environment variable {env_var_name} is not set.')
try:
parsed_dict = json.loads(json_str)
except json.JSONDecodeError:
raise EnvironmentError(f'Environment variable {env_var_name} is not a valid JSON string.')
if key not in parsed_dict:
raise KeyError(f"Key '{key}' not found in environment variable {env_var_name}")
return parsed_dict[key]