Source code for alex.utils.caminfodb

from alex.utils.parsers import CamTxtParser

[docs]class CamInfoDb(object): def __init__(self, db_path): ctp = CamTxtParser(lower=True) self.data = ctp.parse(db_path)
[docs] def matches(self, rec, query): for key, value in query.items(): if not key in rec or not value in rec.get(key): return False return True
[docs] def get_by_id(self, rec_id): for rec in self.data: if rec_id in rec.get('id'): return rec return None
[docs] def get_matching(self, query): res = [] for rec in self.data: if self.matches(rec, query): res += [rec] return res
[docs] def get_possible_values(self): res = [] for item in self.data: for val_item in item.values(): res += val_item return set(res)
[docs] def get_slots(self): slots = set() for item in self.data: for key in item.keys(): slots.add(key) return slots