orca-sdk 0.0.94__py3-none-any.whl → 0.0.96__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_gpu_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_gpu_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 -172
  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 +337 -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.96.dist-info}/METADATA +2 -4
  114. {orca_sdk-0.0.94.dist-info → orca_sdk-0.0.96.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.96.dist-info}/WHEEL +0 -0
@@ -17,17 +17,19 @@ from attrs import field as _attrs_field
17
17
 
18
18
  from ..types import UNSET, Unset
19
19
 
20
- T = TypeVar("T", bound="RACModelUpdate")
20
+ T = TypeVar("T", bound="PredictiveModelUpdate")
21
21
 
22
22
 
23
23
  @_attrs_define
24
- class RACModelUpdate:
24
+ class PredictiveModelUpdate:
25
25
  """
26
26
  Attributes:
27
27
  description (Union[None, Unset, str]):
28
+ locked (Union[Unset, bool]):
28
29
  """
29
30
 
30
31
  description: Union[None, Unset, str] = UNSET
32
+ locked: Union[Unset, bool] = UNSET
31
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
34
 
33
35
  def to_dict(self) -> dict[str, Any]:
@@ -37,11 +39,15 @@ class RACModelUpdate:
37
39
  else:
38
40
  description = self.description
39
41
 
42
+ locked = self.locked
43
+
40
44
  field_dict: dict[str, Any] = {}
41
45
  field_dict.update(self.additional_properties)
42
46
  field_dict.update({})
43
47
  if description is not UNSET:
44
48
  field_dict["description"] = description
49
+ if locked is not UNSET:
50
+ field_dict["locked"] = locked
45
51
 
46
52
  return field_dict
47
53
 
@@ -58,12 +64,15 @@ class RACModelUpdate:
58
64
 
59
65
  description = _parse_description(d.pop("description", UNSET))
60
66
 
61
- rac_model_update = cls(
67
+ locked = d.pop("locked", UNSET)
68
+
69
+ predictive_model_update = cls(
62
70
  description=description,
71
+ locked=locked,
63
72
  )
64
73
 
65
- rac_model_update.additional_properties = d
66
- return rac_model_update
74
+ predictive_model_update.additional_properties = d
75
+ return predictive_model_update
67
76
 
68
77
  @property
69
78
  def additional_keys(self) -> list[str]:
@@ -11,12 +11,13 @@ The main change is:
11
11
  # flake8: noqa: C901
12
12
 
13
13
  from enum import Enum
14
- from typing import Any, Type, TypeVar
14
+ from typing import Any, Type, TypeVar, Union
15
15
 
16
16
  from attrs import define as _attrs_define
17
17
  from attrs import field as _attrs_field
18
18
 
19
19
  from ..models.pretrained_embedding_model_name import PretrainedEmbeddingModelName
20
+ from ..types import UNSET, Unset
20
21
 
21
22
  T = TypeVar("T", bound="PretrainedEmbeddingModelMetadata")
22
23
 
@@ -29,12 +30,14 @@ class PretrainedEmbeddingModelMetadata:
29
30
  max_seq_length (int):
30
31
  uses_context (bool):
31
32
  name (PretrainedEmbeddingModelName): Names of pretrained embedding models that are supported by OrcaCloud
33
+ experimental (Union[Unset, bool]): Default: False.
32
34
  """
33
35
 
34
36
  embedding_dim: int
35
37
  max_seq_length: int
36
38
  uses_context: bool
37
39
  name: PretrainedEmbeddingModelName
40
+ experimental: Union[Unset, bool] = False
38
41
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
42
 
40
43
  def to_dict(self) -> dict[str, Any]:
@@ -46,6 +49,8 @@ class PretrainedEmbeddingModelMetadata:
46
49
 
47
50
  name = self.name.value if isinstance(self.name, Enum) else self.name
48
51
 
52
+ experimental = self.experimental
53
+
49
54
  field_dict: dict[str, Any] = {}
50
55
  field_dict.update(self.additional_properties)
51
56
  field_dict.update(
@@ -56,6 +61,8 @@ class PretrainedEmbeddingModelMetadata:
56
61
  "name": name,
57
62
  }
58
63
  )
64
+ if experimental is not UNSET:
65
+ field_dict["experimental"] = experimental
59
66
 
60
67
  return field_dict
61
68
 
@@ -70,11 +77,14 @@ class PretrainedEmbeddingModelMetadata:
70
77
 
71
78
  name = PretrainedEmbeddingModelName(d.pop("name"))
72
79
 
80
+ experimental = d.pop("experimental", UNSET)
81
+
73
82
  pretrained_embedding_model_metadata = cls(
74
83
  embedding_dim=embedding_dim,
75
84
  max_seq_length=max_seq_length,
76
85
  uses_context=uses_context,
77
86
  name=name,
87
+ experimental=experimental,
78
88
  )
79
89
 
80
90
  pretrained_embedding_model_metadata.additional_properties = d
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class RARHeadType(str, Enum):
5
+ MMOE = "MMOE"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,148 @@
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="RegressionEvaluationRequest")
21
+
22
+
23
+ @_attrs_define
24
+ class RegressionEvaluationRequest:
25
+ """
26
+ Attributes:
27
+ datasource_id (str):
28
+ datasource_score_column (str):
29
+ datasource_value_column (str):
30
+ memoryset_override_id (Union[None, Unset, str]):
31
+ record_telemetry (Union[Unset, bool]): Default: False.
32
+ telemetry_tags (Union[List[str], None, Unset]):
33
+ """
34
+
35
+ datasource_id: str
36
+ datasource_score_column: str
37
+ datasource_value_column: str
38
+ memoryset_override_id: Union[None, Unset, str] = UNSET
39
+ record_telemetry: Union[Unset, bool] = False
40
+ telemetry_tags: Union[List[str], None, Unset] = UNSET
41
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
+
43
+ def to_dict(self) -> dict[str, Any]:
44
+ datasource_id = self.datasource_id
45
+
46
+ datasource_score_column = self.datasource_score_column
47
+
48
+ datasource_value_column = self.datasource_value_column
49
+
50
+ memoryset_override_id: Union[None, Unset, str]
51
+ if isinstance(self.memoryset_override_id, Unset):
52
+ memoryset_override_id = UNSET
53
+ else:
54
+ memoryset_override_id = self.memoryset_override_id
55
+
56
+ record_telemetry = self.record_telemetry
57
+
58
+ telemetry_tags: Union[List[str], None, Unset]
59
+ if isinstance(self.telemetry_tags, Unset):
60
+ telemetry_tags = UNSET
61
+ elif isinstance(self.telemetry_tags, list):
62
+ telemetry_tags = self.telemetry_tags
63
+
64
+ else:
65
+ telemetry_tags = self.telemetry_tags
66
+
67
+ field_dict: dict[str, Any] = {}
68
+ field_dict.update(self.additional_properties)
69
+ field_dict.update(
70
+ {
71
+ "datasource_id": datasource_id,
72
+ "datasource_score_column": datasource_score_column,
73
+ "datasource_value_column": datasource_value_column,
74
+ }
75
+ )
76
+ if memoryset_override_id is not UNSET:
77
+ field_dict["memoryset_override_id"] = memoryset_override_id
78
+ if record_telemetry is not UNSET:
79
+ field_dict["record_telemetry"] = record_telemetry
80
+ if telemetry_tags is not UNSET:
81
+ field_dict["telemetry_tags"] = telemetry_tags
82
+
83
+ return field_dict
84
+
85
+ @classmethod
86
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
87
+ d = src_dict.copy()
88
+ datasource_id = d.pop("datasource_id")
89
+
90
+ datasource_score_column = d.pop("datasource_score_column")
91
+
92
+ datasource_value_column = d.pop("datasource_value_column")
93
+
94
+ def _parse_memoryset_override_id(data: object) -> Union[None, Unset, str]:
95
+ if data is None:
96
+ return data
97
+ if isinstance(data, Unset):
98
+ return data
99
+ return cast(Union[None, Unset, str], data)
100
+
101
+ memoryset_override_id = _parse_memoryset_override_id(d.pop("memoryset_override_id", UNSET))
102
+
103
+ record_telemetry = d.pop("record_telemetry", UNSET)
104
+
105
+ def _parse_telemetry_tags(data: object) -> Union[List[str], None, Unset]:
106
+ if data is None:
107
+ return data
108
+ if isinstance(data, Unset):
109
+ return data
110
+ try:
111
+ if not isinstance(data, list):
112
+ raise TypeError()
113
+ telemetry_tags_type_0 = cast(List[str], data)
114
+
115
+ return telemetry_tags_type_0
116
+ except: # noqa: E722
117
+ pass
118
+ return cast(Union[List[str], None, Unset], data)
119
+
120
+ telemetry_tags = _parse_telemetry_tags(d.pop("telemetry_tags", UNSET))
121
+
122
+ regression_evaluation_request = cls(
123
+ datasource_id=datasource_id,
124
+ datasource_score_column=datasource_score_column,
125
+ datasource_value_column=datasource_value_column,
126
+ memoryset_override_id=memoryset_override_id,
127
+ record_telemetry=record_telemetry,
128
+ telemetry_tags=telemetry_tags,
129
+ )
130
+
131
+ regression_evaluation_request.additional_properties = d
132
+ return regression_evaluation_request
133
+
134
+ @property
135
+ def additional_keys(self) -> list[str]:
136
+ return list(self.additional_properties.keys())
137
+
138
+ def __getitem__(self, key: str) -> Any:
139
+ return self.additional_properties[key]
140
+
141
+ def __setitem__(self, key: str, value: Any) -> None:
142
+ self.additional_properties[key] = value
143
+
144
+ def __delitem__(self, key: str) -> None:
145
+ del self.additional_properties[key]
146
+
147
+ def __contains__(self, key: str) -> bool:
148
+ return key in self.additional_properties
@@ -0,0 +1,172 @@
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
+ from ..types import UNSET, Unset
19
+
20
+ T = TypeVar("T", bound="RegressionMetrics")
21
+
22
+
23
+ @_attrs_define
24
+ class RegressionMetrics:
25
+ """
26
+ Attributes:
27
+ mse (float):
28
+ rmse (float):
29
+ mae (float):
30
+ r2 (float):
31
+ explained_variance (float):
32
+ loss (float):
33
+ anomaly_score_mean (Union[None, Unset, float]):
34
+ anomaly_score_median (Union[None, Unset, float]):
35
+ anomaly_score_variance (Union[None, Unset, float]):
36
+ """
37
+
38
+ mse: float
39
+ rmse: float
40
+ mae: float
41
+ r2: float
42
+ explained_variance: float
43
+ loss: float
44
+ anomaly_score_mean: Union[None, Unset, float] = UNSET
45
+ anomaly_score_median: Union[None, Unset, float] = UNSET
46
+ anomaly_score_variance: Union[None, Unset, float] = UNSET
47
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
48
+
49
+ def to_dict(self) -> dict[str, Any]:
50
+ mse = self.mse
51
+
52
+ rmse = self.rmse
53
+
54
+ mae = self.mae
55
+
56
+ r2 = self.r2
57
+
58
+ explained_variance = self.explained_variance
59
+
60
+ loss = self.loss
61
+
62
+ anomaly_score_mean: Union[None, Unset, float]
63
+ if isinstance(self.anomaly_score_mean, Unset):
64
+ anomaly_score_mean = UNSET
65
+ else:
66
+ anomaly_score_mean = self.anomaly_score_mean
67
+
68
+ anomaly_score_median: Union[None, Unset, float]
69
+ if isinstance(self.anomaly_score_median, Unset):
70
+ anomaly_score_median = UNSET
71
+ else:
72
+ anomaly_score_median = self.anomaly_score_median
73
+
74
+ anomaly_score_variance: Union[None, Unset, float]
75
+ if isinstance(self.anomaly_score_variance, Unset):
76
+ anomaly_score_variance = UNSET
77
+ else:
78
+ anomaly_score_variance = self.anomaly_score_variance
79
+
80
+ field_dict: dict[str, Any] = {}
81
+ field_dict.update(self.additional_properties)
82
+ field_dict.update(
83
+ {
84
+ "mse": mse,
85
+ "rmse": rmse,
86
+ "mae": mae,
87
+ "r2": r2,
88
+ "explained_variance": explained_variance,
89
+ "loss": loss,
90
+ }
91
+ )
92
+ if anomaly_score_mean is not UNSET:
93
+ field_dict["anomaly_score_mean"] = anomaly_score_mean
94
+ if anomaly_score_median is not UNSET:
95
+ field_dict["anomaly_score_median"] = anomaly_score_median
96
+ if anomaly_score_variance is not UNSET:
97
+ field_dict["anomaly_score_variance"] = anomaly_score_variance
98
+
99
+ return field_dict
100
+
101
+ @classmethod
102
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
103
+ d = src_dict.copy()
104
+ mse = d.pop("mse")
105
+
106
+ rmse = d.pop("rmse")
107
+
108
+ mae = d.pop("mae")
109
+
110
+ r2 = d.pop("r2")
111
+
112
+ explained_variance = d.pop("explained_variance")
113
+
114
+ loss = d.pop("loss")
115
+
116
+ def _parse_anomaly_score_mean(data: object) -> Union[None, Unset, float]:
117
+ if data is None:
118
+ return data
119
+ if isinstance(data, Unset):
120
+ return data
121
+ return cast(Union[None, Unset, float], data)
122
+
123
+ anomaly_score_mean = _parse_anomaly_score_mean(d.pop("anomaly_score_mean", UNSET))
124
+
125
+ def _parse_anomaly_score_median(data: object) -> Union[None, Unset, float]:
126
+ if data is None:
127
+ return data
128
+ if isinstance(data, Unset):
129
+ return data
130
+ return cast(Union[None, Unset, float], data)
131
+
132
+ anomaly_score_median = _parse_anomaly_score_median(d.pop("anomaly_score_median", UNSET))
133
+
134
+ def _parse_anomaly_score_variance(data: object) -> Union[None, Unset, float]:
135
+ if data is None:
136
+ return data
137
+ if isinstance(data, Unset):
138
+ return data
139
+ return cast(Union[None, Unset, float], data)
140
+
141
+ anomaly_score_variance = _parse_anomaly_score_variance(d.pop("anomaly_score_variance", UNSET))
142
+
143
+ regression_metrics = cls(
144
+ mse=mse,
145
+ rmse=rmse,
146
+ mae=mae,
147
+ r2=r2,
148
+ explained_variance=explained_variance,
149
+ loss=loss,
150
+ anomaly_score_mean=anomaly_score_mean,
151
+ anomaly_score_median=anomaly_score_median,
152
+ anomaly_score_variance=anomaly_score_variance,
153
+ )
154
+
155
+ regression_metrics.additional_properties = d
156
+ return regression_metrics
157
+
158
+ @property
159
+ def additional_keys(self) -> list[str]:
160
+ return list(self.additional_properties.keys())
161
+
162
+ def __getitem__(self, key: str) -> Any:
163
+ return self.additional_properties[key]
164
+
165
+ def __setitem__(self, key: str, value: Any) -> None:
166
+ self.additional_properties[key] = value
167
+
168
+ def __delitem__(self, key: str) -> None:
169
+ del self.additional_properties[key]
170
+
171
+ def __contains__(self, key: str) -> bool:
172
+ return key in self.additional_properties
@@ -0,0 +1,177 @@
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 enum import Enum
15
+ from typing import Any, Type, TypeVar, Union, cast
16
+
17
+ from attrs import define as _attrs_define
18
+ from attrs import field as _attrs_field
19
+ from dateutil.parser import isoparse
20
+
21
+ from ..models.rar_head_type import RARHeadType
22
+
23
+ T = TypeVar("T", bound="RegressionModelMetadata")
24
+
25
+
26
+ @_attrs_define
27
+ class RegressionModelMetadata:
28
+ """
29
+ Attributes:
30
+ id (str):
31
+ org_id (str):
32
+ name (str):
33
+ description (Union[None, str]):
34
+ version (int):
35
+ memoryset_id (str):
36
+ memory_lookup_count (int):
37
+ storage_path (str):
38
+ memoryset_collection_name (str):
39
+ created_at (datetime.datetime):
40
+ updated_at (datetime.datetime):
41
+ locked (bool):
42
+ head_type (RARHeadType):
43
+ """
44
+
45
+ id: str
46
+ org_id: str
47
+ name: str
48
+ description: Union[None, str]
49
+ version: int
50
+ memoryset_id: str
51
+ memory_lookup_count: int
52
+ storage_path: str
53
+ memoryset_collection_name: str
54
+ created_at: datetime.datetime
55
+ updated_at: datetime.datetime
56
+ locked: bool
57
+ head_type: RARHeadType
58
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ id = self.id
62
+
63
+ org_id = self.org_id
64
+
65
+ name = self.name
66
+
67
+ description: Union[None, str]
68
+ description = self.description
69
+
70
+ version = self.version
71
+
72
+ memoryset_id = self.memoryset_id
73
+
74
+ memory_lookup_count = self.memory_lookup_count
75
+
76
+ storage_path = self.storage_path
77
+
78
+ memoryset_collection_name = self.memoryset_collection_name
79
+
80
+ created_at = self.created_at.isoformat()
81
+
82
+ updated_at = self.updated_at.isoformat()
83
+
84
+ locked = self.locked
85
+
86
+ head_type = self.head_type.value if isinstance(self.head_type, Enum) else self.head_type
87
+
88
+ field_dict: dict[str, Any] = {}
89
+ field_dict.update(self.additional_properties)
90
+ field_dict.update(
91
+ {
92
+ "id": id,
93
+ "org_id": org_id,
94
+ "name": name,
95
+ "description": description,
96
+ "version": version,
97
+ "memoryset_id": memoryset_id,
98
+ "memory_lookup_count": memory_lookup_count,
99
+ "storage_path": storage_path,
100
+ "memoryset_collection_name": memoryset_collection_name,
101
+ "created_at": created_at,
102
+ "updated_at": updated_at,
103
+ "locked": locked,
104
+ "head_type": head_type,
105
+ }
106
+ )
107
+
108
+ return field_dict
109
+
110
+ @classmethod
111
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
112
+ d = src_dict.copy()
113
+ id = d.pop("id")
114
+
115
+ org_id = d.pop("org_id")
116
+
117
+ name = d.pop("name")
118
+
119
+ def _parse_description(data: object) -> Union[None, str]:
120
+ if data is None:
121
+ return data
122
+ return cast(Union[None, str], data)
123
+
124
+ description = _parse_description(d.pop("description"))
125
+
126
+ version = d.pop("version")
127
+
128
+ memoryset_id = d.pop("memoryset_id")
129
+
130
+ memory_lookup_count = d.pop("memory_lookup_count")
131
+
132
+ storage_path = d.pop("storage_path")
133
+
134
+ memoryset_collection_name = d.pop("memoryset_collection_name")
135
+
136
+ created_at = isoparse(d.pop("created_at"))
137
+
138
+ updated_at = isoparse(d.pop("updated_at"))
139
+
140
+ locked = d.pop("locked")
141
+
142
+ head_type = RARHeadType(d.pop("head_type"))
143
+
144
+ regression_model_metadata = cls(
145
+ id=id,
146
+ org_id=org_id,
147
+ name=name,
148
+ description=description,
149
+ version=version,
150
+ memoryset_id=memoryset_id,
151
+ memory_lookup_count=memory_lookup_count,
152
+ storage_path=storage_path,
153
+ memoryset_collection_name=memoryset_collection_name,
154
+ created_at=created_at,
155
+ updated_at=updated_at,
156
+ locked=locked,
157
+ head_type=head_type,
158
+ )
159
+
160
+ regression_model_metadata.additional_properties = d
161
+ return regression_model_metadata
162
+
163
+ @property
164
+ def additional_keys(self) -> list[str]:
165
+ return list(self.additional_properties.keys())
166
+
167
+ def __getitem__(self, key: str) -> Any:
168
+ return self.additional_properties[key]
169
+
170
+ def __setitem__(self, key: str, value: Any) -> None:
171
+ self.additional_properties[key] = value
172
+
173
+ def __delitem__(self, key: str) -> None:
174
+ del self.additional_properties[key]
175
+
176
+ def __contains__(self, key: str) -> bool:
177
+ return key in self.additional_properties