class AlchemyResponse: """ alchemy_object = [AlchemyObject].filter_non_deleted() -> AlchemyResponse alchemy_object.get(1) -> Get the first object in the list alchemy_object.data -> Get the list of objects alchemy_object.count -> Get the count of objects """ def __init__(self, query, first: bool = False): self.first = first self.__query = query def get(self, index: int): count = self.count if count and not index > count: return self.data[index - 1] return None @property def data(self): if self.first: try: return self.__query.first() except Exception as e: err = e self.__query.session.expunge_all() self.__query.session.rollback() return None try: return self.__query.all() except Exception as e: err = e self.__query.session.expunge_all() self.__query.session.rollback() return [] @property def count(self): return self.__query.count() @property def query(self): return self.__query