Source code for odoo_tools.services.models

[docs]class BaseModel(object): def __init__(self, data): self._data = {} for key, value in data.items(): if hasattr(self, key): setattr(self, key, value) else: self._data[key] = value
[docs] @classmethod def parse(self, data): if isinstance(data, BaseModel): return data else: return self(data)
[docs]class ParentedObject(object): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._parent = None
[docs] def set_parent(self, parent): self._parent = parent
[docs] def get_parent(self, klass): current_obj = self while hasattr(current_obj, '_parent'): if isinstance(current_obj, klass): return current_obj else: current_obj = current_obj._parent if isinstance(current_obj, klass): return current_obj
[docs]class Extendable(object):
[docs] def extend(self, other): raise NotImplementedError()