Source code for babao.config

"""Here we'll handle the config file and the various file/dir paths"""

import configparser as cp
import os

from babao.utils.enum import QuoteEnum, CryptoEnum

# globad vars
CONFIG_DIR = os.path.join(os.path.expanduser("~"), ".babao.d")
CONFIG_FILE = os.path.join(CONFIG_DIR, "babao.conf")
API_KEY_FILE = os.path.join(CONFIG_DIR, "kraken.key")  # TODO: move
LOCK_FILE = os.path.join(CONFIG_DIR, "babao.lock")  # TODO: move?
LOG_DIR = os.path.join(CONFIG_DIR, "log")
DATA_DIR = os.path.join(CONFIG_DIR, "data")
DB_FILE = os.path.join(DATA_DIR, "babao-database.hdf")  # TODO: move

# config vars
QUOTE = None
CRYPTOS = None  # TODO: infere from models
TIME_INTERVAL = None
MAX_GRAPH_POINTS = None

CURRENT_COMMAND = None


[docs]def readConfigFile(cmd_name="dry-run"): """Read config file and initialize global config variables""" # TODO: find a better way to handle config global QUOTE global CRYPTOS global TIME_INTERVAL global MAX_GRAPH_POINTS global CURRENT_COMMAND CURRENT_COMMAND = cmd_name config = cp.RawConfigParser() config.read(CONFIG_FILE) QUOTE = config.get( "babao", "QUOTE", fallback="EUR" ) QUOTE = QuoteEnum[QUOTE] CRYPTOS = config.get( "babao", "CRYPTOS", fallback="ETH LTC XBT" ) CRYPTOS = [CryptoEnum[c] for c in CRYPTOS.split()] TIME_INTERVAL = config.getint( "babao", "TIME_INTERVAL", fallback=5 ) MAX_GRAPH_POINTS = config.getint( "babao", "MAX_GRAPH_POINTS", fallback=420 )
# TODO: check if these vars are valid