orca-sdk 0.0.94__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 (116) hide show
  1. orca_sdk/__init__.py +13 -4
  2. orca_sdk/_generated_api_client/api/__init__.py +80 -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 +24 -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/telemetry/get_prediction_telemetry_prediction_prediction_id_get.py +35 -12
  42. orca_sdk/_generated_api_client/api/telemetry/list_memories_with_feedback_telemetry_memories_post.py +20 -12
  43. orca_sdk/_generated_api_client/api/telemetry/list_predictions_telemetry_prediction_post.py +35 -12
  44. orca_sdk/_generated_api_client/models/__init__.py +84 -24
  45. orca_sdk/_generated_api_client/models/base_score_prediction_result.py +108 -0
  46. orca_sdk/_generated_api_client/models/{evaluation_request.py → classification_evaluation_request.py} +13 -45
  47. orca_sdk/_generated_api_client/models/{classification_evaluation_result.py → classification_metrics.py} +106 -56
  48. orca_sdk/_generated_api_client/models/{rac_model_metadata.py → classification_model_metadata.py} +51 -43
  49. orca_sdk/_generated_api_client/models/{prediction_request.py → classification_prediction_request.py} +31 -6
  50. orca_sdk/_generated_api_client/models/{clone_labeled_memoryset_request.py → clone_memoryset_request.py} +5 -5
  51. orca_sdk/_generated_api_client/models/column_info.py +31 -0
  52. orca_sdk/_generated_api_client/models/{create_rac_model_request.py → create_classification_model_request.py} +25 -57
  53. orca_sdk/_generated_api_client/models/{create_labeled_memoryset_request.py → create_memoryset_request.py} +73 -56
  54. orca_sdk/_generated_api_client/models/create_memoryset_request_index_params.py +66 -0
  55. orca_sdk/_generated_api_client/models/create_memoryset_request_index_type.py +13 -0
  56. orca_sdk/_generated_api_client/models/create_regression_model_request.py +137 -0
  57. orca_sdk/_generated_api_client/models/embedding_evaluation_payload.py +187 -0
  58. orca_sdk/_generated_api_client/models/embedding_evaluation_response.py +10 -0
  59. orca_sdk/_generated_api_client/models/evaluation_response.py +22 -9
  60. orca_sdk/_generated_api_client/models/evaluation_response_classification_metrics.py +140 -0
  61. orca_sdk/_generated_api_client/models/evaluation_response_regression_metrics.py +140 -0
  62. orca_sdk/_generated_api_client/models/memory_type.py +9 -0
  63. orca_sdk/_generated_api_client/models/{labeled_memoryset_metadata.py → memoryset_metadata.py} +73 -13
  64. orca_sdk/_generated_api_client/models/memoryset_metadata_index_params.py +55 -0
  65. orca_sdk/_generated_api_client/models/memoryset_metadata_index_type.py +13 -0
  66. orca_sdk/_generated_api_client/models/{labeled_memoryset_update.py → memoryset_update.py} +19 -31
  67. orca_sdk/_generated_api_client/models/not_found_error_response_resource_type_0.py +1 -0
  68. 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
  69. orca_sdk/_generated_api_client/models/{precision_recall_curve.py → pr_curve.py} +5 -13
  70. orca_sdk/_generated_api_client/models/{rac_model_update.py → predictive_model_update.py} +14 -5
  71. orca_sdk/_generated_api_client/models/pretrained_embedding_model_metadata.py +11 -1
  72. orca_sdk/_generated_api_client/models/rar_head_type.py +8 -0
  73. orca_sdk/_generated_api_client/models/regression_evaluation_request.py +148 -0
  74. orca_sdk/_generated_api_client/models/regression_metrics.py +172 -0
  75. orca_sdk/_generated_api_client/models/regression_model_metadata.py +177 -0
  76. orca_sdk/_generated_api_client/models/regression_prediction_request.py +195 -0
  77. orca_sdk/_generated_api_client/models/roc_curve.py +0 -8
  78. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup.py +196 -0
  79. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup_metadata.py +68 -0
  80. orca_sdk/_generated_api_client/models/score_prediction_with_memories_and_feedback.py +252 -0
  81. orca_sdk/_generated_api_client/models/scored_memory.py +172 -0
  82. orca_sdk/_generated_api_client/models/scored_memory_insert.py +128 -0
  83. orca_sdk/_generated_api_client/models/scored_memory_insert_metadata.py +68 -0
  84. orca_sdk/_generated_api_client/models/scored_memory_lookup.py +180 -0
  85. orca_sdk/_generated_api_client/models/scored_memory_lookup_metadata.py +68 -0
  86. orca_sdk/_generated_api_client/models/scored_memory_metadata.py +68 -0
  87. orca_sdk/_generated_api_client/models/scored_memory_update.py +171 -0
  88. orca_sdk/_generated_api_client/models/scored_memory_update_metadata_type_0.py +68 -0
  89. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics.py +193 -0
  90. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_feedback_metrics.py +68 -0
  91. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_metadata.py +68 -0
  92. orca_sdk/_generated_api_client/models/update_prediction_request.py +20 -0
  93. orca_sdk/_shared/__init__.py +9 -1
  94. orca_sdk/_shared/metrics.py +257 -87
  95. orca_sdk/_shared/metrics_test.py +136 -77
  96. orca_sdk/_utils/data_parsing.py +0 -3
  97. orca_sdk/_utils/data_parsing_test.py +0 -3
  98. orca_sdk/_utils/prediction_result_ui.py +55 -23
  99. orca_sdk/classification_model.py +183 -175
  100. orca_sdk/classification_model_test.py +147 -157
  101. orca_sdk/conftest.py +76 -26
  102. orca_sdk/datasource_test.py +0 -1
  103. orca_sdk/embedding_model.py +136 -14
  104. orca_sdk/embedding_model_test.py +10 -6
  105. orca_sdk/job.py +329 -0
  106. orca_sdk/job_test.py +48 -0
  107. orca_sdk/memoryset.py +882 -161
  108. orca_sdk/memoryset_test.py +56 -23
  109. orca_sdk/regression_model.py +647 -0
  110. orca_sdk/regression_model_test.py +338 -0
  111. orca_sdk/telemetry.py +223 -106
  112. orca_sdk/telemetry_test.py +34 -30
  113. {orca_sdk-0.0.94.dist-info → orca_sdk-0.0.95.dist-info}/METADATA +2 -4
  114. {orca_sdk-0.0.94.dist-info → orca_sdk-0.0.95.dist-info}/RECORD +115 -69
  115. orca_sdk/_utils/task.py +0 -73
  116. {orca_sdk-0.0.94.dist-info → orca_sdk-0.0.95.dist-info}/WHEEL +0 -0
@@ -0,0 +1,195 @@
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, List, Type, TypeVar, Union, cast
14
+
15
+ from attrs import define as _attrs_define
16
+ from attrs import field as _attrs_field
17
+
18
+ from ..types import UNSET, Unset
19
+
20
+ T = TypeVar("T", bound="RegressionPredictionRequest")
21
+
22
+
23
+ @_attrs_define
24
+ class RegressionPredictionRequest:
25
+ """
26
+ Attributes:
27
+ input_values (List[str]):
28
+ expected_scores (Union[List[float], None, Unset]):
29
+ tags (Union[Unset, List[str]]):
30
+ memoryset_override_id (Union[None, Unset, str]):
31
+ save_telemetry (Union[Unset, bool]): Default: True.
32
+ save_telemetry_synchronously (Union[Unset, bool]): Default: False.
33
+ """
34
+
35
+ input_values: List[str]
36
+ expected_scores: Union[List[float], None, Unset] = UNSET
37
+ tags: Union[Unset, List[str]] = UNSET
38
+ memoryset_override_id: Union[None, Unset, str] = UNSET
39
+ save_telemetry: Union[Unset, bool] = True
40
+ save_telemetry_synchronously: Union[Unset, bool] = False
41
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
+
43
+ def to_dict(self) -> dict[str, Any]:
44
+ input_values: List[str]
45
+ if isinstance(self.input_values, list):
46
+ input_values = self.input_values
47
+
48
+ expected_scores: Union[List[float], None, Unset]
49
+ if isinstance(self.expected_scores, Unset):
50
+ expected_scores = UNSET
51
+ elif isinstance(self.expected_scores, list):
52
+ expected_scores = self.expected_scores
53
+
54
+ else:
55
+ expected_scores = self.expected_scores
56
+
57
+ tags: Union[Unset, List[str]] = UNSET
58
+ if not isinstance(self.tags, Unset):
59
+ tags = self.tags
60
+
61
+ memoryset_override_id: Union[None, Unset, str]
62
+ if isinstance(self.memoryset_override_id, Unset):
63
+ memoryset_override_id = UNSET
64
+ else:
65
+ memoryset_override_id = self.memoryset_override_id
66
+
67
+ save_telemetry = self.save_telemetry
68
+
69
+ save_telemetry_synchronously = self.save_telemetry_synchronously
70
+
71
+ field_dict: dict[str, Any] = {}
72
+ field_dict.update(self.additional_properties)
73
+ field_dict.update(
74
+ {
75
+ "input_values": input_values,
76
+ }
77
+ )
78
+ if expected_scores is not UNSET:
79
+ field_dict["expected_scores"] = expected_scores
80
+ if tags is not UNSET:
81
+ field_dict["tags"] = tags
82
+ if memoryset_override_id is not UNSET:
83
+ field_dict["memoryset_override_id"] = memoryset_override_id
84
+ if save_telemetry is not UNSET:
85
+ field_dict["save_telemetry"] = save_telemetry
86
+ if save_telemetry_synchronously is not UNSET:
87
+ field_dict["save_telemetry_synchronously"] = save_telemetry_synchronously
88
+
89
+ return field_dict
90
+
91
+ @classmethod
92
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
93
+ d = src_dict.copy()
94
+
95
+ def _parse_input_values(data: object) -> List[str]:
96
+ try:
97
+ if not isinstance(data, list):
98
+ raise TypeError()
99
+ input_values_type_0 = cast(List[str], data)
100
+
101
+ return input_values_type_0
102
+ except: # noqa: E722
103
+ pass
104
+ try:
105
+ if not isinstance(data, list):
106
+ raise TypeError()
107
+ input_values_type_1 = cast(List[str], data)
108
+
109
+ return input_values_type_1
110
+ except: # noqa: E722
111
+ pass
112
+ try:
113
+ if not isinstance(data, list):
114
+ raise TypeError()
115
+ input_values_type_2 = cast(List[str], data)
116
+
117
+ return input_values_type_2
118
+ except: # noqa: E722
119
+ pass
120
+ if not isinstance(data, list):
121
+ raise TypeError()
122
+ input_values_type_3 = []
123
+ _input_values_type_3 = data
124
+ for input_values_type_3_item_data in _input_values_type_3:
125
+
126
+ def _parse_input_values_type_3_item(data: object) -> str:
127
+ return cast(str, data)
128
+
129
+ input_values_type_3_item = _parse_input_values_type_3_item(input_values_type_3_item_data)
130
+
131
+ input_values_type_3.append(input_values_type_3_item)
132
+
133
+ return input_values_type_3
134
+
135
+ input_values = _parse_input_values(d.pop("input_values"))
136
+
137
+ def _parse_expected_scores(data: object) -> Union[List[float], None, Unset]:
138
+ if data is None:
139
+ return data
140
+ if isinstance(data, Unset):
141
+ return data
142
+ try:
143
+ if not isinstance(data, list):
144
+ raise TypeError()
145
+ expected_scores_type_0 = cast(List[float], data)
146
+
147
+ return expected_scores_type_0
148
+ except: # noqa: E722
149
+ pass
150
+ return cast(Union[List[float], None, Unset], data)
151
+
152
+ expected_scores = _parse_expected_scores(d.pop("expected_scores", UNSET))
153
+
154
+ tags = cast(List[str], d.pop("tags", UNSET))
155
+
156
+ def _parse_memoryset_override_id(data: object) -> Union[None, Unset, str]:
157
+ if data is None:
158
+ return data
159
+ if isinstance(data, Unset):
160
+ return data
161
+ return cast(Union[None, Unset, str], data)
162
+
163
+ memoryset_override_id = _parse_memoryset_override_id(d.pop("memoryset_override_id", UNSET))
164
+
165
+ save_telemetry = d.pop("save_telemetry", UNSET)
166
+
167
+ save_telemetry_synchronously = d.pop("save_telemetry_synchronously", UNSET)
168
+
169
+ regression_prediction_request = cls(
170
+ input_values=input_values,
171
+ expected_scores=expected_scores,
172
+ tags=tags,
173
+ memoryset_override_id=memoryset_override_id,
174
+ save_telemetry=save_telemetry,
175
+ save_telemetry_synchronously=save_telemetry_synchronously,
176
+ )
177
+
178
+ regression_prediction_request.additional_properties = d
179
+ return regression_prediction_request
180
+
181
+ @property
182
+ def additional_keys(self) -> list[str]:
183
+ return list(self.additional_properties.keys())
184
+
185
+ def __getitem__(self, key: str) -> Any:
186
+ return self.additional_properties[key]
187
+
188
+ def __setitem__(self, key: str, value: Any) -> None:
189
+ self.additional_properties[key] = value
190
+
191
+ def __delitem__(self, key: str) -> None:
192
+ del self.additional_properties[key]
193
+
194
+ def __contains__(self, key: str) -> bool:
195
+ return key in self.additional_properties
@@ -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