-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig_loader.py
More file actions
59 lines (47 loc) · 1.95 KB
/
config_loader.py
File metadata and controls
59 lines (47 loc) · 1.95 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
51
52
53
54
55
56
57
58
59
import configparser
import logging
import os
import signal
import time
import logger as log
def signal_handler(sig, frame):
# Handle Ctrl+C
logging.info("Keyboard interruption detected.")
# Clean up code here if necessary
exit(0)
# Register the signal handler
signal.signal(signal.SIGINT, signal_handler)
config = configparser.SafeConfigParser()
config_file = 'config.ini'
config.read(config_file)
log_dir = config.get('application', 'log_dir')
summarized_logs = config.get('application', 'summarized_logs')
if not os.path.exists(log_dir):
os.mkdir(log_dir)
if not os.path.exists(summarized_logs):
os.mkdir(summarized_logs)
timestamp = time.strftime('%Y%m%d-%H%M%S')
filename1 = f'{log_dir}/PS_{timestamp}.log'
filename2 = f'{summarized_logs}/PS_{timestamp}.log'
dual_file_handler = log.DualFileHandler(filename1, filename2)
logger = logging.getLogger()
logger.addHandler(dual_file_handler)
logger.setLevel(logging.INFO)
logging.info("loading initial configuration")
config = configparser.SafeConfigParser()
config_file = 'config.ini'
config.read(config_file)
download_url = config.get('application', 'download_url')
save_data_as_json = config.getboolean('application', 'save_data_as_json')
state = config.get('application', 'state')
state_short = config.get('application', 'state_short')
xlsx_dir = config.get('application', 'xlsx_dir')
file_extension = config.get('application', 'file_extension')
script_name = config.get('application', 'script_name')
keep_old_data = config.getboolean('application', 'keep_old_data')
facility_name_field = config.get('application', 'facility_name_field')
state_name_field = config.get('application', 'state_name_field')
database_connection_string = config.get('database', 'connection_string')
database_name = config.get('database', 'database_name')
database_collection = config.get('database', 'collection')
logging.info("initial configuration has been loaded")