dyff-schema 0.38.8__py3-none-any.whl → 0.39.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.
- dyff/schema/_version.py +2 -2
- dyff/schema/v0/r1/platform.py +163 -33
- dyff/schema/v0/r1/requests.py +3 -5
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/METADATA +1 -1
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/RECORD +9 -9
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/WHEEL +0 -0
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/licenses/LICENSE +0 -0
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/licenses/NOTICE +0 -0
- {dyff_schema-0.38.8.dist-info → dyff_schema-0.39.0.dist-info}/top_level.txt +0 -0
dyff/schema/_version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = version = "0.
|
|
2
|
-
__version_tuple__ = version_tuple = (0,
|
|
1
|
+
__version__ = version = "0.39.0"
|
|
2
|
+
__version_tuple__ = version_tuple = (0, 39, 0)
|
dyff/schema/v0/r1/platform.py
CHANGED
|
@@ -216,6 +216,7 @@ class Entities(str, enum.Enum):
|
|
|
216
216
|
AuditProcedure = "AuditProcedure"
|
|
217
217
|
Challenge = "Challenge"
|
|
218
218
|
Concern = "Concern"
|
|
219
|
+
Curve = "Curve"
|
|
219
220
|
DataSource = "DataSource"
|
|
220
221
|
Dataset = "Dataset"
|
|
221
222
|
Documentation = "Documentation"
|
|
@@ -256,6 +257,7 @@ class Resources(str, enum.Enum):
|
|
|
256
257
|
AuditProcedure = "auditprocedures"
|
|
257
258
|
Challenge = "challenges"
|
|
258
259
|
Concern = "concerns"
|
|
260
|
+
Curve = "curves"
|
|
259
261
|
Dataset = "datasets"
|
|
260
262
|
DataSource = "datasources"
|
|
261
263
|
Descriptor = "descriptors"
|
|
@@ -309,6 +311,7 @@ EntityKindLiteral = Literal[
|
|
|
309
311
|
"Audit",
|
|
310
312
|
"AuditProcedure",
|
|
311
313
|
"Challenge",
|
|
314
|
+
"Curve",
|
|
312
315
|
"DataSource",
|
|
313
316
|
"Dataset",
|
|
314
317
|
"Evaluation",
|
|
@@ -435,7 +438,7 @@ class Labeled(DyffSchemaBaseModel):
|
|
|
435
438
|
class Annotation(DyffSchemaBaseModel):
|
|
436
439
|
key: str = pydantic.Field(
|
|
437
440
|
pattern=_k8s_label_key_regex(),
|
|
438
|
-
max_length=
|
|
441
|
+
max_length=_k8s_label_key_maxlen(),
|
|
439
442
|
description="The annotation key. A DNS label with an optional DNS domain prefix."
|
|
440
443
|
" For example: 'my-key', 'your.com/key_0'. Names prefixed with"
|
|
441
444
|
" 'dyff.io/', 'subdomain.dyff.io/', etc. are reserved.\n\n"
|
|
@@ -541,6 +544,7 @@ class DyffEntity(Status, Labeled, SchemaVersion, DyffModelWithID):
|
|
|
541
544
|
"Audit",
|
|
542
545
|
"AuditProcedure",
|
|
543
546
|
"Challenge",
|
|
547
|
+
"Curve",
|
|
544
548
|
"DataSource",
|
|
545
549
|
"Dataset",
|
|
546
550
|
"Evaluation",
|
|
@@ -1442,6 +1446,21 @@ class VolumeMount(DyffSchemaBaseModel):
|
|
|
1442
1446
|
default=None, description="Configuration for Scratch volume mounts."
|
|
1443
1447
|
)
|
|
1444
1448
|
|
|
1449
|
+
@pydantic.model_validator(mode="after")
|
|
1450
|
+
def _validate_kind_matches_payload(self):
|
|
1451
|
+
"""Ensure payload fields match declared kind."""
|
|
1452
|
+
if self.kind == VolumeMountKind.data:
|
|
1453
|
+
if self.data is None or self.scratch is not None:
|
|
1454
|
+
raise ValueError(
|
|
1455
|
+
"VolumeMount(kind='Data') requires .data and forbids .scratch"
|
|
1456
|
+
)
|
|
1457
|
+
elif self.kind == VolumeMountKind.scratch:
|
|
1458
|
+
if self.scratch is None or self.data is not None:
|
|
1459
|
+
raise ValueError(
|
|
1460
|
+
"VolumeMount(kind='Scratch') requires .scratch and forbids .data"
|
|
1461
|
+
)
|
|
1462
|
+
return self
|
|
1463
|
+
|
|
1445
1464
|
|
|
1446
1465
|
class Container(DyffSchemaBaseModel):
|
|
1447
1466
|
"""Configuration of a runnable container backed by either an image hosted in an
|
|
@@ -1489,6 +1508,15 @@ class Container(DyffSchemaBaseModel):
|
|
|
1489
1508
|
" which might be configured in the container image.",
|
|
1490
1509
|
)
|
|
1491
1510
|
|
|
1511
|
+
@pydantic.model_validator(mode="after")
|
|
1512
|
+
def _validate_image_or_ref(self):
|
|
1513
|
+
"""Exactly one of image or imageRef must be set."""
|
|
1514
|
+
has_image = self.image is not None
|
|
1515
|
+
has_ref = self.imageRef is not None
|
|
1516
|
+
if has_image == has_ref:
|
|
1517
|
+
raise ValueError("Exactly one of 'image' or 'imageRef' must be set.")
|
|
1518
|
+
return self
|
|
1519
|
+
|
|
1492
1520
|
|
|
1493
1521
|
class InferenceServiceRunner(Container):
|
|
1494
1522
|
"""Configuration of the runtime environment to use to run an inference service.
|
|
@@ -2101,6 +2129,34 @@ class ScoreSpec(DyffSchemaBaseModel):
|
|
|
2101
2129
|
return format.format(quantity=quantity, unit=unit)
|
|
2102
2130
|
|
|
2103
2131
|
|
|
2132
|
+
class CurveSpec(DyffSchemaBaseModel):
|
|
2133
|
+
"""Metadata describing the curve dimensions and how to read them.
|
|
2134
|
+
|
|
2135
|
+
- `dimensions` supplies per-dimension metadata (name -> ScoreSpec).
|
|
2136
|
+
- Use these keys as columns in `CurveData.points`.
|
|
2137
|
+
"""
|
|
2138
|
+
|
|
2139
|
+
name: str = pydantic.Field(
|
|
2140
|
+
description="Unique key for this curve within the Method context.",
|
|
2141
|
+
pattern=identifier_regex(),
|
|
2142
|
+
max_length=identifier_maxlen(),
|
|
2143
|
+
)
|
|
2144
|
+
title: str = pydantic.Field(
|
|
2145
|
+
description="Human-friendly title for the curve.",
|
|
2146
|
+
max_length=title_maxlen(),
|
|
2147
|
+
)
|
|
2148
|
+
summary: str = pydantic.Field(
|
|
2149
|
+
description="Short description of what the curve shows.",
|
|
2150
|
+
max_length=summary_maxlen(),
|
|
2151
|
+
)
|
|
2152
|
+
dimensions: dict[str, ScoreSpec] = pydantic.Field(
|
|
2153
|
+
description=(
|
|
2154
|
+
"Per-dimension metadata. Keys must match the columns stored in CurveData.points. "
|
|
2155
|
+
"Typical keys might include 'x', 'y', 'threshold', 'tp', 'fp', etc."
|
|
2156
|
+
)
|
|
2157
|
+
)
|
|
2158
|
+
|
|
2159
|
+
|
|
2104
2160
|
class MethodBase(DyffSchemaBaseModel):
|
|
2105
2161
|
name: str = pydantic.Field(description="Descriptive name of the Method.")
|
|
2106
2162
|
|
|
@@ -2131,7 +2187,7 @@ class MethodBase(DyffSchemaBaseModel):
|
|
|
2131
2187
|
description="Specification of the Method output."
|
|
2132
2188
|
)
|
|
2133
2189
|
|
|
2134
|
-
scores: list[ScoreSpec] = pydantic.Field(
|
|
2190
|
+
scores: list[Union[ScoreSpec, CurveSpec]] = pydantic.Field(
|
|
2135
2191
|
default_factory=list,
|
|
2136
2192
|
description="Specifications of the Scores that this Method produces.",
|
|
2137
2193
|
)
|
|
@@ -2149,12 +2205,13 @@ class MethodBase(DyffSchemaBaseModel):
|
|
|
2149
2205
|
)
|
|
2150
2206
|
|
|
2151
2207
|
@pydantic.field_validator("scores")
|
|
2152
|
-
def _scores_validator(cls, scores
|
|
2153
|
-
if
|
|
2154
|
-
|
|
2208
|
+
def _scores_validator(cls, scores):
|
|
2209
|
+
score_specs = [s for s in scores if isinstance(s, ScoreSpec)]
|
|
2210
|
+
if score_specs:
|
|
2211
|
+
primary_count = sum(s.priority == "primary" for s in score_specs)
|
|
2155
2212
|
if primary_count != 1:
|
|
2156
2213
|
raise ValueError(
|
|
2157
|
-
"scores: Must have exactly one
|
|
2214
|
+
"scores: Must have exactly one primary ScoreSpec (curves excluded)"
|
|
2158
2215
|
)
|
|
2159
2216
|
return scores
|
|
2160
2217
|
|
|
@@ -2329,17 +2386,19 @@ class ScoreData(ScoreSpec):
|
|
|
2329
2386
|
description="The Analysis that generated the current score instance."
|
|
2330
2387
|
)
|
|
2331
2388
|
|
|
2332
|
-
quantity: float = pydantic.Field(
|
|
2333
|
-
description="
|
|
2389
|
+
quantity: float | None = pydantic.Field(
|
|
2390
|
+
default=None, description="Numeric quantity for scalar scores."
|
|
2391
|
+
)
|
|
2392
|
+
points: dict[str, list[float]] | None = pydantic.Field(
|
|
2393
|
+
default=None,
|
|
2394
|
+
description="Aligned vectors for curve scores. Keys should match curve.dimensions.",
|
|
2334
2395
|
)
|
|
2335
2396
|
|
|
2336
2397
|
quantityString: str = pydantic.Field(
|
|
2337
|
-
description="
|
|
2338
|
-
" after processing with the .format specification."
|
|
2398
|
+
description="Formatted string representation of .quantity (scalar) or a summary string (curve)."
|
|
2339
2399
|
)
|
|
2340
|
-
|
|
2341
2400
|
text: str = pydantic.Field(
|
|
2342
|
-
description="
|
|
2401
|
+
description="Short text description of what the value/curve means.",
|
|
2343
2402
|
max_length=summary_maxlen(),
|
|
2344
2403
|
)
|
|
2345
2404
|
|
|
@@ -2355,6 +2414,53 @@ class Score(ScoreData):
|
|
|
2355
2414
|
id: str = pydantic.Field(description="Unique identifier of the entity")
|
|
2356
2415
|
|
|
2357
2416
|
|
|
2417
|
+
class CurveData(CurveSpec):
|
|
2418
|
+
"""An instance of a curve produced by an analysis.
|
|
2419
|
+
|
|
2420
|
+
- Inherits the curve spec (name/title/summary/dimensions) directly.
|
|
2421
|
+
- `points` is a dict-of-lists: each key is a dimension name defined in `dimensions`.
|
|
2422
|
+
- All lists must be the same (non-zero) length.
|
|
2423
|
+
|
|
2424
|
+
spec: CurveSpec = pydantic.Field(description="The CurveSpec this data conforms to.")
|
|
2425
|
+
"""
|
|
2426
|
+
|
|
2427
|
+
metadata: ScoreMetadata = pydantic.Field(
|
|
2428
|
+
description="Indexing metadata (method required).",
|
|
2429
|
+
)
|
|
2430
|
+
analysis: str = pydantic.Field(
|
|
2431
|
+
description="ID of the Analysis that produced this curve."
|
|
2432
|
+
)
|
|
2433
|
+
points: dict[str, list[float]] = pydantic.Field(
|
|
2434
|
+
description="Aligned vectors for each dimension; all lists must have equal length >= 1."
|
|
2435
|
+
)
|
|
2436
|
+
|
|
2437
|
+
@pydantic.model_validator(mode="after")
|
|
2438
|
+
def _validate_points(self):
|
|
2439
|
+
if not self.points:
|
|
2440
|
+
raise ValueError("CurveData.points must not be empty")
|
|
2441
|
+
|
|
2442
|
+
lengths = {k: len(v) for k, v in self.points.items()}
|
|
2443
|
+
uniq = set(lengths.values())
|
|
2444
|
+
if len(uniq) != 1:
|
|
2445
|
+
raise ValueError(
|
|
2446
|
+
f"All vectors must have equal length; got lengths {lengths}"
|
|
2447
|
+
)
|
|
2448
|
+
n = next(iter(uniq))
|
|
2449
|
+
if n < 1:
|
|
2450
|
+
raise ValueError("Vectors must contain at least 1 point")
|
|
2451
|
+
|
|
2452
|
+
missing = [k for k in self.dimensions.keys() if k not in self.points]
|
|
2453
|
+
if missing:
|
|
2454
|
+
raise ValueError(f"points is missing required dimensions: {missing}")
|
|
2455
|
+
return self
|
|
2456
|
+
|
|
2457
|
+
|
|
2458
|
+
class Curve(CurveData):
|
|
2459
|
+
kind: Literal["Curve"] = Entities.Curve.value
|
|
2460
|
+
|
|
2461
|
+
id: str = pydantic.Field(description="Unique identifier of the entity")
|
|
2462
|
+
|
|
2463
|
+
|
|
2358
2464
|
# ---------------------------------------------------------------------------
|
|
2359
2465
|
# OCI artifacts
|
|
2360
2466
|
|
|
@@ -2635,6 +2741,19 @@ class ChallengeTaskSchedule(DyffSchemaBaseModel):
|
|
|
2635
2741
|
description="Teams are limited to this many submissions per cycle.",
|
|
2636
2742
|
)
|
|
2637
2743
|
|
|
2744
|
+
@pydantic.model_validator(mode="after")
|
|
2745
|
+
def _validate_times(self):
|
|
2746
|
+
"""Basic temporal sanity checks."""
|
|
2747
|
+
if (
|
|
2748
|
+
self.openingTime
|
|
2749
|
+
and self.closingTime
|
|
2750
|
+
and self.closingTime <= self.openingTime
|
|
2751
|
+
):
|
|
2752
|
+
raise ValueError("closingTime must be after openingTime")
|
|
2753
|
+
if self.submissionCycleDuration <= timedelta(0):
|
|
2754
|
+
raise ValueError("submissionCycleDuration must be positive")
|
|
2755
|
+
return self
|
|
2756
|
+
|
|
2638
2757
|
|
|
2639
2758
|
class ChallengeTaskRules(DyffSchemaBaseModel):
|
|
2640
2759
|
"""The rules of the challenge."""
|
|
@@ -2656,7 +2775,7 @@ class ChallengeTaskContent(DyffSchemaBaseModel):
|
|
|
2656
2775
|
)
|
|
2657
2776
|
|
|
2658
2777
|
|
|
2659
|
-
class
|
|
2778
|
+
class SubmissionStructure(DyffSchemaBaseModel):
|
|
2660
2779
|
submissionKind: EntityKindLiteral = pydantic.Field(
|
|
2661
2780
|
default=Entities.InferenceService.value,
|
|
2662
2781
|
description="The kind of entity that you can submit to this task.",
|
|
@@ -2679,12 +2798,13 @@ class ChallengeTaskBase(DyffSchemaBaseModel):
|
|
|
2679
2798
|
" This may appear in URLs and must follow naming restrictions.",
|
|
2680
2799
|
max_length=title_maxlen(),
|
|
2681
2800
|
pattern=r"[a-z0-9-]*",
|
|
2801
|
+
min_length=1,
|
|
2682
2802
|
)
|
|
2683
2803
|
assessment: str = pydantic.Field(
|
|
2684
2804
|
description="ID of the Pipeline used to assess the submission."
|
|
2685
2805
|
)
|
|
2686
|
-
submissionStructure:
|
|
2687
|
-
default_factory=
|
|
2806
|
+
submissionStructure: SubmissionStructure = pydantic.Field(
|
|
2807
|
+
default_factory=SubmissionStructure,
|
|
2688
2808
|
description="How to run the assessment pipeline on a new submission.",
|
|
2689
2809
|
)
|
|
2690
2810
|
rules: ChallengeTaskRules = pydantic.Field(description="The rules for submissions.")
|
|
@@ -2745,14 +2865,14 @@ class Challenge(DyffEntity):
|
|
|
2745
2865
|
return None
|
|
2746
2866
|
|
|
2747
2867
|
|
|
2748
|
-
class
|
|
2868
|
+
class SubmissionBase(DyffSchemaBaseModel):
|
|
2749
2869
|
team: str = pydantic.Field(description="The ID of the team making the submission.")
|
|
2750
2870
|
submission: EntityIdentifier = pydantic.Field(
|
|
2751
2871
|
description="The resource being submitted for assessment."
|
|
2752
2872
|
)
|
|
2753
2873
|
|
|
2754
2874
|
|
|
2755
|
-
class
|
|
2875
|
+
class Submission(DyffEntity, SubmissionBase):
|
|
2756
2876
|
"""A submission of an inference system to a challenge by a team.
|
|
2757
2877
|
|
|
2758
2878
|
All of the constituent resources must already exist. Creating a Submission simply
|
|
@@ -2788,27 +2908,31 @@ class PipelineEvaluationRequest(EvaluationRequestBase):
|
|
|
2788
2908
|
kind: Literal["PipelineEvaluationRequest"] = "PipelineEvaluationRequest"
|
|
2789
2909
|
|
|
2790
2910
|
def dependencies(self) -> list[str]:
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
return
|
|
2911
|
+
if self.inferenceSession is None:
|
|
2912
|
+
raise AssertionError()
|
|
2913
|
+
return [self.dataset, self.inferenceSession.inferenceService]
|
|
2914
|
+
|
|
2915
|
+
@pydantic.model_validator(mode="after")
|
|
2916
|
+
def check_session_not_reference(self):
|
|
2917
|
+
if self.inferenceSession is None or self.inferenceSessionReference is not None:
|
|
2918
|
+
raise ValueError(
|
|
2919
|
+
"evaluations in pipelines must set inferenceSession, not inferenceSessionReference"
|
|
2920
|
+
)
|
|
2921
|
+
return self
|
|
2794
2922
|
|
|
2795
2923
|
|
|
2796
2924
|
class PipelineMeasurementRequest(AnalysisRequestBase):
|
|
2797
2925
|
kind: Literal["PipelineMeasurementRequest"] = "PipelineMeasurementRequest"
|
|
2798
2926
|
|
|
2799
2927
|
def dependencies(self) -> list[str]:
|
|
2800
|
-
|
|
2801
|
-
# equivalent as far as .dependencies() cares
|
|
2802
|
-
return Measurement.dependencies(self) # type: ignore[arg-type]
|
|
2928
|
+
return [self.method] + [x.entity for x in self.inputs]
|
|
2803
2929
|
|
|
2804
2930
|
|
|
2805
2931
|
class PipelineSafetyCaseRequest(AnalysisRequestBase):
|
|
2806
2932
|
kind: Literal["PipelineSafetyCaseRequest"] = "PipelineSafetyCaseRequest"
|
|
2807
2933
|
|
|
2808
2934
|
def dependencies(self) -> list[str]:
|
|
2809
|
-
|
|
2810
|
-
# equivalent as far as .dependencies() cares
|
|
2811
|
-
return SafetyCase.dependencies(self) # type: ignore[arg-type]
|
|
2935
|
+
return [self.method] + [x.entity for x in self.inputs]
|
|
2812
2936
|
|
|
2813
2937
|
|
|
2814
2938
|
PipelineNodeRequest = Union[
|
|
@@ -2863,8 +2987,9 @@ class PipelineParameter(DyffSchemaBaseModel):
|
|
|
2863
2987
|
|
|
2864
2988
|
keyword: str = pydantic.Field(description="The keyword of the parameter.")
|
|
2865
2989
|
destination: Optional[str] = pydantic.Field(
|
|
2990
|
+
default=None,
|
|
2866
2991
|
description="The field in a pipeline node to substitute with the"
|
|
2867
|
-
" parameter value. Should be a string like 'node_name.field1.field2'."
|
|
2992
|
+
" parameter value. Should be a string like 'node_name.field1.field2'.",
|
|
2868
2993
|
)
|
|
2869
2994
|
description: Optional[str] = pydantic.Field(
|
|
2870
2995
|
default=None,
|
|
@@ -2880,7 +3005,8 @@ class PipelineBase(DyffSchemaBaseModel):
|
|
|
2880
3005
|
min_length=1,
|
|
2881
3006
|
)
|
|
2882
3007
|
parameters: dict[str, PipelineParameter] = pydantic.Field(
|
|
2883
|
-
|
|
3008
|
+
default_factory=dict,
|
|
3009
|
+
description="Input parameters used to customize the pipeline.",
|
|
2884
3010
|
)
|
|
2885
3011
|
|
|
2886
3012
|
@pydantic.field_validator("nodes", mode="after")
|
|
@@ -3201,7 +3327,6 @@ _DyffEntityTypeRevisable = Union[
|
|
|
3201
3327
|
Audit,
|
|
3202
3328
|
AuditProcedure,
|
|
3203
3329
|
Challenge,
|
|
3204
|
-
ChallengeSubmission,
|
|
3205
3330
|
DataSource,
|
|
3206
3331
|
Dataset,
|
|
3207
3332
|
Evaluation,
|
|
@@ -3218,6 +3343,7 @@ _DyffEntityTypeRevisable = Union[
|
|
|
3218
3343
|
PipelineRun,
|
|
3219
3344
|
Report,
|
|
3220
3345
|
SafetyCase,
|
|
3346
|
+
Submission,
|
|
3221
3347
|
Team,
|
|
3222
3348
|
UseCase,
|
|
3223
3349
|
]
|
|
@@ -3297,7 +3423,7 @@ _ENTITY_CLASS: dict[Entities, type[DyffEntityType]] = {
|
|
|
3297
3423
|
Entities.Report: Report,
|
|
3298
3424
|
Entities.Revision: Revision,
|
|
3299
3425
|
Entities.SafetyCase: SafetyCase,
|
|
3300
|
-
Entities.Submission:
|
|
3426
|
+
Entities.Submission: Submission,
|
|
3301
3427
|
Entities.Team: Team,
|
|
3302
3428
|
Entities.UseCase: UseCase,
|
|
3303
3429
|
}
|
|
@@ -3313,7 +3439,6 @@ DyffEntityT = TypeVar(
|
|
|
3313
3439
|
Audit,
|
|
3314
3440
|
AuditProcedure,
|
|
3315
3441
|
Challenge,
|
|
3316
|
-
ChallengeSubmission,
|
|
3317
3442
|
DataSource,
|
|
3318
3443
|
Dataset,
|
|
3319
3444
|
Evaluation,
|
|
@@ -3332,6 +3457,7 @@ DyffEntityT = TypeVar(
|
|
|
3332
3457
|
Report,
|
|
3333
3458
|
Revision,
|
|
3334
3459
|
SafetyCase,
|
|
3460
|
+
Submission,
|
|
3335
3461
|
Team,
|
|
3336
3462
|
UseCase,
|
|
3337
3463
|
)
|
|
@@ -3363,8 +3489,6 @@ __all__ = [
|
|
|
3363
3489
|
"Challenge",
|
|
3364
3490
|
"ChallengeContent",
|
|
3365
3491
|
"ChallengeContentPage",
|
|
3366
|
-
"ChallengeSubmission",
|
|
3367
|
-
"ChallengeSubmissionBase",
|
|
3368
3492
|
"ChallengeTask",
|
|
3369
3493
|
"ChallengeTaskBase",
|
|
3370
3494
|
"ChallengeTaskContent",
|
|
@@ -3376,6 +3500,9 @@ __all__ = [
|
|
|
3376
3500
|
"ConcernBase",
|
|
3377
3501
|
"Container",
|
|
3378
3502
|
"ContainerImageSource",
|
|
3503
|
+
"Curve",
|
|
3504
|
+
"CurveData",
|
|
3505
|
+
"CurveSpec",
|
|
3379
3506
|
"DataSchema",
|
|
3380
3507
|
"Dataset",
|
|
3381
3508
|
"DatasetBase",
|
|
@@ -3501,6 +3628,9 @@ __all__ = [
|
|
|
3501
3628
|
"ScoreMetadataRefs",
|
|
3502
3629
|
"Status",
|
|
3503
3630
|
"StorageSignedURL",
|
|
3631
|
+
"Submission",
|
|
3632
|
+
"SubmissionBase",
|
|
3633
|
+
"SubmissionStructure",
|
|
3504
3634
|
"TagName",
|
|
3505
3635
|
"TagNameType",
|
|
3506
3636
|
"TaskSchema",
|
dyff/schema/v0/r1/requests.py
CHANGED
|
@@ -27,7 +27,6 @@ from .platform import (
|
|
|
27
27
|
AnalysisRequestBase,
|
|
28
28
|
AnalysisScope,
|
|
29
29
|
ChallengeContent,
|
|
30
|
-
ChallengeSubmissionBase,
|
|
31
30
|
ChallengeTaskBase,
|
|
32
31
|
ConcernBase,
|
|
33
32
|
DatasetBase,
|
|
@@ -46,6 +45,7 @@ from .platform import (
|
|
|
46
45
|
PipelineBase,
|
|
47
46
|
PipelineRunBase,
|
|
48
47
|
ReportBase,
|
|
48
|
+
SubmissionBase,
|
|
49
49
|
TagNameType,
|
|
50
50
|
TeamBase,
|
|
51
51
|
summary_maxlen,
|
|
@@ -149,9 +149,7 @@ class ChallengeCreateRequest(DyffEntityCreateRequest):
|
|
|
149
149
|
)
|
|
150
150
|
|
|
151
151
|
|
|
152
|
-
class
|
|
153
|
-
DyffEntityCreateRequest, ChallengeSubmissionBase
|
|
154
|
-
):
|
|
152
|
+
class SubmissionCreateRequest(DyffEntityCreateRequest, SubmissionBase):
|
|
155
153
|
pass
|
|
156
154
|
|
|
157
155
|
|
|
@@ -504,7 +502,6 @@ __all__ = [
|
|
|
504
502
|
"ChallengeContentEditRequest",
|
|
505
503
|
"ChallengeCreateRequest",
|
|
506
504
|
"ChallengeQueryRequest",
|
|
507
|
-
"ChallengeSubmissionCreateRequest",
|
|
508
505
|
"ChallengeTaskCreateRequest",
|
|
509
506
|
"ChallengeTaskRulesEditRequest",
|
|
510
507
|
"ChallengeTeamCreateRequest",
|
|
@@ -544,6 +541,7 @@ __all__ = [
|
|
|
544
541
|
"ReportQueryRequest",
|
|
545
542
|
"SafetyCaseQueryRequest",
|
|
546
543
|
"ScoreQueryRequest",
|
|
544
|
+
"SubmissionCreateRequest",
|
|
547
545
|
"TeamEditRequest",
|
|
548
546
|
"TeamQueryRequest",
|
|
549
547
|
"UseCaseQueryRequest",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
dyff/schema/__init__.py,sha256=w7OWDFuyGKd6xt_yllNtKzHahPgywrfU4Ue02psYaMA,2244
|
|
2
|
-
dyff/schema/_version.py,sha256=
|
|
2
|
+
dyff/schema/_version.py,sha256=I6LzRmj6u3696UihPDbtQ6SvcXb8zA4Bc4JYoFGddx0,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,8 +29,8 @@ 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=
|
|
33
|
-
dyff/schema/v0/r1/requests.py,sha256=
|
|
32
|
+
dyff/schema/v0/r1/platform.py,sha256=qAy2yBRtaRLrWbONDxOa2Z89lFstOBq8V0SsOg7cpIE,118312
|
|
33
|
+
dyff/schema/v0/r1/requests.py,sha256=OhkM9QpSimsGaX8TtjSHcWlHg1UYyPCiq-WW9DJ7FdQ,18548
|
|
34
34
|
dyff/schema/v0/r1/responses.py,sha256=nxy7FPtfw2B_bljz5UGGuSE79HTkDQxKH56AJVmd4Qo,1287
|
|
35
35
|
dyff/schema/v0/r1/test.py,sha256=X6dUyVd5svcPCI-PBMOAqEfK9jv3bRDvkQTJzwS96c0,10720
|
|
36
36
|
dyff/schema/v0/r1/version.py,sha256=NONebgcv5Thsw_ymud6PacZdGjV6ndBrmLnap-obcpo,428
|
|
@@ -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.
|
|
47
|
-
dyff_schema-0.
|
|
48
|
-
dyff_schema-0.
|
|
49
|
-
dyff_schema-0.
|
|
50
|
-
dyff_schema-0.
|
|
51
|
-
dyff_schema-0.
|
|
46
|
+
dyff_schema-0.39.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
47
|
+
dyff_schema-0.39.0.dist-info/licenses/NOTICE,sha256=YONACu0s_Ui6jNi-wtEsVQbTU1JIkh8wvLH6d1-Ni_w,43
|
|
48
|
+
dyff_schema-0.39.0.dist-info/METADATA,sha256=ZGqsePJhzMjBYADI2vpkJL0aur7pZLhFSSZ1tOCmIZs,3734
|
|
49
|
+
dyff_schema-0.39.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
50
|
+
dyff_schema-0.39.0.dist-info/top_level.txt,sha256=9e3VVdeX73t_sUJOPQPCcGtYO1JhoErhHIi3WoWGcFI,5
|
|
51
|
+
dyff_schema-0.39.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|