Skip to content

Commit

Permalink
[feat] change all responses models to custom one
Browse files Browse the repository at this point in the history
  • Loading branch information
KyrianC committed Nov 23, 2023
1 parent 6a02c69 commit 97a7028
Show file tree
Hide file tree
Showing 69 changed files with 275 additions and 201 deletions.
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence, Optional

from pydantic import BaseModel, StrictStr, Field


class SpeechDiarizationEntry(BaseModel):
class SpeechDiarizationEntry(NoRaiseBaseModel):
segment: StrictStr
start_time: Optional[StrictStr]
end_time: Optional[StrictStr]
speaker: int
confidence: Optional[float]


class SpeechDiarization(BaseModel):
class SpeechDiarization(NoRaiseBaseModel):
total_speakers: int
entries: Sequence[SpeechDiarizationEntry] = Field(default_factory=list)
error_message: Optional[str] = None


class SpeechToTextAsyncDataClass(BaseModel):
class SpeechToTextAsyncDataClass(NoRaiseBaseModel):
text: StrictStr
diarization: SpeechDiarization
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from utils.parsing import NoRaiseBaseModel
from typing import Dict

from pydantic import BaseModel, StrictStr


class TextToSpeechDataClass(BaseModel):
class TextToSpeechDataClass(NoRaiseBaseModel):
audio: StrictStr
voice_type: int
audio_resource_url: StrictStr
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from utils.parsing import NoRaiseBaseModel
from typing import Dict

from pydantic import BaseModel, StrictStr


class TextToSpeechAsyncDataClass(BaseModel):
class TextToSpeechAsyncDataClass(NoRaiseBaseModel):
audio: StrictStr
voice_type: int
audio_resource_url: StrictStr
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence, Optional

from pydantic import BaseModel, StrictStr, Field


class AnonymizationBoundingBox(BaseModel):
class AnonymizationBoundingBox(NoRaiseBaseModel):
x_min: Optional[float]
x_max: Optional[float]
y_min: Optional[float]
y_max: Optional[float]


class AnonymizationItem(BaseModel):
class AnonymizationItem(NoRaiseBaseModel):
kind: StrictStr
confidence: float
bounding_boxes: AnonymizationBoundingBox


class AnonymizationDataClass(BaseModel):
class AnonymizationDataClass(NoRaiseBaseModel):
image: StrictStr
image_resource_url: StrictStr
items: Sequence[AnonymizationItem] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from utils.parsing import NoRaiseBaseModel
import base64
import importlib
import uuid
Expand All @@ -9,7 +10,7 @@
# from edenai_apis.utils.upload_s3 import upload_file_bytes_to_s3, USER_PROCESS


class BackgroundRemovalDataClass(BaseModel):
class BackgroundRemovalDataClass(NoRaiseBaseModel):
"""
The response of the background removal API.
Expand Down
5 changes: 3 additions & 2 deletions edenai_apis/features/image/embeddings/embeddings_dataclass.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence

from pydantic import BaseModel, Field


class EmbeddingDataClass(BaseModel):
class EmbeddingDataClass(NoRaiseBaseModel):
embedding: Sequence[float]


class EmbeddingsDataClass(BaseModel):
class EmbeddingsDataClass(NoRaiseBaseModel):
items: Sequence[EmbeddingDataClass] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence, Union

from pydantic import (
Expand Down Expand Up @@ -36,7 +37,7 @@
]


class ExplicitItem(BaseModel):
class ExplicitItem(NoRaiseBaseModel):
label: StrictStr
likelihood: int
likelihood_score: float
Expand All @@ -50,7 +51,7 @@ def serialize_subcategory(self, value: SubCategoryType, _: FieldSerializationInf
return value.value


class ExplicitContentDataClass(BaseModel):
class ExplicitContentDataClass(NoRaiseBaseModel):
nsfw_likelihood: int
nsfw_likelihood_score: float
items: Sequence[ExplicitItem] = Field(default_factory=list)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
from utils.parsing import NoRaiseBaseModel
from typing import Optional, Sequence

from pydantic import BaseModel, Field


class FaceCompareBoundingBox(BaseModel):
class FaceCompareBoundingBox(NoRaiseBaseModel):
top: Optional[float]
left: Optional[float]
height: Optional[float]
width: Optional[float]


class FaceMatch(BaseModel):
class FaceMatch(NoRaiseBaseModel):
confidence: Optional[float]
bounding_box: FaceCompareBoundingBox


class FaceCompareDataClass(BaseModel):
class FaceCompareDataClass(NoRaiseBaseModel):
items: Sequence[FaceMatch] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from utils.parsing import NoRaiseBaseModel
from typing import Optional, Sequence

from pydantic import BaseModel, Field, StrictStr


class FaceLandmarks(BaseModel):
class FaceLandmarks(NoRaiseBaseModel):
left_eye: Sequence[float] = Field(default_factory=list)
left_eye_top: Sequence[float] = Field(default_factory=list)
left_eye_right: Sequence[float] = Field(default_factory=list)
Expand Down Expand Up @@ -58,7 +59,7 @@ class FaceLandmarks(BaseModel):
right_cheek_center: Sequence[float] = Field(default_factory=list)


class FaceEmotions(BaseModel):
class FaceEmotions(NoRaiseBaseModel):
joy: Optional[int] # all
sorrow: Optional[int] # all
anger: Optional[int] # all
Expand Down Expand Up @@ -88,12 +89,12 @@ def default() -> "FaceEmotions":
)


class FaceHairColor(BaseModel):
class FaceHairColor(NoRaiseBaseModel):
color: StrictStr
confidence: float


class FaceHair(BaseModel):
class FaceHair(NoRaiseBaseModel):
hair_color: Sequence[FaceHairColor] = Field(default_factory=list) # microsoft
bald: Optional[float] # microsoft
invisible: Optional[bool] # microsoft
Expand All @@ -103,7 +104,7 @@ def default() -> "FaceHair":
return FaceHair(hair_color=[], bald=None, invisible=None)


class FaceFacialHair(BaseModel):
class FaceFacialHair(NoRaiseBaseModel):
moustache: Optional[float] # microsoft, amazon
beard: Optional[float] # microsoft, amazon
sideburns: Optional[float] # microsoft
Expand All @@ -113,7 +114,7 @@ def default() -> "FaceFacialHair":
return FaceFacialHair(moustache=None, beard=None, sideburns=None)


class FaceBoundingBox(BaseModel):
class FaceBoundingBox(NoRaiseBaseModel):
x_min: Optional[float]
x_max: Optional[float]
y_min: Optional[float]
Expand All @@ -129,7 +130,7 @@ def default() -> "FaceBoundingBox":
)


class FacePoses(BaseModel):
class FacePoses(NoRaiseBaseModel):
pitch: Optional[float] # all
roll: Optional[float] # all
yaw: Optional[float] # all
Expand All @@ -139,7 +140,7 @@ def default() -> "FacePoses":
return FacePoses(pitch=None, roll=None, yaw=None)


class FaceQuality(BaseModel):
class FaceQuality(NoRaiseBaseModel):
noise: Optional[float] # microsoft
exposure: Optional[float] # microsoft
blur: Optional[float] # microsoft
Expand All @@ -157,7 +158,7 @@ def default() -> "FaceQuality":
)


class FaceMakeup(BaseModel):
class FaceMakeup(NoRaiseBaseModel):
eye_make: Optional[bool] # microsoft
lip_make: Optional[bool] # microsoft

Expand All @@ -166,7 +167,7 @@ def default() -> "FaceMakeup":
return FaceMakeup(eye_make=None, lip_make=None)


class FaceFeatures(BaseModel):
class FaceFeatures(NoRaiseBaseModel):
eyes_open: Optional[float] # amazon
smile: Optional[float] # amazon
mouth_open: Optional[float] # amazon
Expand All @@ -176,7 +177,7 @@ def default() -> "FaceFeatures":
return FaceFeatures(eyes_open=None, smile=None, mouth_open=None)


class FaceAccessories(BaseModel):
class FaceAccessories(NoRaiseBaseModel):
sunglasses: Optional[float] # microsoft, amazon
reading_glasses: Optional[float] # microsoft
swimming_goggles: Optional[float] # microsoft
Expand All @@ -196,7 +197,7 @@ def default() -> "FaceAccessories":
)


class FaceOcclusions(BaseModel):
class FaceOcclusions(NoRaiseBaseModel):
eye_occluded: Optional[bool] # microsoft
forehead_occluded: Optional[bool] # microsoft
mouth_occluded: Optional[bool] # microsoft
Expand All @@ -210,7 +211,7 @@ def default() -> "FaceOcclusions":
)


class FaceItem(BaseModel):
class FaceItem(NoRaiseBaseModel):
confidence: float
landmarks: FaceLandmarks
emotions: FaceEmotions
Expand All @@ -227,5 +228,5 @@ class FaceItem(BaseModel):
features: FaceFeatures


class FaceDetectionDataClass(BaseModel):
class FaceDetectionDataClass(NoRaiseBaseModel):
items: Sequence[FaceItem] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from utils.parsing import NoRaiseBaseModel
from typing import List

from pydantic import BaseModel


class FaceRecognitionAddFaceDataClass(BaseModel):
class FaceRecognitionAddFaceDataClass(NoRaiseBaseModel):
face_ids: List[str]
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from utils.parsing import NoRaiseBaseModel
from pydantic import BaseModel


class FaceRecognitionCreateCollectionDataClass(BaseModel):
class FaceRecognitionCreateCollectionDataClass(NoRaiseBaseModel):
collection_id: str
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from utils.parsing import NoRaiseBaseModel
from pydantic import BaseModel


class FaceRecognitionDeleteCollectionDataClass(BaseModel):
class FaceRecognitionDeleteCollectionDataClass(NoRaiseBaseModel):
deleted: bool
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from utils.parsing import NoRaiseBaseModel
from pydantic import BaseModel


class FaceRecognitionDeleteFaceDataClass(BaseModel):
class FaceRecognitionDeleteFaceDataClass(NoRaiseBaseModel):
deleted: bool
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from utils.parsing import NoRaiseBaseModel
from typing import List

from pydantic import BaseModel, Field


class FaceRecognitionListCollectionsDataClass(BaseModel):
class FaceRecognitionListCollectionsDataClass(NoRaiseBaseModel):
collections: List[str] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from utils.parsing import NoRaiseBaseModel
from typing import List

from pydantic import BaseModel


class FaceRecognitionListFacesDataClass(BaseModel):
class FaceRecognitionListFacesDataClass(NoRaiseBaseModel):
face_ids: List[str]
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from utils.parsing import NoRaiseBaseModel
from typing import List

from pydantic import BaseModel, Field


class FaceRecognitionRecognizedFaceDataClass(BaseModel):
class FaceRecognitionRecognizedFaceDataClass(NoRaiseBaseModel):
confidence: float
face_id: str


class FaceRecognitionRecognizeDataClass(BaseModel):
class FaceRecognitionRecognizeDataClass(NoRaiseBaseModel):
items: List[FaceRecognitionRecognizedFaceDataClass] = Field(default_factory=list)
5 changes: 3 additions & 2 deletions edenai_apis/features/image/generation/generation_dataclass.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence

from pydantic import BaseModel, Field, StrictStr


class GeneratedImageDataClass(BaseModel):
class GeneratedImageDataClass(NoRaiseBaseModel):
image: str
image_resource_url: StrictStr


class GenerationDataClass(BaseModel):
class GenerationDataClass(NoRaiseBaseModel):
items: Sequence[GeneratedImageDataClass] = Field(default_factory=list)
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
from utils.parsing import NoRaiseBaseModel
from typing import Sequence

from pydantic import BaseModel, Field, StrictStr


class LandmarkVertice(BaseModel):
class LandmarkVertice(NoRaiseBaseModel):
x: int
y: int


class LandmarkLatLng(BaseModel):
class LandmarkLatLng(NoRaiseBaseModel):
latitude: float
longitude: float


class LandmarkLocation(BaseModel):
class LandmarkLocation(NoRaiseBaseModel):
lat_lng: LandmarkLatLng


class LandmarkItem(BaseModel):
class LandmarkItem(NoRaiseBaseModel):
description: StrictStr
confidence: float
bounding_box: Sequence[LandmarkVertice] = Field(default_factory=list)
locations: Sequence[LandmarkLocation] = Field(default_factory=list)


class LandmarkDetectionDataClass(BaseModel):
class LandmarkDetectionDataClass(NoRaiseBaseModel):
items: Sequence[LandmarkItem] = Field(default_factory=list)
Loading

0 comments on commit 97a7028

Please sign in to comment.