-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtasks.py
36 lines (28 loc) · 1.12 KB
/
tasks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from celery import Celery
from tracetrack.alignment_utils import Settings
from typing import List
from tracetrack.entities.alignment import Alignment
celery = Celery('tasks')
config_obj = 'tracetrack.celeryconfig'
celery.config_from_object(config_obj)
class AlignmentTaskResult:
alignment: Alignment
warnings: List[str]
settings: Settings
def __init__(self, alignment, warnings, settings):
self.alignment = alignment
self.warnings = warnings
self.settings = settings
@celery.task(name='tasks.align_sequences')
def align_sequences_celery(seqlist, ref_id, population_name, db, settings, warnings_orig):
alignment, warnings = db.align_sequences(seqlist, ref_id, population=population_name)
warnings += warnings_orig
return AlignmentTaskResult(alignment=alignment, warnings=warnings, settings=settings)
@celery.task(name='tasks.save_submission')
def save_submission(sequences, population_names, db):
print("Started")
for seqlist in sequences:
for record in seqlist:
db.match_trace_to_ref(record)
print("Ready")
return sequences, population_names, db