dyff-schema 0.29.0__py3-none-any.whl → 0.30.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dyff-schema might be problematic. Click here for more details.

@@ -22,7 +22,7 @@ import pydantic
22
22
 
23
23
  from ... import upcast
24
24
  from . import commands
25
- from .base import DyffBaseModel, JsonMergePatchSemantics, Null
25
+ from .base import DyffBaseModel, JsonMergePatchSemantics
26
26
  from .platform import (
27
27
  AnalysisBase,
28
28
  AnalysisScope,
@@ -58,9 +58,9 @@ class DyffRequestDefaultValidators(DyffBaseModel):
58
58
  but we allow requests to have non-UTC timezones for user convenience.
59
59
  """
60
60
 
61
- @pydantic.root_validator
61
+ @pydantic.model_validator(mode="after")
62
62
  def _require_datetime_timezone_aware(cls, values):
63
- for k, v in values.items():
63
+ for k, v in values.__dict__.items():
64
64
  if isinstance(v, datetime):
65
65
  if v.tzinfo is None:
66
66
  raise ValueError(f"{cls.__qualname__}.{k}: timezone not set")
@@ -74,10 +74,14 @@ class DyffRequestBase(SchemaVersion, DyffRequestDefaultValidators):
74
74
  def dict(
75
75
  self, *, by_alias: bool = True, exclude_unset=True, **kwargs
76
76
  ) -> _ModelAsDict:
77
- return super().dict(by_alias=by_alias, exclude_unset=exclude_unset, **kwargs)
77
+ return super().model_dump(
78
+ by_alias=by_alias, exclude_unset=exclude_unset, **kwargs
79
+ )
78
80
 
79
81
  def json(self, *, by_alias: bool = True, exclude_unset=True, **kwargs) -> str:
80
- return super().json(by_alias=by_alias, exclude_unset=exclude_unset, **kwargs)
82
+ return super().model_dump_json(
83
+ by_alias=by_alias, exclude_unset=exclude_unset, **kwargs
84
+ )
81
85
 
82
86
 
83
87
  # ----------------------------------------------------------------------------
@@ -93,7 +97,7 @@ class AnalysisCreateRequest(DyffEntityCreateRequest, AnalysisBase):
93
97
 
94
98
  method: str = pydantic.Field(description="Method ID")
95
99
 
96
- @pydantic.validator("scope", check_fields=False)
100
+ @pydantic.field_validator("scope", check_fields=False)
97
101
  def _validate_scope(cls, scope: AnalysisScope) -> AnalysisScope:
98
102
  # TODO: This has to be a validator function because we can't apply the
99
103
  # regex contraint to AnalysisScope, since there are already entities
@@ -114,7 +118,7 @@ class AnalysisCreateRequest(DyffEntityCreateRequest, AnalysisBase):
114
118
 
115
119
 
116
120
  class ConcernCreateRequest(DyffEntityCreateRequest, ConcernBase):
117
- @pydantic.validator("documentation", check_fields=False)
121
+ @pydantic.field_validator("documentation", check_fields=False)
118
122
  def _validate_documentation(
119
123
  cls, documentation: DocumentationBase
120
124
  ) -> DocumentationBase:
@@ -148,7 +152,7 @@ class InferenceServiceCreateRequest(DyffEntityCreateRequest, InferenceServiceBas
148
152
  )
149
153
 
150
154
  # TODO: (DYFF-421) Make .image required and remove this validator
151
- @pydantic.validator("image", check_fields=False)
155
+ @pydantic.field_validator("image", check_fields=False)
152
156
  def validate_image_not_none(cls, v):
153
157
  if v is None:
154
158
  raise ValueError(
@@ -189,10 +193,10 @@ class EvaluationCreateRequest(DyffEntityCreateRequest, EvaluationBase):
189
193
  " for the evaluation, instead of starting a new one.",
190
194
  )
191
195
 
192
- @pydantic.root_validator
196
+ @pydantic.model_validator(mode="after")
193
197
  def check_session_exactly_one(cls, values):
194
- session = values.get("inferenceSession") is not None
195
- session_ref = values.get("inferenceSessionReference") is not None
198
+ session = values.inferenceSession is not None
199
+ session_ref = values.inferenceSessionReference is not None
196
200
  if not (session ^ session_ref):
197
201
  raise ValueError(
198
202
  "must specify exactly one of {inferenceSession, inferenceSessionReference}"
@@ -208,16 +212,18 @@ class EvaluationCreateRequest(DyffEntityCreateRequest, EvaluationBase):
208
212
  return EvaluationCreateRequest(
209
213
  account=evaluation.account,
210
214
  inferenceSessionReference=evaluation.inferenceSessionReference,
211
- **base.dict(),
215
+ **base.model_dump(),
212
216
  )
213
217
  else:
214
218
  return EvaluationCreateRequest(
215
219
  account=evaluation.account,
216
220
  inferenceSession=EvaluationInferenceSessionRequest(
217
221
  inferenceService=evaluation.inferenceSession.inferenceService.id,
218
- **upcast(InferenceSessionBase, evaluation.inferenceSession).dict(),
222
+ **upcast(
223
+ InferenceSessionBase, evaluation.inferenceSession
224
+ ).model_dump(),
219
225
  ),
220
- **base.dict(),
226
+ **base.model_dump(),
221
227
  )
222
228
 
223
229
 
@@ -268,10 +274,8 @@ class DocumentationEditRequest(
268
274
 
269
275
 
270
276
  class FamilyMembersEditRequest(DyffRequestBase, JsonMergePatchSemantics):
271
- members: dict[TagNameType, Optional[Union[FamilyMemberBase, Null]]] = (
272
- pydantic.Field(
273
- description="Mapping of names to IDs of member resources.",
274
- )
277
+ members: dict[TagNameType, Optional[FamilyMemberBase]] = pydantic.Field(
278
+ description="Mapping of names to IDs of member resources.",
275
279
  )
276
280
 
277
281
 
@@ -10,7 +10,8 @@ SCHEMA_VERSION: str = "0.1"
10
10
 
11
11
  class SchemaVersion(pydantic.BaseModel):
12
12
  schemaVersion: Literal["0.1"] = pydantic.Field(
13
- default=SCHEMA_VERSION, description="The schema version."
13
+ default=SCHEMA_VERSION, # type: ignore [arg-type]
14
+ description="The schema version.",
14
15
  )
15
16
 
16
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dyff-schema
3
- Version: 0.29.0
3
+ Version: 0.30.0
4
4
  Summary: Data models for the Dyff AI auditing platform.
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
@@ -26,7 +26,7 @@ Requires-Dist: hypothesis-jsonschema
26
26
  Requires-Dist: jsonpath-ng
27
27
  Requires-Dist: numpy<2
28
28
  Requires-Dist: pyarrow
29
- Requires-Dist: pydantic<2
29
+ Requires-Dist: pydantic<3.0.0,>=2.0.0
30
30
  Dynamic: license-file
31
31
 
32
32
  # dyff-schema
@@ -1,9 +1,10 @@
1
- dyff/schema/__init__.py,sha256=Nua_5EC8HHIxBp6u0SmnApz1WmlYSJ8tDsayD4zEl_Y,2237
1
+ dyff/schema/__init__.py,sha256=w7OWDFuyGKd6xt_yllNtKzHahPgywrfU4Ue02psYaMA,2244
2
+ dyff/schema/_version.py,sha256=jaJNt0cIPw7pKpa1ZksSexFHwIRD7mvffKUdrE657pk,80
2
3
  dyff/schema/adapters.py,sha256=YMTHv_2VlLGFp-Kqwa6H51hjffHmk8gXjZilHysIF5Q,123
3
4
  dyff/schema/annotations.py,sha256=nE6Jk1PLqlShj8uqjE_EzZC9zYnTDW5AVtQcjysiK8M,10018
4
5
  dyff/schema/base.py,sha256=jvaNtsSZyFfsdUZTcY_U-yfLY5_GyrMxSXhON2R9XR0,119
5
6
  dyff/schema/commands.py,sha256=hlqMJ99ZF_ElnGF6vQO_T872WM7aClFoFKkAXA66boI,123
6
- dyff/schema/copydoc.py,sha256=B4ZRpQmbFxi-3l9LCHvaJiVKb9VxADgC5vey804Febc,1075
7
+ dyff/schema/copydoc.py,sha256=MSZTU3mHToqV2fx3QCb8H0nbh6JYBOqfzS-tPOw1W54,1075
7
8
  dyff/schema/errors.py,sha256=ow3yiucU4wGkeLmapUURp3eyaebwGUwDaVTXpPcrA7M,1542
8
9
  dyff/schema/ids.py,sha256=M3kdGRYGPCMnFkRRo0nzHlntdJtBrRwGJ_9R7LlN0bI,2085
9
10
  dyff/schema/platform.py,sha256=peHzGGSd5dQ-EFXrWDjBqMUtoOL3iCHxcV3XzW6Rjag,123
@@ -23,25 +24,25 @@ dyff/schema/io/__init__.py,sha256=L5y8UhRnojerPYHumsxQJRcHCNz8Hj9NM8b47mewMNs,92
23
24
  dyff/schema/io/vllm.py,sha256=2q05M_-lTzq9oywKXHPPpCFCSDVCSsRQqtmERzWTtio,123
24
25
  dyff/schema/v0/__init__.py,sha256=L5y8UhRnojerPYHumsxQJRcHCNz8Hj9NM8b47mewMNs,92
25
26
  dyff/schema/v0/r1/__init__.py,sha256=L5y8UhRnojerPYHumsxQJRcHCNz8Hj9NM8b47mewMNs,92
26
- dyff/schema/v0/r1/adapters.py,sha256=dmQS2ecgDX4ZvTMOW-6NzV_Oq_UpaiyFd7QnSNoOnK8,33057
27
- dyff/schema/v0/r1/base.py,sha256=Rry7GKdQyCLNXskB1CxqVlhVsgM8pw6a4xy3BFk_lRc,21095
28
- dyff/schema/v0/r1/commands.py,sha256=zgaggy9x2lPaDwRSVtyd7jrZ2gjJDbyghsdj2RmEaBs,9607
29
- dyff/schema/v0/r1/platform.py,sha256=r69zA2BBzR5TVb1AoE50RmvARH8WuqIqzT1vmdJn_PE,81722
30
- dyff/schema/v0/r1/requests.py,sha256=56R_yOdbDOEcY0og2GoY5bXeG6ifn7z3ypNdBOF_igk,17043
27
+ dyff/schema/v0/r1/adapters.py,sha256=hpwCSW8lkMkUKCLe0zaMUDu-VS_caSxJvPsECEi_XRA,33069
28
+ dyff/schema/v0/r1/base.py,sha256=WEy-xSL_FoC1gwAij1V_TEqPsITiIF_KlBDaDpPLWr8,20359
29
+ dyff/schema/v0/r1/commands.py,sha256=wDNMB8lry-H9G5hlT4m6y4fysoq4glY5qKsHytfehqU,9052
30
+ dyff/schema/v0/r1/platform.py,sha256=Hp9hTaDqWCDsPGHouCmiCMLXByjW8UadXIlgRtb0vZc,82305
31
+ dyff/schema/v0/r1/requests.py,sha256=VLdhyAKpdQytNdZZW60Y5Kg35GmB6BezDwDengl18Ws,17168
31
32
  dyff/schema/v0/r1/test.py,sha256=X6dUyVd5svcPCI-PBMOAqEfK9jv3bRDvkQTJzwS96c0,10720
32
- dyff/schema/v0/r1/version.py,sha256=isKAGuGxsdru8vDaYmI4YiZdJOu_wNxXK7u6QzD6FE4,392
33
+ dyff/schema/v0/r1/version.py,sha256=NONebgcv5Thsw_ymud6PacZdGjV6ndBrmLnap-obcpo,428
33
34
  dyff/schema/v0/r1/dataset/__init__.py,sha256=LbVlkO2asyGYBKk2z49xjJYTM-pu9y9e4eQDXgTDLnM,2553
34
- dyff/schema/v0/r1/dataset/arrow.py,sha256=PHNtBe32e4NXNQIqUMh0SxCPzTdidVkKBaFqYr6-aFo,12857
35
+ dyff/schema/v0/r1/dataset/arrow.py,sha256=2XzJ1D2RqwfYRfLrJrsz-czOXZaPuGiWqXGfTGDBomY,12324
35
36
  dyff/schema/v0/r1/dataset/binary.py,sha256=KXvn79SUt3e_ZZXrju2atT_yMFwgAkCgDYXBtfv0E_I,636
36
37
  dyff/schema/v0/r1/dataset/classification.py,sha256=pbbEXhxyZ0pgYwzaTlM8hVHPNEJDCdHKOeGowPXgWYc,311
37
- dyff/schema/v0/r1/dataset/embedding.py,sha256=qcHHIzpFQj9bQ2vuECO9g1EU4WT1yjvUZbTlw0qwkc8,642
38
- dyff/schema/v0/r1/dataset/text.py,sha256=nLIn91Zlt0tNdXUklSgjJ-kEDxoPX32ISLkiv2DzLvE,1008
38
+ dyff/schema/v0/r1/dataset/embedding.py,sha256=2cmcoV6AsvUBRrefmJ-_Vdfg9NVvdMr0-s7dqki15ls,792
39
+ dyff/schema/v0/r1/dataset/text.py,sha256=MYG5seGODDryRSCy-g0Unh5dD0HCytmZ3FeElC-eE8A,1213
39
40
  dyff/schema/v0/r1/dataset/vision.py,sha256=aIe0fbfM_g3DsrDTdg2K803YKLjZBpurM_VJcJFuZLc,369
40
41
  dyff/schema/v0/r1/io/__init__.py,sha256=L5y8UhRnojerPYHumsxQJRcHCNz8Hj9NM8b47mewMNs,92
41
- dyff/schema/v0/r1/io/vllm.py,sha256=CUE9y8KthtUI7sD49S875rDmPvKotSXVIRaBS79aBZs,5320
42
- dyff_schema-0.29.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
43
- dyff_schema-0.29.0.dist-info/licenses/NOTICE,sha256=YONACu0s_Ui6jNi-wtEsVQbTU1JIkh8wvLH6d1-Ni_w,43
44
- dyff_schema-0.29.0.dist-info/METADATA,sha256=iOoEBuJ_p1pdIe5yqLPhYDN6U5j2i9d6513Yt39a78Y,3611
45
- dyff_schema-0.29.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
- dyff_schema-0.29.0.dist-info/top_level.txt,sha256=9e3VVdeX73t_sUJOPQPCcGtYO1JhoErhHIi3WoWGcFI,5
47
- dyff_schema-0.29.0.dist-info/RECORD,,
42
+ dyff/schema/v0/r1/io/vllm.py,sha256=vWyLg-susbg0JDfv6VExBpgFdU2GHP2a14ChOdbckvs,5321
43
+ dyff_schema-0.30.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
44
+ dyff_schema-0.30.0.dist-info/licenses/NOTICE,sha256=YONACu0s_Ui6jNi-wtEsVQbTU1JIkh8wvLH6d1-Ni_w,43
45
+ dyff_schema-0.30.0.dist-info/METADATA,sha256=g0DxR2SxqA7qTpENblTBKliqpHsnAqwcoJr7J78dAIg,3623
46
+ dyff_schema-0.30.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
+ dyff_schema-0.30.0.dist-info/top_level.txt,sha256=9e3VVdeX73t_sUJOPQPCcGtYO1JhoErhHIi3WoWGcFI,5
48
+ dyff_schema-0.30.0.dist-info/RECORD,,