"""This file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
|
"""
|
from rest_framework import serializers
|
from tasks.models import Task
|
from tasks.serializers import AnnotationSerializer, PredictionSerializer, TaskSerializer, TaskSerializerBulk
|
|
from .models import FileUpload
|
|
|
class ImportApiSerializer(TaskSerializer):
|
"""Tasks serializer for Import API (TaskBulkCreateAPI)"""
|
|
annotations = AnnotationSerializer(many=True, default=[])
|
predictions = PredictionSerializer(many=True, default=[])
|
|
class Meta:
|
model = Task
|
list_serializer_class = TaskSerializerBulk
|
exclude = ('is_labeled', 'project')
|
|
|
class FileUploadSerializer(serializers.ModelSerializer):
|
file = serializers.FileField(use_url=False)
|
size = serializers.SerializerMethodField()
|
|
class Meta:
|
model = FileUpload
|
fields = ['id', 'file', 'size']
|
|
def get_size(self, obj) -> int | None:
|
try:
|
return obj.file.size
|
except (ValueError, OSError):
|
return None
|