mirror of https://github.com/D4-project/d4-core
55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
|
#!/usr/bin/python3
|
||
|
|
||
|
"""
|
||
|
The ``ConfigLoader``
|
||
|
===================
|
||
|
|
||
|
|
||
|
"""
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import time
|
||
|
import redis
|
||
|
import configparser
|
||
|
|
||
|
# Get Config file
|
||
|
config_dir = os.path.join(os.environ['D4_HOME'], 'configs')
|
||
|
config_file = os.path.join(config_dir, 'server.conf')
|
||
|
if not os.path.exists(config_file):
|
||
|
raise Exception('Unable to find the configuration file. \
|
||
|
Did you set environment variables? \
|
||
|
Or activate the virtualenv.')
|
||
|
|
||
|
# # TODO: create sphinx doc
|
||
|
|
||
|
# # TODO: add config_field to reload
|
||
|
|
||
|
class ConfigLoader(object):
|
||
|
"""docstring for Config_Loader."""
|
||
|
|
||
|
def __init__(self):
|
||
|
self.cfg = configparser.ConfigParser()
|
||
|
self.cfg.read(config_file)
|
||
|
|
||
|
def get_redis_conn(self, redis_name, decode_responses=True): ## TODO: verify redis name
|
||
|
return redis.StrictRedis( host=self.cfg.get(redis_name, "host"),
|
||
|
port=self.cfg.getint(redis_name, "port"),
|
||
|
db=self.cfg.getint(redis_name, "db"),
|
||
|
decode_responses=decode_responses )
|
||
|
|
||
|
def get_config_str(self, section, key_name):
|
||
|
return self.cfg.get(section, key_name)
|
||
|
|
||
|
def get_config_int(self, section, key_name):
|
||
|
return self.cfg.getint(section, key_name)
|
||
|
|
||
|
def get_config_boolean(self, section, key_name):
|
||
|
return self.cfg.getboolean(section, key_name)
|
||
|
|
||
|
def has_option(self, section, key_name):
|
||
|
return self.cfg.has_option(section, key_name)
|
||
|
|
||
|
def has_section(self, section):
|
||
|
return self.cfg.has_section(section)
|