Source code for specdash.models.base_model
[docs]class Base():
def __init__(self):
pass
[docs] def from_dict(self, dict):
for attr in self.__dict__:
self.__dict__[attr] = dict[attr]
[docs] def return_class(self):
return self
[docs] def to_dict(self):
d = self.__dict__
for key in d:
if hasattr(d[key],"__class__") and hasattr(d[key],"__dict__") and callable(getattr(d[key],"to_dict")):
d[key] = d[key].to_dict()
return d
[docs] def to_dict2(self, classkey=None):
if isinstance(self, dict):
data = {}
for (k, v) in self.items():
data[k] = self.to_dict(v, classkey)
return data
elif hasattr(self, "_ast"):
return self.to_dict(self._ast())
elif hasattr(self, "__iter__") and not isinstance(self, str):
return [self.to_dict(v, classkey) for v in self]
elif hasattr(self, "__dict__"):
data = dict([(key, self.to_dict(value, classkey))
for key, value in self.__dict__.items()
if not callable(value) and not key.startswith('_')])
if classkey is not None and hasattr(self, "__class__"):
data[classkey] = self.__class__.__name__
return data
else:
return self
[docs] @classmethod
def to_string(self):
return str(self.to_dict())
[docs] def get_attributes(self):
return [t for t in self.__dict__]