def __init__(self): """ An interface definition class. All Interfaces should subclass from here. Note that this is not an implementation and should never be used directly. """ raise exc.dRestInterfaceError("Interfaces can not be used directly.")
def validate(interface, obj, members, metas=[]): """ A wrapper to validate interfaces. Required Arguments: interface The interface class to validate against obj The object to validate. members A list of object members that must exist. Optional Arguments: metas A list of meta parameters that must exist. """ invalid = [] for member in members: if not hasattr(obj, member): invalid.append(member) if hasattr(obj, '_meta'): for meta in metas: if not hasattr(obj._meta, meta): invalid.append('_meta.%s' % meta) if invalid: raise exc.dRestInterfaceError("Invalid or missing: %s in %s" % \ (invalid, obj))