def add_products(objs, batch_size=50): """ Add a set of products """ with ModelDB() as db: for b in _batch(objs, batch_size): db.session.bulk_save_objects(b)
def update_product(asin, key, value): """ Update a given product. """ with ModelDB() as db: db.session.query(Product).filter(Product.asin == asin).\ update({key: json.dumps(value)})
def add_reviewusers(objs, batch_size=50): """ Add a set of users. """ with ModelDB() as db: for b in _batch(objs, batch_size): db.session.bulk_save_objects(b)
def product_exists(asin): """ Return if a product is present in the database. """ with ModelDB() as db: query = db.session.query(Product).filter(Product.asin == asin) ans = db.session.query(query.exists()).all().pop()[0] return ans
def get_all_ids(): """ Get all product IDs in the database. """ with ModelDB() as db: query = db.session.query(Product.asin) result = query.all() return [r[0] for r in result]
def get_user_set(count): """ Get a certain number of users. """ with ModelDB() as db: query = db.session.query(ReviewUser.id).limit(count) result = query.all() return [r[0] for r in result]
def user_exists(user): """ Check if a user exists. """ with ModelDB() as db: query = db.session.query(ReviewUser).filter(ReviewUser.id == user) ans = db.session.query(query.exists()).all().pop()[0] return ans
def get_reviewusers(ids): """ Get a set of review users. """ with ModelDB() as db: result = db.session.query(ReviewUser).filter( ReviewUser.id.in_(ids)).all() return result
def get_products(ids): """ Get a set of products """ with ModelDB() as db: result = db.session.query(Product).filter(Product.asin.in_(ids)).all() for r in result: r.convert_json() return result
def search_products(query_str): """ Return all products that match the given query string. """ with ModelDB() as db: query = db.session.query(Product).filter( or_(Product.title.like(query_str), Product.brand.like(query_str))) result = query.all() for _, val in enumerate(result): val.convert_json() return result
def test_database(self): assert_that(ModelDB(), is_not(raises(Exception))) with ModelDB() as _: pass
def wrapper(*args, **kwargs): with ModelDB() as db: if "product" not in db.inspector.get_table_names(): Base.metadata.create_all(db._engine) return func(*args, **kwargs)