Skip to content
Snippets Groups Projects
Commit 2423d45c authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Add task for volume analysis

parent 8cf66097
No related branches found
No related tags found
1 merge request!89Ocr
#!/usr/bin/env python3
from django.core.management.base import BaseCommand, CommandError
from arkindex.documents.models import Element, ElementType, Page
from arkindex.dataimport.tasks import save_ml_results
from arkindex.project.celery import app as celery_app
class Command(BaseCommand):
help = 'Analyze a volume using worker-ml'
def add_arguments(self, parser):
parser.add_argument(
'volume',
help='Volume ID to analyze',
)
def handle(self, *args, **options):
# Lookup volume
try:
volume = Element.objects.get(id=options['volume'], type=ElementType.Volume)
except Element.DoesNotExist:
raise CommandError('Volume not found {}'.format(options['volume']))
# Build payload using pages
pages = Page.objects.filter(
pk__in=Element.objects.get_descending(volume.id, type=ElementType.Page)
)
payload = {
'volume': str(volume.id),
'pages': [
(page.id, page.zone.image.get_thumbnail_url(max_width=1500))
for page in pages
]
}
# Start tasks with payload
analyze = celery_app.signature('arkindex_ml.tasks.analyze_pages')
workflow = analyze | save_ml_results.s()
task = workflow.delay(payload)
print('Started task {}'.format(task))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment