Source code for athena.settings

'''
Created on Jan 9, 2016

@author: Connor
'''
import os, yaml

[docs]def ensure_dir(d): if not os.path.exists(d): os.mkdir(d)
CLIENT_DIR = os.path.dirname(os.path.abspath(__file__)) BASE_DIR = os.path.dirname(CLIENT_DIR) KEYS_DIR = os.path.join(CLIENT_DIR, '.credentials') MODEL_DIR = os.path.join(CLIENT_DIR, 'models') LOGS_DIR = os.path.join(CLIENT_DIR, 'logs') MEDIA_DIR = os.path.join(CLIENT_DIR, 'media') USERS_DIR = os.path.join(CLIENT_DIR, 'users') DIRS = [KEYS_DIR, MODEL_DIR, LOGS_DIR, MEDIA_DIR, USERS_DIR] for folder in DIRS: ensure_dir(folder) # Set these to False while debugging USE_STT = True USE_TTS = True inst = None
[docs]def init(): global inst inst = Settings()
[docs]def find_users(): users = [] for file in os.listdir(USERS_DIR): if file.endswith('.yml'): with open(os.path.join(USERS_DIR, file)) as f: user = yaml.load(f) users.append(user['user_api']['username']) return users
[docs]class Settings(): def __init__(self): self.login() #self.load_keys()
[docs] def check_users(self): self.users = find_users() if not self.users: print('~ No users found. Please create a new user.\n') import athena.config as cfg cfg.generate() self.users = find_users()
[docs] def login(self): self.check_users() print('~ Users: ', str(self.users)[1:-1]) valid_user = False while not valid_user: username = input('\n~ Username: ') if username not in self.users: print('\n~ Please enter a valid username') continue with open(os.path.join(USERS_DIR, username+'.yml'), 'r') as f: self.user = yaml.load(f) print('\n~ Logged in as: '+self.user['user_api']['username']) break
[docs] def load_keys(self): self.keys = None with open(os.path.join(KEYS_DIR, 'keys.yml'), 'r') as f: self.keys = yaml.load(f)