class Thread(BaseModel): # XXX threading simplest model, most data are only in index user_id = columns.Text(primary_key=True) thread_id = columns.Integer(primary_key=True) # counter.thread_id date_insert = columns.DateTime() security_level = columns.Integer() subject = columns.Text()
class IndexedTestModel(Model): __keyspace__ = 'test' test_id = columns.Integer(primary_key=True) attempt_id = columns.Integer(index=True) description = columns.Text() expected_result = columns.Integer() test_result = columns.Integer(index=True)
class UserFollowing(MBase): """ A user follows another user """ user_id = columns.Integer(primary_key=True) following_id = columns.Integer(primary_key=True) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class ProjectFollower(MBase): """ A user following a project """ project_id = columns.Integer(primary_key=True) user_id = columns.Integer(primary_key=True) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class NonEqualityFilteringModel(Model): __keyspace__ = 'test' example_id = columns.UUID(primary_key=True, default=uuid.uuid4) sequence_id = columns.Integer( primary_key=True) # sequence_id is a clustering key example_type = columns.Integer(index=True) created_at = columns.DateTime()
class Activity(BaseActivity): actor = columns.Integer(required=False) extra_context = columns.Bytes(required=False) object = columns.Integer(required=False) target = columns.Integer(required=False) time = columns.DateTime(required=False) verb = columns.Integer(required=False)
class TestModel(Model): test_id = columns.Integer(primary_key=True) attempt_id = columns.Integer(primary_key=True) description = columns.Text() expected_result = columns.Integer() test_result = columns.Integer()
class MessageLookup(BaseModel): """Reverse index for external message id""" user_id = columns.Text(primary_key=True) external_id = columns.Text(primary_key=True) message_id = columns.Integer() thread_id = columns.Integer() offset = columns.Integer()
class Discussion(MBase): id = columns.BigInt(primary_key=True) title = columns.Text(required=True) slug = columns.Text(required=True, index=True) user_id = columns.Integer(index=True) users = columns.Set(value_type=columns.Integer) post_id = columns.BigInt() last_message = columns.BigInt() published_at = columns.BigInt(default=unix_time(dt.utcnow())) topic_id = columns.Integer(required=False, index=True) def to_dict(self): return { 'id': unicode(self.id), 'title': self.title, 'slug': self.slug, 'user_id': self.user_id, 'post_id': unicode(self.post_id), 'last_message': unicode(self.last_message), 'published_at': epoch_to_date(self.published_at), 'topic_id': unicode(self.topic_id) if self.topic_id is not None else None, } @property def published_date(self): return epoch_to_date(self.published_at*1000) @property def published_date_str(self): d = epoch_to_date(self.published_at*1000) return d.strftime("%y%m%d %H%M%S")
class UserFollower(MBase): """ Followers of a user """ user_id = columns.Integer(primary_key=True) follower_id = columns.Integer(primary_key=True) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class RRule(BaseModel): """Recurrence Rule""" user_id = columns.Text(primary_key=True) # partition key rrule_id = columns.UUID(primary_key=True, default=uuid.uuid4) type = columns.Text() occurrence = columns.Integer(default=1) value = columns.Integer() events = columns.List(columns.UUID)
class Comment(Model): object_id = columns.UUID(primary_key = True) id = columns.TimeUUID(primary_key = True, default=uuid1, clustering_order="desc") author = columns.Text(primary_key=True) created_at = columns.DateTime(default=datetime.datetime.now()) updated_at = columns.DateTime() view_count = columns.Integer(default=0) like_count = columns.Integer(default=0) body = columns.Text()
class FilterRule(BaseModel): user_id = columns.Text(primary_key=True) rule_id = columns.Integer(primary_key=True) # counter.rule_id date_insert = columns.DateTime() name = columns.Text() filter_expr = columns.Text() position = columns.Integer() stop_condition = columns.Integer(default=None) tags = columns.List(columns.Text)
class TestQueryUpdateModel(Model): partition = columns.UUID(primary_key=True, default=uuid4) cluster = columns.Integer(primary_key=True) count = columns.Integer(required=False) text = columns.Text(required=False, index=True) text_set = columns.Set(columns.Text, required=False) text_list = columns.List(columns.Text, required=False) text_map = columns.Map(columns.Text, columns.Text, required=False)
class Activity(Model): # partition key (1 row per user_id) feed_id = columns.Text(primary_key=True) # clustering key (used for sorting) activity_id = VarInt(primary_key=True) actor = columns.Integer(required=False) extra_context = columns.Bytes(required=False) object = columns.Integer(required=False) target = columns.Integer(required=False) time = columns.DateTime(required=False) verb = columns.Integer(required=False)
class geo_tweet(Model): tweet_id = columns.UUID(primary_key=True, default=uuid.uuid4) created_at_year = columns.Integer(primary_key=True) created_at_month = columns.Integer(primary_key=True) created_at_day = columns.Integer(primary_key=True) created_at_time = columns.Integer(primary_key=True) status = columns.Text(required=True) hashtags = columns.Set(columns.Text()) author_user_name = columns.Text() author_image = columns.Text()
class Message(BaseModel): user_id = columns.Text(primary_key=True) message_id = columns.Integer(primary_key=True) # counter.message_id thread_id = columns.Integer() # counter.thread_id message_type = columns.Text() date_insert = columns.DateTime() security_level = columns.Integer() subject = columns.Text() # Subject of email, the message for short external_message_id = columns.Text() external_parent_id = columns.Text() tags = columns.List(columns.Text) flags = columns.List(columns.Text) # Seen, Recent, Deleted, ... IMAP?
class Photo(Content): __polymorphic_key__ = 'photo' # objectid is the id of a container: photo album, blog post or status update object_id = columns.TimeUUID(required = True, index=True) caption = columns.Text(required = False) data = columns.Bytes(required = False) url_original = columns.Text(required = True) url_thumbnail = columns.Text(required=False) location = columns.Text(required=False) image_type = columns.Text(required=False) filename = columns.Text(required=False) width = columns.Integer(required=False) height = columns.Integer(required=False)
class bid_table(Model): account_id = columns.BigInt(primary_key=True) ad_group_id = columns.BigInt(primary_key=True) bid_actions = columns.Float() bid_clicks = columns.Float() bid_impressions = columns.Float() bid_reach = columns.Float() bid_social = columns.Float() bid_type = columns.Text() target_max_age = columns.Integer() target_min_age = columns.Integer() target_gender = columns.Integer() target_country = columns.Text()
class Story(MBase): """ A story is an event happened in the network. User A followed User B User A starred a project. User A posted a message. User A started a discussion User A mentioned User B in a post(message) - What to do for multiple mentions ? """ id = columns.BigInt(primary_key=True) actor = columns.Integer(partition_key=True) type = columns.Integer(required=True) target = columns.BigInt() payload = columns.Map(columns.Ascii, columns.Ascii) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class Sample(Model): id = columns.Integer(primary_key=True) # id = columns.TimeUUID(primary_key=True) sale = columns.Text() sales_amount_in_euro = columns.Text() time_delay_for_conversion = columns.Text() click_timestamp = columns.Text() nb_clicks_1week = columns.Text() product_price = columns.Text() product_age_group = columns.Text() device_type = columns.Text() audience_id = columns.Text() product_gender = columns.Text() product_brand = columns.Text() product_category_1 = columns.Text() product_category_2 = columns.Text() product_category_3 = columns.Text() product_category_4 = columns.Text() product_category_5 = columns.Text() product_category_6 = columns.Text() product_category_7 = columns.Text() product_country = columns.Text() product_id = columns.Text() product_title = columns.Text() partner_id = columns.Text() user_id = columns.Text() predicted = columns.Text() probabilities = columns.List(columns.Float)
class DiscussionFollower(MBase): """ Users who follows a discussion """ disc_id = columns.BigInt(primary_key=True) user_id = columns.Integer(primary_key=True) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class Topic(MBase): id = columns.Integer(primary_key=True) slug = columns.Text() name = columns.Text() description = columns.Text() last_message_id = columns.BigInt(required=False) last_message_time = columns.BigInt(default=unix_time(dt.utcnow())) main_topic = columns.Boolean(default=False) parent_topic = columns.Integer(required=False) subtopics = columns.Set(value_type=columns.Integer) def to_dict(self): return { 'slug': self.slug, 'name': self.name }
def test_instantiation_with_column_instance(self): """ Tests that columns instantiated with a column instance work properly """ column = columns.Map(columns.Text(min_length=100), columns.Integer()) assert isinstance(column.key_col, columns.Text) assert isinstance(column.value_col, columns.Integer)
class TestIfNotExistsModel(Model): __keyspace__ = 'cqlengine_test_lwt' id = columns.UUID(primary_key=True, default=lambda: uuid4()) count = columns.Integer() text = columns.Text(required=False)
class Users(Model): firstname = columns.Text() age = columns.Integer() city = columns.Text() email = columns.Text() lastname = columns.Text(primary_key=True) def __repr__(self): return 'user(firstname=%s, age=%d)' % (self.firstname, self.age)
class PostVote(MBase): """ All upvotes/downvotes sent to a post """ post_id = columns.BigInt(primary_key=True, partition_key=True) user_id = columns.Integer(primary_key=True) positive = columns.Boolean(default=True) created_at = columns.BigInt(default=unix_time(dt.utcnow()))
class LeveledCompactionChangesDetectionTest(Model): __keyspace__ = 'test' __compaction__ = LeveledCompactionStrategy __compaction_sstable_size_in_mb__ = 160 __compaction_tombstone_threshold__ = 0.125 __compaction_tombstone_compaction_interval__ = 3600 pk = columns.Integer(primary_key=True)
class userbase2(Model): from cqlengine import columns from cqlengine.models import Model from cqlengine import connection from cqlengine.management import sync_table CASSANDRA_KEYSPACE = "playground" uid = columns.Integer(primary_key=True) reviewerID = columns.Text(primary_key=True) reviewerName = columns.Text()
class joined_table(Model): account_id = columns.BigInt(primary_key=True) ad_group_id = columns.BigInt(primary_key=True) bid_type = columns.Text() clicks = columns.Float() cost_per_unique_click = columns.Float() cost_per_result = columns.Float() reach = columns.Integer() result_rate = columns.Float() date_start = columns.Text()