@@ -81,32 +81,33 @@ def __init__(self):
81
81
'exec_to_id' : { 'type' : int , 'preserve' : False , 'env' : None , 'value' : None , 'default' : None },
82
82
83
83
# Preservable runtime params
84
- 'app_version' : { 'type' : str , 'preserve' : True , 'env' : 'APP_VERSION' , 'value' : None , 'default' : '0.0.0' },
85
- 'app_name' : { 'type' : str , 'preserve' : True , 'env' : 'APP_NAME' , 'value' : None , 'default' : "PyrunnerApp_{}" .format (uuid .uuid4 ()) },
86
- 'app_start_time' : { 'type' : str , 'preserve' : True , 'env' : None , 'value' : None , 'default' : None },
87
- 'app_root_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_ROOT_DIR' , 'value' : None , 'default' : None },
88
- 'config_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_CONFIG_DIR' , 'value' : None , 'default' : None },
89
- 'temp_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_TEMP_DIR' , 'value' : None , 'default' : None },
90
- 'log_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_LOG_DIR' , 'value' : None , 'default' : None },
91
- 'root_log_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_ROOT_LOG_DIR' , 'value' : None , 'default' : None },
92
- 'worker_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_WORKER_DIR' , 'value' : None , 'default' : None },
93
- 'nozip' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOZIP' , 'value' : None , 'default' : False },
94
- 'dump_logs' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DUMP_LOGS' , 'value' : None , 'default' : False },
95
- 'email' : { 'type' : str , 'preserve' : False , 'env' : 'APP_EMAIL' , 'value' : None , 'default' : None },
96
- 'silent' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_SILENT' , 'value' : None , 'default' : False },
97
- 'debug' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DEBUG' , 'value' : None , 'default' : False },
98
- 'tickrate' : { 'type' : int , 'preserve' : False , 'env' : 'APP_TICKRATE' , 'value' : None , 'default' : 1 },
99
- 'time_between_tasks' : { 'type' : int , 'preserve' : True , 'env' : 'APP_TIME_BETWEEN_TASKS' , 'value' : None , 'default' : 0 },
100
- 'save_interval' : { 'type' : int , 'preserve' : False , 'env' : 'APP_SAVE_INTERVAL' , 'value' : None , 'default' : 10 },
101
- 'max_procs' : { 'type' : int , 'preserve' : False , 'env' : 'APP_MAX_PROCS' , 'value' : None , 'default' : - 1 },
102
- 'log_retention' : { 'type' : int , 'preserve' : True , 'env' : 'APP_LOG_RETENTION' , 'value' : None , 'default' : 30 },
103
- 'dryrun' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DRYRUN' , 'value' : None , 'default' : False },
104
- 'email_on_fail' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_EMAIL_ON_FAIL' , 'value' : None , 'default' : True },
105
- 'email_on_success' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_EMAIL_ON_SUCCESS' , 'value' : None , 'default' : True },
106
- 'notify_on_fail' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOTIFY_ON_FAIL' , 'value' : None , 'default' : True },
107
- 'notify_on_success' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOTIFY_ON_SUCCESS' , 'value' : None , 'default' : True },
108
- 'as_service' : { 'type' : bool , 'preserve' : True , 'env' : 'APP_AS_SERVICE' , 'value' : None , 'default' : False },
109
- 'test_mode' : { 'type' : bool , 'preserve' : True , 'env' : 'APP_TEST_MODE' , 'value' : None , 'default' : False }
84
+ 'app_version' : { 'type' : str , 'preserve' : True , 'env' : 'APP_VERSION' , 'value' : None , 'default' : '0.0.0' },
85
+ 'app_name' : { 'type' : str , 'preserve' : True , 'env' : 'APP_NAME' , 'value' : None , 'default' : "PyrunnerApp_{}" .format (uuid .uuid4 ()) },
86
+ 'app_start_time' : { 'type' : str , 'preserve' : True , 'env' : None , 'value' : None , 'default' : None },
87
+ 'app_root_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_ROOT_DIR' , 'value' : None , 'default' : None },
88
+ 'config_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_CONFIG_DIR' , 'value' : None , 'default' : None },
89
+ 'temp_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_TEMP_DIR' , 'value' : None , 'default' : None },
90
+ 'log_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_LOG_DIR' , 'value' : None , 'default' : None },
91
+ 'root_log_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_ROOT_LOG_DIR' , 'value' : None , 'default' : None },
92
+ 'worker_dir' : { 'type' : str , 'preserve' : True , 'env' : 'APP_WORKER_DIR' , 'value' : None , 'default' : None },
93
+ 'nozip' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOZIP' , 'value' : None , 'default' : False },
94
+ 'dump_logs' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DUMP_LOGS' , 'value' : None , 'default' : False },
95
+ 'email' : { 'type' : str , 'preserve' : False , 'env' : 'APP_EMAIL' , 'value' : None , 'default' : None },
96
+ 'silent' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_SILENT' , 'value' : None , 'default' : False },
97
+ 'debug' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DEBUG' , 'value' : None , 'default' : False },
98
+ 'tickrate' : { 'type' : int , 'preserve' : False , 'env' : 'APP_TICKRATE' , 'value' : None , 'default' : 1 },
99
+ 'time_between_tasks' : { 'type' : int , 'preserve' : True , 'env' : 'APP_TIME_BETWEEN_TASKS' , 'value' : None , 'default' : 0 },
100
+ 'save_interval' : { 'type' : int , 'preserve' : False , 'env' : 'APP_SAVE_INTERVAL' , 'value' : None , 'default' : 10 },
101
+ 'max_procs' : { 'type' : int , 'preserve' : False , 'env' : 'APP_MAX_PROCS' , 'value' : None , 'default' : - 1 },
102
+ 'log_retention' : { 'type' : int , 'preserve' : True , 'env' : 'APP_LOG_RETENTION' , 'value' : None , 'default' : 30 },
103
+ 'dryrun' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_DRYRUN' , 'value' : None , 'default' : False },
104
+ 'email_on_fail' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_EMAIL_ON_FAIL' , 'value' : None , 'default' : True },
105
+ 'email_on_success' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_EMAIL_ON_SUCCESS' , 'value' : None , 'default' : True },
106
+ 'notify_on_fail' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOTIFY_ON_FAIL' , 'value' : None , 'default' : True },
107
+ 'notify_on_success' : { 'type' : bool , 'preserve' : False , 'env' : 'APP_NOTIFY_ON_SUCCESS' , 'value' : None , 'default' : True },
108
+ 'as_service' : { 'type' : bool , 'preserve' : True , 'env' : 'APP_AS_SERVICE' , 'value' : None , 'default' : False },
109
+ 'service_exec_interval' : { 'type' : int , 'preserve' : False , 'env' : 'APP_SERVICE_EXEC_INTERVAL' , 'value' : None , 'default' : 1 },
110
+ 'test_mode' : { 'type' : bool , 'preserve' : True , 'env' : 'APP_TEST_MODE' , 'value' : None , 'default' : False }
110
111
}
111
112
self ._iter_keys = None
112
113
@@ -214,6 +215,26 @@ def __contains__(self, key):
214
215
"""
215
216
return key in self ._attr
216
217
218
+ def is_set (self , key ):
219
+ """
220
+ Determines if key is set either by env var or manually set variable.
221
+
222
+ Args:
223
+ key (str): the key name for which to check if is set
224
+
225
+ Returns:
226
+ Boolean indicating whether or not key is set. False if relying on default value, True otherwise.
227
+ """
228
+
229
+ detl = self ._attr .get (key )
230
+ if not detl :
231
+ raise KeyError ('Config object does not store key: {}' .format (key ))
232
+
233
+ if detl ['value' ] is None and detl ['env' ] is None :
234
+ return False
235
+ else :
236
+ return True
237
+
217
238
def items (self , only_preserve = True ):
218
239
"""
219
240
Converts the Config object into a simple dictionary containing only simple key:value pairs.
0 commit comments