Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/superannotate_schemas/schemas/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ class AxisPoint(BaseModel):
class BaseAttribute(BaseModel):
id: Optional[StrictInt]
group_id: Optional[StrictInt] = Field(alias="groupId")
name: NotEmptyStr
group_name: NotEmptyStr = Field(alias="groupName")
name: Optional[NotEmptyStr]
group_name: Optional[NotEmptyStr] = Field(alias="groupName")


class Tag(BaseModel):
Expand Down Expand Up @@ -222,7 +222,7 @@ class BaseVectorInstance(BaseImageAnnotationInstance):
group_id: Optional[int] = Field(alias="groupId")


class PixelColor(BaseModel):
class HexColor(BaseModel):
__root__: ColorType

@validator("__root__")
Expand Down
49 changes: 49 additions & 0 deletions src/superannotate_schemas/schemas/classes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from typing import Optional
from typing import List

from superannotate_schemas.schemas.base import BaseModel
from superannotate_schemas.schemas.base import TrackableModel
from superannotate_schemas.schemas.base import TimedBaseModel
from superannotate_schemas.schemas.base import StrictInt
from superannotate_schemas.schemas.base import StrictStr
from superannotate_schemas.schemas.base import HexColor
from superannotate_schemas.schemas.enums import ClassTypeEnum


class Attribute(TimedBaseModel):
id: Optional[StrictInt]
group_id: Optional[StrictInt]
project_id: Optional[StrictInt]
name: StrictStr
count: Optional[StrictInt]

def __hash__(self):
return hash(f"{self.id}{self.group_id}{self.name}")


class AttributeGroup(TimedBaseModel):
id: Optional[StrictInt]
class_id: Optional[StrictInt]
name: StrictStr
is_multiselect: Optional[bool]
attributes: List[Attribute]

def __hash__(self):
return hash(f"{self.id}{self.class_id}{self.name}")


class AnnotationClass(TimedBaseModel):
id: Optional[StrictInt]
project_id: Optional[StrictInt]
type: ClassTypeEnum = ClassTypeEnum.OBJECT
name: StrictStr
color: HexColor
count: Optional[StrictInt]
attribute_groups: List[AttributeGroup]

def __hash__(self):
return hash(f"{self.id}{self.type}{self.name}")


class AnnotationClasses(BaseModel):
__root__: List[AnnotationClass]
4 changes: 2 additions & 2 deletions src/superannotate_schemas/schemas/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ class BaseImageRoleEnum(str, Enum):
QA = "QA"


class TagTypeEnum(str, Enum):
TAG = "tag"
class ClassTypeEnum(str, Enum):
OBJECT = "object"
TAG = "tag"
4 changes: 2 additions & 2 deletions src/superannotate_schemas/schemas/external/pixel.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from superannotate_schemas.schemas.base import BaseImageMetadata
from superannotate_schemas.schemas.base import NotEmptyStr
from superannotate_schemas.schemas.base import StrictStr
from superannotate_schemas.schemas.base import PixelColor
from superannotate_schemas.schemas.base import HexColor
from superannotate_schemas.schemas.base import Tag
from superannotate_schemas.schemas.base import Comment

Expand All @@ -25,7 +25,7 @@ class MetaData(BaseImageMetadata):


class AnnotationPart(BaseModel):
color: PixelColor
color: HexColor


class AnnotationInstance(BaseImageAnnotationInstance):
Expand Down
4 changes: 2 additions & 2 deletions src/superannotate_schemas/schemas/internal/pixel.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Optional

from superannotate_schemas.schemas.base import BaseImageMetadata as Metadata
from superannotate_schemas.schemas.base import PixelColor
from superannotate_schemas.schemas.base import HexColor
from superannotate_schemas.schemas.base import BaseAttribute
from superannotate_schemas.schemas.base import BaseImageAnnotationInstance
from superannotate_schemas.schemas.base import Tag
Expand All @@ -19,7 +19,7 @@ class Attribute(BaseAttribute):


class AnnotationPart(BaseModel):
color: PixelColor
color: HexColor


class AnnotationInstance(BaseImageAnnotationInstance):
Expand Down
1 change: 1 addition & 0 deletions src/superannotate_schemas/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ class AnnotationValidators:
ValidatorFactory.get_validator(ExternalDocumentAnnotation),
ValidatorFactory.get_validator(InternalDocumentAnnotation)
)

}

@classmethod
Expand Down