This helps with polymorphic querying, mapping object class name to model class.
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
def __new__(mcls, name, bases, namespace, **kwargs):
cls = super().__new__(mcls, name, bases, namespace, **kwargs)
+ object_class = cls.get_object_class()
if cls.__name__ != "Model":
cls.fields = dict(inspect.getmembers(cls, lambda f: isinstance(f, Field)))
cls.meta = mcls
- MODELS[name] = cls
+ MODELS[object_class] = cls
return cls
"samdb": samdb,
"ldb": ldb,
})
- context.update(MODELS)
+ context.update({model.__name__: model for model in MODELS.values()})
banner = rf"""
_____ __ __ ____
samdb = {samdb}
"""
for name, model in MODELS.items():
- banner += f"{name} = {model}\n"
+ banner += f"{model.__name__}: {name}\n"
readline.parse_and_bind("tab: complete")
readline.set_completer(rlcompleter.Completer(context).complete)