dyff-schema 0.38.7__py3-none-any.whl → 0.38.8__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.
dyff/schema/_version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = version = "0.38.7"
2
- __version_tuple__ = version_tuple = (0, 38, 7)
1
+ __version__ = version = "0.38.8"
2
+ __version_tuple__ = version_tuple = (0, 38, 8)
@@ -2787,14 +2787,29 @@ class ChallengeSubmission(DyffEntity, ChallengeSubmissionBase):
2787
2787
  class PipelineEvaluationRequest(EvaluationRequestBase):
2788
2788
  kind: Literal["PipelineEvaluationRequest"] = "PipelineEvaluationRequest"
2789
2789
 
2790
+ def dependencies(self) -> list[str]:
2791
+ # This is a dirty hack that works because the types are structurally
2792
+ # equivalent as far as .dependencies() cares
2793
+ return Evaluation.dependencies(self) # type: ignore[arg-type]
2794
+
2790
2795
 
2791
2796
  class PipelineMeasurementRequest(AnalysisRequestBase):
2792
2797
  kind: Literal["PipelineMeasurementRequest"] = "PipelineMeasurementRequest"
2793
2798
 
2799
+ def dependencies(self) -> list[str]:
2800
+ # This is a dirty hack that works because the types are structurally
2801
+ # equivalent as far as .dependencies() cares
2802
+ return Measurement.dependencies(self) # type: ignore[arg-type]
2803
+
2794
2804
 
2795
2805
  class PipelineSafetyCaseRequest(AnalysisRequestBase):
2796
2806
  kind: Literal["PipelineSafetyCaseRequest"] = "PipelineSafetyCaseRequest"
2797
2807
 
2808
+ def dependencies(self) -> list[str]:
2809
+ # This is a dirty hack that works because the types are structurally
2810
+ # equivalent as far as .dependencies() cares
2811
+ return SafetyCase.dependencies(self) # type: ignore[arg-type]
2812
+
2798
2813
 
2799
2814
  PipelineNodeRequest = Union[
2800
2815
  PipelineEvaluationRequest,
@@ -2836,16 +2851,24 @@ class PipelineNode(DyffSchemaBaseModel):
2836
2851
 
2837
2852
  class PipelineParameter(DyffSchemaBaseModel):
2838
2853
  """Declares a parameter that can be passed to the pipeline to customize its
2839
- behavior."""
2854
+ behavior.
2840
2855
 
2841
- keyword: str = pydantic.Field(description="The keyword of the argument.")
2842
- destination: str = pydantic.Field(
2856
+ By default, the argument will be substituted for the placeholder value
2857
+ ``$(keyword)``, where ``keyword`` is the ``.keyword`` property of the
2858
+ parameter. In this case, the value of the argument must be a string.
2859
+
2860
+ If ``.destination`` is specified, the argument will instead overwrite
2861
+ the value at the specified JSON path.
2862
+ """
2863
+
2864
+ keyword: str = pydantic.Field(description="The keyword of the parameter.")
2865
+ destination: Optional[str] = pydantic.Field(
2843
2866
  description="The field in a pipeline node to substitute with the"
2844
2867
  " parameter value. Should be a string like 'node_name.field1.field2'."
2845
2868
  )
2846
2869
  description: Optional[str] = pydantic.Field(
2847
2870
  default=None,
2848
- description="A description of the argument.",
2871
+ description="A description of the parameter.",
2849
2872
  max_length=summary_maxlen(),
2850
2873
  )
2851
2874
 
@@ -2856,6 +2879,9 @@ class PipelineBase(DyffSchemaBaseModel):
2856
2879
  description="The nodes in the pipeline graph.",
2857
2880
  min_length=1,
2858
2881
  )
2882
+ parameters: dict[str, PipelineParameter] = pydantic.Field(
2883
+ description="Input parameters used to customize the pipeline."
2884
+ )
2859
2885
 
2860
2886
  @pydantic.field_validator("nodes", mode="after")
2861
2887
  def validate_node_names_match(cls, nodes: dict[str, PipelineNode]):
@@ -2864,6 +2890,15 @@ class PipelineBase(DyffSchemaBaseModel):
2864
2890
  raise ValueError(f"nodes[{k}]: dict key must match value.name")
2865
2891
  return nodes
2866
2892
 
2893
+ @pydantic.field_validator("parameters", mode="after")
2894
+ def validate_parameter_keywords_match(
2895
+ cls, parameters: dict[str, PipelineParameter]
2896
+ ):
2897
+ for k, v in parameters.items():
2898
+ if k != v.keyword:
2899
+ raise ValueError(f"parameters[{k}]: dict key must match value.keyword")
2900
+ return parameters
2901
+
2867
2902
 
2868
2903
  class Pipeline(DyffEntity, PipelineBase):
2869
2904
  """A set of Dyff workflows that can be executed as a group.
@@ -3166,6 +3201,7 @@ _DyffEntityTypeRevisable = Union[
3166
3201
  Audit,
3167
3202
  AuditProcedure,
3168
3203
  Challenge,
3204
+ ChallengeSubmission,
3169
3205
  DataSource,
3170
3206
  Dataset,
3171
3207
  Evaluation,
@@ -3261,6 +3297,7 @@ _ENTITY_CLASS: dict[Entities, type[DyffEntityType]] = {
3261
3297
  Entities.Report: Report,
3262
3298
  Entities.Revision: Revision,
3263
3299
  Entities.SafetyCase: SafetyCase,
3300
+ Entities.Submission: ChallengeSubmission,
3264
3301
  Entities.Team: Team,
3265
3302
  Entities.UseCase: UseCase,
3266
3303
  }
@@ -3276,6 +3313,7 @@ DyffEntityT = TypeVar(
3276
3313
  Audit,
3277
3314
  AuditProcedure,
3278
3315
  Challenge,
3316
+ ChallengeSubmission,
3279
3317
  DataSource,
3280
3318
  Dataset,
3281
3319
  Evaluation,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dyff-schema
3
- Version: 0.38.7
3
+ Version: 0.38.8
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
@@ -1,5 +1,5 @@
1
1
  dyff/schema/__init__.py,sha256=w7OWDFuyGKd6xt_yllNtKzHahPgywrfU4Ue02psYaMA,2244
2
- dyff/schema/_version.py,sha256=Lvo9jhPTm1HAF61xPJreSv-zBjPuoiu7427jQ9wl-7I,80
2
+ dyff/schema/_version.py,sha256=8nvvdBGaI2RNwHTn3-quX0iQmgetuBy0_zZjRo7-BYY,80
3
3
  dyff/schema/adapters.py,sha256=YMTHv_2VlLGFp-Kqwa6H51hjffHmk8gXjZilHysIF5Q,123
4
4
  dyff/schema/annotations.py,sha256=nE6Jk1PLqlShj8uqjE_EzZC9zYnTDW5AVtQcjysiK8M,10018
5
5
  dyff/schema/base.py,sha256=jvaNtsSZyFfsdUZTcY_U-yfLY5_GyrMxSXhON2R9XR0,119
@@ -29,7 +29,7 @@ dyff/schema/v0/r1/adapters.py,sha256=hpwCSW8lkMkUKCLe0zaMUDu-VS_caSxJvPsECEi_XRA
29
29
  dyff/schema/v0/r1/base.py,sha256=1VJXVLKldOq3aH2HdVgxXXk4DJTZEIiaTa4GzMKzziU,20228
30
30
  dyff/schema/v0/r1/commands.py,sha256=jqbEvDRLpcVGWXqlbniuSKg3UIjlrpKt6_0hiwUpPfQ,20153
31
31
  dyff/schema/v0/r1/oci.py,sha256=YjHDVBJ2IIxqijll70OK6pM-qT6pq8tvU7D3YB9vGM0,6700
32
- dyff/schema/v0/r1/platform.py,sha256=oN2KgTYRvaAgUUiYi9JoY4n2OdrCq53Yx1SFTxLesvk,112123
32
+ dyff/schema/v0/r1/platform.py,sha256=Euclx-Hj6TPNZNqHObQi9HRZyN-XEvkm5PWKTgjtVTM,113794
33
33
  dyff/schema/v0/r1/requests.py,sha256=k9T-xI2DDCjvCCmEg_kZ0M6yl_ZG6uh8rocWCLZLKFA,18590
34
34
  dyff/schema/v0/r1/responses.py,sha256=nxy7FPtfw2B_bljz5UGGuSE79HTkDQxKH56AJVmd4Qo,1287
35
35
  dyff/schema/v0/r1/test.py,sha256=X6dUyVd5svcPCI-PBMOAqEfK9jv3bRDvkQTJzwS96c0,10720
@@ -43,9 +43,9 @@ dyff/schema/v0/r1/dataset/text.py,sha256=MYG5seGODDryRSCy-g0Unh5dD0HCytmZ3FeElC-
43
43
  dyff/schema/v0/r1/dataset/vision.py,sha256=tJFF4dkhHX0UXTj1sPW-G22xTSI40gbYO465FuvmvAU,443
44
44
  dyff/schema/v0/r1/io/__init__.py,sha256=L5y8UhRnojerPYHumsxQJRcHCNz8Hj9NM8b47mewMNs,92
45
45
  dyff/schema/v0/r1/io/vllm.py,sha256=vWyLg-susbg0JDfv6VExBpgFdU2GHP2a14ChOdbckvs,5321
46
- dyff_schema-0.38.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
47
- dyff_schema-0.38.7.dist-info/licenses/NOTICE,sha256=YONACu0s_Ui6jNi-wtEsVQbTU1JIkh8wvLH6d1-Ni_w,43
48
- dyff_schema-0.38.7.dist-info/METADATA,sha256=H9nvnBlCZ6iJC6lm_jsLV5Zs9B8s5Qbq7R1JOhcd9Js,3734
49
- dyff_schema-0.38.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
- dyff_schema-0.38.7.dist-info/top_level.txt,sha256=9e3VVdeX73t_sUJOPQPCcGtYO1JhoErhHIi3WoWGcFI,5
51
- dyff_schema-0.38.7.dist-info/RECORD,,
46
+ dyff_schema-0.38.8.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
47
+ dyff_schema-0.38.8.dist-info/licenses/NOTICE,sha256=YONACu0s_Ui6jNi-wtEsVQbTU1JIkh8wvLH6d1-Ni_w,43
48
+ dyff_schema-0.38.8.dist-info/METADATA,sha256=MlHZqrl42WtH4VNitu9mFfnURbpwjD5HpPTxVdnrfps,3734
49
+ dyff_schema-0.38.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
+ dyff_schema-0.38.8.dist-info/top_level.txt,sha256=9e3VVdeX73t_sUJOPQPCcGtYO1JhoErhHIi3WoWGcFI,5
51
+ dyff_schema-0.38.8.dist-info/RECORD,,