def __init__(self, **kwargs): backend_cls = kwargs.pop("backend", None) if backend_cls is None: raise AttributeError("Missing 'backend' parameter.") self.backend = import_class(backend_cls)(self) schema = kwargs.pop("schema", None) if schema is None: raise AttributeError("Missing 'schema' parameter.") elif isinstance(schema, dict): self.schema = DBSchema.from_dict(schema) elif isinstance(schema, str): self.schema = DBSchema.from_json(schema) self.options = kwargs