Skip to content

Commit 9768d37

Browse files
authored
Merge pull request #11 from superannotateai/friday_687
Friday 687
2 parents 0e3b63c + 2f23534 commit 9768d37

File tree

6 files changed

+32
-17
lines changed

6 files changed

+32
-17
lines changed

pytest.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
minversion = 3.0
33
log_cli=true
44
python_files = test_*.py
5-
;addopts = -n auto --dist=loadscope
5+
addopts = -n auto --dist=loadscope

src/superannotate_schemas/schemas/base.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from superannotate_schemas.schemas.enums import BaseImageRoleEnum
2727
from superannotate_schemas.schemas.enums import VectorAnnotationTypeEnum
2828
from superannotate_schemas.schemas.enums import AnnotationStatusEnum
29+
from superannotate_schemas.schemas.enums import TagTypeEnum
2930
from superannotate_schemas.schemas.constances import DATE_REGEX
3031
from superannotate_schemas.schemas.constances import DATE_TIME_FORMAT_ERROR_MESSAGE
3132
from superannotate_schemas.schemas.constances import POINT_LABEL_VALUE_FORMAT_ERROR_MESSAGE
@@ -72,12 +73,6 @@ class Tag(BaseModel):
7273
__root__: NotEmptyStr
7374

7475

75-
class AttributeGroup(BaseModel):
76-
name: NotEmptyStr
77-
is_multiselect: Optional[bool] = Field(False)
78-
attributes: List[BaseAttribute]
79-
80-
8176
class BboxPoints(BaseModel):
8277
x1: StrictNumber
8378
x2: StrictNumber
@@ -126,6 +121,12 @@ class BaseInstance(TrackableModel, TimedBaseModel):
126121
class_name: Optional[NotEmptyStr] = Field(None, alias="className")
127122

128123

124+
class BaseInstanceTag(BaseInstance):
125+
type: TagTypeEnum
126+
probability: Optional[StrictInt] = Field(100)
127+
attributes: Optional[List[BaseAttribute]] = Field(list())
128+
129+
129130
class BaseMetadata(BaseModel):
130131
name: NotEmptyStr
131132
url: Optional[StrictStr]
@@ -220,13 +221,6 @@ class BaseVectorInstance(BaseImageAnnotationInstance):
220221
tracking_id: Optional[str] = Field(alias="trackingId")
221222
group_id: Optional[int] = Field(alias="groupId")
222223

223-
#
224-
# class Metadata(BaseMetadata):
225-
# name: NotEmptyStr
226-
# status: Optional[AnnotationStatusEnum]
227-
# pinned: Optional[StrictBool]
228-
# is_predicted: Optional[StrictBool] = Field(None, alias="isPredicted")
229-
230224

231225
class PixelColor(BaseModel):
232226
__root__: ColorType

src/superannotate_schemas/schemas/enums.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class VectorAnnotationTypeEnum(str, Enum):
1010
POLYGON = "polygon"
1111
POINT = "point"
1212
RBBOX = "rbbox"
13+
TAG = "tag"
1314

1415

1516
class CreationTypeEnum(str, Enum):
@@ -38,3 +39,8 @@ class BaseImageRoleEnum(str, Enum):
3839
ADMIN = "Admin"
3940
ANNOTATOR = "Annotator"
4041
QA = "QA"
42+
43+
44+
class TagTypeEnum(str, Enum):
45+
TAG = "tag"
46+
OBJECT = "object"

src/superannotate_schemas/schemas/external/vector.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,14 @@
2121
from superannotate_schemas.schemas.base import NotEmptyStr
2222
from superannotate_schemas.schemas.base import StrictNumber
2323
from superannotate_schemas.schemas.base import Tag
24+
from superannotate_schemas.schemas.base import BaseInstanceTag
2425
from superannotate_schemas.schemas.enums import VectorAnnotationTypeEnum
2526

2627

28+
class InstanceTag(BaseInstanceTag):
29+
class_name: NotEmptyStr
30+
31+
2732
class Attribute(BaseAttribute):
2833
name: NotEmptyStr
2934
group_name: NotEmptyStr = Field(alias="groupName")
@@ -115,12 +120,13 @@ class Cuboid(VectorInstance):
115120
VectorAnnotationTypeEnum.POLYLINE: PolyLine,
116121
VectorAnnotationTypeEnum.ELLIPSE: Ellipse,
117122
VectorAnnotationTypeEnum.RBBOX: RotatedBox,
123+
VectorAnnotationTypeEnum.TAG: InstanceTag,
118124
}
119125

120126

121127
class AnnotationInstance(BaseModel):
122128
__root__: Union[
123-
Template, Cuboid, Point, PolyLine, Polygon, Bbox, Ellipse, RotatedBox
129+
Template, Cuboid, Point, PolyLine, Polygon, Bbox, Ellipse, RotatedBox, InstanceTag
124130
]
125131

126132
@classmethod

src/superannotate_schemas/schemas/internal/vector.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from superannotate_schemas.schemas.base import Tag
1111
from superannotate_schemas.schemas.base import AxisPoint
1212
from superannotate_schemas.schemas.base import VectorAnnotationTypeEnum
13+
from superannotate_schemas.schemas.base import BaseInstanceTag
1314
from superannotate_schemas.schemas.base import StrictNumber
1415
from superannotate_schemas.schemas.base import INVALID_DICT_MESSAGE
1516
from superannotate_schemas.schemas.base import BaseModel
@@ -24,6 +25,11 @@
2425
from pydantic.error_wrappers import ErrorWrapper
2526

2627

28+
29+
class InstanceTag(BaseInstanceTag):
30+
class_id: StrictInt
31+
32+
2733
class Attribute(BaseAttribute):
2834
id: StrictInt
2935
group_id: StrictInt = Field(alias="groupId")
@@ -110,11 +116,13 @@ class Cuboid(VectorInstance):
110116
VectorAnnotationTypeEnum.POLYLINE: PolyLine,
111117
VectorAnnotationTypeEnum.ELLIPSE: Ellipse,
112118
VectorAnnotationTypeEnum.RBBOX: RotatedBox,
119+
VectorAnnotationTypeEnum.TAG: InstanceTag,
113120
}
114121

122+
115123
class AnnotationInstance(BaseModel):
116124
__root__: Union[
117-
Template, Cuboid, Point, PolyLine, Polygon, Bbox, Ellipse, RotatedBox
125+
Template, Cuboid, Point, PolyLine, Polygon, Bbox, Ellipse, RotatedBox, InstanceTag
118126
]
119127

120128
@classmethod

tests/test_cli.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,5 @@ def test_(self):
8282
# pass
8383
# print(time.time() - s)
8484
import datetime
85-
print((datetime.datetime.now(datetime.timezone.utc)).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + 'Z')
85+
print((datetime.datetime.now(datetime.timezone.utc)).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + 'Z')
86+

0 commit comments

Comments
 (0)