dyff-schema 0.10.1__tar.gz → 0.10.3__tar.gz

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.

Files changed (56) hide show
  1. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.gitlab-ci.yml +2 -2
  2. {dyff_schema-0.10.1/dyff_schema.egg-info → dyff_schema-0.10.3}/PKG-INFO +2 -1
  3. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/base.py +4 -1
  4. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/platform.py +153 -69
  5. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/requests.py +14 -3
  6. {dyff_schema-0.10.1 → dyff_schema-0.10.3/dyff_schema.egg-info}/PKG-INFO +2 -1
  7. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff_schema.egg-info/requires.txt +1 -0
  8. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/pyproject.toml +1 -0
  9. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.gitignore +0 -0
  10. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.licenserc.yaml +0 -0
  11. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.pre-commit-config.yaml +0 -0
  12. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.prettierignore +0 -0
  13. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/.secrets.baseline +0 -0
  14. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/CODE_OF_CONDUCT.md +0 -0
  15. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/LICENSE +0 -0
  16. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/NOTICE +0 -0
  17. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/README.md +0 -0
  18. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/__init__.py +0 -0
  19. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/adapters.py +0 -0
  20. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/base.py +0 -0
  21. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/copydoc.py +0 -0
  22. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/__init__.py +0 -0
  23. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/arrow.py +0 -0
  24. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/binary.py +0 -0
  25. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/classification.py +0 -0
  26. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/text.py +0 -0
  27. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/dataset/vision.py +0 -0
  28. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/errors.py +0 -0
  29. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/ids.py +0 -0
  30. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/io/__init__.py +0 -0
  31. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/io/vllm.py +0 -0
  32. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/platform.py +0 -0
  33. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/py.typed +0 -0
  34. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/quantity.py +0 -0
  35. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/requests.py +0 -0
  36. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/test.py +0 -0
  37. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/__init__.py +0 -0
  38. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/__init__.py +0 -0
  39. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/adapters.py +0 -0
  40. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/__init__.py +0 -0
  41. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/arrow.py +0 -0
  42. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/binary.py +0 -0
  43. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/classification.py +0 -0
  44. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/text.py +0 -0
  45. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/dataset/vision.py +0 -0
  46. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/io/__init__.py +0 -0
  47. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/io/vllm.py +0 -0
  48. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/test.py +0 -0
  49. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/v0/r1/version.py +0 -0
  50. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff/schema/version.py +0 -0
  51. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff_schema.egg-info/SOURCES.txt +0 -0
  52. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff_schema.egg-info/dependency_links.txt +0 -0
  53. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/dyff_schema.egg-info/top_level.txt +0 -0
  54. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/makefile +0 -0
  55. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/setup.cfg +0 -0
  56. {dyff_schema-0.10.1 → dyff_schema-0.10.3}/tests/test_import.py +0 -0
@@ -20,7 +20,7 @@ include:
20
20
  file:
21
21
  - prettier.yml
22
22
  - project: buildgarden/pipelines/python
23
- ref: 0.12.0
23
+ ref: 0.13.0
24
24
  file:
25
25
  - python-autoflake.yml
26
26
  - python-black.yml
@@ -33,7 +33,7 @@ include:
33
33
  - python-twine-upload.yml
34
34
  - python-docformatter.yml
35
35
  - project: buildgarden/pipelines/skywalking-eyes
36
- ref: 0.2.0
36
+ ref: 0.2.2
37
37
  file:
38
38
  - license-eye-header-check.yml
39
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dyff-schema
3
- Version: 0.10.1
3
+ Version: 0.10.3
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
@@ -24,6 +24,7 @@ License-File: NOTICE
24
24
  Requires-Dist: hypothesis
25
25
  Requires-Dist: hypothesis-jsonschema
26
26
  Requires-Dist: jsonpath-ng
27
+ Requires-Dist: numpy<2
27
28
  Requires-Dist: pyarrow
28
29
  Requires-Dist: pydantic<2
29
30
 
@@ -586,7 +586,7 @@ class DyffDefaultSerializers(pydantic.BaseModel):
586
586
  ) -> _ModelAsDict:
587
587
  """Encode the object as a dict containing only JSON datatypes.
588
588
 
589
- .. deprecated::
589
+ .. deprecated:: 0.8.0
590
590
 
591
591
  FIXME: This emulates a Pydantic 2 feature, but the mode="json"
592
592
  option can only be implemented in an inefficient way. Remove when
@@ -614,6 +614,9 @@ class DyffSchemaBaseModel(DyffDefaultSerializers):
614
614
  datetimes are well-ordered.
615
615
  """
616
616
 
617
+ class Config:
618
+ extra = pydantic.Extra.forbid
619
+
617
620
  @pydantic.root_validator
618
621
  def _ensure_datetime_timezone_utc(cls, values):
619
622
  update = {}
@@ -140,6 +140,22 @@ def _k8s_label_value_maxlen():
140
140
  return _k8s_label_maxlen()
141
141
 
142
142
 
143
+ def _oci_image_tag_regex():
144
+ """Regex matching valid image tags according to the OCI spec.
145
+
146
+ See: https://github.com/opencontainers/distribution-spec/blob/main/spec.md#pull
147
+ """
148
+ return r"^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}$"
149
+
150
+
151
+ def _oci_image_tag_maxlen():
152
+ """Max length of valid image tags according to the OCI spec.
153
+
154
+ See: https://github.com/opencontainers/distribution-spec/blob/main/spec.md#pull
155
+ """
156
+ return 127
157
+
158
+
143
159
  class Entities(str, enum.Enum):
144
160
  """The kinds of entities in the dyff system."""
145
161
 
@@ -149,8 +165,10 @@ class Entities(str, enum.Enum):
149
165
  AuditProcedure = "AuditProcedure"
150
166
  DataSource = "DataSource"
151
167
  Dataset = "Dataset"
168
+ Documentation = "Documentation"
152
169
  Evaluation = "Evaluation"
153
170
  Family = "Family"
171
+ History = "History"
154
172
  InferenceService = "InferenceService"
155
173
  InferenceSession = "InferenceSession"
156
174
  Measurement = "Measurement"
@@ -158,8 +176,8 @@ class Entities(str, enum.Enum):
158
176
  Model = "Model"
159
177
  Module = "Module"
160
178
  Report = "Report"
179
+ Revision = "Revision"
161
180
  SafetyCase = "SafetyCase"
162
- Tag = "Tag"
163
181
 
164
182
 
165
183
  class Resources(str, enum.Enum):
@@ -170,8 +188,10 @@ class Resources(str, enum.Enum):
170
188
  AuditProcedure = "auditprocedures"
171
189
  Dataset = "datasets"
172
190
  DataSource = "datasources"
191
+ Documentation = "documentation"
173
192
  Evaluation = "evaluations"
174
193
  Family = "families"
194
+ History = "histories"
175
195
  InferenceService = "inferenceservices"
176
196
  InferenceSession = "inferencesessions"
177
197
  Measurement = "measurements"
@@ -179,8 +199,8 @@ class Resources(str, enum.Enum):
179
199
  Model = "models"
180
200
  Module = "modules"
181
201
  Report = "reports"
202
+ Revision = "revisions"
182
203
  SafetyCase = "safetycases"
183
- Tag = "tags"
184
204
 
185
205
  Task = "tasks"
186
206
  """
@@ -217,6 +237,11 @@ LabelValue: TypeAlias = Optional[ # type: ignore
217
237
  ]
218
238
 
219
239
 
240
+ TagName: TypeAlias = pydantic.constr( # type: ignore
241
+ regex=_oci_image_tag_regex(), max_length=_k8s_label_key_maxlen()
242
+ )
243
+
244
+
220
245
  class Label(DyffSchemaBaseModel):
221
246
  """A key-value label for a resource. Used to specify identifying attributes of
222
247
  resources that are meaningful to users but do not imply semantics in the dyff
@@ -331,67 +356,6 @@ class Documented(DyffSchemaBaseModel):
331
356
  )
332
357
 
333
358
 
334
- class FamilyMemberKind(str, enum.Enum):
335
- """The kinds of entities that can be members of a Family.
336
-
337
- These are resources for which it makes sense to have different versions or variants
338
- that evolve over time.
339
- """
340
-
341
- Dataset = "Dataset"
342
- InferenceService = "InferenceService"
343
- Method = "Method"
344
- Model = "Model"
345
- Module = "Module"
346
-
347
-
348
- class FamilyMember(DyffSchemaBaseModel):
349
- family: Optional[str] = pydantic.Field(
350
- default=None,
351
- description="ID of the Family to which the resource belongs.",
352
- )
353
-
354
-
355
- class TagBase(DyffSchemaBaseModel):
356
- tag: str = pydantic.Field(
357
- description="An interpretable identifier for the tag that is unique in"
358
- " the context of the corresponding Family."
359
- )
360
-
361
- resource: str = pydantic.Field(
362
- description="ID of the resource this tag references.",
363
- )
364
-
365
- description: str = pydantic.Field(
366
- description="A short description of the tag. Interpreted as Markdown."
367
- " This should include information about how the tagged version is"
368
- " different from other versions."
369
- )
370
-
371
-
372
- class Tag(TagBase):
373
- created: datetime = pydantic.Field(description="Tag creation time.")
374
-
375
-
376
- class Family(Labeled, SchemaVersion, DyffModelWithID):
377
- kind: Literal["Family"] = "Family"
378
-
379
- resourceKind: FamilyMemberKind = pydantic.Field(
380
- description="The kind of resource that comprises the family.",
381
- )
382
-
383
- tags: list[Tag] = pydantic.Field(
384
- default_factory=list,
385
- description="Tags mapping interpretable names to resource IDs.",
386
- )
387
-
388
- documentation: DocumentationBase = pydantic.Field(
389
- default_factory=DocumentationBase,
390
- description="Documentation of the resource family. The content is used"
391
- " to populate various views in the web UI.",
392
- )
393
-
394
-
395
359
  class DyffEntity(Status, Labeled, SchemaVersion, DyffModelWithID):
396
360
  kind: Literal[
397
361
  "Analysis",
@@ -400,6 +364,8 @@ class DyffEntity(Status, Labeled, SchemaVersion, DyffModelWithID):
400
364
  "DataSource",
401
365
  "Dataset",
402
366
  "Evaluation",
367
+ "Family",
368
+ "History",
403
369
  "InferenceService",
404
370
  "InferenceSession",
405
371
  "Measurement",
@@ -407,6 +373,7 @@ class DyffEntity(Status, Labeled, SchemaVersion, DyffModelWithID):
407
373
  "Model",
408
374
  "Module",
409
375
  "Report",
376
+ "Revision",
410
377
  "SafetyCase",
411
378
  ]
412
379
 
@@ -584,6 +551,89 @@ class Account(DyffSchemaBaseModel):
584
551
  creationTime: Optional[datetime] = None
585
552
 
586
553
 
554
+ class FamilyMemberKind(str, enum.Enum):
555
+ """The kinds of entities that can be members of a Family.
556
+
557
+ These are resources for which it makes sense to have different versions or variants
558
+ that evolve over time.
559
+ """
560
+
561
+ Dataset = "Dataset"
562
+ InferenceService = "InferenceService"
563
+ Method = "Method"
564
+ Model = "Model"
565
+ Module = "Module"
566
+
567
+
568
+ class FamilyMemberBase(DyffSchemaBaseModel):
569
+ name: TagName = pydantic.Field(
570
+ description="An interpretable identifier for the member that is unique"
571
+ " in the context of the corresponding Family.",
572
+ )
573
+
574
+ resource: str = pydantic.Field(
575
+ description="ID of the resource this member references.",
576
+ )
577
+
578
+ description: Optional[str] = pydantic.Field(
579
+ default=None,
580
+ description="A short description of the member. Interpreted as Markdown."
581
+ " This should include information about how this version of the resource"
582
+ " is different from other versions.",
583
+ )
584
+
585
+
586
+ class FamilyMember(FamilyMemberBase):
587
+ family: str = pydantic.Field(
588
+ description="Identifier of the Family containing this tag."
589
+ )
590
+
591
+ creationTime: datetime = pydantic.Field(
592
+ default=None, description="Tag creation time (assigned by system)"
593
+ )
594
+
595
+
596
+ class FamilyMembers(DyffSchemaBaseModel):
597
+ members: dict[TagName, FamilyMember] = pydantic.Field(
598
+ default_factory=dict,
599
+ description="Mapping of names to IDs of member resources.",
600
+ )
601
+
602
+
603
+ class FamilyBase(DyffSchemaBaseModel):
604
+ memberKind: FamilyMemberKind = pydantic.Field(
605
+ description="The kind of resource that comprises the family.",
606
+ )
607
+
608
+
609
+ class Family(DyffEntity, FamilyBase, FamilyMembers):
610
+ kind: Literal["Family"] = "Family"
611
+
612
+ documentation: DocumentationBase = pydantic.Field(
613
+ default_factory=DocumentationBase,
614
+ description="Documentation of the resource family. The content is used"
615
+ " to populate various views in the web UI.",
616
+ )
617
+
618
+
619
+ class RevisionMetadata(DyffSchemaBaseModel):
620
+ creationTime: datetime = pydantic.Field("The time when the Revision was created")
621
+
622
+
623
+ # Note: The 'Revision' class itself is defined all the way at the end of this
624
+ # file, because OpenAPI generation doesn't work with the Python < 3.10
625
+ # "ForwardDeclaration" syntax.
626
+
627
+
628
+ class History(DyffEntity):
629
+ kind: Literal["History"] = "History"
630
+
631
+ latest: str = pydantic.Field(description="The ID of the latest Revision")
632
+ revisions: dict[str, RevisionMetadata] = pydantic.Field(
633
+ description="The set of known Revisions"
634
+ )
635
+
636
+
587
637
  # ----------------------------------------------------------------------------
588
638
 
589
639
 
@@ -1011,13 +1061,11 @@ class ContainerImageSource(DyffSchemaBaseModel):
1011
1061
  " digest, even if 'tag' is specified.",
1012
1062
  regex=r"^sha256:[0-9a-f]{64}$",
1013
1063
  )
1014
- tag: Optional[str] = pydantic.Field(
1064
+ tag: Optional[TagName] = pydantic.Field(
1015
1065
  default=None,
1016
1066
  description="The tag of the image. Although the image is always pulled"
1017
1067
  " by digest, including the tag is strongly recommended as it is often"
1018
1068
  " the main source of versioning information.",
1019
- # https://github.com/opencontainers/distribution-spec/blob/main/spec.md#pull
1020
- regex=r"^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}$",
1021
1069
  )
1022
1070
 
1023
1071
  def url(self) -> str:
@@ -1908,12 +1956,14 @@ def entity_class(kind: Entities):
1908
1956
  return _ENTITY_CLASS[kind]
1909
1957
 
1910
1958
 
1911
- DyffEntityType = Union[
1959
+ DyffEntityTypeExceptRevision = Union[
1912
1960
  Audit,
1913
1961
  AuditProcedure,
1914
1962
  DataSource,
1915
1963
  Dataset,
1916
1964
  Evaluation,
1965
+ Family,
1966
+ History,
1917
1967
  InferenceService,
1918
1968
  InferenceSession,
1919
1969
  Measurement,
@@ -1925,6 +1975,35 @@ DyffEntityType = Union[
1925
1975
  ]
1926
1976
 
1927
1977
 
1978
+ # Note: This class is defined here because OpenAPI generation doesn't work
1979
+ # with the Python < 3.10 "ForwardDeclaration" syntax. You get an error like:
1980
+ #
1981
+ # Traceback (most recent call last):
1982
+ # File "/home/jessehostetler/dsri/code/dyff/dyff-api/./scripts/generate-openapi-definitions.py", line 15, in <module>
1983
+ # get_openapi(
1984
+ # File "/home/jessehostetler/dsri/code/dyff/venv/lib/python3.9/site-packages/fastapi/openapi/utils.py", line 422, in get_openapi
1985
+ # definitions = get_model_definitions(
1986
+ # File "/home/jessehostetler/dsri/code/dyff/venv/lib/python3.9/site-packages/fastapi/utils.py", line 60, in get_model_definitions
1987
+ # m_schema, m_definitions, m_nested_models = model_process_schema(
1988
+ # File "pydantic/schema.py", line 581, in pydantic.schema.model_process_schema
1989
+ # File "pydantic/schema.py", line 622, in pydantic.schema.model_type_schema
1990
+ # File "pydantic/schema.py", line 255, in pydantic.schema.field_schema
1991
+ # File "pydantic/schema.py", line 527, in pydantic.schema.field_type_schema
1992
+ # File "pydantic/schema.py", line 926, in pydantic.schema.field_singleton_schema
1993
+ # File "/home/jessehostetler/.asdf/installs/python/3.9.18/lib/python3.9/abc.py", line 123, in __subclasscheck__
1994
+ # return _abc_subclasscheck(cls, subclass)
1995
+ # TypeError: issubclass() arg 1 must be a class
1996
+ class Revision(DyffEntity, RevisionMetadata):
1997
+ kind: Literal["Revision"] = "Revision"
1998
+
1999
+ entity: DyffEntityTypeExceptRevision = pydantic.Field(
2000
+ description="The associated entity data",
2001
+ )
2002
+
2003
+
2004
+ DyffEntityType = Union[DyffEntityTypeExceptRevision, Revision]
2005
+
2006
+
1928
2007
  __all__ = [
1929
2008
  "Accelerator",
1930
2009
  "AcceleratorGPU",
@@ -1965,12 +2044,16 @@ __all__ = [
1965
2044
  "EvaluationBase",
1966
2045
  "ExtractorStep",
1967
2046
  "Family",
2047
+ "FamilyBase",
1968
2048
  "FamilyMember",
2049
+ "FamilyMemberBase",
1969
2050
  "FamilyMemberKind",
2051
+ "FamilyMembers",
1970
2052
  "ForeignInferenceService",
1971
2053
  "ForeignMethod",
1972
2054
  "ForeignModel",
1973
2055
  "Frameworks",
2056
+ "History",
1974
2057
  "Identity",
1975
2058
  "InferenceInterface",
1976
2059
  "InferenceService",
@@ -2025,13 +2108,14 @@ __all__ = [
2025
2108
  "Report",
2026
2109
  "ReportBase",
2027
2110
  "Resources",
2111
+ "Revision",
2112
+ "RevisionMetadata",
2028
2113
  "SafetyCase",
2029
2114
  "SafetyCaseSpec",
2030
2115
  "SchemaAdapter",
2031
2116
  "Status",
2032
2117
  "StorageSignedURL",
2033
- "Tag",
2034
- "TagBase",
2118
+ "TagName",
2035
2119
  "TaskSchema",
2036
2120
  "entity_class",
2037
2121
  "JobStatus",
@@ -26,6 +26,8 @@ from .platform import (
26
26
  DataView,
27
27
  DocumentationBase,
28
28
  EvaluationBase,
29
+ FamilyBase,
30
+ FamilyMembers,
29
31
  InferenceServiceBase,
30
32
  InferenceSessionBase,
31
33
  Labeled,
@@ -33,7 +35,6 @@ from .platform import (
33
35
  ModelSpec,
34
36
  ModuleBase,
35
37
  ReportBase,
36
- TagBase,
37
38
  )
38
39
  from .version import SchemaVersion
39
40
 
@@ -136,6 +137,10 @@ class EvaluationCreateRequest(DyffEntityCreateRequest, EvaluationBase):
136
137
  return values
137
138
 
138
139
 
140
+ class FamilyCreateRequest(DyffEntityCreateRequest, FamilyBase):
141
+ pass
142
+
143
+
139
144
  class MethodCreateRequest(DyffEntityCreateRequest, MethodBase):
140
145
  pass
141
146
 
@@ -169,7 +174,7 @@ class ReportCreateRequest(DyffEntityCreateRequest, ReportBase):
169
174
  )
170
175
 
171
176
 
172
- class TagCreateRequest(DyffRequestBase, TagBase):
177
+ class FamilyMembersEditRequest(DyffRequestBase, FamilyMembers):
173
178
  pass
174
179
 
175
180
 
@@ -226,6 +231,10 @@ class EvaluationQueryRequest(DyffEntityQueryRequest):
226
231
  modelName: Optional[str] = pydantic.Field(default=None)
227
232
 
228
233
 
234
+ class FamilyQueryRequest(DyffEntityQueryRequest):
235
+ pass
236
+
237
+
229
238
  class InferenceServiceQueryRequest(DyffEntityQueryRequest):
230
239
  name: Optional[str] = pydantic.Field(default=None)
231
240
  model: Optional[str] = pydantic.Field(default=None)
@@ -282,6 +291,9 @@ __all__ = [
282
291
  "EvaluationCreateRequest",
283
292
  "EvaluationQueryRequest",
284
293
  "EvaluationInferenceSessionRequest",
294
+ "FamilyCreateRequest",
295
+ "FamilyMembersEditRequest",
296
+ "FamilyQueryRequest",
285
297
  "InferenceServiceCreateRequest",
286
298
  "InferenceServiceQueryRequest",
287
299
  "InferenceSessionCreateRequest",
@@ -298,5 +310,4 @@ __all__ = [
298
310
  "ReportCreateRequest",
299
311
  "ReportQueryRequest",
300
312
  "SafetyCaseQueryRequest",
301
- "TagCreateRequest",
302
313
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dyff-schema
3
- Version: 0.10.1
3
+ Version: 0.10.3
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
@@ -24,6 +24,7 @@ License-File: NOTICE
24
24
  Requires-Dist: hypothesis
25
25
  Requires-Dist: hypothesis-jsonschema
26
26
  Requires-Dist: jsonpath-ng
27
+ Requires-Dist: numpy<2
27
28
  Requires-Dist: pyarrow
28
29
  Requires-Dist: pydantic<2
29
30
 
@@ -1,5 +1,6 @@
1
1
  hypothesis
2
2
  hypothesis-jsonschema
3
3
  jsonpath-ng
4
+ numpy<2
4
5
  pyarrow
5
6
  pydantic<2
@@ -34,6 +34,7 @@ dependencies = [
34
34
  "hypothesis",
35
35
  "hypothesis-jsonschema",
36
36
  "jsonpath-ng",
37
+ "numpy<2",
37
38
  "pyarrow",
38
39
  "pydantic<2",
39
40
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes