def poem_from_template(template, db: Database, corpus_id, sound_cache=None): engine = get_engine(db) conn = engine.connect() executor = ThreadPoolExecutor(4) letter_sound_map = map_letters_to_sounds(conn, corpus_id, template, sound_cache) process_tmpl_line = threaded(partial(extract_ruleset, conn, corpus_id, letter_sound_map), partial(ruleset_to_line, conn, corpus_id)) poem_lines = executor.map(process_tmpl_line, template) executor.shutdown() return list(poem_lines)
def engine(self): return get_engine(self.db)
def db(request): engine = m.get_engine(DB) m.Base.metadata.create_all(engine) yield m.get_session(DB) m.Session.close_all() m.Base.metadata.drop_all(engine)