Beispiel #1
0
 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")
Beispiel #2
0
 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] = ""
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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