Skip to content

Commit 37daf69

Browse files
author
Val Brodsky
committed
Start BaseModel conversion to v2
1 parent c1a3ac2 commit 37daf69

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

libs/labelbox/src/labelbox/data/annotation_types/video.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from enum import Enum
22
from typing import List, Optional, Tuple
33

4+
from pydantic import BaseModel, model_validator
5+
46
from labelbox import pydantic_compat
57
from labelbox.data.annotation_types.annotation import ClassificationAnnotation, ObjectAnnotation
68

@@ -87,12 +89,13 @@ class DICOMObjectAnnotation(VideoObjectAnnotation):
8789
group_key: GroupKey
8890

8991

90-
class MaskFrame(_CamelCaseMixin, pydantic_compat.BaseModel):
92+
class MaskFrame(_CamelCaseMixin, BaseModel):
9193
index: int
9294
instance_uri: Optional[str] = None
9395
im_bytes: Optional[bytes] = None
9496

95-
@pydantic_compat.root_validator()
97+
@model_validator(mode='before')
98+
@classmethod
9699
def validate_args(cls, values):
97100
im_bytes = values.get("im_bytes")
98101
instance_uri = values.get("instance_uri")
@@ -101,11 +104,11 @@ def validate_args(cls, values):
101104
raise ValueError("One of `instance_uri`, `im_bytes` required.")
102105
return values
103106

104-
@pydantic_compat.validator("instance_uri")
105-
def validate_uri(cls, v):
106-
if not is_valid_uri(v):
107-
raise ValueError(f"{v} is not a valid uri")
108-
return v
107+
# @pydantic_compat.validator("instance_uri")
108+
# def validate_uri(cls, v):
109+
# if not is_valid_uri(v):
110+
# raise ValueError(f"{v} is not a valid uri")
111+
# return v
109112

110113

111114
class MaskInstance(_CamelCaseMixin, FeatureSchema):

libs/labelbox/src/labelbox/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
from dateutil.utils import default_tzinfo
77

88
from urllib.parse import urlparse
9+
10+
from pydantic import BaseModel
11+
912
from labelbox import pydantic_compat
1013

1114
UPPERCASE_COMPONENTS = ['uri', 'rgb']
@@ -51,10 +54,10 @@ def is_valid_uri(uri):
5154
return False
5255

5356

54-
class _CamelCaseMixin(pydantic_compat.BaseModel):
57+
class _CamelCaseMixin(BaseModel):
5558

5659
class Config:
57-
allow_population_by_field_name = True
60+
populate_by_name = True
5861
alias_generator = camel_case
5962

6063

0 commit comments

Comments
 (0)