Source code for luna_handlers.classes.schemas.multipart

"""
Module contains schemas for multipart requests
"""
from typing import List

from pydantic import conlist

from classes.schemas.base_schema import BaseSchema
from classes.schemas.simple_schemas import BoundingBoxSchema
from classes.schemas.types import OptionalNotNullable, CustomDatetime, Str256


class _FileNameWithFaceBBs(BaseSchema):
    """Model for filename with face bounding boxes"""

    # filename string
    filename: str
    # face bounding box list
    faceBoundingBoxes: conlist(BoundingBoxSchema, min_items=1) = OptionalNotNullable()


[docs]class FileNameWithFaceBBs(BaseSchema): """Model for filename with face bounding boxes""" # face bounding box list with filename faceBoundingBoxes: List[_FileNameWithFaceBBs]
class _FileNameWithBodyBBs(BaseSchema): """Model for filename with body bounding boxes""" # filename string filename: str # body bounding box list bodyBoundingBoxes: conlist(BoundingBoxSchema, min_items=1) = OptionalNotNullable()
[docs]class FileNameWithBodyBBs(BaseSchema): """Model for filename with body bounding boxes""" # body bounding box list with filename bodyBoundingBoxes: List[_FileNameWithBodyBBs]
class _FileNameWithDetectionTime(BaseSchema): """Model for filename with image detect time""" # filename string filename: str # image detection time detectTime: CustomDatetime = OptionalNotNullable()
[docs]class FileNameWithDetectionTime(BaseSchema): """Model for list of filename with image detect time""" # detection time list with filename imageDetectTime: List[_FileNameWithDetectionTime]
class _FileNameWithImageOrigin(BaseSchema): """Model for filename with image origin""" # filename string filename: str # image origin imageOrigin: Str256
[docs]class FileNameWithImageOrigin(BaseSchema): """Model for list of filename with image origin""" # image origin list with filename imageOrigin: List[_FileNameWithImageOrigin]