Ejemplo n.º 1
0
class Contact(BaseModel, IndexedModelMixin):
    """Contact model."""

    _index_class = IndexedContact

    user_id = columns.UUID(primary_key=True)
    contact_id = columns.UUID(primary_key=True)  # clustering key

    additional_name = columns.Text()
    addresses = columns.List(columns.UserDefinedType(PostalAddress))
    avatar = columns.Text()
    date_insert = columns.DateTime()
    date_update = columns.DateTime()
    deleted = columns.DateTime()
    emails = columns.List(columns.UserDefinedType(Email))
    family_name = columns.Text()
    given_name = columns.Text()
    groups = columns.List(columns.Text())
    identities = columns.List(columns.UserDefinedType(SocialIdentity))
    ims = columns.List(columns.UserDefinedType(IM))
    infos = columns.Map(columns.Text, columns.Text)
    name_prefix = columns.Text()
    name_suffix = columns.Text()
    organizations = columns.List(columns.UserDefinedType(Organization))
    phones = columns.List(columns.UserDefinedType(Phone))
    pi = columns.UserDefinedType(PIModel)
    privacy_features = columns.Map(columns.Text(), columns.Text())
    tags = columns.List(columns.Text(), db_field="tagnames")
    title = columns.Text()  # computed value, read only
Ejemplo n.º 2
0
class main(Model):
    product_type = columns.Ascii(primary_key=True)
    date = columns.Date(primary_key=True)
    product_id = columns.Ascii(primary_key=True)
    parameters = columns.Map(columns.Ascii(),
                             columns.Map(columns.Ascii(),
                                         columns.Ascii()))
Ejemplo n.º 3
0
class BaseTripEventModel(Model):
    """
    Base class so we can define the primary keys of each table separately.
    For this class to make sense, you'll have to define the properties
    `user_id` (columns.UUID)
    `event_time` (columns.TimeUUID)
    `trip_id` (columns.UUID)
    """
    __abstract__ = True
    event_id = columns.UUID(required=True)
    event_type = columns.Text(required=True)
    lat = columns.Float(required=True)
    lng = columns.Float(required=True)
    accuracy = columns.Float(required=True)
    speed = columns.Float(required=True)
    meta = columns.Map(columns.Text, columns.Float)
    sdk = columns.Map(columns.Text, columns.Text)

    # these properties are not persisted; they are used as a transfer mechanism when
    # writing trip events and trips
    score = None
    waypoints = []

    def to_json(self):
        """
        Builds a json-serialized string for this object

        :return: json-encoded string
        """
        return json.dumps(self.get_serializable_dict())

    def get_serializable_dict(self):
        """
        Build a dictionary suitable for serialization from this object. This data structure will match that which
        the client sends to us

        :return: dict representation of this object
        """
        user_dict = {
            "userId": str(self.user_id),
            "eventTime": int(unix_time_from_uuid1(self.event_time)),
            "tripId": str(self.trip_id),
            "eventId": str(self.event_id),
            "eventType": self.event_type,
            "location": {
                "lat": self.lat,
                "lon": self.lng,
                "accuracy": self.accuracy
            },
            "speed": self.speed
        }
        if self.sdk != {}:
            user_dict.update({"sdk": self.sdk})
        if self.meta != None:
            user_dict.update(self.meta)

        return user_dict
Ejemplo n.º 4
0
class SNASlackMetrics(Model):
	__key_space__ = 'sna4slack_metrics'  # Not Required
	__table_name__ = 'nodes_relationships'

	id = columns.UUID(primary_key = True)
	node_name = columns.Text(index=True)
	weight = columns.Integer()
	mentions = columns.Map(columns.Text(), columns.Integer())
	distances = columns.Map(columns.Text(), columns.Integer())
	centrality_metrices = columns.Map(columns.Text(), columns.Integer())
	team_name = columns.Text(index=True)
Ejemplo n.º 5
0
class AccountModel(Model):
    __table_name__ = "account2"
    tp = columns.Text(required=True)
    name = columns.Text(required=True, primary_key=True)
    cash = columns.Float(required=True)
    initial_cash = columns.Float(required=True)
    positions = columns.Map(key_type=columns.Text,
                            value_type=columns.Float,
                            default={})
    account_id = columns.Text()
    history_net_value = columns.Map(key_type=columns.DateTime(),
                                    value_type=columns.Float(),
                                    default={})
Ejemplo n.º 6
0
class UserIdentity(BaseModel):
    """User's identities model."""

    user_id = columns.UUID(primary_key=True)
    identity_id = columns.UUID(primary_key=True)
    credentials = columns.Map(columns.Text, columns.Text)
    display_name = columns.Text()
    identifier = columns.Text()
    infos = columns.Map(columns.Text, columns.Text)
    last_check = columns.DateTime()
    protocol = columns.Text()
    status = columns.Text()
    type = columns.Text()
Ejemplo n.º 7
0
class AccountModel(Model):
    __table_name__ = "account"
    tp = columns.Text(required=True)
    name = columns.Text(required=True, primary_key=True)
    cash = columns.Float(required=True)
    initial_cash = columns.Float(required=True)
    positions = columns.Map(key_type=columns.Text,
                            value_type=columns.Float,
                            default={})
    history_net_value = columns.Map(key_type=columns.DateTime(),
                                    value_type=columns.Float(),
                                    default={})
    orders = columns.List(value_type=UserDefinedType(UserOrderModel))
Ejemplo n.º 8
0
class IndexedCollectionsTestModel(Model):

    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)
    test_list = columns.List(columns.Integer, index=True)
    test_set = columns.Set(columns.Integer, index=True)
    test_map = columns.Map(columns.Text, columns.Integer, index=True)

    test_list_no_index = columns.List(columns.Integer, index=False)
    test_set_no_index = columns.Set(columns.Integer, index=False)
    test_map_no_index = columns.Map(columns.Text, columns.Integer, index=False)
Ejemplo n.º 9
0
class BeaconLogs(DjangoCassandraModel):
    id = columns.UUID(primary_key=True, default=uuid.uuid4)
    beaconId = columns.Integer(primary_key=True)
    interaccionUser = columns.Map(columns.Integer(), columns.Text())
    interaccionProducto = columns.Map(columns.Integer(), columns.Text())
    geolocalizacion = columns.Text()
    bluetoothName = columns.Text(index=True)
    mensaje = columns.Text()
    UUID = columns.UUID(default=uuid.uuid4)
    bateria = columns.Integer(index=True)
    interval = columns.Integer()

    class Meta:
        get_pk_field = 'id'
Ejemplo n.º 10
0
class CronTraceByCron(BaseModel):
    command_name = columns.Text(partition_key=True)
    log_timestamp = columns.DateTime(primary_key=True)
    state = columns.Integer(primary_key=True)
    state_verbose = columns.Text()
    context = columns.Map(columns.Text(), columns.Text())
    hostname = columns.Text()
Ejemplo n.º 11
0
class SubmissionTraceByTimestamp(BaseModel):
    log_timestamp_3 = columns.DateTime(partition_key=True)
    submission_id = columns.Integer(primary_key=True, clustering_order="DESC")
    log_timestamp = columns.DateTime()
    state = columns.Integer(primary_key=True)
    state_verbose = columns.Text()
    user_id = columns.Integer()
    run_id = columns.Integer()
    context = columns.Map(columns.Text(), columns.Text())

    @staticmethod
    def get_partition_key(datetime_obj):
        dt = datetime_obj.replace(minute=0,
                                  second=0,
                                  microsecond=0,
                                  hour=datetime_obj.hour / 3)
        return dt

    @classmethod
    def log(cls, **kwargs):
        log_timestamp = kwargs.get('log_timestamp')
        if not log_timestamp:
            raise Exception('Timestamp should be provided.')
        log_timestamp_3 = cls.get_partition_key(log_timestamp)
        obj = cls.create(log_timestamp_3=log_timestamp_3, **kwargs)
        return obj
Ejemplo n.º 12
0
class page_meta_type(usertype.UserType):
    meta_title = columns.Text(required=False)
    full_title = columns.Text(required=False)
    meta_dscr = columns.Text(required=False)
    meta_keywords = columns.Set(columns.Text(required=False))
    other_languages = columns.Map(columns.Text(required=False), columns.Text(required=False))
    other_html = columns.Text(required=False)
Ejemplo n.º 13
0
class UserOrderModel(Model):
    __table_name__ = "user_order5"
    account_name = columns.Text(required=True, primary_key=True)
    place_time = columns.DateTime(required=True,
                                  primary_key=True,
                                  clustering_order='ASC')
    type = columns.Text(required=True)
    code = columns.Text(required=True)
    direction = columns.Text(required=True)
    quantity = columns.Float(required=True)
    status = columns.Text(required=True)
    reason = columns.Text(required=True)
    remark = columns.Text()
    real_order_id = columns.Text()
    failed_reason = columns.Text()
    cancel_reason = columns.Text()
    ideal_price = columns.Float()

    filled_start_time = columns.DateTime()
    filled_end_time = columns.DateTime()
    filled_quantity = columns.Float()
    filled_avg_price = columns.Float()
    fee = columns.Float()
    limit_price = columns.Float()
    stop_price = columns.Float()
    execution_map = columns.Map(
        key_type=columns.Text,
        value_type=UserDefinedType(UserOrderExecutionModel),
        default={})
    # price_change_history = columns.List(value_type=UserDefinedType(PriceChangeModel), default=[])
    bargainer = columns.UserDefinedType(BargainerModel)
Ejemplo n.º 14
0
class TimeSeriesModel(Model):
    __table_name__ = "time_series2"
    name = columns.Text(primary_key=True, required=True)
    data_record = columns.Map(
        key_type=columns.Text(),
        value_type=columns.UserDefinedType(DataRecordModel),
        default={})
Ejemplo n.º 15
0
class DeviceLocation(BaseUserType):
    """Device known location, base on IP."""

    address = columns.Text(primary_key=True)  # IP address with CIDR
    type = columns.Text()  # home/work/etc
    country = columns.Text()
    privacy_features = columns.Map(columns.Text, columns.Text)
Ejemplo n.º 16
0
class DocumentModel(models.Model):
    __table_name__ = 'documents'

    # Raw
    source = columns.Text(primary_key=True, partition_key=True)
    docID = columns.Text(primary_key=True, index=True, clustering_order='ASC')

    doc = columns.Bytes()
    filetype = columns.Text()
    timestamps = columns.Map(columns.Text, columns.Text)

    # Normalized
    uris = columns.Text()
    title = columns.Text()
    contributors = columns.Text()
    providerUpdatedDateTime = columns.DateTime()

    description = columns.Text()
    freeToRead = columns.Text()
    languages = columns.List(columns.Text())
    licenses = columns.Text()
    publisher = columns.Text()
    subjects = columns.List(columns.Text())
    tags = columns.List(columns.Text())
    sponsorships = columns.Text()
    version = columns.Text()
    otherProperties = columns.Text()
    shareProperties = columns.Text()

    # Additional metadata
    versions = columns.List(columns.UUID)
Ejemplo n.º 17
0
class Message(BaseModel, IndexedModelMixin):
    """Message model."""

    _index_class = IndexedMessage

    attachments = columns.List(columns.UserDefinedType(MessageAttachment))
    body_html = columns.Text()
    body_plain = columns.Text()
    date = columns.DateTime()
    date_delete = columns.DateTime()
    date_insert = columns.DateTime()
    discussion_id = columns.UUID()
    external_references = columns.UserDefinedType(ExternalReferences)
    identities = columns.List(columns.UserDefinedType(Identity))
    importance_level = columns.Integer()
    is_answered = columns.Boolean()
    is_draft = columns.Boolean()
    is_unread = columns.Boolean()
    is_received = columns.Boolean(default=False)
    message_id = columns.UUID(primary_key=True, default=uuid.uuid4)
    parent_id = columns.UUID()
    participants = columns.List(columns.UserDefinedType(Participant))
    privacy_features = columns.Map(columns.Text(), columns.Text())
    pi = columns.UserDefinedType(PIModel)
    raw_msg_id = columns.UUID()
    subject = columns.Text()  # Subject of email, the message for short
    tags = columns.List(columns.Text(), db_field="tagnames")
    type = columns.Text()
    user_id = columns.UUID(primary_key=True)
Ejemplo n.º 18
0
 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)
Ejemplo n.º 19
0
class Provider(BaseModel):
    """model to store data related to external protocol endpoints"""

    name = columns.Text(primary_key=True)
    instance = columns.Text(primary_key=True)
    infos = columns.Map(columns.Text, columns.Text)
    date_insert = columns.DateTime()
Ejemplo n.º 20
0
 def test_instantiation_with_column_class(self):
     """
     Tests that columns instantiated with a column class work properly
     and that the class is instantiated in the constructor
     """
     column = columns.Map(columns.Text, columns.Integer)
     assert isinstance(column.key_col, columns.Text)
     assert isinstance(column.value_col, columns.Integer)
Ejemplo n.º 21
0
class SubmissionTraceBySubmission(BaseModel):
    submission_id = columns.Integer(partition_key=True)
    log_timestamp = columns.DateTime(primary_key=True)
    state = columns.Integer(primary_key=True)
    state_verbose = columns.Text()
    user_id = columns.Integer()
    run_id = columns.Integer()
    context = columns.Map(columns.Text(), columns.Text())
Ejemplo n.º 22
0
class SocialIdentity(BaseContactModel):

    """Any contact social identity (facebook, twitter, linkedin, etc)."""

    name = columns.Text(primary_key=True)
    type = columns.Text()
    # Abstract everything else in a map
    infos = columns.Map(columns.Text, columns.Text)
Ejemplo n.º 23
0
class User(BaseModel):
    """User main model."""

    user_id = columns.UUID(primary_key=True, default=uuid.uuid4)
    name = columns.Text(required=True)
    password = columns.Text(required=True)
    date_insert = columns.DateTime()
    given_name = columns.Text()
    family_name = columns.Text()
    params = columns.Map(columns.Text, columns.Text)
    contact_id = columns.UUID()
    main_user_id = columns.UUID()
    recovery_email = columns.Text(required=True)
    local_identities = columns.List(columns.Text())

    privacy_features = columns.Map(columns.Text(), columns.Text())
    pi = columns.UserDefinedType(PIModel)
Ejemplo n.º 24
0
class FourthModel(Model):

    __table_name__ = 'first_model'
    first_key = columns.UUID(primary_key=True)
    second_key = columns.UUID()
    third_key = columns.Text()
    # removed fourth key, but it should stay in the DB
    renamed = columns.Map(columns.Text, columns.Text, db_field='blah')
Ejemplo n.º 25
0
class ThirdModel(Model):

    __table_name__ = 'first_model'
    first_key = columns.UUID(primary_key=True)
    second_key = columns.UUID()
    third_key = columns.Text()
    # removed fourth key, but it should stay in the DB
    blah = columns.Map(columns.Text, columns.Text)
Ejemplo n.º 26
0
class FourthModel(Model):

    __table_name__ = 'first_model'
    first_key = columns.UUID(primary_key=True)
    second_key = columns.UUID()
    third_key = columns.Text()
    # renamed model field, but map to existing column
    renamed = columns.Map(columns.Text, columns.Text, db_field='blah')
 def test_to_python(self):
     """ Tests that to_python of value column is called """
     column = columns.Map(JsonTestColumn, JsonTestColumn)
     val = {1: 2, 3: 4, 5: 6}
     db_val = column.to_database(val)
     self.assertEqual(db_val, dict((json.dumps(k), json.dumps(v)) for k, v in val.items()))
     py_val = column.to_python(db_val)
     self.assertEqual(py_val, val)
Ejemplo n.º 28
0
class TestModelSave(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)
Ejemplo n.º 29
0
 def test_to_python(self):
     """ Tests that to_python of value column is called """
     column = columns.Map(JsonTestColumn, JsonTestColumn)
     val = {1: 2, 3: 4, 5: 6}
     db_val = column.to_database(val)
     assert db_val.value == {json.dumps(k):json.dumps(v) for k,v in val.items()}
     py_val = column.to_python(db_val.value)
     assert py_val == val
Ejemplo n.º 30
0
class Worker(UserType, JsonMixin):
    """
    Worker
    """
    tasks = columns.Map(columns.Text, columns.Text)

    def add_task(self, obj=None):
        self.tasks.update(obj)