orca-sdk 0.0.93__py3-none-any.whl → 0.0.95__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.
Files changed (125) hide show
  1. orca_sdk/__init__.py +13 -4
  2. orca_sdk/_generated_api_client/api/__init__.py +84 -34
  3. orca_sdk/_generated_api_client/api/classification_model/create_classification_model_classification_model_post.py +170 -0
  4. orca_sdk/_generated_api_client/api/classification_model/{get_model_classification_model_name_or_id_get.py → delete_classification_model_classification_model_name_or_id_delete.py} +20 -20
  5. orca_sdk/_generated_api_client/api/classification_model/{delete_evaluation_classification_model_model_name_or_id_evaluation_task_id_delete.py → delete_classification_model_evaluation_classification_model_model_name_or_id_evaluation_task_id_delete.py} +4 -4
  6. orca_sdk/_generated_api_client/api/classification_model/{create_evaluation_classification_model_model_name_or_id_evaluation_post.py → evaluate_classification_model_classification_model_model_name_or_id_evaluation_post.py} +14 -14
  7. orca_sdk/_generated_api_client/api/classification_model/get_classification_model_classification_model_name_or_id_get.py +156 -0
  8. orca_sdk/_generated_api_client/api/classification_model/{get_evaluation_classification_model_model_name_or_id_evaluation_task_id_get.py → get_classification_model_evaluation_classification_model_model_name_or_id_evaluation_task_id_get.py} +16 -16
  9. orca_sdk/_generated_api_client/api/classification_model/{list_evaluations_classification_model_model_name_or_id_evaluation_get.py → list_classification_model_evaluations_classification_model_model_name_or_id_evaluation_get.py} +16 -16
  10. orca_sdk/_generated_api_client/api/classification_model/list_classification_models_classification_model_get.py +127 -0
  11. orca_sdk/_generated_api_client/api/classification_model/{predict_gpu_classification_model_name_or_id_prediction_post.py → predict_label_gpu_classification_model_name_or_id_prediction_post.py} +14 -14
  12. orca_sdk/_generated_api_client/api/classification_model/update_classification_model_classification_model_name_or_id_patch.py +183 -0
  13. orca_sdk/_generated_api_client/api/datasource/download_datasource_datasource_name_or_id_download_get.py +172 -0
  14. orca_sdk/_generated_api_client/api/memoryset/clone_memoryset_memoryset_name_or_id_clone_post.py +22 -22
  15. orca_sdk/_generated_api_client/api/memoryset/create_memoryset_memoryset_post.py +22 -22
  16. orca_sdk/_generated_api_client/api/memoryset/get_memories_memoryset_name_or_id_memories_get_post.py +38 -16
  17. orca_sdk/_generated_api_client/api/memoryset/get_memory_memoryset_name_or_id_memory_memory_id_get.py +29 -12
  18. orca_sdk/_generated_api_client/api/memoryset/get_memoryset_memoryset_name_or_id_get.py +12 -12
  19. orca_sdk/_generated_api_client/api/memoryset/insert_memories_gpu_memoryset_name_or_id_memory_post.py +17 -14
  20. orca_sdk/_generated_api_client/api/memoryset/list_memorysets_memoryset_get.py +72 -19
  21. orca_sdk/_generated_api_client/api/memoryset/memoryset_lookup_gpu_memoryset_name_or_id_lookup_post.py +31 -12
  22. orca_sdk/_generated_api_client/api/memoryset/potential_duplicate_groups_memoryset_name_or_id_potential_duplicate_groups_get.py +49 -20
  23. orca_sdk/_generated_api_client/api/memoryset/query_memoryset_memoryset_name_or_id_memories_post.py +38 -16
  24. orca_sdk/_generated_api_client/api/memoryset/update_memories_gpu_memoryset_name_or_id_memories_patch.py +54 -29
  25. orca_sdk/_generated_api_client/api/memoryset/update_memory_gpu_memoryset_name_or_id_memory_patch.py +44 -26
  26. orca_sdk/_generated_api_client/api/memoryset/update_memoryset_memoryset_name_or_id_patch.py +22 -22
  27. orca_sdk/_generated_api_client/api/predictive_model/__init__.py +0 -0
  28. orca_sdk/_generated_api_client/api/predictive_model/list_predictive_models_predictive_model_get.py +150 -0
  29. orca_sdk/_generated_api_client/api/regression_model/__init__.py +0 -0
  30. orca_sdk/_generated_api_client/api/{classification_model/create_model_classification_model_post.py → regression_model/create_regression_model_regression_model_post.py} +27 -27
  31. orca_sdk/_generated_api_client/api/regression_model/delete_regression_model_evaluation_regression_model_model_name_or_id_evaluation_task_id_delete.py +168 -0
  32. orca_sdk/_generated_api_client/api/{classification_model/delete_model_classification_model_name_or_id_delete.py → regression_model/delete_regression_model_regression_model_name_or_id_delete.py} +5 -5
  33. orca_sdk/_generated_api_client/api/regression_model/evaluate_regression_model_regression_model_model_name_or_id_evaluation_post.py +183 -0
  34. orca_sdk/_generated_api_client/api/regression_model/get_regression_model_evaluation_regression_model_model_name_or_id_evaluation_task_id_get.py +170 -0
  35. orca_sdk/_generated_api_client/api/regression_model/get_regression_model_regression_model_name_or_id_get.py +156 -0
  36. orca_sdk/_generated_api_client/api/regression_model/list_regression_model_evaluations_regression_model_model_name_or_id_evaluation_get.py +161 -0
  37. orca_sdk/_generated_api_client/api/{classification_model/list_models_classification_model_get.py → regression_model/list_regression_models_regression_model_get.py} +17 -17
  38. orca_sdk/_generated_api_client/api/regression_model/predict_score_gpu_regression_model_name_or_id_prediction_post.py +190 -0
  39. orca_sdk/_generated_api_client/api/{classification_model/update_model_classification_model_name_or_id_patch.py → regression_model/update_regression_model_regression_model_name_or_id_patch.py} +27 -27
  40. orca_sdk/_generated_api_client/api/task/get_task_task_task_id_get.py +156 -0
  41. orca_sdk/_generated_api_client/api/task/list_tasks_task_get.py +60 -10
  42. orca_sdk/_generated_api_client/api/telemetry/count_predictions_telemetry_prediction_count_post.py +10 -10
  43. orca_sdk/_generated_api_client/api/telemetry/get_prediction_telemetry_prediction_prediction_id_get.py +35 -12
  44. orca_sdk/_generated_api_client/api/telemetry/list_memories_with_feedback_telemetry_memories_post.py +20 -12
  45. orca_sdk/_generated_api_client/api/telemetry/list_predictions_telemetry_prediction_post.py +35 -12
  46. orca_sdk/_generated_api_client/models/__init__.py +90 -24
  47. orca_sdk/_generated_api_client/models/base_score_prediction_result.py +108 -0
  48. orca_sdk/_generated_api_client/models/{evaluation_request.py → classification_evaluation_request.py} +13 -45
  49. orca_sdk/_generated_api_client/models/{classification_evaluation_result.py → classification_metrics.py} +106 -56
  50. orca_sdk/_generated_api_client/models/{rac_model_metadata.py → classification_model_metadata.py} +51 -43
  51. orca_sdk/_generated_api_client/models/{prediction_request.py → classification_prediction_request.py} +31 -6
  52. orca_sdk/_generated_api_client/models/{clone_labeled_memoryset_request.py → clone_memoryset_request.py} +5 -5
  53. orca_sdk/_generated_api_client/models/column_info.py +31 -0
  54. orca_sdk/_generated_api_client/models/count_predictions_request.py +195 -0
  55. orca_sdk/_generated_api_client/models/{create_rac_model_request.py → create_classification_model_request.py} +25 -57
  56. orca_sdk/_generated_api_client/models/{create_labeled_memoryset_request.py → create_memoryset_request.py} +73 -56
  57. orca_sdk/_generated_api_client/models/create_memoryset_request_index_params.py +66 -0
  58. orca_sdk/_generated_api_client/models/create_memoryset_request_index_type.py +13 -0
  59. orca_sdk/_generated_api_client/models/create_regression_model_request.py +137 -0
  60. orca_sdk/_generated_api_client/models/embedding_evaluation_payload.py +187 -0
  61. orca_sdk/_generated_api_client/models/embedding_evaluation_response.py +10 -0
  62. orca_sdk/_generated_api_client/models/evaluation_response.py +22 -9
  63. orca_sdk/_generated_api_client/models/evaluation_response_classification_metrics.py +140 -0
  64. orca_sdk/_generated_api_client/models/evaluation_response_regression_metrics.py +140 -0
  65. orca_sdk/_generated_api_client/models/http_validation_error.py +86 -0
  66. orca_sdk/_generated_api_client/models/list_predictions_request.py +62 -0
  67. orca_sdk/_generated_api_client/models/memory_type.py +9 -0
  68. orca_sdk/_generated_api_client/models/memoryset_analysis_configs.py +0 -20
  69. orca_sdk/_generated_api_client/models/{labeled_memoryset_metadata.py → memoryset_metadata.py} +73 -13
  70. orca_sdk/_generated_api_client/models/memoryset_metadata_index_params.py +55 -0
  71. orca_sdk/_generated_api_client/models/memoryset_metadata_index_type.py +13 -0
  72. orca_sdk/_generated_api_client/models/{labeled_memoryset_update.py → memoryset_update.py} +19 -31
  73. orca_sdk/_generated_api_client/models/not_found_error_response_resource_type_0.py +1 -0
  74. orca_sdk/_generated_api_client/models/{paginated_labeled_memory_with_feedback_metrics.py → paginated_union_labeled_memory_with_feedback_metrics_scored_memory_with_feedback_metrics.py} +37 -10
  75. orca_sdk/_generated_api_client/models/{precision_recall_curve.py → pr_curve.py} +5 -13
  76. orca_sdk/_generated_api_client/models/{rac_model_update.py → predictive_model_update.py} +14 -5
  77. orca_sdk/_generated_api_client/models/pretrained_embedding_model_metadata.py +11 -1
  78. orca_sdk/_generated_api_client/models/pretrained_embedding_model_name.py +5 -0
  79. orca_sdk/_generated_api_client/models/rar_head_type.py +8 -0
  80. orca_sdk/_generated_api_client/models/regression_evaluation_request.py +148 -0
  81. orca_sdk/_generated_api_client/models/regression_metrics.py +172 -0
  82. orca_sdk/_generated_api_client/models/regression_model_metadata.py +177 -0
  83. orca_sdk/_generated_api_client/models/regression_prediction_request.py +195 -0
  84. orca_sdk/_generated_api_client/models/roc_curve.py +0 -8
  85. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup.py +196 -0
  86. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup_metadata.py +68 -0
  87. orca_sdk/_generated_api_client/models/score_prediction_with_memories_and_feedback.py +252 -0
  88. orca_sdk/_generated_api_client/models/scored_memory.py +172 -0
  89. orca_sdk/_generated_api_client/models/scored_memory_insert.py +128 -0
  90. orca_sdk/_generated_api_client/models/scored_memory_insert_metadata.py +68 -0
  91. orca_sdk/_generated_api_client/models/scored_memory_lookup.py +180 -0
  92. orca_sdk/_generated_api_client/models/scored_memory_lookup_metadata.py +68 -0
  93. orca_sdk/_generated_api_client/models/scored_memory_metadata.py +68 -0
  94. orca_sdk/_generated_api_client/models/scored_memory_update.py +171 -0
  95. orca_sdk/_generated_api_client/models/scored_memory_update_metadata_type_0.py +68 -0
  96. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics.py +193 -0
  97. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_feedback_metrics.py +68 -0
  98. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_metadata.py +68 -0
  99. orca_sdk/_generated_api_client/models/update_prediction_request.py +20 -0
  100. orca_sdk/_generated_api_client/models/validation_error.py +99 -0
  101. orca_sdk/_shared/__init__.py +9 -1
  102. orca_sdk/_shared/metrics.py +257 -87
  103. orca_sdk/_shared/metrics_test.py +136 -77
  104. orca_sdk/_utils/data_parsing.py +0 -3
  105. orca_sdk/_utils/data_parsing_test.py +0 -3
  106. orca_sdk/_utils/prediction_result_ui.py +55 -23
  107. orca_sdk/classification_model.py +184 -174
  108. orca_sdk/classification_model_test.py +178 -142
  109. orca_sdk/conftest.py +77 -26
  110. orca_sdk/datasource.py +34 -0
  111. orca_sdk/datasource_test.py +9 -1
  112. orca_sdk/embedding_model.py +136 -14
  113. orca_sdk/embedding_model_test.py +10 -6
  114. orca_sdk/job.py +329 -0
  115. orca_sdk/job_test.py +48 -0
  116. orca_sdk/memoryset.py +882 -161
  117. orca_sdk/memoryset_test.py +58 -23
  118. orca_sdk/regression_model.py +647 -0
  119. orca_sdk/regression_model_test.py +338 -0
  120. orca_sdk/telemetry.py +225 -106
  121. orca_sdk/telemetry_test.py +34 -30
  122. {orca_sdk-0.0.93.dist-info → orca_sdk-0.0.95.dist-info}/METADATA +2 -4
  123. {orca_sdk-0.0.93.dist-info → orca_sdk-0.0.95.dist-info}/RECORD +124 -74
  124. orca_sdk/_utils/task.py +0 -73
  125. {orca_sdk-0.0.93.dist-info → orca_sdk-0.0.95.dist-info}/WHEEL +0 -0
@@ -25,13 +25,11 @@ class ROCCurve:
25
25
  thresholds (List[float]):
26
26
  false_positive_rates (List[float]):
27
27
  true_positive_rates (List[float]):
28
- auc (float):
29
28
  """
30
29
 
31
30
  thresholds: List[float]
32
31
  false_positive_rates: List[float]
33
32
  true_positive_rates: List[float]
34
- auc: float
35
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
34
 
37
35
  def to_dict(self) -> dict[str, Any]:
@@ -41,8 +39,6 @@ class ROCCurve:
41
39
 
42
40
  true_positive_rates = self.true_positive_rates
43
41
 
44
- auc = self.auc
45
-
46
42
  field_dict: dict[str, Any] = {}
47
43
  field_dict.update(self.additional_properties)
48
44
  field_dict.update(
@@ -50,7 +46,6 @@ class ROCCurve:
50
46
  "thresholds": thresholds,
51
47
  "false_positive_rates": false_positive_rates,
52
48
  "true_positive_rates": true_positive_rates,
53
- "auc": auc,
54
49
  }
55
50
  )
56
51
 
@@ -65,13 +60,10 @@ class ROCCurve:
65
60
 
66
61
  true_positive_rates = cast(List[float], d.pop("true_positive_rates"))
67
62
 
68
- auc = d.pop("auc")
69
-
70
63
  roc_curve = cls(
71
64
  thresholds=thresholds,
72
65
  false_positive_rates=false_positive_rates,
73
66
  true_positive_rates=true_positive_rates,
74
- auc=auc,
75
67
  )
76
68
 
77
69
  roc_curve.additional_properties = d
@@ -0,0 +1,196 @@
1
+ """
2
+ This file is generated by the openapi-python-client tool via the generate_api_client.py script
3
+
4
+ It is a customized template from the openapi-python-client tool's default template:
5
+ https://github.com/openapi-generators/openapi-python-client/blob/861ef5622f10fc96d240dc9becb0edf94e61446c/openapi_python_client/templates/model.py.jinja
6
+
7
+ The main change is:
8
+ - Fix typing issues
9
+ """
10
+
11
+ # flake8: noqa: C901
12
+
13
+ import datetime
14
+ from typing import TYPE_CHECKING, Any, List, Type, TypeVar, Union, cast
15
+
16
+ from attrs import define as _attrs_define
17
+ from attrs import field as _attrs_field
18
+ from dateutil.parser import isoparse
19
+
20
+ if TYPE_CHECKING:
21
+ from ..models.memory_metrics import MemoryMetrics
22
+ from ..models.score_prediction_memory_lookup_metadata import ScorePredictionMemoryLookupMetadata
23
+
24
+
25
+ T = TypeVar("T", bound="ScorePredictionMemoryLookup")
26
+
27
+
28
+ @_attrs_define
29
+ class ScorePredictionMemoryLookup:
30
+ """Full information about the lookup of a single memory for a prediction.
31
+
32
+ Attributes:
33
+ value (str):
34
+ embedding (List[float]):
35
+ source_id (Union[None, str]):
36
+ metadata (ScorePredictionMemoryLookupMetadata):
37
+ memory_id (str):
38
+ memory_version (int):
39
+ created_at (datetime.datetime):
40
+ updated_at (datetime.datetime):
41
+ edited_at (datetime.datetime):
42
+ metrics (MemoryMetrics):
43
+ lookup_score (float):
44
+ score (float):
45
+ prediction_id (str):
46
+ attention_weight (float):
47
+ """
48
+
49
+ value: str
50
+ embedding: List[float]
51
+ source_id: Union[None, str]
52
+ metadata: "ScorePredictionMemoryLookupMetadata"
53
+ memory_id: str
54
+ memory_version: int
55
+ created_at: datetime.datetime
56
+ updated_at: datetime.datetime
57
+ edited_at: datetime.datetime
58
+ metrics: "MemoryMetrics"
59
+ lookup_score: float
60
+ score: float
61
+ prediction_id: str
62
+ attention_weight: float
63
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
64
+
65
+ def to_dict(self) -> dict[str, Any]:
66
+ value: str
67
+ value = self.value
68
+
69
+ embedding = self.embedding
70
+
71
+ source_id: Union[None, str]
72
+ source_id = self.source_id
73
+
74
+ metadata = self.metadata.to_dict()
75
+
76
+ memory_id = self.memory_id
77
+
78
+ memory_version = self.memory_version
79
+
80
+ created_at = self.created_at.isoformat()
81
+
82
+ updated_at = self.updated_at.isoformat()
83
+
84
+ edited_at = self.edited_at.isoformat()
85
+
86
+ metrics = self.metrics.to_dict()
87
+
88
+ lookup_score = self.lookup_score
89
+
90
+ score = self.score
91
+
92
+ prediction_id = self.prediction_id
93
+
94
+ attention_weight = self.attention_weight
95
+
96
+ field_dict: dict[str, Any] = {}
97
+ field_dict.update(self.additional_properties)
98
+ field_dict.update(
99
+ {
100
+ "value": value,
101
+ "embedding": embedding,
102
+ "source_id": source_id,
103
+ "metadata": metadata,
104
+ "memory_id": memory_id,
105
+ "memory_version": memory_version,
106
+ "created_at": created_at,
107
+ "updated_at": updated_at,
108
+ "edited_at": edited_at,
109
+ "metrics": metrics,
110
+ "lookup_score": lookup_score,
111
+ "score": score,
112
+ "prediction_id": prediction_id,
113
+ "attention_weight": attention_weight,
114
+ }
115
+ )
116
+
117
+ return field_dict
118
+
119
+ @classmethod
120
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
121
+ from ..models.memory_metrics import MemoryMetrics
122
+ from ..models.score_prediction_memory_lookup_metadata import ScorePredictionMemoryLookupMetadata
123
+
124
+ d = src_dict.copy()
125
+
126
+ def _parse_value(data: object) -> str:
127
+ return cast(str, data)
128
+
129
+ value = _parse_value(d.pop("value"))
130
+
131
+ embedding = cast(List[float], d.pop("embedding"))
132
+
133
+ def _parse_source_id(data: object) -> Union[None, str]:
134
+ if data is None:
135
+ return data
136
+ return cast(Union[None, str], data)
137
+
138
+ source_id = _parse_source_id(d.pop("source_id"))
139
+
140
+ metadata = ScorePredictionMemoryLookupMetadata.from_dict(d.pop("metadata"))
141
+
142
+ memory_id = d.pop("memory_id")
143
+
144
+ memory_version = d.pop("memory_version")
145
+
146
+ created_at = isoparse(d.pop("created_at"))
147
+
148
+ updated_at = isoparse(d.pop("updated_at"))
149
+
150
+ edited_at = isoparse(d.pop("edited_at"))
151
+
152
+ metrics = MemoryMetrics.from_dict(d.pop("metrics"))
153
+
154
+ lookup_score = d.pop("lookup_score")
155
+
156
+ score = d.pop("score")
157
+
158
+ prediction_id = d.pop("prediction_id")
159
+
160
+ attention_weight = d.pop("attention_weight")
161
+
162
+ score_prediction_memory_lookup = cls(
163
+ value=value,
164
+ embedding=embedding,
165
+ source_id=source_id,
166
+ metadata=metadata,
167
+ memory_id=memory_id,
168
+ memory_version=memory_version,
169
+ created_at=created_at,
170
+ updated_at=updated_at,
171
+ edited_at=edited_at,
172
+ metrics=metrics,
173
+ lookup_score=lookup_score,
174
+ score=score,
175
+ prediction_id=prediction_id,
176
+ attention_weight=attention_weight,
177
+ )
178
+
179
+ score_prediction_memory_lookup.additional_properties = d
180
+ return score_prediction_memory_lookup
181
+
182
+ @property
183
+ def additional_keys(self) -> list[str]:
184
+ return list(self.additional_properties.keys())
185
+
186
+ def __getitem__(self, key: str) -> Any:
187
+ return self.additional_properties[key]
188
+
189
+ def __setitem__(self, key: str, value: Any) -> None:
190
+ self.additional_properties[key] = value
191
+
192
+ def __delitem__(self, key: str) -> None:
193
+ del self.additional_properties[key]
194
+
195
+ def __contains__(self, key: str) -> bool:
196
+ return key in self.additional_properties
@@ -0,0 +1,68 @@
1
+ """
2
+ This file is generated by the openapi-python-client tool via the generate_api_client.py script
3
+
4
+ It is a customized template from the openapi-python-client tool's default template:
5
+ https://github.com/openapi-generators/openapi-python-client/blob/861ef5622f10fc96d240dc9becb0edf94e61446c/openapi_python_client/templates/model.py.jinja
6
+
7
+ The main change is:
8
+ - Fix typing issues
9
+ """
10
+
11
+ # flake8: noqa: C901
12
+
13
+ from typing import Any, Type, TypeVar, Union, cast
14
+
15
+ from attrs import define as _attrs_define
16
+ from attrs import field as _attrs_field
17
+
18
+ T = TypeVar("T", bound="ScorePredictionMemoryLookupMetadata")
19
+
20
+
21
+ @_attrs_define
22
+ class ScorePredictionMemoryLookupMetadata:
23
+ """ """
24
+
25
+ additional_properties: dict[str, Union[None, bool, float, int, str]] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ field_dict: dict[str, Any] = {}
29
+ for prop_name, prop in self.additional_properties.items():
30
+ field_dict[prop_name] = prop
31
+
32
+ return field_dict
33
+
34
+ @classmethod
35
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
36
+ d = src_dict.copy()
37
+ score_prediction_memory_lookup_metadata = cls()
38
+
39
+ additional_properties = {}
40
+ for prop_name, prop_dict in d.items():
41
+
42
+ def _parse_additional_property(data: object) -> Union[None, bool, float, int, str]:
43
+ if data is None:
44
+ return data
45
+ return cast(Union[None, bool, float, int, str], data)
46
+
47
+ additional_property = _parse_additional_property(prop_dict)
48
+
49
+ additional_properties[prop_name] = additional_property
50
+
51
+ score_prediction_memory_lookup_metadata.additional_properties = additional_properties
52
+ return score_prediction_memory_lookup_metadata
53
+
54
+ @property
55
+ def additional_keys(self) -> list[str]:
56
+ return list(self.additional_properties.keys())
57
+
58
+ def __getitem__(self, key: str) -> Union[None, bool, float, int, str]:
59
+ return self.additional_properties[key]
60
+
61
+ def __setitem__(self, key: str, value: Union[None, bool, float, int, str]) -> None:
62
+ self.additional_properties[key] = value
63
+
64
+ def __delitem__(self, key: str) -> None:
65
+ del self.additional_properties[key]
66
+
67
+ def __contains__(self, key: str) -> bool:
68
+ return key in self.additional_properties
@@ -0,0 +1,252 @@
1
+ """
2
+ This file is generated by the openapi-python-client tool via the generate_api_client.py script
3
+
4
+ It is a customized template from the openapi-python-client tool's default template:
5
+ https://github.com/openapi-generators/openapi-python-client/blob/861ef5622f10fc96d240dc9becb0edf94e61446c/openapi_python_client/templates/model.py.jinja
6
+
7
+ The main change is:
8
+ - Fix typing issues
9
+ """
10
+
11
+ # flake8: noqa: C901
12
+
13
+ import datetime
14
+ from typing import TYPE_CHECKING, Any, List, Type, TypeVar, Union, cast
15
+
16
+ from attrs import define as _attrs_define
17
+ from attrs import field as _attrs_field
18
+ from dateutil.parser import isoparse
19
+
20
+ if TYPE_CHECKING:
21
+ from ..models.prediction_feedback import PredictionFeedback
22
+ from ..models.score_prediction_memory_lookup import ScorePredictionMemoryLookup
23
+
24
+
25
+ T = TypeVar("T", bound="ScorePredictionWithMemoriesAndFeedback")
26
+
27
+
28
+ @_attrs_define
29
+ class ScorePredictionWithMemoriesAndFeedback:
30
+ """
31
+ Attributes:
32
+ prediction_id (str):
33
+ confidence (float):
34
+ anomaly_score (Union[None, float]):
35
+ score (float):
36
+ timestamp (datetime.datetime):
37
+ input_value (str):
38
+ input_embedding (List[float]):
39
+ expected_score (Union[None, float]):
40
+ memories (List['ScorePredictionMemoryLookup']):
41
+ org_id (str):
42
+ memoryset_id (str):
43
+ model_id (str):
44
+ updated_at (datetime.datetime):
45
+ tags (List[str]):
46
+ explanation (Union[None, str]):
47
+ memory_id (Union[None, str]):
48
+ feedbacks (List['PredictionFeedback']):
49
+ """
50
+
51
+ prediction_id: str
52
+ confidence: float
53
+ anomaly_score: Union[None, float]
54
+ score: float
55
+ timestamp: datetime.datetime
56
+ input_value: str
57
+ input_embedding: List[float]
58
+ expected_score: Union[None, float]
59
+ memories: List["ScorePredictionMemoryLookup"]
60
+ org_id: str
61
+ memoryset_id: str
62
+ model_id: str
63
+ updated_at: datetime.datetime
64
+ tags: List[str]
65
+ explanation: Union[None, str]
66
+ memory_id: Union[None, str]
67
+ feedbacks: List["PredictionFeedback"]
68
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
69
+
70
+ def to_dict(self) -> dict[str, Any]:
71
+ prediction_id = self.prediction_id
72
+
73
+ confidence = self.confidence
74
+
75
+ anomaly_score: Union[None, float]
76
+ anomaly_score = self.anomaly_score
77
+
78
+ score = self.score
79
+
80
+ timestamp = self.timestamp.isoformat()
81
+
82
+ input_value: str
83
+ input_value = self.input_value
84
+
85
+ input_embedding = self.input_embedding
86
+
87
+ expected_score: Union[None, float]
88
+ expected_score = self.expected_score
89
+
90
+ memories = []
91
+ for memories_item_data in self.memories:
92
+ memories_item = memories_item_data.to_dict()
93
+ memories.append(memories_item)
94
+
95
+ org_id = self.org_id
96
+
97
+ memoryset_id = self.memoryset_id
98
+
99
+ model_id = self.model_id
100
+
101
+ updated_at = self.updated_at.isoformat()
102
+
103
+ tags = self.tags
104
+
105
+ explanation: Union[None, str]
106
+ explanation = self.explanation
107
+
108
+ memory_id: Union[None, str]
109
+ memory_id = self.memory_id
110
+
111
+ feedbacks = []
112
+ for feedbacks_item_data in self.feedbacks:
113
+ feedbacks_item = feedbacks_item_data.to_dict()
114
+ feedbacks.append(feedbacks_item)
115
+
116
+ field_dict: dict[str, Any] = {}
117
+ field_dict.update(self.additional_properties)
118
+ field_dict.update(
119
+ {
120
+ "prediction_id": prediction_id,
121
+ "confidence": confidence,
122
+ "anomaly_score": anomaly_score,
123
+ "score": score,
124
+ "timestamp": timestamp,
125
+ "input_value": input_value,
126
+ "input_embedding": input_embedding,
127
+ "expected_score": expected_score,
128
+ "memories": memories,
129
+ "org_id": org_id,
130
+ "memoryset_id": memoryset_id,
131
+ "model_id": model_id,
132
+ "updated_at": updated_at,
133
+ "tags": tags,
134
+ "explanation": explanation,
135
+ "memory_id": memory_id,
136
+ "feedbacks": feedbacks,
137
+ }
138
+ )
139
+
140
+ return field_dict
141
+
142
+ @classmethod
143
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
144
+ from ..models.prediction_feedback import PredictionFeedback
145
+ from ..models.score_prediction_memory_lookup import ScorePredictionMemoryLookup
146
+
147
+ d = src_dict.copy()
148
+ prediction_id = d.pop("prediction_id")
149
+
150
+ confidence = d.pop("confidence")
151
+
152
+ def _parse_anomaly_score(data: object) -> Union[None, float]:
153
+ if data is None:
154
+ return data
155
+ return cast(Union[None, float], data)
156
+
157
+ anomaly_score = _parse_anomaly_score(d.pop("anomaly_score"))
158
+
159
+ score = d.pop("score")
160
+
161
+ timestamp = isoparse(d.pop("timestamp"))
162
+
163
+ def _parse_input_value(data: object) -> str:
164
+ return cast(str, data)
165
+
166
+ input_value = _parse_input_value(d.pop("input_value"))
167
+
168
+ input_embedding = cast(List[float], d.pop("input_embedding"))
169
+
170
+ def _parse_expected_score(data: object) -> Union[None, float]:
171
+ if data is None:
172
+ return data
173
+ return cast(Union[None, float], data)
174
+
175
+ expected_score = _parse_expected_score(d.pop("expected_score"))
176
+
177
+ memories = []
178
+ _memories = d.pop("memories")
179
+ for memories_item_data in _memories:
180
+ memories_item = ScorePredictionMemoryLookup.from_dict(memories_item_data)
181
+
182
+ memories.append(memories_item)
183
+
184
+ org_id = d.pop("org_id")
185
+
186
+ memoryset_id = d.pop("memoryset_id")
187
+
188
+ model_id = d.pop("model_id")
189
+
190
+ updated_at = isoparse(d.pop("updated_at"))
191
+
192
+ tags = cast(List[str], d.pop("tags"))
193
+
194
+ def _parse_explanation(data: object) -> Union[None, str]:
195
+ if data is None:
196
+ return data
197
+ return cast(Union[None, str], data)
198
+
199
+ explanation = _parse_explanation(d.pop("explanation"))
200
+
201
+ def _parse_memory_id(data: object) -> Union[None, str]:
202
+ if data is None:
203
+ return data
204
+ return cast(Union[None, str], data)
205
+
206
+ memory_id = _parse_memory_id(d.pop("memory_id"))
207
+
208
+ feedbacks = []
209
+ _feedbacks = d.pop("feedbacks")
210
+ for feedbacks_item_data in _feedbacks:
211
+ feedbacks_item = PredictionFeedback.from_dict(feedbacks_item_data)
212
+
213
+ feedbacks.append(feedbacks_item)
214
+
215
+ score_prediction_with_memories_and_feedback = cls(
216
+ prediction_id=prediction_id,
217
+ confidence=confidence,
218
+ anomaly_score=anomaly_score,
219
+ score=score,
220
+ timestamp=timestamp,
221
+ input_value=input_value,
222
+ input_embedding=input_embedding,
223
+ expected_score=expected_score,
224
+ memories=memories,
225
+ org_id=org_id,
226
+ memoryset_id=memoryset_id,
227
+ model_id=model_id,
228
+ updated_at=updated_at,
229
+ tags=tags,
230
+ explanation=explanation,
231
+ memory_id=memory_id,
232
+ feedbacks=feedbacks,
233
+ )
234
+
235
+ score_prediction_with_memories_and_feedback.additional_properties = d
236
+ return score_prediction_with_memories_and_feedback
237
+
238
+ @property
239
+ def additional_keys(self) -> list[str]:
240
+ return list(self.additional_properties.keys())
241
+
242
+ def __getitem__(self, key: str) -> Any:
243
+ return self.additional_properties[key]
244
+
245
+ def __setitem__(self, key: str, value: Any) -> None:
246
+ self.additional_properties[key] = value
247
+
248
+ def __delitem__(self, key: str) -> None:
249
+ del self.additional_properties[key]
250
+
251
+ def __contains__(self, key: str) -> bool:
252
+ return key in self.additional_properties