示例#1
0
class RepositoryModel(MongoModel):
    combo_id = CharField()
    name = CharField()
    namespace = ReferenceField(NamespaceModel)

    class Meta:
        #indexes = [IndexModel([('name', TEXT), ('namespace', TEXT)], unique=True)]
        #connection_alias = 'mongo_000'
        indexes = [IndexModel('combo_id', unique=True)]

    def __str__(self):
        return "RepositoryMongoModel: %s [%s]" % (self.name, self.namespace)

    @classmethod
    def build_combo_id(cls, name, namespace):
        if name is None:
            raise ValueError("Name can't be None")
        if namespace is None:
            raise ValueError("Namespace can't be None")
        return "%s/%s" % (namespace, name)

    def _build_combo_id(self):
        return self.build_combo_id(name=self.name,
                                   namespace=self.namespace.name)

    def set_combo_id(self):
        self.combo_id = self._build_combo_id()

    def save(self, cascade=None, full_clean=True, force_insert=False):
        self.set_combo_id()
        super().save(cascade=cascade,
                     full_clean=full_clean,
                     force_insert=force_insert)
示例#2
0
class Calculation(MongoModel):
    new_variable = CharField()
    recipe = CharField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#3
0
class Project(MongoModel):
    name = CharField()
    area = FloatField()
    buildingType = CharField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#4
0
class User(MongoModel):
    email = EmailField(primary_key=True)
    first_name = CharField()
    last_name = CharField()
    projects = ListField(ReferenceField(Project))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#5
0
class ExcelFile(MongoModel):
    path = CharField()
    filename = CharField()
    project = ReferenceField(Project)
    created = DateTimeField()
    created_by = ReferenceField(User)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#6
0
class IfcGroup(MongoModel):
    pid = IntegerField()
    ptype = CharField()
    name = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#7
0
class ProductSignal(MongoModel):
    name = CharField()
    signalType = CharField()
    terminals = ListField()
    wires = IntegerField()
    min_value = FloatField()
    max_value = FloatField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#8
0
class IfcSingleProperty(MongoModel):
    pid = IntegerField()
    ptype = CharField()
    value_type = CharField(blank=True)
    value = CharField(blank=True)
    unit = CharField(blank=True)
    name = CharField(blank=True)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#9
0
class ProductType(MongoModel):
    name = CharField()
    producer = CharField()
    connection = ListField(ReferenceField(ProductSignal))
    power = ListField(ReferenceField(ProductPower))
    shape = ReferenceField(IfcShapeRepresentation)
    verified = BooleanField(default=False)
    pset = ListField(ReferenceField(IfcSingleProperty))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#10
0
class TemporaryChangeFileModel(MongoModel):
    contents = CharField()
    repository = ReferenceField(RepositoryModel)
    language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        return "TemporaryChangeFileMongoModel: [%s] :: %s :: %s :: %s" % (
            self.repository, self.file_path, self.language, self.contents)
示例#11
0
class IfcShapeRepresentation(EmbeddedMongoModel):
    pid = IntegerField()
    identifier = CharField()
    RepresentationType = CharField()
    footprint = ListField(ListField())
    footprint_react = DictField()
    top = FloatField()
    bottom = FloatField()
    center = ListField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#12
0
class DataFrame(MongoModel):
    from_model = BooleanField()
    pset = BooleanField(blank=True)
    type = CharField(blank=True)
    name = CharField(blank=True)
    calculation = ListField(ReferenceField(Calculation))
    version = ReferenceField(Version)
    excelfile = ReferenceField(ExcelFile)
    header = IntegerField(blank=True)
    sheetname = CharField(blank=True)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#13
0
class ChangeFileModel(MongoModel):
    contents = CharField()
    change = ReferenceField(ChangeModel)
    prog_language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()
    file = ReferenceField(RepositoryFileModel)

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        return "ChangeFileMongoModel: [%s] :: %s :: %s :: %s" % (
            self.change, self.file_path, self.prog_language, self.contents)
示例#14
0
class IfcBuilding(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField(blank=True)
    name = CharField(blank=True)
    description = CharField(blank=True)
    longName = CharField(blank=True)
    site = ReferenceField(IfcSite)
    pset = ListField(ReferenceField(IfcSingleProperty))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#15
0
class IfcProductType(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    predefined = CharField(blank=True)
    tag = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    material = ListField(ReferenceField(IfcMaterial))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#16
0
class ProductPower(MongoModel):
    powerType = CharField()
    value = FloatField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#17
0
class Organisation(MongoModel):
    name = CharField()
    member = ListField(ReferenceField(User))
    projects = ListField(ReferenceField(Project))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#18
0
class PNG(MongoModel):
    path = CharField()
    file = CharField()
    name = CharField()
    file_id = CharField(primary_key=True)

    # fields for AtmosphericDataSolutions weather videos
    stnid = CharField()
    station_name = CharField()
    plot_type = CharField()
    mesonet = CharField()
    provider = CharField()
    start_date = DateTimeField()
    end_date = DateTimeField()
示例#19
0
class IfcSite(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    description = CharField(blank=True)
    refLatitude = ListField(blank=True)
    refLongitude = ListField(blank=True)
    refElevation = FloatField(blank=True)
    LandTitleNumber = CharField(blank=True)
    #quitself.SiteAddress = element.SiteAddress
    pset = ListField(ReferenceField(IfcSingleProperty))
    project = ReferenceField(IfcProject)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#20
0
class NamespaceModel(MongoModel):
    name = CharField()

    class Meta:
        indexes = [IndexModel('name', unique=True)]
        #connection_alias = 'mongo_000'

    def __str__(self):
        return "NamespaceMongoModel: %s" % self.name
示例#21
0
class RepositoryFileModel(MongoModel):
    combo_id = CharField()
    contents = CharField(required=False, blank=True)
    repository = ReferenceField(RepositoryModel)
    prog_language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()
    current_change_file = ReferenceField("ChangeFileModel", blank=True)

    class Meta:
        #indexes = [IndexModel([('file_path', TEXT), ('repository', TEXT)], unique=True)]
        #connection_alias = 'mongo_000'
        indexes = [IndexModel('combo_id', unique=True)]

    '''
    class Meta:
        connection_alias = CODE_PERSISTENCE_BACKENDS[MONGODB_CONNECT_TO]['connection_profile']
    '''

    def __str__(self):
        return "RepositoryFileMongoModel: %s :: %s :: [%s] :: %s" % (
            self.file_path, self.prog_language, self.repository, self.contents)

    @classmethod
    def build_combo_id(cls, file_path, repository):
        if file_path is None:
            raise ValueError("File_Path can't be None")
        if repository is None:
            raise ValueError("Repository can't be None")
        return "%s/%s" % (repository, file_path)

    def _build_combo_id(self):
        return self.build_combo_id(
            file_path=self.file_path,
            repository="%s/%s" %
            (self.repository.namespace.name, self.repository.name))

    def set_combo_id(self):
        self.combo_id = self._build_combo_id()

    def save(self, cascade=None, full_clean=True, force_insert=False):
        self.set_combo_id()
        super().save(cascade=cascade,
                     full_clean=full_clean,
                     force_insert=force_insert)
示例#22
0
class TV(MongoModel):
    path = CharField()
    file_id = CharField(primary_key=True)
    file = CharField()
    name = CharField()
    series = CharField()
    season = CharField()
    episode = CharField()
示例#23
0
class GIF(MongoModel):
    path = CharField()
    file = CharField()
    name = CharField()
    file_id = CharField(primary_key=True)

    # fields for AtmosphericDataSolutions weather videos
    ensemble = CharField()
    boundary_condition = CharField()
    init_date = DateTimeField()
    plot = CharField()
    plot_group = CharField()
示例#24
0
class ChangeModel(MongoModel):
    change_id = CharField()
    comment = CharField()
    author = CharField()
    timestamp = TimestampField()
    repository = ReferenceField(RepositoryModel)
    parent_change = ReferenceField("ChangeModel", blank=True)

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        if isinstance(self.timestamp, Timestamp):
            timestamp = self.timestamp.as_datetime().__str__()
        else:
            timestamp = self.timestamp
        return "ChangeMongoModel: %s :: \"%s\" :: %s :: %s :: [%s]" % (
            self.change_id, self.comment, self.author, timestamp,
            self.repository)
示例#25
0
class Book(MongoModel):
    file_id = CharField(primary_key=True)
    path = CharField()
    file = CharField()
    name = CharField()


# class TV(MappedClass):
#	 class __mongometa__:
#		 session = session
#		 name = 'tv'

#	 _id = FieldProperty(schema.ObjectId)
#	 path = FieldProperty(schema.String(required=True))
#	 file = FieldProperty(schema.String(required=True))
#	 name = FieldProperty(schema.String(required=True))
#	 series = FieldProperty(schema.String(required=True))
#	 season = FieldProperty(schema.String(required=True))
#	 episode = FieldProperty(schema.String(required=True))

# Mapper.compile_all()
示例#26
0
class IfcProduct(MongoModel):
    pid = IntegerField(blank=True)
    guid = CharField(blank=True)
    ptype = CharField(blank=True)
    name = CharField(blank=True)
    description = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    group = ListField(ReferenceField(IfcGroup))
    material = ListField(ReferenceField(IfcMaterial))
    building = ListField(ReferenceField(IfcBuilding))
    storey = ListField(ReferenceField(IfcStorey))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    space = ListField(ReferenceField(IfcSpace))
    system = ListField(ReferenceField(IfcSystem))
    productType = ReferenceField(IfcProductType)
    product = ReferenceField(ProductType)
    version = ListField(ReferenceField(Version))
    filepath = CharField(blank=True)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#27
0
class Version(MongoModel):
    project = ReferenceField(Project)
    branch = CharField()
    version = IntegerField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'

    def to_json(self):
        items = self.to_son()
        items['project'] = self.project.to_son()
        return items
示例#28
0
class IfcProject(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    longName = CharField(blank=True)
    description = CharField(blank=True)
    phase = CharField(blank=True)
    lengthUnit = CharField(blank=True)
    lengthPrefix = CharField(blank=True)
    dir = ListField(FloatField(blank=True))
    pset = ListField(ReferenceField(IfcSingleProperty))
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
示例#29
0
class CharFieldTestCase(FieldTestCase):

    field = CharField(min_length=2, max_length=5)

    def test_conversion(self):
        self.assertConversion(self.field, 'hello', 'hello')
        self.assertConversion(self.field, '42', 42)

    def test_validate(self):
        msg = 'exceeds the maximum length of 5'
        with self.assertRaisesRegex(ValidationError, msg):
            self.field.validate('onomatopoeia')
        msg = 'is under the minimum length of 2'
        with self.assertRaisesRegex(ValidationError, msg):
            self.field.validate('a')
        self.field.validate('hello')
示例#30
0
class ExecutionLogModel(MongoModel):
    uniq_combo = CharField(primary_key=True)
    namespace = CharField()
    repository = CharField()
    commit_id = CharField()
    execution_number = IntegerField()
    stdout = CharField()
    stderr = CharField()
    deterministic = BooleanField()
    execution_time = TimestampField()

    class Meta:
        #indexes = [IndexModel([('namespace', TEXT), ('repository', TEXT), ('commit_id', TEXT),
        #                       ('execution_number', TEXT)], unique=True)]
        #connection_alias = 'mongo_000'
        pass

    def __str__(self):
        if isinstance(self.execution_time, Timestamp):
            execution_time = self.execution_time.as_datetime().__str__()
        else:
            execution_time = self.execution_time
        return "ExecutionLogMongoModel: %s/%s@%s#%s: [\"%s\", \"%s\"] %s@%s" % (
            self.namespace, self.repository, self.commit_id,
            self.execution_number, self.stdout, self.stderr,
            self.deterministic, execution_time)

    @classmethod
    def calc_uniq_combo(cls, namespace, repository, commit_id,
                        execution_number):
        if namespace is None:
            raise ValueError("Namespace can't be None")
        if repository is None:
            raise ValueError("Repository can't be None")
        if commit_id is None:
            raise ValueError("Commit_ID can't be None")
        if execution_number is None:
            raise ValueError("Execution_Number can't be None")
        return "%s/%s@%s#%s" % (namespace, repository, commit_id,
                                str(execution_number))

    def build_uniq_combo(self):
        return self.calc_uniq_combo(namespace=self.namespace,
                                    repository=self.repository,
                                    commit_id=self.commit_id,
                                    execution_number=self.execution_number)

    def save_uniq_combo(self):
        self.uniq_combo = self.build_uniq_combo()

    def save(self, cascade=None, full_clean=True, force_insert=False):
        self.save_uniq_combo()
        super().save(cascade=cascade,
                     full_clean=full_clean,
                     force_insert=force_insert)