from mods.db import db, Catalog, CatalogIndex def add_catalog(name): with db.atomic(): catalog = Catalog.create(name=name) CatalogIndex.insert( { CatalogIndex.rowid: catalog.id, CatalogIndex.text: name } ).execute() return catalog def search_catalogs(q): with db.atomic(): return (Catalog.select() .join( CatalogIndex, on=(Catalog.id == CatalogIndex.rowid)) .where(CatalogIndex.match(q)) .order_by(CatalogIndex.bm25()))