Skip to content

Commit 1f74cbb

Browse files
authored
[CVAT] fix: fixed manifest validation misconfiguration (#3573)
1 parent e253512 commit 1f74cbb

File tree

5 files changed

+10
-10
lines changed

5 files changed

+10
-10
lines changed

packages/examples/cvat/exchange-oracle/src/core/manifest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@ class AnnotationInfo(BaseModel):
136136
job_size: int = 10
137137
"Frames per job, validation frames are not included"
138138

139+
qualifications: list[str] = Field(default_factory=list)
140+
"A list of annotator qualifications required for participation"
141+
139142
@model_validator(mode="before")
140143
@classmethod
141144
def validate_label_type(cls, values: dict[str, Any]) -> dict[str, Any]:
@@ -177,9 +180,6 @@ class TaskManifest(BaseModel):
177180
job_bounty: Decimal = Field(ge=0)
178181
"Assignment bounty, a decimal value in HMT"
179182

180-
qualifications: list[str] = Field(default_factory=list)
181-
"A list of annotator qualifications required for participation"
182-
183183

184184
def parse_manifest(manifest: Any) -> TaskManifest:
185185
return TaskManifest.model_validate(manifest)

packages/examples/cvat/exchange-oracle/src/endpoints/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def serialize_job(
6363
reward_token=reward_token,
6464
created_at=project.created_at,
6565
updated_at=project.updated_at,
66-
qualifications=manifest.qualifications,
66+
qualifications=manifest.annotation.qualifications,
6767
)
6868

6969

packages/examples/cvat/exchange-oracle/src/services/exchange.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def create_assignment(
3838

3939
manifest = parse_manifest(get_escrow_manifest(chain_id, escrow_address))
4040

41-
if not all(q in qualifications for q in manifest.qualifications):
41+
if not all(q in qualifications for q in manifest.annotation.qualifications):
4242
raise UserQualificationError
4343

4444
if cvat_service.has_active_user_assignments(

packages/examples/cvat/exchange-oracle/tests/integration/services/test_exchange.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ def test_create_assignment_no_required_qualifications(self):
215215
patch("src.services.exchange.get_escrow_manifest") as mock_get_manifest,
216216
):
217217
manifest = json.load(data)
218-
manifest["qualifications"] = ["random_qualification"]
218+
manifest["annotation"]["qualifications"] = ["random_qualification"]
219219
mock_get_manifest.return_value = manifest
220220
with pytest.raises(Exception, match="User doesn't have required qualifications."):
221221
create_assignment(ESCROW_ADDRESS, Networks.localhost, user_address, [])
@@ -244,7 +244,7 @@ def test_create_assignment_with_required_qualifications(self):
244244
patch("src.services.exchange.cvat_api"),
245245
):
246246
manifest = json.load(data)
247-
manifest["qualifications"] = ["test", "test2"]
247+
manifest["annotation"]["qualifications"] = ["test", "test2"]
248248
mock_get_manifest.return_value = manifest
249249
assignment_id = create_assignment(
250250
cvat_project.escrow_address,

packages/examples/cvat/exchange-oracle/tests/utils/manifest.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
"user_guide": "https://test.storage.googleapis.com",
99
"type": "image_boxes",
1010
"job_size": 10,
11-
"max_time": 300
11+
"max_time": 300,
12+
"qualifications": []
1213
},
1314
"validation": {
1415
"min_quality": 0.8,
1516
"val_size": 2,
1617
"gt_url": "https://test.storage.googleapis.com"
1718
},
18-
"job_bounty": "5.001123929619726",
19-
"qualifications": []
19+
"job_bounty": "5.001123929619726"
2020
}

0 commit comments

Comments
 (0)