Skip to content

Commit 4995992

Browse files
committed
CR: read and parse the config file once
1 parent 5c7daf7 commit 4995992

File tree

1 file changed

+41
-42
lines changed

1 file changed

+41
-42
lines changed

cfg/auth.py

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,28 @@
1010

1111
CONFIG_PATH = '../cfg/config.cfg'
1212

13+
try:
14+
with open(CONFIG_PATH) as f:
15+
config_data = f.read()
16+
except IOError:
17+
print('Unable to load configuration file at {}. Exiting.'.format(CONFIG_PATH))
18+
raise
19+
20+
try:
21+
CONFIG = json.loads(config_data)
22+
except ValueError:
23+
print("Unable to parse configuration file at {}, likely because of malformed JSON. Exiting.".format(CONFIG_PATH))
24+
raise
25+
1326
# Configuration of the firebase database
1427
def firebase_admin_auth():
1528
try:
16-
with open(CONFIG_PATH) as json_data_file:
17-
data = json.load(json_data_file)
18-
api_key = data['firebase']['api_key']
19-
auth_domain = data['firebase']['auth_domain']
20-
database_url = data['firebase']['database_url']
21-
storage_bucket = data['firebase']['storage_bucket']
22-
service_account = data['firebase']['service_account']
23-
# print('use configuration for psql as provided by config.json')
29+
api_key = CONFIG['firebase']['api_key']
30+
auth_domain = CONFIG['firebase']['auth_domain']
31+
database_url = CONFIG['firebase']['database_url']
32+
storage_bucket = CONFIG['firebase']['storage_bucket']
33+
service_account = CONFIG['firebase']['service_account']
34+
# print('use configuration for psql as provided by config.json')
2435
except:
2536
# Default Configuration
2637
print('could not get firebase informtaion from config file')
@@ -41,13 +52,11 @@ def firebase_admin_auth():
4152

4253
def dev_firebase_admin_auth():
4354
try:
44-
with open(CONFIG_PATH) as json_data_file:
45-
data = json.load(json_data_file)
46-
api_key = data['dev_firebase']['api_key']
47-
auth_domain = data['dev_firebase']['auth_domain']
48-
database_url = data['dev_firebase']['database_url']
49-
storage_bucket = data['dev_firebase']['storage_bucket']
50-
service_account = data['dev_firebase']['service_account']
55+
api_key = CONFIG['dev_firebase']['api_key']
56+
auth_domain = CONFIG['dev_firebase']['auth_domain']
57+
database_url = CONFIG['dev_firebase']['database_url']
58+
storage_bucket = CONFIG['dev_firebase']['storage_bucket']
59+
service_account = CONFIG['dev_firebase']['service_account']
5160
except:
5261
# Default Configuration
5362
print('could not get firebase dev information from config file')
@@ -72,25 +81,19 @@ def dev_firebase_admin_auth():
7281
# get the api_key
7382
def get_api_key(tileserver):
7483
try:
75-
with open(CONFIG_PATH) as json_data_file:
76-
data = json.load(json_data_file)
77-
api_key = data['imagery'][tileserver]
78-
return api_key
79-
except Exception:
80-
print("Couldn't parse %s as JSON" % CONFIG_PATH)
84+
return CONFIG['imagery'][tileserver]
85+
except KeyError:
86+
print("Couldn't find the API key for imagery tileserver {} in {}".format(tileserver, CONFIG_PATH))
8187
raise
8288

8389

8490
# get the import submission_key
8591
def get_submission_key():
8692
try:
87-
with open(CONFIG_PATH) as json_data_file:
88-
data = json.load(json_data_file)
89-
submission_key = data['import']['submission_key']
90-
return submission_key
91-
except:
92-
print('we could not load submission key info the config file')
93-
sys.exit()
93+
return CONFIG['import']['submission_key']
94+
except KeyError:
95+
print("Couldn't find the submission key in {}".format(CONFIG_PATH))
96+
raise
9497

9598

9699
class mysqlDB(object):
@@ -100,13 +103,11 @@ class mysqlDB(object):
100103
def __init__(self):
101104
# try to load configuration from config file
102105
try:
103-
with open(CONFIG_PATH) as json_data_file:
104-
data = json.load(json_data_file)
105-
dbname = data['mysql']['database']
106-
user = data['mysql']['username']
107-
password = data['mysql']['password']
108-
host = data['mysql']['host']
109-
# print('use configuration for mysql as provided by config.json')
106+
dbname = CONFIG['mysql']['database']
107+
user = CONFIG['mysql']['username']
108+
password = CONFIG['mysql']['password']
109+
host = CONFIG['mysql']['host']
110+
# print('use configuration for mysql as provided by config.json')
110111
except:
111112
print('we could not load mysql info the config file')
112113
sys.exit()
@@ -146,13 +147,11 @@ class dev_mysqlDB(object):
146147
def __init__(self):
147148
# try to load configuration from config file
148149
try:
149-
with open(CONFIG_PATH) as json_data_file:
150-
data = json.load(json_data_file)
151-
dbname = data['dev_mysql']['database']
152-
user = data['dev_mysql']['username']
153-
password = data['dev_mysql']['password']
154-
host = data['dev_mysql']['host']
155-
# print('use configuration for mysql as provided by config.json')
150+
dbname = CONFIG['dev_mysql']['database']
151+
user = CONFIG['dev_mysql']['username']
152+
password = CONFIG['dev_mysql']['password']
153+
host = CONFIG['dev_mysql']['host']
154+
# print('use configuration for mysql as provided by config.json')
156155
except:
157156
# Default configuration
158157
print('we could not load mysql dev info from the config file')

0 commit comments

Comments
 (0)