Source code for botlib.selector

# lib/selector.py
#
#

""" functions used in code to select what objects to use. """

from .error import ENOTSET

[docs]def selector(object, keys): if not keys: return True go = False for key in keys: try: attr = getattr(object, key) except (AttributeError, ENOTSET): attr = None if attr != None: go = True else: go = False break return go
[docs]def wanted(object, want): if not want: return True if list(want.keys()) == ["start"]: return True if list(want.keys()) == ["start", "end"]: return True go = False for key, value in want.items(): if not value: continue if value.startswith("-"): continue if key in ["start", "end"]: continue if key in object and value and value in str(object[key]): go = True else: go = False break return go
[docs]def notwanted(object, notwant): if not notwant: return False for key, value in notwant.items(): try: value = object[key] return True except: pass return False
[docs]def ignore(object, ignore): if not ignore: return False for key, values in ignore.items(): value = getattr(object, key, []) for val in values: if val in value: return True return False
got_uniq = []
[docs]def uniq(obj, uniqs): if not uniqs: return False for key, value in obj.items(): if key not in got_uniq: got_uniq.append(key) return True else: return False return True