-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdtos.py
More file actions
108 lines (86 loc) · 3.2 KB
/
Copy pathdtos.py
File metadata and controls
108 lines (86 loc) · 3.2 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
""" Options:
Date: 2026-07-17 14:54:15
Version: 10.09
Tip: To override a DTO option, remove "#" prefix before updating
BaseUrl: https://amd.raptor-elver.ts.net
#GlobalNamespace:
#AddServiceStackTypes: True
#AddResponseStatus: False
#AddImplicitVersion:
#AddDescriptionAsComments: True
IncludeTypes: GetArtifactClassificationTasks.*,CompleteArtifactClassificationTask.*,AgentData.*,ArtifactRef
#ExcludeTypes:
#DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum
#DataClass:
#DataClassJson:
"""
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
Object = TypeVar('Object')
class AssetType(str, Enum):
IMAGE = 'Image'
VIDEO = 'Video'
AUDIO = 'Audio'
SPEECH = 'Speech'
ANIMATION = 'Animation'
TEXT = 'Text'
BINARY = 'Binary'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ObjectDetection:
model: Optional[str] = None
class_: Optional[str] = field(metadata=config(field_name='class'), default=None)
score: float = 0.0
box: List[int] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Ratings:
predicted_rating: Optional[str] = None
confidence: float = 0.0
all_scores: Dict[str, float] = field(default_factory=dict)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArtifactRef:
id: int = 0
type: Optional[AssetType] = None
url: Optional[str] = None
length: int = 0
device_id: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AgentDataResponse:
categories: List[str] = field(default_factory=list)
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AgentData(IReturn[AgentDataResponse], IGet):
# @Validate(Validator="NotEmpty")
device_id: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetArtifactClassificationTasks(IReturn[QueryResponse[ArtifactRef]], IGet):
# @Validate(Validator="NotEmpty")
device_id: Optional[str] = None
# @Validate(Validator="NotEmpty")
types: List[AssetType] = field(default_factory=list)
take: Optional[int] = None
wait_for: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CompleteArtifactClassificationTask(IReturn[EmptyResponse], IPost):
# @Validate(Validator="NotEmpty")
device_id: Optional[str] = None
artifact_id: int = 0
tags: Optional[Dict[str, float]] = None
categories: Optional[Dict[str, float]] = None
objects: Optional[List[ObjectDetection]] = None
ratings: Optional[Ratings] = None
phash: Optional[str] = None
color: Optional[str] = None
error: Optional[ResponseStatus] = None