def all(cls): indexes = Env.config().get_schema().get(cls.__column_family(), 'indexes') print cls.__column_family() print Env.config().get_schema().get("Post") if "__global__" in indexes: return cls.by_index("__global__", "__global__") raise IndexNotDefined("Global (__global__) index is not defined")
def __initialize_columns_from_schema(self): schema = Env.config().get_schema(self.__class__.__column_family(), "fields") for field in schema: if 'default' in schema[field]: self.__columns[field] = schema[field]['default'] else: self.__columns[field] = ""
def __column_family(cls): if not cls.___column_family: column_family = Env.config().get_schema(cls.__name__, 'column_family') if not column_family: column_family = cls.__name__ cls.___column_family = column_family return cls.___column_family
def after_delete(self): indexes = Env.config().get_schema().get(self.__class__.__column_family(), 'indexes') db = Env.db_connection() for index in indexes: if index == "__global__": db.remove_from_index(indexes[index]['name'], index, self.pk()) else: db.remove_from_index(indexes[index]['name'], self[index], self.pk()) pass
def after_create(self): indexes = Env.config().get_schema().get(self.__class__.__column_family(), 'indexes') db = Env.db_connection() for index in indexes: if index == "__global__": db.add_to_index(indexes[index]['name'], index, self.pk(), indexes[index]['comparator']) else: db.add_to_index(indexes[index]['name'], self[index], self.pk(), indexes[index]['comparator']) pass
def by_index(cls, column, value): indexes = Env.config().get_schema().get(cls.__column_family(), 'indexes') db = Env.db_connection() if column in indexes: index = indexes[column] results = [] rows = db.get_by_index(cls.__column_family(), index['name'], value, bool(index['reversed'])) for row_key in rows: results.append(cls(rows[row_key], False, row_key)) return results raise IndexNotDefined("Index for %s is not defined" % column) pass
def pk(self): if not self.__pk: comparator = Env.config().get_schema(self.__class__.__column_family(), "key_type") self.__pk = getattr(Env.db_connection(), "generate_%s_pk" % comparator.lower())() return self.__pk