def get_from_list(cls, list_name): conn = Connection.get_conn() objs = conn.lrange(list_name, 0, -1) for obj_list in objs: try: yield [cls.load_from_str(obj_str) for obj_str in eval(obj_list)] except: pass
def delete(cls, inst, del_inst = False, list_name = None): if list_name is None: list_name = inst.get_default_list_name() conn = Connection.get_conn() conn.hdel(list_name, inst.get_key()) if del_inst: del inst
def get_all(cls, list_name = None): if not cls.is_stored(): return if list_name is None: list_name = cls.get_default_list_name() conn = Connection.get_conn() hkeys = conn.hkeys(list_name) for key in hkeys: yield cls.load(key, list_name)
def save(self, list_name=None): if not is_stored(): return if list_name is None: list_name = self.get_default_list_name() self.list_name = list_name storage_key = self.get_key() conn = Connection.get_conn() s = self.save_to_str() conn.hset(list_name, storage_key, s)
def add_to_list(self, list_name): conn = Connection.get_conn() if conn.llen(list_name) > 0: last_elem = eval(conn.lindex(list_name, -1)) if isinstance(last_elem, list): if len(last_elem) > 0: try: last_set = ExercizeSet.load_from_str(last_elem[-1]) if last_set.exercize == self.exercize: last_elem.append(self.save_to_str()) conn.lset(list_name, -1, last_elem) return except: pass conn.rpush(list_name, [self.save_to_str()])
def load(cls, key, list_name=None): if not cls.is_stored(): return None if list_name is None: list_name = cls.get_default_list_name() print "--- Loading '{0}' by key '{1}'".format(cls.__name__, key) conn = Connection.get_conn() str = conn.hget(list_name, key) if str is None: return None obj = cls.load_from_str(str) obj.set_key(key) obj.list_name = list_name return obj
def add_to_list(self, list_name): conn = Connection.get_conn() conn.rpush(list_name, self.get_key())
def any(day): conn = Connection.get_conn() return conn.llen('workout:' + date_to_str(day)) > 0