def select_backup(self): filename = list_choice(listdir(self.config['backup_dir'])) if bool_question('are you sure you want to overwrite all data?', default=False): # first of all, backup existing data write_backup(self.db, self.config['backup_dir']) # now load new data load_backup(self.db, filename, self.config['backup_dir'])
def track_expense(self): price = type_input('price', float) price = int(price * 100) currency = query_choice(self.db.query(Currency)) cat = query_choice(self.db.query(Category)) advanced = bool_question('advanced options?', default=False) # initialize with simple setup issued = dt.datetime.now() note = None end = None repeat = None if advanced: if bool_question('Not issued right now?', default=False): issued = dt_input('Date if issue') if bool_question('Do you want to add a note?', default=False): note = str_input('Note') if bool_question('long term expense?', default=False): end = dt_input('End if expense') if bool_question('repeat?', default=False): repeat = type_input('Repeat this expense every _ months', int, default=-1) if repeat == -1: repeat = None eur = to_eur(price, currency.identifier, issued) print('That was an expense of {:.2f}€'.format(eur / 100.0)) expense = Expense(issued=issued, price=price, in_eur=eur, note=note, end=end, repeat_interval=repeat, currency=currency, category=cat) self.db.add(expense) self.db.commit() if bool_question('another expense?', default=True): self.track_expense()
from expenses.data_connector import db_create, write_config from command_line.user_input import str_input, bool_question if __name__ == '__main__': db_name = str_input('database name', default='test') db_name += '.db' db_password = str_input('database password', default='123456') while len(db_password) < 6: print('Password too short, min. 6 characters') db_password = str_input('database password', default='123456') db_create(db_name, password=db_password) config = {} if bool_question('store login in config?', default=True): config['db'] = db_name config['password'] = db_password config['backup_dir'] = str_input('backup directory', default='backup') write_config(config)