#! /usr/bin/env python3 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from models import * import sys from prompt_toolkit.completion import FuzzyWordCompleter from prompt_toolkit.shortcuts import prompt engine = create_engine("sqlite:///app.db") Base = declarative_base() Session = sessionmaker(bind=engine) session = Session() # categories = session.query(Category).all() def create_category(name, parent=None): c = session.query(Category).filter(Category.name == name).first() if not c: c = Category(name=name, parent_id=parent) session.add(c) session.commit() return c.id def add_category(name): parts = name.split(":") if len(parts) == 1: create_category(name) else: for i in range(len(parts) - 1): parent = parts[i] child = parts[i + 1] parent_id = create_category(parent) create_category(child, parent=parent_id) names = ["Ausgaben", "Einnahmen", "Ausgaben:Miete", "Einnahmen:Gehalt", "Ausgaben:Nahrung"] for c in names: add_category(c)