コード例 #1
0
ファイル: documents.py プロジェクト: neotje/hops-recepten
class RecipeDoc(Document):
    title = StringField(required=True, min_length=3)
    author = ReferenceField(UserDoc, required=True)
    image = FileField()
    ingredients = EmbeddedDocumentListField(IngredientDoc)
    gear = ListField(StringField())
    steps = EmbeddedDocumentListField(StepDoc)
    meta = {
        'collection': 'recipes'
    }
コード例 #2
0
class Table(EmbeddedDocument):
    columns = EmbeddedDocumentListField(TableColumns)
    pagination = EmbeddedDocumentListField(
        PaginationNamespace,
        default=[
            PaginationNamespace(**{
                'name': 'default',
                'page_size': 5,
                'page_options': [5, 10, 20, 30]
            })
        ])
    classes = EmbeddedDocumentListField(TableClasses)
    filtered_by_owner = BooleanField(default=False)
    view = EmbeddedDocumentField(TableView)
コード例 #3
0
class Chats(Document):
    """
  Chat document saves all words + language settings of a chat.
  Most used word object is save here too
  """

    language = StringField()
    ID = IntField()
    settings = EmbeddedDocumentField(Settings)

    words = EmbeddedDocumentListField(Word)
    topWord = EmbeddedDocumentField(Word)

    sentWords = IntField()
    sentMessages = IntField()

    responses = DictField(default={})

    @staticmethod
    def getChat(chatID):
        """Will return a chat object when ID is provided"""

        try:
            return Chats.objects(ID=chatID).get()
        except Chats.DoesNotExist:
            return None

    @staticmethod
    def getSettings(chatID):
        """Will return a settings object to simplify querring the db"""

        settingsObjects = Chats.objects(ID=chatID).get().settings
        return settingsObjects
コード例 #4
0
ファイル: models.py プロジェクト: pescoboza/agp-db
class Patients(Document):
    meta = {"collection": "pacientes"}

    folio = IntField(primary_key=True, db_field="folio")
    name = StringField(required=True, db_field="nombre")
    age = IntField(required=True, db_field="edad")
    birth_date = DateField(required=True, db_field="fecha_nacimiento")
    sex = StringField(required=True, db_field="sexo")
    blood_type = StringField(required=True, db_field="tipo_sangre")
    emergency_contact_name = StringField(required=True,
                                         db_field="nombre_contacto_emergencia")
    emergency_contact_num = StringField(required=True,
                                        db_field="tel_contacto_emergencia")
    medical_dx = StringField(required=True, db_field="dx_medico")
    companion = BooleanField(required=True, db_field="acompañante")
    shelter = BooleanField(required=True, db_field="shelter")
    quimio = BooleanField(required=True, db_field="quimio")
    form_history = EmbeddedDocumentListField(FormHistory,
                                             required=False,
                                             db_field="versiones_formulario")

    def __str__(self):
        return f"Patient({self.name + ' ' + self.paternal_last_name})"

    def __repr__(self):
        return self.__str__()
コード例 #5
0
class Discussion(Document):
    """
    Discussion representation.
    """

    meta = {'collection': 'discussions'}

    id = StringField(default=lambda: uuid.uuid4().hex, primary_key=True)
    """
    :type: *str*
    :required: False
    :default: Automatically generated.
    """

    document = StringField(required=True)
    """
    :type: *str*
    :required: True
    :default: None 
    """

    chat = ListField(StringField(), default=[])  # unit ids
    """
    :type: *List[str]*
    :required: False
    :default: []
    """

    users = EmbeddedDocumentListField(User, default=[])
    """
コード例 #6
0
ファイル: ssh.py プロジェクト: mlrdk/backend
class ProviderSSH(Provider):
    type = 'SSH'
    hosts = EmbeddedDocumentListField(HostSSH)

    def list(self):
        return self.hosts

    def create(self, ip, hostname):
        host = HostSSH(ip=ip, hostname=hostname)
        self.hosts.append(host)
        self.save()
        return host

    def destroy(self, hostname):
        for host in self.hosts:
            if host.hostname == hostname:
                self.hosts.remove(host)
                return host
        return None

    def update(self, hostname, new_ip=None, new_hostname=None):
        for host in self.hosts:
            if host.hostname == hostname:
                host.ip = new_ip or host.ip
                host.hostname = new_hostname or host.hostname
                self.hosts.save()
                return host
        return None
コード例 #7
0
ファイル: models.py プロジェクト: w1211/ontask3_UNSW
class EmailJob(EmbeddedDocument):
    job_id = ObjectIdField()
    subject = StringField()
    emails = EmbeddedDocumentListField(Email)
    type = StringField(choices=["Manual", "Scheduled"])
    initiated_at = DateTimeField(default=datetime.utcnow)
    included_feedback = BooleanField()
コード例 #8
0
class TableView(EmbeddedDocument):
    shared_group = EmbeddedDocumentListField(SharedGroup)
    name = StringField(required=True)
    model = StringField(required=True)
    is_default = BooleanField(default=False)
    access = StringField(default='public')
    query = ListField(ViewQuery)
コード例 #9
0
class Appointment(db.Document):
    creationDate = DateTimeField(required=True)
    closedDate = DateTimeField()
    nextAppointment = DateTimeField(required=True)
    hospital = ReferenceField(Hospital, required=True)
    patient = ReferenceField(User, required=True)
    closed = BooleanField(default=False)
    appointments = EmbeddedDocumentListField(AppointmentDetail, default=[])

    def format(self):
        response = {
            "id":
            str(self.id),
            "creationDate":
            datetime.strftime(self.creationDate, '%d/%m/%Y %H:%M'),
            "nextAppointment":
            datetime.strftime(self.nextAppointment, '%d/%m/%Y %H:%M'),
            "hospital":
            self.hospital.get_obj(),
            "patient":
            self.patient.format(),
            "closed":
            self.closed,
            "visits":
            [appointment.format() for appointment in self.appointments],
            "cancellable":
            len(self.appointments) == 0
        }
        if self.closedDate:
            response["closedDate"] = datetime.strftime(self.closedDate,
                                                       '%d/%m/%Y %H:%M')
        return response
コード例 #10
0
class NodeConfig(Document):
    version = IntField()
    node_name = StringField(max_length=1000)
    icon_link = URLField()
    connection_method = DictField()
    configures = EmbeddedDocumentListField(OperateFactor)
    device_icons = DictField()  # key:hid, value:URL
コード例 #11
0
class Player(Document):
    first_name = StringField(required=True)
    last_name = StringField(required=True)
    opponent = ReferenceField('Player')
    players = ListField(ReferenceField('Player'))
    articles = ListField(ReferenceField('Article'))
    embedded_list_articles = EmbeddedDocumentListField(EmbeddedArticle)
コード例 #12
0
class ModelDO(Document):
    """Model Plain Object.

    The primary key of the model plain object is (engine, name, version) pair.
    """

    # Model name
    name = StringField(required=True)
    # Supported engine enum (aka framework, e.g.: TensorFlow (0) or PyTorch (1))
    framework = IntField(required=True)
    # ONNX or TensorRT
    engine = IntField(required=True)
    # Version of the model. e.g.: `1`
    version = IntField(required=True)
    # Dataset
    dataset = StringField(required=True)
    # Model evaluation metric
    metric = DictField(required=True)
    # Model weights
    weight = FileField()
    # Model task
    task = IntField(required=True)
    # Parent Model ID
    parent_model_id = StringField()
    # inputs standard
    inputs = EmbeddedDocumentListField(IOShapeDO)
    # outputs standard
    outputs = EmbeddedDocumentListField(IOShapeDO)
    # Profile result
    profile_result = EmbeddedDocumentField(ProfileResultDO)
    # Status enum value
    status = IntField(required=True)
    # Model Status enum value
    model_status = ListField()
    # Model provider (uploader)
    creator = StringField(required=True)
    # Creation time of this record
    create_time = DateTimeField(required=True)

    meta = {
        'indexes': [{
            'fields':
            ('engine', 'name', 'framework', 'version', 'task', 'dataset'),
            'unique':
            True
        }]
    }
コード例 #13
0
class Organization(BDocument):
    name = StringField()
    contact_full_name = StringField()
    default_refund_amount = FloatField(default=0)
    conventions = EmbeddedDocumentListField(OrganizationConvention)
    address = StringField()
    email = EmailField()
    phone_numbers = ListField(field=StringField(), required=False, default=[])
コード例 #14
0
class User(EmbeddedDocument):
    """
    User representation.
    """

    id = StringField(default=lambda: uuid.uuid4().hex, primary_key=True)

    viewed_unit = StringField(required=True)
    """
    :type: *str*
    :required: True
    :default: None
    """

    start_time = DateTimeField(required=True)  #StringField(required=True)
    """
    :type: *datetime*
    :required: True
    :default: None
    """

    name = StringField(required=True)
    """
    :type: *str*
    :required: True
    :default: None
    """

    cursor = EmbeddedDocumentField(Cursor, required=True)
    """
    :type: *Cursor*
    :required: True
    :default: None
    """

    active = BooleanField(default=False)
    """
    :type: *bool*
    :required: False
    :default: False
    """

    timeline = EmbeddedDocumentListField(TimeInterval, default=[])
    """
    :type: *EmbeddedDocumentList[TimeInterval]*
    :required: False
    :default: []
    """

    editing = ListField(StringField(), default=[])  # unit ids
    """
    :type: *List[str]*
    :required: False
    :default: []
    """

    moving = ListField(StringField(), default=[])  # unit ids
    """
コード例 #15
0
class User(Document):
    username = StringField(required=True, unique=True)
    email = StringField(required=True, unique=True)
    password = StringField(required=True)
    watchList = EmbeddedDocumentListField(Stock)
    balence = FloatField(default=10000.00)
    # ownedStock = EmbeddedDocumentListField(OwnedStock)
    totalStockValue = FloatField(default=0.00)
    meta = {'ordering': ['+username']}
コード例 #16
0
class Intent(Document):
    name = StringField(max_length=100, required=True, unique=True)
    intentId = StringField(required=True)
    apiTrigger = BooleanField(required=True)
    apiDetails = EmbeddedDocumentField(ApiDetails)
    speechResponse = StringField(required=True)
    parameters = ListField(EmbeddedDocumentField(Parameter))
    labeledSentences = EmbeddedDocumentListField(LabeledSentences)
    trainingData = ListField(required=False)
コード例 #17
0
ファイル: models.py プロジェクト: merylb/implement_table
class BillingDocument(BDocument):
    number = StringField(required=True)
    beneficiary = DynamicField()
    comment = StringField()
    doc_date = DateTimeField()
    attached_files = EmbeddedDocumentListField(AttachedFile)
    states = EmbeddedDocumentField(DocumentState)
    # owner=
    meta = {'abstract': True}
コード例 #18
0
class Business(mongoengine.DynamicDocument):
    """Business Document Schema"""

    name = StringField(required=True)
    yelp_id = StringField(required=True, unique=True)
    location = EmbeddedDocumentField(Location)
    latitude = FloatField()
    longitude = FloatField()
    image_url = StringField()
    display_phone = StringField()
    open_hours = EmbeddedDocumentListField(OpenHours)
コード例 #19
0
class ProviderDO(Provider):
    type = 'DO'
    hosts = EmbeddedDocumentListField(HostDO)

    # Hard coded for now
    token = "Put_Your_Digital_Ocean_Api_Key_Here"
    manager = digitalocean.Manager(token=token)
    name = 'pythonApi'
    region = 'ams2'
    image = 'debian-8-x64'
    size_slug = '512mb'
    backups = False

    def list(self):
        return self.hosts

    def create(self, hostname, ip):

        droplet = digitalocean.Droplet(token=self.token,
                                       name=self.name,
                                       region=self.region,
                                       image=self.image,
                                       size_slug=self.size_slug,
                                       backups=self.backups)
        droplet.create()

        # Wait droplet to start
        action = digitalocean.Action(id=droplet.action_ids[0],
                                     token=droplet.token,
                                     droplet_id=droplet.id)
        action.load()
        action.wait(2)
        droplet = self.manager.get_droplet(droplet.id)

        host = HostDO(ip=droplet.ip_address, hostname=droplet.name)
        self.hosts.append(host)
        self.save()
        return host

    def destroy(self, hostname):
        for host in self.hosts:
            if host.hostname == hostname:
                self.hosts.remove(host)
                return host
        return None

    def update(self, hostname, new_ip=None, new_hostname=None):
        for host in self.hosts:
            if host.hostname == hostname:
                host.ip = new_ip or host.ip
                host.hostname = new_hostname or host.hostname
                self.hosts.save()
                return host
        return None
コード例 #20
0
class Reporter(Document):

    meta = {'collection': 'test_repoter'}
    id = StringField(primary_key=True)
    first_name = StringField(required=True)
    last_name = StringField(required=True)
    email = EmailField()
    articles = ListField(ReferenceField(Article))
    embedded_articles = ListField(EmbeddedDocumentField(EmbeddedArticle))
    embedded_list_articles = EmbeddedDocumentListField(EmbeddedArticle)
    awards = ListField(StringField())
コード例 #21
0
ファイル: models.py プロジェクト: tristanbrown/fintrist
class AlertsLog(EmbeddedDocument):
    """Log of Alerts."""
    log = EmbeddedDocumentListField('Alerts')
    count = IntField(default=100)

    # Meta
    schema_version = IntField(default=1)
    meta = {'strict': False}

    def trim(self):
        """Trim the log to the specified size."""
        if len(self.log) > self.count:
            self.log = self.log[:self.count]

    def record_alerts(self, alerts, timestamp):
        """Take in a new list of alerts.

        alerts (list): [str]
        """
        newalerts = Alerts(active=alerts)
        newalerts.timestamp = timestamp
        self.log = [newalerts] + self.log
    
    def remove_alert(self, idx=0):
        """Delete the alert at the index. First by default."""
        if self.log:
            self.log.pop(idx)

    def get_alerts(self, idx):
        """Get the alerts at the given lookback index."""
        try:
            return set(self.log[idx].active)
        except IndexError:
            return set()

    @property
    def newest(self):
        """Most recent alerts."""
        return self.get_alerts(0)

    @property
    def newactive(self):
        """Newly active alerts."""
        return self.get_alerts(0) - self.get_alerts(1)

    @property
    def newinactive(self):
        """Newly inactive alerts."""
        return self.get_alerts(1) - self.get_alerts(0)

    def clear(self):
        """Delete all alerts."""
        self.log = []
コード例 #22
0
ファイル: models.py プロジェクト: w1211/ontask3_UNSW
class EmailSettings(EmbeddedDocument):
    subject = StringField(required=True)
    field = StringField(required=True)
    fromName = StringField(null=True)
    replyTo = StringField(required=True)
    include_feedback = BooleanField()
    feedback_list = BooleanField()
    list_question = StringField()
    list_options = EmbeddedDocumentListField(Option)
    list_type = StringField(choices=("dropdown", "radio"))
    feedback_textbox = BooleanField()
    textbox_question = StringField()
コード例 #23
0
class TableColumns(EmbeddedDocument):
    label = StringField(required=True)
    name = StringField(required=True)
    type = StringField(default="text")
    description = StringField(default=None)
    unit = StringField(default=None)
    order_by = StringField(default='')
    is_orderable = BooleanField(default=False)
    is_searchable = BooleanField(default=False)
    is_editable = BooleanField(default=False)
    is_required = BooleanField(default=False)
    is_global_searchable = BooleanField(default=False)

    rounded = BooleanField(default=False)
    is_callable = BooleanField(default=False)

    show_in = EmbeddedDocumentListField(
        AllowPropertyNamespace,
        default=[AllowPropertyNamespace(**{
            "name": "default",
            "allow": True
        })])
    order_in = EmbeddedDocumentListField(
        ValuePropertyNamespace,
        default=[ValuePropertyNamespace(**{
            "name": "default",
            "value": 0
        })])
    # is_icon = BooleanField(default=False)
    icon_name = StringField()

    is_extended = BooleanField(default=False)
    colspan = IntField(default=1)
    style_classes = EmbeddedDocumentListField(TableClasses)

    # TO REMOVE
    is_ref = BooleanField(default=False)
    module = StringField(default=None)
    model = StringField(default=None)
コード例 #24
0
ファイル: models.py プロジェクト: CN-UPB/Pishahang
class Service(Document):
    """
    Represents a service instance.
    """

    id = UUIDField(primary_key=True, default=uuid4)
    created_at = DateTimeField(default=datetime.utcnow)

    status = StringField()

    descriptor = DictField(required=True)
    functions = EmbeddedDocumentListField(Function, required=True)

    placement = DictField()
コード例 #25
0
class TrainedModel(Document):
    machine_name = StringField(required=True)
    model_name = StringField(required=True)
    dataset_name = StringField(required=True)
    run = IntField(required=True)
    train_temperature = StringField(required=True)

    all_history = MapField(EmbeddedDocumentListField(MetricHistoryRecord))
    best_history = MapField(EmbeddedDocumentListField(MetricHistoryRecord))

    created_at = DateTimeField(required=True, default=datetime.datetime.now)
    updated_at = DateTimeField(required=True, default=datetime.datetime.now)

    meta = meta = {
        'indexes': [
            {
                'fields':
                ['model_name', 'dataset_name', '+run', 'train_temperature'],
                'unique':
                True,
            },
            '#machine_name',
            '#model_name',
            '#dataset_name',
            '+run',
            '#train_temperature',
            '-created_at',
            '-updated_at',
        ],
    }

    def clean(self):
        self.model_name = self.model_name.lower()
        self.dataset_name = self.dataset_name.lower()
        self.train_temperature = self.train_temperature.lower()
        self.updated_at = datetime.datetime.now()
        super().clean()
コード例 #26
0
class Company(Document):
    name = StringField(required=True, unique=True)
    products = EmbeddedDocumentListField(Product, default=list)

    @staticmethod
    def buildOne(company):
        return {
            'id': str(company.id),
            'name': company.name,
            'products': Product.buildMany(company.products)
        }
    
    @staticmethod
    def buildMany(companies):
        return list(map(lambda company: Company.buildOne(company), companies))
コード例 #27
0
class Field(EmbeddedDocument):
    name = StringField(required=True)
    type = StringField(required=True)
    textDisplay = StringField(null=True)
    textArea = BooleanField(null=True)
    maxLength = IntField(null=True)
    multiSelect = BooleanField(null=True)
    options = EmbeddedDocumentListField(Option)
    listStyle = StringField(null=True)
    alignment = StringField(null=True)
    minimum = IntField(null=True)
    maximum = IntField(null=True)
    precision = IntField(null=True)
    interval = FloatField(null=True)
    numberDisplay = StringField(null=True)
    useIcon = BooleanField(null=True)
    columns = ListField(StringField())
コード例 #28
0
class Connection(EmbeddedDocument):
    dbType = StringField(
        choices=(
            "mysql",
            "postgresql",
            "sqlite",
            "mssql",
            "csvTextFile",
            "xlsXlsxFile",
            "s3BucketFile",
        ),
        required=True,
    )
    host = StringField()
    port = IntField()
    database = StringField()
    user = StringField()
    password = StringField()
    query = StringField()
    bucket = StringField()
    files = EmbeddedDocumentListField(File)
コード例 #29
0
ファイル: models.py プロジェクト: rohitjose/paranuara-api
class Person(Document):
    """Model to hold the information of the people in Paranuara"""
    meta = {'collection': 'people'}
    index = IntField(required=True)
    guid = StringField()
    has_died = BooleanField(required=True)
    balance = StringField()
    picture = URLField()
    age = IntField()
    eyeColor = StringField(required=True)
    name = StringField(required=True)
    gender = StringField(choices=['male', 'female'])
    company_id = IntField(required=True)
    email = EmailField()
    phone = StringField()
    address = StringField()
    about = StringField()
    registered = StringField()
    tags = ListField(StringField())
    friends = EmbeddedDocumentListField(Friend)
    greeting = StringField()
    favouriteFood = ListField(StringField())
コード例 #30
0
class Form(Document):
    container = ReferenceField(
        Container, required=True,
        reverse_delete_rule=2)  # Cascade delete if container is deleted
    datalab = ReferenceField(
        Datalab, required=True,
        reverse_delete_rule=2)  # Cascade delete if view is deleted
    name = StringField(required=True)
    description = StringField(null=True)
    primary = StringField(required=True)
    visibleFields = ListField(StringField())
    fields = EmbeddedDocumentListField(Field, required=True)
    layout = StringField(choices=("vertical", "table"), default="table")
    activeFrom = DateTimeField(null=True)
    activeTo = DateTimeField(null=True)
    ltiAccess = BooleanField(default=False)
    emailAccess = BooleanField(default=False)
    permission = StringField(null=True)
    groupBy = StringField(null=True)
    searchBy = ListField(StringField())
    data = ListField(DictField())
    permitted_users = ListField(StringField())
    restriction = StringField(choices=("private", "limited", "open"),
                              default="private")

    # Flat representation of which users should see this form when they load the dashboard
    def refresh_access(self):
        users = set(
            record.get(self.permission, "").lower()
            for record in self.datalab.relations)
        for invalid_value in [None, ""]:
            if invalid_value in users:
                users.remove(invalid_value)

        self.permitted_users = list(users)
        self.save()