Path: blob/main/scripts/reports/inventory_patchup.py
1128 views
#A collection of functions usesd to patch up uploads which had bugs12import lmfdb.inventory_app.lmfdb_inventory as inv3import lmfdb.inventory_app.inventory_db_core as idc456def amend_collection_info(inv_db):7""" Fixes missing or empty string collection Notes and Info for every db8"""910a=list(inv_db.collection_ids.find())11dummy_info = {} #Dummy per collection info, containing basic fields we want included12for field in inv.info_editable_fields:13dummy_info[field] = None1415for collection in a:16if collection['INFO'] == '' or collection['NOTES'] == '':17print('Fixing ', collection['name'])18idc.set_coll(inv_db, collection['db_id'], collection['name'], collection['name'], {'description':''}, dummy_info)1920def get_sample_of_table(inv_db, table_name, size=10, condition=None):2122if condition and type(condition) is not dict:23raise TypeError('Condition must be dict')24if condition:25curs = inv_db[table_name].aggregate([ {'$match':condition}, {'$sample':{'size':int(size)} } ] )26else:27curs = inv_db[table_name].aggregate([{'$sample':{'size':int(size)}}])28return list(curs)293031