mirror of https://github.com/D4-project/d4-core
				
				
				
			
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
#!/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)
 |