예제 #1
0
class Courses(Model):
        __keyspace__ = 'courses'
        id = columns.Integer(primary_key=True)
        startTime = columns.Time()
        endTime = columns.Time()
        geCodes = columns.List(columns.Text())
        name = columns.Text()
        quarter = columns.Text()
        prerequisites = columns.List(columns.Text())
        session = _session
예제 #2
0
class ControlAction(Model):
    date = columns.Date(required = True, partition_key = True)
    time = columns.Time(required = True, primary_key = True)
    
    mac_address = columns.Bytes(required = True, primary_key = True)
    user_id = columns.Bytes(required = True, primary_key = True)
    
    command = columns.Text(required = True)
    params = columns.Text()
    result = columns.Text()

    def validate(self):
        super(ControlAction, self).validate()
        validate_mac_address(self.mac_address)
        validate_user_id(self.user_id)

    @staticmethod
    def validate_mac_address(id):
        if len(id) != 6:
            raise ValidationError('not a valid mac address')
        return id

    @staticmethod
    def validate_user_id(id):
        if len(id) != 12 or not mongo_adapter.is_valid_foreign_id(PEOPLE_COLLECTION_NAME, id.hex()):
            raise ValidationError('not a valid user id')
        return id
예제 #3
0
class CateringBoyOrder(DjangoCassandraModel):
    id = columns.UUID(primary_key=True, default=uuid.uuid4)
    cid = columns.UUID()
    venue = columns.Map(columns.Text(), columns.Text())
    amount = columns.Integer(default=300)
    catboy_max = columns.Integer(default=0)
    timing = columns.Time(default=Time('19:00:00'))
    date = columns.Date(
        default=Date(datetime.date.today().strftime("%Y-%m-%d")))
    count = columns.Integer(default=0)
예제 #4
0
class Turnos(Base):
    id = columns.UUID(primary_key=True, default=uuid.uuid4)
    nro_turno = columns.Text(default='A1')
    fecha = columns.Date()
    hora = columns.Time()
    medico_cin = columns.Text()
    persona_cin = columns.Text()
    estado = columns.Boolean(default=True)

    def get_data(self):
        return {
            'id': str(self.id),
            'nro_turno': self.nro_turno,
            'fecha': self.fecha,
            'hora': self.hora,
            'medico': self.medico_cin,
            'persona': self.persona_cin,
            'estado': self.estado
        }
예제 #5
0
class ShiftState(Model):
    date = columns.Date(required=True, partition_key=True)
    time = columns.Time(required=True, primary_key=True)

    shift_id = columns.Bytes(required=True)
    warning_level = columns.Text(required=True)

    remaining_cartridges = columns.TinyInt(required=True)
    remaining_air = columns.TinyInt(required=True)
    remaining_electricity = columns.TinyInt(required=True)

    comment = columns.Text()

    def validate(self):
        super(ShiftState, self).validate()

        ShiftState.validate_shift_id(self.shift_id)
        ShiftState.validate_warning_level(self.warning_level)
        ShiftState.validate_remaining_quantity(self.remaining_cartridges,
                                               'remaining cartridges')
        ShiftState.validate_remaining_quantity(self.remaining_air,
                                               'remaining air')
        ShiftState.validate_remaining_quantity(self.remaining_electricity,
                                               'remaining electricity')

    @staticmethod
    def validate_shift_id(shift_id):
        if len(shift_id) != 16 or not neo4j_adapter.is_valid_foreign_id(
                'Shift', shift_id.hex()):
            raise ValidationError('not a valid shift id')
        return shift_id

    @staticmethod
    def validate_warning_level(warning_level):
        if warning_level not in WARNING_LEVELS:
            raise ValidationError('not a warning level')
        return warning_level

    @staticmethod
    def validate_remaining_quantity(remaining_quantity, message):
        if remaining_quantity < 0 or remaining_quantity > 100:
            raise ValidationError('not a valid {0} value'.format(message))
        return remaining_quantity
예제 #6
0
class SystemTest(Model):
    date = columns.Date(required=True, partition_key=True)
    time = columns.Time(required=True, primary_key=True)

    system_id = columns.Bytes(required=True, primary_key=True)
    result = columns.TinyInt(required=True)

    def validate(self):
        super(SystemTest, self).validate()

        if self.result < 0 or self.result > 100:
            raise ValidationError('not a valid test result value')

        SystemTest.validate_system_id(self.system_id)

    @staticmethod
    def validate_system_id(id):
        if len(id) != 12 or not mongo_adapter.is_valid_foreign_id(
                SYSTEMS_COLLECTION_NAME, id.hex()):
            raise ValidationError('not a valid system id')
예제 #7
0
class Position(Model):
    date = columns.Date(required = True, partition_key = True)
    time = columns.Time(required = True, primary_key = True)

    x = columns.Double(required = True)
    y = columns.Double(required = True)
    z = columns.Double(required = True)

    speed = columns.Double(required = True)
    attack_angle = columns.Double(required = True)
    direction_angle = columns.Double(required = True)

    def validate(self):
        super(Position, self).validate()

        self.attack_angle = Position.validate_angle(self.attack_angle)
        self.direction_angle = Position.validate_angle(self.direction_angle)

    @staticmethod
    def validate_angle(angle):
        angle -= math.floor(angle / (2 * math.pi)) * 2 * math.pi
        return angle
예제 #8
0
class MovieModel(AuditoryModel):
    _table_name = "movie"
    movi_id = columns.UUID(required=True, primary_key=True, default=uuid.uuid4)
    movi_name = columns.Text(required=True)
    movi_opening_text = columns.Text(required=True)
    movi_character_id = columns.List(required=True, value_type=columns.UUID())
    movi_character = columns.List(required=False,
                                  value_type=columns.Map(
                                      key_type=columns.Text(),
                                      value_type=columns.Text()))
    movi_director = columns.List(required=True, value_type=columns.Text())
    movi_producers = columns.List(required=True, value_type=columns.Text())
    movi_soundtrack = columns.List(required=True, value_type=columns.Text())
    movi_premiere = columns.Date(required=True)
    movi_duration = columns.Time(required=True)
    movi_planet_id = columns.List(required=True, value_type=columns.UUID())
    movi_planet = columns.List(required=False,
                               value_type=columns.Map(
                                   key_type=columns.Text(),
                                   value_type=columns.Text()))

    class Meta:
        get_pk_field = 'movi_id'
예제 #9
0
class SensorData(Model):
    date = columns.Date(required = True, partition_key = True)
    time = columns.Time(required = True, primary_key = True)

    source_id = columns.Bytes(required = True)
    event = columns.Text(required = True)
    value_name = columns.Text(required = True)
    value = columns.Double(required = True)
    units = columns.Text(required = True)

    def validate(self):
        super(SensorData, self).validate()
        SensorData.validate_source_id(self.source_id)
        SensorData.validate_event(self.event)
        SensorData.validate_value_name(self.value_name)
        SensorData.validate_units(self.units)

    @staticmethod
    def validate_source_id(id):
        if len(source_id) != 12 or not mongo_adapter.is_valid_foreign_id(SENSORS_COLLECTION_NAME, source_id.hex()):
            raise ValidationError('not a valid source id')
        return id

    @staticmethod
    def validate_event(event):
        if event not in EVENTS:
            raise ValidationError('not a valid event')

    @staticmethod
    def validate_value_name(value_name):
        if value_name not in VALUE_TYPES:
            raise ValidationError('not a valid value type')

    @staticmethod
    def validate_units(units):
        if units not in VALUE_UNITS:
            raise ValidationError('not a valid value units')
예제 #10
0
class ClassSession(UserType):
    start_time = columns.Time()
    end_time = columns.Time()
    location = columns.Text()
    day = columns.Integer()
예제 #11
0
class OperationState(Model):
    date = columns.Date(required=True, partition_key=True)
    time = columns.Time(required=True, primary_key=True)

    boat_id = columns.Bytes()
    operation_id = columns.Bytes(required=True)

    operation_status = columns.Text(required=True)

    distance_to_the_ship = columns.Double(required=True)
    zenith = columns.Double(required=True)
    azimuth = columns.Double(required=True)

    hydrogenium = columns.Double(required=True)
    helium = columns.Double(required=True)
    lithium = columns.Double(required=True)
    beryllium = columns.Double(required=True)
    borum = columns.Double(required=True)
    carboneum = columns.Double(required=True)
    nitrogenium = columns.Double(required=True)
    oxygenium = columns.Double(required=True)
    fluorum = columns.Double(required=True)
    neon = columns.Double(required=True)
    natrium = columns.Double(required=True)
    magnesium = columns.Double(required=True)
    aluminium = columns.Double(required=True)
    silicium = columns.Double(required=True)
    phosphorus = columns.Double(required=True)
    sulfur = columns.Double(required=True)
    chlorum = columns.Double(required=True)
    argon = columns.Double(required=True)
    kalium = columns.Double(required=True)
    calcium = columns.Double(required=True)
    scandium = columns.Double(required=True)
    titanium = columns.Double(required=True)
    vanadium = columns.Double(required=True)
    chromium = columns.Double(required=True)
    manganum = columns.Double(required=True)
    ferrum = columns.Double(required=True)
    cobaltum = columns.Double(required=True)
    niccolum = columns.Double(required=True)
    cuprum = columns.Double(required=True)
    zincum = columns.Double(required=True)
    gallium = columns.Double(required=True)
    germanium = columns.Double(required=True)
    arsenicum = columns.Double(required=True)
    selenium = columns.Double(required=True)
    bromum = columns.Double(required=True)
    crypton = columns.Double(required=True)
    rubidium = columns.Double(required=True)
    strontium = columns.Double(required=True)
    yttrium = columns.Double(required=True)
    zirconium = columns.Double(required=True)
    niobium = columns.Double(required=True)
    molybdaenum = columns.Double(required=True)
    technetium = columns.Double(required=True)
    ruthenium = columns.Double(required=True)
    rhodium = columns.Double(required=True)
    palladium = columns.Double(required=True)
    argentum = columns.Double(required=True)
    cadmium = columns.Double(required=True)
    indium = columns.Double(required=True)
    stannum = columns.Double(required=True)
    stibium = columns.Double(required=True)
    tellurium = columns.Double(required=True)
    iodium = columns.Double(required=True)
    xenon = columns.Double(required=True)
    caesium = columns.Double(required=True)
    barium = columns.Double(required=True)
    lanthanum = columns.Double(required=True)
    cerium = columns.Double(required=True)
    praseodymium = columns.Double(required=True)
    neodymium = columns.Double(required=True)
    promethium = columns.Double(required=True)
    samarium = columns.Double(required=True)
    europium = columns.Double(required=True)
    gadolinium = columns.Double(required=True)
    terbium = columns.Double(required=True)
    dysprosium = columns.Double(required=True)
    holmium = columns.Double(required=True)
    erbium = columns.Double(required=True)
    thulium = columns.Double(required=True)
    ytterbium = columns.Double(required=True)
    lutetium = columns.Double(required=True)
    hafnium = columns.Double(required=True)
    tantalum = columns.Double(required=True)
    wolframium = columns.Double(required=True)
    rhenium = columns.Double(required=True)
    osmium = columns.Double(required=True)
    iridium = columns.Double(required=True)
    platinum = columns.Double(required=True)
    aurum = columns.Double(required=True)
    hydrargyrum = columns.Double(required=True)
    thallium = columns.Double(required=True)
    plumbum = columns.Double(required=True)
    bismuthum = columns.Double(required=True)
    polonium = columns.Double(required=True)
    astatum = columns.Double(required=True)
    radon = columns.Double(required=True)
    francium = columns.Double(required=True)
    radium = columns.Double(required=True)
    actinium = columns.Double(required=True)
    thorium = columns.Double(required=True)
    protactinium = columns.Double(required=True)
    uranium = columns.Double(required=True)
    neptunium = columns.Double(required=True)
    plutonium = columns.Double(required=True)
    americium = columns.Double(required=True)
    curium = columns.Double(required=True)
    berkelium = columns.Double(required=True)
    californium = columns.Double(required=True)
    einsteinium = columns.Double(required=True)
    fermium = columns.Double(required=True)
    mendelevium = columns.Double(required=True)
    nobelium = columns.Double(required=True)
    lawrencium = columns.Double(required=True)
    rutherfordium = columns.Double(required=True)
    dubnium = columns.Double(required=True)
    seaborgium = columns.Double(required=True)
    bohrium = columns.Double(required=True)
    hassium = columns.Double(required=True)
    meitnerium = columns.Double(required=True)
    darmstadtium = columns.Double(required=True)
    roentgenium = columns.Double(required=True)
    copernicium = columns.Double(required=True)
    nihonium = columns.Double(required=True)
    flerovium = columns.Double(required=True)
    moscovium = columns.Double(required=True)
    livermorium = columns.Double(required=True)
    tennessium = columns.Double(required=True)
    oganesson = columns.Double(required=True)

    comment = columns.Text()

    def validate(self):
        super(OperationState, self).validate()

        OperationState.validate_boat_id(self.boat_id)
        OperationState.validate_operation_id(self.operation_id)
        OperationState.validate_operation_status(self.operation_status)
        OperationState.validate_angle(self.zenith)
        OperationState.validate_angle(self.azimuth)
        OperationState.validate_elements_quantities(
            [self[element] for element in CHEMICAL_ELEMENTS])
        OperationState.validate_comment(self.comment)

    @staticmethod
    def validate_boat_id(boat_id):
        if boat_id and (len(boat_id) != 12
                        or not mongo_adapter.is_valid_foreign_id(
                            BOATS_COLLECTION_NAME, boat_id.hex())):
            raise ValidationError('not a valid boat id')
        return boat_id

    @staticmethod
    def validate_operation_id(operation_id):
        if len(operation_id) != 16 or not neo4j_adapter.is_valid_foreign_id(
                'Operation', operation_id.hex()):
            raise ValidationError('not a valid operation id')
        return operation_id

    @staticmethod
    def validate_operation_status(operation_status):
        if operation_status not in OPERATION_STATUSES:
            raise ValidationError('not an operation status')
        return operation_status

    @staticmethod
    def validate_angle(angle):
        angle -= math.floor(angle / (2 * math.pi)) * 2 * math.pi
        return angle

    @staticmethod
    def validate_elements_quantities(elements_quantities):
        elements_quantity_sum = 0

        for element in elements_quantities:
            if element < 0:
                raise ValidationError('invalid element quantity')
            elements_quantity_sum += element

        if abs(elements_quantity_sum - 100) > 0.1:
            raise ValidationError('invalid elements quantity')

        return elements_quantities
예제 #12
0
 class Allv4Datatypes(UserType):
     a = columns.Date()
     b = columns.SmallInt()
     c = columns.Time()
     d = columns.TinyInt()
예제 #13
0
class UDT(UserType):
    age = columns.Integer()
    mf = columns.Map(columns.Integer, columns.Integer)
    dummy_udt = columns.Integer(default=42)
    time_col = columns.Time()
예제 #14
0
 class v4DatatypesModel(Model):
     id = columns.Integer(primary_key=True)
     a = columns.Date()
     b = columns.SmallInt()
     c = columns.Time()
     d = columns.TinyInt()