Source code for dtlpy.entities.base_entity

from enum import Enum
import json

from .. import miscellaneous


[docs]class EntityScopeLevel(str, Enum): PRIVATE = 'private', PROJECT = 'project', ORG = 'org', PUBLIC = 'public'
class BaseEntity(object): is_fetched = True def print(self, to_return=False, columns=None): """ :param to_return: :param columns: """ return miscellaneous.List([self]).print(to_return=to_return, columns=columns) def to_df(self, show_all=False, columns=None): """ :param show_all: :param columns: """ return miscellaneous.List([self]).to_df(show_all=show_all, columns=columns) class DlEntity(object): is_fetched = True def print(self, to_return=False, columns=None): """ :param to_return: :param columns: """ return miscellaneous.List([self]).print(to_return=to_return, columns=columns) def to_df(self, show_all=False, columns=None): """ :param show_all: :param columns: """ return miscellaneous.List([self]).to_df(show_all=show_all, columns=columns) # def __repr__(self): # string = '{}('.format(self.__class__.__name__) # for prop in dir(self): # if isinstance(prop, DlProperty) and prop.repr is True: # string += '{}={}'.format() # params = json.dumps(self._dict, indent=4) # return "{}({})".format(self.__class__.__name__, params) # def __repr__(self): # self.print() # def __getattribute__(self, attr): # if super(BaseEntity, self).__getattribute__(attr) is None: # pass # return super(BaseEntity, self).__getattribute__(attr) class DlProperty(object): def __init__(self, location, default=None, type=None): self.location = location self.default = default self.type = type def __get__(self, instance, owner): _dict = instance._dict for key in self.location[:-1]: _dict = _dict.get(key, dict()) value = _dict.get(self.location[-1], self.default) isinstance(value, self.type) return value def __set__(self, instance, value): _dict = instance._dict for key in self.location[:-1]: _dict = _dict.get(key, dict()) _dict[self.location[-1]] = value