Files
D-SCRIPT/server/predict/models.py

45 lines
1.6 KiB
Python

import tempfile
from django.core.validators import EmailValidator, FileExtensionValidator
from django.db import models
class Job(models.Model):
uuid = models.UUIDField("UUID", primary_key=True)
title = models.TextField("Title", blank=True)
email = models.EmailField("Email", validators=[EmailValidator()])
seq_fi = models.FilePathField(
"Sequence File Path",
path=f"{tempfile.gettempdir()}/dscript-predictions/",
validators=[FileExtensionValidator(".fasta")],
null=True,
)
pair_fi = models.FilePathField(
"Pair File Path",
path=f"{tempfile.gettempdir()}/dscript-predictions/",
validators=[FileExtensionValidator(".tsv")],
null=True,
)
result_fi = models.FilePathField(
"Result File Path",
path=f"{tempfile.gettempdir()}/dscript-predictions/",
validators=[FileExtensionValidator(".tsv")],
null=True,
)
n_seqs = models.PositiveIntegerField("Number of Sequences", default=0)
n_pairs = models.PositiveIntegerField("Number of Pairs", default=0)
submission_time = models.DateTimeField("Submission Time")
start_time = models.DateTimeField("Start Time", blank=True, null=True)
n_pairs_done = models.PositiveIntegerField(
"Number of Pairs Done", blank=True, default=0
)
is_running = models.BooleanField("Is Running", default=False)
is_completed = models.BooleanField("Is Completed", default=False)
task_status = models.TextField("Task Status", default="PENDING")
def __str__(self):
return f"{self.title} ({self.uuid})"