Exemple #1
0
class TaskMetadata(Document, MetadataMixin):
    id = fields.StringField(primary_key=True,
                            default=lambda: str(uuid.uuid4()))
    status = fields.StringField(default=PENDING,
                                choices=TASK_STATUS_CODES,
                                required=True)
    owner = fields.StringField(required=True)
    command = fields.StringField(choices=TASK_COMMANDS, required=True)
    date = fields.LongField(default=lambda: int(time.time()))
    config = fields.DictField(default=lambda: dict())
    history = fields.DictField()

    meta = {
        'allow_inheritance': True,
        'db_alias': 'metadata',
        'collection': 'tasks'
    }

    def to_dict(self):
        meta = self.to_mongo().to_dict()

        if '_id' in meta:
            meta['id'] = meta['_id']
            del meta['_id']

        del meta['_cls']

        return meta

    def from_dict(self, meta):
        for name in self._fields:
            if name in meta:
                setattr(self, name, meta[name])
Exemple #2
0
class BarChartsData(Document):

    technologies = fields.DictField(
        default={
            'Docker': 0,
            'AWS': 0,
            'Angular': 0,
            'React': 0,
            'Spring': 0,
            'Kubernetes': 0,
            'NET': 0,
            'Nodejs': 0,
            'MySQL': 0
        })

    company_size = fields.DictField(default={
        '<10': 0,
        '10-50': 0,
        '50-200': 0,
        '200-500': 0,
        '500-1000': 0,
        '>1000': 0
    })

    date = fields.DateTimeField(defualt=datetime.utcnow)
Exemple #3
0
class Projects(Document):
    __project_regex__ = '^[a-zA-Z0-9_]+$'
    project = fields.StringField(
        min_length=3, max_length=30, required=True, unique=True,
        regex = __project_regex__,
        help_text="project name/slug (valid format: `{}`)".format(
            __project_regex__
        )
    )
    title = fields.StringField(
        min_length=5, max_length=30, required=True, unique=True,
        help_text='(short) title for the project/dataset'
    )
    authors = fields.StringField(
        required=True, help_text='comma-separated list of authors'
    )
    description = fields.StringField(
        min_length=5, max_length=1500, required=True,
        help_text='brief description of the project'
    )
    urls = fields.DictField(
        required=True, help_text='list of URLs for references'
    )
    other = fields.DictField(help_text='other information')
    # TODO permissions MapField
    # is required on POST but should never be returned on GET (write-only)
    meta = {
        'collection': 'projects', 'indexes': [{
            'fields': ['$title', "$description", "$authors"],
        }, 'project']
    }
Exemple #4
0
class Structures(Document):
    __project_regex__ = '^[a-zA-Z0-9_]+$'
    project = fields.StringField(
        min_length=3,
        max_length=30,
        required=True,
        regex=__project_regex__,
        help_text=f"project name/slug (valid format: `{__project_regex__}`)")
    identifier = fields.StringField(
        required=True, help_text="material/composition identifier")
    name = fields.StringField(required=True,
                              unique_with='cid',
                              help_text="table name")
    cid = fields.ObjectIdField(required=True, help_text="Contribution ID")
    lattice = fields.DictField(required=True, help_text="lattice")
    sites = fields.ListField(fields.DictField(),
                             required=True,
                             help_text="sites")
    meta = {
        'collection':
        'structures',
        'indexes': [
            'identifier', 'project', 'cid', 'name', {
                'fields': ['cid', 'name'],
                'unique': True
            }
        ]
    }
Exemple #5
0
class Invoice(PPrintMixin, DynamicDocument):
    invoice_id = fields.StringField(unique=True, required=True)
    cust_id = fields.StringField(required=True)
    invoice_date = fields.DateTimeField()
    invoicelines = fields.ListField(fields.DictField())
    taxes = fields.ListField(fields.DictField())
    status = fields.StringField(default="new")
    url = fields.StringField()
Exemple #6
0
class SODiagnosis(fields.Document):
    owner = fields.IntField()
    from_expert = fields.IntField()
    summary = fields.StringField()
    second_opinion = fields.StringField()
    diagnosis = fields.StringField()
    so_obj = fields.DictField()
    request_info = fields.DictField()
    is_closed = fields.BooleanField(default=False)
    is_closed_by_user = fields.BooleanField(default=False)
class ProfilingRequest(Document, FlaskAdminURLMixin, GetAttributeMixin):
    method = fields.StringField()
    path = fields.StringField()
    referrer = fields.StringField()
    environ = fields.DictField()
    status = fields.DictField()
    pyprofile = fields.StringField()
    query_count = fields.IntField()
    duration = fields.DecimalField()
    query_duration = fields.DecimalField()
    time = fields.DateTimeField()

    def __unicode__(self):
        return '%s %s' % (self.get('method'), self.get('path'))
class ProfilingQuery(Document, FlaskAdminURLMixin, GetAttributeMixin):
    request = fields.ReferenceField(ProfilingRequest)
    command_name = fields.StringField()
    database_name = fields.StringField()
    operation_id = fields.IntField()
    connection = fields.EmbeddedDocumentField(
        ProfilingQueryConnection)  # connection_id
    request_id = fields.StringField()
    failure = fields.DictField()
    duration = fields.DecimalField()
    command = fields.DictField()

    def __unicode__(self):
        return '%s' % self.get('command_name', 'Command')
Exemple #9
0
class Task(db.Document):
    name = fields.StringField()
    status = fields.StringField()
    params = fields.DictField(default={})
    file = fields.EmbeddedDocumentField(TaskFile)
    result = fields.DictField(default={})
    create_user = fields.ReferenceField(User,
                                        required=True,
                                        db_field='create_user_id')
    created_at = fields.DateTimeField(default=datetime.now)

    STATUS_PENDING = 'pending'
    STATUS_RUNNING = 'running'
    STATUS_COMPLETED = 'completed'
    STATUS_FAILURE = 'failure'
Exemple #10
0
class Model(Document):
    name = fields.StringField(required=True)
    group = fields.StringField(required=True)
    klass = fields.StringField(required=True)
    algorithm = fields.StringField(required=True)
    accuracy = fields.DictField(required=True)
    hyperparameters = fields.DictField(required=True)
    dataset = fields.DictField(required=True)
    inputformat = fields.StringField(required=True)
    default = fields.StringField(required=True)
    active = fields.StringField(required=True)
    description = fields.StringField(required=True)
    user = fields.DictField(required=True)
    createdate = fields.StringField(required=True)
    modifieddate = fields.StringField(required=True)
class DeepDoc(Document):
    f_list = fields.ListField(fields.IntField())
    f_map = fields.MapField(fields.IntField())
    f_dict = fields.DictField()

    f_emb = fields.EmbeddedDocumentField(EmbDoc)
    f_emblist = fields.ListField(fields.EmbeddedDocumentField(EmbDoc))
Exemple #12
0
class User(mongoengine.fields.Document):
    owner = mongoengine.fields.IntField()  # HermesUser.pk
    username = mongoengine.fields.StringField()  # HermesUser.username
    is_admin = mongoengine.fields.BooleanField(default=False)
    is_moderator = mongoengine.fields.BooleanField(default=False)
    is_expert = mongoengine.fields.BooleanField(default=False)
    other = fields.DictField()
Exemple #13
0
class ArchitectureMetadata(Document, MetadataMixin):
    id = fields.StringField(primary_key=True,
                            default=lambda: str(uuid.uuid4()))
    is_public = fields.BooleanField(default=False)
    owner = fields.StringField(required=True)
    status = fields.StringField(default=PENDING,
                                choices=ARCHITECTURE_STATUS_CODES,
                                required=True)  # NEW IN V0.5.0
    title = fields.StringField(required=True)
    description = fields.StringField()
    category = fields.StringField(choices=DATASET_CATEGORIES)
    architecture = fields.DictField(required=True)

    meta = {
        'allow_inheritance': True,
        'db_alias': 'metadata',
        'collection': 'architectures'
    }

    def to_dict(self):
        meta = self.to_mongo().to_dict()

        if '_id' in meta:
            meta['id'] = meta['_id']
            del meta['_id']

        del meta['_cls']

        return meta

    def from_dict(self, meta):
        for name in self._fields:
            if name in meta:
                setattr(self, name, meta[name])
Exemple #14
0
class EveryDayMeasurements(fields.EmbeddedDocument):
    # count/minute
    heart_rate = fields.FloatField()
    # C
    body_temperature = fields.FloatField()
    # https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0
    basal_body_temperature = fields.FloatField()
    # мм. ртутного столба | mm Hg
    blood_pressure_systolic = fields.FloatField()
    blood_pressure_diastolic = fields.FloatField()
    # https://en.wikipedia.org/wiki/Respiratory_rate
    # число дыхательных движений за одну минуту
    # number of breaths/minute
    respiratory_rate = fields.FloatField()
    body_mass = fields.FloatField()
    #
    gwb_anxiety = fields.IntField()
    gwb_concentration = fields.IntField()
    gwb_energy = fields.IntField()
    gwb_stress = fields.IntField()
    ss_fever = fields.IntField()
    ss_general_pain = fields.IntField()
    ss_sensory_problems = fields.IntField()
    ss_diarrhea = fields.IntField()
    ss_nausea = fields.IntField()
    ss_hair_loss = fields.IntField()
    ss_mouth_sores = fields.IntField()
    ss_fatigue = fields.IntField()
    timestamp = fields.DateTimeField()
    #
    i_took_today = fields.DictField()
    journal_entry = fields.StringField()
Exemple #15
0
class DialogMsg(fields.EmbeddedDocument):
    mail_type = fields.StringField(max_length=1, choices=MAIL_TYPES.items())
    text = fields.StringField()
    timestamp = fields.DateTimeField()
    """
        произвольные прикрепляемые объекты
    """
    objs = fields.DictField()
Exemple #16
0
class Content(Document):
    project = fields.ReferenceField(Project, required=True)
    content = fields.DictField(required=True)
    file_name = fields.StringField(required=True)
    sheet_name = fields.StringField(required=True)
    input_headers = fields.ReferenceField(Input_headers, required=True)
    status = fields.BooleanField(default=False)
    created_at = fields.DateTimeField(default=datetime.utcnow)
Exemple #17
0
class EventPlugin(EmbeddedDocument):
    meta = {"strict": False}

    name = fields.StringField()
    config = fields.DictField(default={})

    def __unicode__(self):
        return self.name
class History(Document):
    identity = fields.ObjectIdField()
    document_id = fields.ObjectIdField()
    document_type = fields.StringField()
    action = fields.StringField()
    path = fields.StringField()
    data = fields.DictField()
    created_at = fields.DateTimeField()
Exemple #19
0
class AlarmPlugin(EmbeddedDocument):
    meta = {"strict": False, "auto_create_index": False}

    name = fields.StringField()
    config = fields.DictField(default={})

    def __str__(self):
        return self.name
Exemple #20
0
class SOQueue(fields.Document):
    """
        obj={
            'assigned_by':<MainUser.pk>, #coordinator
            'user':<MainUser.pk>,#patient
            'assigned_to':<MainUser.pk>, #expert
            'date':<>, #date for user
            'assigned_date':<>, #date for coordinator
            'closed_date':<>, #date for expert
            'reopen_date':<>
            }
    """
    opened = fields.ListField(field=fields.DictField())
    in_progress = fields.ListField(field=fields.DictField())
    closed = fields.ListField(field=fields.DictField())
    reopened = fields.ListField(field=fields.DictField())
    processed_ = fields.ListField(field=fields.DictField())
Exemple #21
0
class User(Document):
    user_id = fields.IntField(required=True)
    first_name = fields.StringField(max_length=30)
    last_name = fields.StringField(max_length=30)
    is_owner = fields.BooleanField(default=False)
    credit = fields.IntField(default=0)
    email = fields.StringField(required=True)
    preference = fields.DictField(default=DEFAULT_PREFERENCE_VALUE)
        class BaseDoc(db.Document):
            inner = db.EmbeddedDocumentField(EmbeddedDoc)
            inner_list = db.EmbeddedDocumentListField(EmbeddedDoc)

            req_field = db.StringField(required=True)
            string = db.StringField()
            bool = db.BooleanField()
            integer_field = db.IntField()
            dict_f = db.DictField()
class PatchingDumbDocument(Document):
    name = fields.StringField()
    int_fld = fields.IntField()
    lst_fld = fields.ListField()
    dct_fld = fields.DictField()
    intlst_fld = fields.ListField(fields.IntField())
    intdct_fld = fields.MapField(fields.IntField())
    emb = fields.EmbeddedDocumentField(DumbEmbedded)
    emb_lst = fields.EmbeddedDocumentListField(DumbEmbedded)
Exemple #24
0
class Booking(PPrintMixin, DynamicDocument):
    booking_id = fields.StringField(required=True)
    passenger_detail = fields.StringField()
    passenger_mobile = fields.StringField()
    created_timestamp = fields.DateTimeField(default=datetime.datetime.utcnow)
    pickup_timestamp = fields.DateTimeField(required=True)
    pickup_location = fields.StringField(required=True)
    drop_location = fields.StringField()
    num_passengers = fields.IntField()
    product_id = fields.StringField(required=True)
    cust_id = fields.StringField(required=True)
    booking_channel = fields.StringField(required=True)
    status = fields.StringField(default="new")
    remarks = fields.StringField()
    assignment = fields.StringField(default=None)
    cust_meta = fields.DictField(unique=True)
    notification_prefs = fields.DictField(
        default=utils.defaultnotificationprefs)
Exemple #25
0
    class DataTest(db.DynamicDocument):
        data = fields.DictField()
        list_data = fields.ListField()

        def to_json(self, *args, **kwargs):
            return {
                'id': str(self.id),
                'data': self.data,
                'list': self.list_data
            }
Exemple #26
0
class TodoListModel(BaseDocument):
    meta = {"collection": "todo_list"}
    no = fields.SequenceField(collection_name="todo_list")

    title = fields.StringField(required=True)
    status = fields.DictField(required=True)
    category = fields.DictField(required=True)

    due_date = fields.StringField()
    due_time = fields.StringField()

    description = fields.StringField()
    star = fields.BooleanField(default=False)

    hash_tags = fields.ListField(fields.StringField())

    @queryset_manager
    def withStar(doc_cls, queryset):
        return queryset.filter(star=True)
Exemple #27
0
class Queue(Document):
    status = fields.StringField(
        required=True,
        default="Pending",
        help_text=(
            "The current status of the request. Either Pending or Complete."))

    activity = fields.DictField(
        null=True,
        default={},
        help_text=("The corresponding activity for this Queue"))
class Campaign(Document):
    name = fields.StringField(max_length=255, unique=True)
    description = fields.StringField(null=True)
    kwargs = fields.DictField(required=False, null=True)

    meta = {
        'collection': "campaign"
    }

    def __str__(self):
        return self.name
        class Model(db.Document):

            base = db.ReferenceField(Base)
            f1 = db.StringField()
            f2 = db.BooleanField()
            f3 = db.StringField()

            embedded = db.EmbeddedDocumentField(ED)
            listf = db.EmbeddedDocumentListField(ED)

            dictf = db.DictField()
Exemple #30
0
class ArchivedEvent(document.Document):
    """
    """

    meta = {
        "collection": "noc.events.archive",
        "strict": False,
        "auto_create_index": False,
        "indexes": ["timestamp", "alarms"],
    }
    status = "S"

    timestamp = fields.DateTimeField(required=True)
    managed_object = nosql.ForeignKeyField(ManagedObject, required=True)
    event_class = nosql.PlainReferenceField(EventClass, required=True)
    start_timestamp = fields.DateTimeField(required=True)
    repeats = fields.IntField(required=True)
    raw_vars = nosql.RawDictField()
    resolved_vars = nosql.RawDictField()
    vars = fields.DictField()
    log = fields.ListField(nosql.EmbeddedDocumentField(EventLog))
    alarms = fields.ListField(nosql.ObjectIdField())

    def __str__(self):
        return "%s" % self.id

    @property
    def duration(self):
        """
        Logged event duration in seconds
        """
        return (self.timestamp - self.start_timestamp).total_seconds()

    def get_template_vars(self):
        """
        Prepare template variables
        """
        vars = self.vars.copy()
        vars.update({"event": self})
        return vars

    @property
    def subject(self):
        ctx = Context(self.get_template_vars())
        s = Template(self.event_class.subject_template).render(ctx)
        if len(s) >= 255:
            s = s[:125] + " ... " + s[-125:]
        return s

    @property
    def body(self):
        ctx = Context(self.get_template_vars())
        s = Template(self.event_class.body_template).render(ctx)
        return s