orca-sdk 0.0.95__py3-none-any.whl → 0.0.97__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 (89) hide show
  1. orca_sdk/__init__.py +1 -5
  2. orca_sdk/_generated_api_client/api/__init__.py +22 -2
  3. orca_sdk/_generated_api_client/api/{datasource/create_datasource_datasource_post.py → auth/create_org_plan_auth_org_plan_post.py} +32 -31
  4. orca_sdk/_generated_api_client/api/auth/get_org_plan_auth_org_plan_get.py +122 -0
  5. orca_sdk/_generated_api_client/api/auth/update_org_plan_auth_org_plan_put.py +168 -0
  6. orca_sdk/_generated_api_client/api/datasource/create_datasource_from_content_datasource_post.py +224 -0
  7. orca_sdk/_generated_api_client/api/datasource/create_datasource_from_files_datasource_upload_post.py +229 -0
  8. orca_sdk/_generated_api_client/api/task/list_tasks_task_get.py +21 -26
  9. orca_sdk/_generated_api_client/api/telemetry/generate_memory_suggestions_telemetry_prediction_prediction_id_memory_suggestions_post.py +239 -0
  10. orca_sdk/_generated_api_client/api/telemetry/get_action_recommendation_telemetry_prediction_prediction_id_action_get.py +192 -0
  11. orca_sdk/_generated_api_client/models/__init__.py +54 -4
  12. orca_sdk/_generated_api_client/models/action_recommendation.py +82 -0
  13. orca_sdk/_generated_api_client/models/action_recommendation_action.py +11 -0
  14. orca_sdk/_generated_api_client/models/add_memory_recommendations.py +85 -0
  15. orca_sdk/_generated_api_client/models/add_memory_suggestion.py +79 -0
  16. orca_sdk/_generated_api_client/models/body_create_datasource_from_files_datasource_upload_post.py +145 -0
  17. orca_sdk/_generated_api_client/models/class_representatives.py +92 -0
  18. orca_sdk/_generated_api_client/models/classification_model_metadata.py +14 -0
  19. orca_sdk/_generated_api_client/models/clone_memoryset_request.py +40 -0
  20. orca_sdk/_generated_api_client/models/constraint_violation_error_response.py +8 -7
  21. orca_sdk/_generated_api_client/models/constraint_violation_error_response_status_code.py +8 -0
  22. orca_sdk/_generated_api_client/models/create_classification_model_request.py +40 -0
  23. orca_sdk/_generated_api_client/models/create_datasource_from_content_request.py +101 -0
  24. orca_sdk/_generated_api_client/models/create_memoryset_request.py +40 -0
  25. orca_sdk/_generated_api_client/models/create_org_plan_request.py +73 -0
  26. orca_sdk/_generated_api_client/models/create_org_plan_request_tier.py +11 -0
  27. orca_sdk/_generated_api_client/models/create_regression_model_request.py +20 -0
  28. orca_sdk/_generated_api_client/models/embed_request.py +20 -0
  29. orca_sdk/_generated_api_client/models/embedding_evaluation_payload.py +28 -10
  30. orca_sdk/_generated_api_client/models/embedding_evaluation_request.py +28 -10
  31. orca_sdk/_generated_api_client/models/embedding_model_result.py +9 -0
  32. orca_sdk/_generated_api_client/models/filter_item.py +31 -23
  33. orca_sdk/_generated_api_client/models/filter_item_field_type_1_item_type_0.py +8 -0
  34. orca_sdk/_generated_api_client/models/filter_item_field_type_2_item_type_0.py +8 -0
  35. orca_sdk/_generated_api_client/models/filter_item_field_type_2_item_type_1.py +2 -0
  36. orca_sdk/_generated_api_client/models/internal_server_error_response.py +8 -7
  37. orca_sdk/_generated_api_client/models/internal_server_error_response_status_code.py +8 -0
  38. orca_sdk/_generated_api_client/models/labeled_memory.py +5 -5
  39. orca_sdk/_generated_api_client/models/labeled_memory_update.py +16 -16
  40. orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics.py +5 -5
  41. orca_sdk/_generated_api_client/models/lookup_request.py +20 -0
  42. orca_sdk/_generated_api_client/models/memory_metrics.py +98 -0
  43. orca_sdk/_generated_api_client/models/memoryset_analysis_configs.py +33 -0
  44. orca_sdk/_generated_api_client/models/memoryset_class_patterns_analysis_config.py +79 -0
  45. orca_sdk/_generated_api_client/models/memoryset_class_patterns_metrics.py +138 -0
  46. orca_sdk/_generated_api_client/models/memoryset_metadata.py +42 -0
  47. orca_sdk/_generated_api_client/models/memoryset_metrics.py +33 -0
  48. orca_sdk/_generated_api_client/models/memoryset_update.py +20 -0
  49. orca_sdk/_generated_api_client/models/not_found_error_response.py +6 -7
  50. orca_sdk/_generated_api_client/models/not_found_error_response_resource_type_0.py +1 -0
  51. orca_sdk/_generated_api_client/models/not_found_error_response_status_code.py +8 -0
  52. orca_sdk/_generated_api_client/models/org_plan.py +99 -0
  53. orca_sdk/_generated_api_client/models/org_plan_tier.py +11 -0
  54. orca_sdk/_generated_api_client/models/paginated_task.py +108 -0
  55. orca_sdk/_generated_api_client/models/predictive_model_update.py +20 -0
  56. orca_sdk/_generated_api_client/models/pretrained_embedding_model_metadata.py +8 -0
  57. orca_sdk/_generated_api_client/models/regression_model_metadata.py +14 -0
  58. orca_sdk/_generated_api_client/models/scored_memory_update.py +9 -9
  59. orca_sdk/_generated_api_client/models/service_unavailable_error_response.py +8 -7
  60. orca_sdk/_generated_api_client/models/service_unavailable_error_response_status_code.py +8 -0
  61. orca_sdk/_generated_api_client/models/telemetry_field_type_0_item_type_0.py +8 -0
  62. orca_sdk/_generated_api_client/models/telemetry_field_type_1_item_type_0.py +8 -0
  63. orca_sdk/_generated_api_client/models/telemetry_field_type_1_item_type_1.py +8 -0
  64. orca_sdk/_generated_api_client/models/telemetry_filter_item.py +42 -30
  65. orca_sdk/_generated_api_client/models/telemetry_sort_options.py +42 -30
  66. orca_sdk/_generated_api_client/models/unauthenticated_error_response.py +8 -7
  67. orca_sdk/_generated_api_client/models/unauthenticated_error_response_status_code.py +8 -0
  68. orca_sdk/_generated_api_client/models/unauthorized_error_response.py +8 -7
  69. orca_sdk/_generated_api_client/models/unauthorized_error_response_status_code.py +8 -0
  70. orca_sdk/_generated_api_client/models/update_org_plan_request.py +73 -0
  71. orca_sdk/_generated_api_client/models/update_org_plan_request_tier.py +11 -0
  72. orca_sdk/_shared/metrics.py +1 -1
  73. orca_sdk/classification_model.py +4 -1
  74. orca_sdk/classification_model_test.py +53 -0
  75. orca_sdk/credentials.py +15 -1
  76. orca_sdk/datasource.py +180 -41
  77. orca_sdk/datasource_test.py +194 -0
  78. orca_sdk/embedding_model.py +51 -13
  79. orca_sdk/embedding_model_test.py +27 -0
  80. orca_sdk/job.py +15 -14
  81. orca_sdk/job_test.py +34 -0
  82. orca_sdk/memoryset.py +47 -7
  83. orca_sdk/regression_model_test.py +0 -1
  84. orca_sdk/telemetry.py +94 -3
  85. {orca_sdk-0.0.95.dist-info → orca_sdk-0.0.97.dist-info}/METADATA +18 -1
  86. {orca_sdk-0.0.95.dist-info → orca_sdk-0.0.97.dist-info}/RECORD +87 -56
  87. orca_sdk/_generated_api_client/models/body_create_datasource_datasource_post.py +0 -207
  88. orca_sdk/_generated_api_client/models/labeled_memory_metrics.py +0 -246
  89. {orca_sdk-0.0.95.dist-info → orca_sdk-0.0.97.dist-info}/WHEEL +0 -0
@@ -0,0 +1,99 @@
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
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.org_plan_tier import OrgPlanTier
22
+
23
+ T = TypeVar("T", bound="OrgPlan")
24
+
25
+
26
+ @_attrs_define
27
+ class OrgPlan:
28
+ """
29
+ Attributes:
30
+ org_id (str):
31
+ created_at (datetime.datetime):
32
+ updated_at (datetime.datetime):
33
+ tier (OrgPlanTier):
34
+ """
35
+
36
+ org_id: str
37
+ created_at: datetime.datetime
38
+ updated_at: datetime.datetime
39
+ tier: OrgPlanTier
40
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
41
+
42
+ def to_dict(self) -> dict[str, Any]:
43
+ org_id = self.org_id
44
+
45
+ created_at = self.created_at.isoformat()
46
+
47
+ updated_at = self.updated_at.isoformat()
48
+
49
+ tier = self.tier.value if isinstance(self.tier, Enum) else self.tier
50
+
51
+ field_dict: dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update(
54
+ {
55
+ "org_id": org_id,
56
+ "created_at": created_at,
57
+ "updated_at": updated_at,
58
+ "tier": tier,
59
+ }
60
+ )
61
+
62
+ return field_dict
63
+
64
+ @classmethod
65
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
66
+ d = src_dict.copy()
67
+ org_id = d.pop("org_id")
68
+
69
+ created_at = isoparse(d.pop("created_at"))
70
+
71
+ updated_at = isoparse(d.pop("updated_at"))
72
+
73
+ tier = OrgPlanTier(d.pop("tier"))
74
+
75
+ org_plan = cls(
76
+ org_id=org_id,
77
+ created_at=created_at,
78
+ updated_at=updated_at,
79
+ tier=tier,
80
+ )
81
+
82
+ org_plan.additional_properties = d
83
+ return org_plan
84
+
85
+ @property
86
+ def additional_keys(self) -> list[str]:
87
+ return list(self.additional_properties.keys())
88
+
89
+ def __getitem__(self, key: str) -> Any:
90
+ return self.additional_properties[key]
91
+
92
+ def __setitem__(self, key: str, value: Any) -> None:
93
+ self.additional_properties[key] = value
94
+
95
+ def __delitem__(self, key: str) -> None:
96
+ del self.additional_properties[key]
97
+
98
+ def __contains__(self, key: str) -> bool:
99
+ return key in self.additional_properties
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class OrgPlanTier(str, Enum):
5
+ CANCELLED = "CANCELLED"
6
+ ENTERPRISE = "ENTERPRISE"
7
+ FREE = "FREE"
8
+ PRO = "PRO"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -0,0 +1,108 @@
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 TYPE_CHECKING, Any, List, Type, TypeVar
14
+
15
+ from attrs import define as _attrs_define
16
+ from attrs import field as _attrs_field
17
+
18
+ if TYPE_CHECKING:
19
+ from ..models.task import Task
20
+
21
+
22
+ T = TypeVar("T", bound="PaginatedTask")
23
+
24
+
25
+ @_attrs_define
26
+ class PaginatedTask:
27
+ """
28
+ Attributes:
29
+ items (List['Task']):
30
+ total (int):
31
+ offset (int):
32
+ limit (int):
33
+ """
34
+
35
+ items: List["Task"]
36
+ total: int
37
+ offset: int
38
+ limit: int
39
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
40
+
41
+ def to_dict(self) -> dict[str, Any]:
42
+ items = []
43
+ for items_item_data in self.items:
44
+ items_item = items_item_data.to_dict()
45
+ items.append(items_item)
46
+
47
+ total = self.total
48
+
49
+ offset = self.offset
50
+
51
+ limit = self.limit
52
+
53
+ field_dict: dict[str, Any] = {}
54
+ field_dict.update(self.additional_properties)
55
+ field_dict.update(
56
+ {
57
+ "items": items,
58
+ "total": total,
59
+ "offset": offset,
60
+ "limit": limit,
61
+ }
62
+ )
63
+
64
+ return field_dict
65
+
66
+ @classmethod
67
+ def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
68
+ from ..models.task import Task
69
+
70
+ d = src_dict.copy()
71
+ items = []
72
+ _items = d.pop("items")
73
+ for items_item_data in _items:
74
+ items_item = Task.from_dict(items_item_data)
75
+
76
+ items.append(items_item)
77
+
78
+ total = d.pop("total")
79
+
80
+ offset = d.pop("offset")
81
+
82
+ limit = d.pop("limit")
83
+
84
+ paginated_task = cls(
85
+ items=items,
86
+ total=total,
87
+ offset=offset,
88
+ limit=limit,
89
+ )
90
+
91
+ paginated_task.additional_properties = d
92
+ return paginated_task
93
+
94
+ @property
95
+ def additional_keys(self) -> list[str]:
96
+ return list(self.additional_properties.keys())
97
+
98
+ def __getitem__(self, key: str) -> Any:
99
+ return self.additional_properties[key]
100
+
101
+ def __setitem__(self, key: str, value: Any) -> None:
102
+ self.additional_properties[key] = value
103
+
104
+ def __delitem__(self, key: str) -> None:
105
+ del self.additional_properties[key]
106
+
107
+ def __contains__(self, key: str) -> bool:
108
+ return key in self.additional_properties
@@ -25,10 +25,12 @@ class PredictiveModelUpdate:
25
25
  """
26
26
  Attributes:
27
27
  description (Union[None, Unset, str]):
28
+ notes (Union[None, Unset, str]):
28
29
  locked (Union[Unset, bool]):
29
30
  """
30
31
 
31
32
  description: Union[None, Unset, str] = UNSET
33
+ notes: Union[None, Unset, str] = UNSET
32
34
  locked: Union[Unset, bool] = UNSET
33
35
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
36
 
@@ -39,6 +41,12 @@ class PredictiveModelUpdate:
39
41
  else:
40
42
  description = self.description
41
43
 
44
+ notes: Union[None, Unset, str]
45
+ if isinstance(self.notes, Unset):
46
+ notes = UNSET
47
+ else:
48
+ notes = self.notes
49
+
42
50
  locked = self.locked
43
51
 
44
52
  field_dict: dict[str, Any] = {}
@@ -46,6 +54,8 @@ class PredictiveModelUpdate:
46
54
  field_dict.update({})
47
55
  if description is not UNSET:
48
56
  field_dict["description"] = description
57
+ if notes is not UNSET:
58
+ field_dict["notes"] = notes
49
59
  if locked is not UNSET:
50
60
  field_dict["locked"] = locked
51
61
 
@@ -64,10 +74,20 @@ class PredictiveModelUpdate:
64
74
 
65
75
  description = _parse_description(d.pop("description", UNSET))
66
76
 
77
+ def _parse_notes(data: object) -> Union[None, Unset, str]:
78
+ if data is None:
79
+ return data
80
+ if isinstance(data, Unset):
81
+ return data
82
+ return cast(Union[None, Unset, str], data)
83
+
84
+ notes = _parse_notes(d.pop("notes", UNSET))
85
+
67
86
  locked = d.pop("locked", UNSET)
68
87
 
69
88
  predictive_model_update = cls(
70
89
  description=description,
90
+ notes=notes,
71
91
  locked=locked,
72
92
  )
73
93
 
@@ -30,6 +30,7 @@ class PretrainedEmbeddingModelMetadata:
30
30
  max_seq_length (int):
31
31
  uses_context (bool):
32
32
  name (PretrainedEmbeddingModelName): Names of pretrained embedding models that are supported by OrcaCloud
33
+ supports_instructions (bool):
33
34
  experimental (Union[Unset, bool]): Default: False.
34
35
  """
35
36
 
@@ -37,6 +38,7 @@ class PretrainedEmbeddingModelMetadata:
37
38
  max_seq_length: int
38
39
  uses_context: bool
39
40
  name: PretrainedEmbeddingModelName
41
+ supports_instructions: bool
40
42
  experimental: Union[Unset, bool] = False
41
43
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
44
 
@@ -49,6 +51,8 @@ class PretrainedEmbeddingModelMetadata:
49
51
 
50
52
  name = self.name.value if isinstance(self.name, Enum) else self.name
51
53
 
54
+ supports_instructions = self.supports_instructions
55
+
52
56
  experimental = self.experimental
53
57
 
54
58
  field_dict: dict[str, Any] = {}
@@ -59,6 +63,7 @@ class PretrainedEmbeddingModelMetadata:
59
63
  "max_seq_length": max_seq_length,
60
64
  "uses_context": uses_context,
61
65
  "name": name,
66
+ "supports_instructions": supports_instructions,
62
67
  }
63
68
  )
64
69
  if experimental is not UNSET:
@@ -77,6 +82,8 @@ class PretrainedEmbeddingModelMetadata:
77
82
 
78
83
  name = PretrainedEmbeddingModelName(d.pop("name"))
79
84
 
85
+ supports_instructions = d.pop("supports_instructions")
86
+
80
87
  experimental = d.pop("experimental", UNSET)
81
88
 
82
89
  pretrained_embedding_model_metadata = cls(
@@ -84,6 +91,7 @@ class PretrainedEmbeddingModelMetadata:
84
91
  max_seq_length=max_seq_length,
85
92
  uses_context=uses_context,
86
93
  name=name,
94
+ supports_instructions=supports_instructions,
87
95
  experimental=experimental,
88
96
  )
89
97
 
@@ -31,6 +31,7 @@ class RegressionModelMetadata:
31
31
  org_id (str):
32
32
  name (str):
33
33
  description (Union[None, str]):
34
+ notes (Union[None, str]):
34
35
  version (int):
35
36
  memoryset_id (str):
36
37
  memory_lookup_count (int):
@@ -46,6 +47,7 @@ class RegressionModelMetadata:
46
47
  org_id: str
47
48
  name: str
48
49
  description: Union[None, str]
50
+ notes: Union[None, str]
49
51
  version: int
50
52
  memoryset_id: str
51
53
  memory_lookup_count: int
@@ -67,6 +69,9 @@ class RegressionModelMetadata:
67
69
  description: Union[None, str]
68
70
  description = self.description
69
71
 
72
+ notes: Union[None, str]
73
+ notes = self.notes
74
+
70
75
  version = self.version
71
76
 
72
77
  memoryset_id = self.memoryset_id
@@ -93,6 +98,7 @@ class RegressionModelMetadata:
93
98
  "org_id": org_id,
94
99
  "name": name,
95
100
  "description": description,
101
+ "notes": notes,
96
102
  "version": version,
97
103
  "memoryset_id": memoryset_id,
98
104
  "memory_lookup_count": memory_lookup_count,
@@ -123,6 +129,13 @@ class RegressionModelMetadata:
123
129
 
124
130
  description = _parse_description(d.pop("description"))
125
131
 
132
+ def _parse_notes(data: object) -> Union[None, str]:
133
+ if data is None:
134
+ return data
135
+ return cast(Union[None, str], data)
136
+
137
+ notes = _parse_notes(d.pop("notes"))
138
+
126
139
  version = d.pop("version")
127
140
 
128
141
  memoryset_id = d.pop("memoryset_id")
@@ -146,6 +159,7 @@ class RegressionModelMetadata:
146
159
  org_id=org_id,
147
160
  name=name,
148
161
  description=description,
162
+ notes=notes,
149
163
  version=version,
150
164
  memoryset_id=memoryset_id,
151
165
  memory_lookup_count=memory_lookup_count,
@@ -33,16 +33,16 @@ class ScoredMemoryUpdate:
33
33
  value (Union[Unset, str]):
34
34
  metadata (Union['ScoredMemoryUpdateMetadataType0', None, Unset]):
35
35
  source_id (Union[None, Unset, str]):
36
- score (Union[Unset, float]):
37
36
  metrics (Union['MemoryMetrics', None, Unset]):
37
+ score (Union[Unset, float]):
38
38
  """
39
39
 
40
40
  memory_id: str
41
41
  value: Union[Unset, str] = UNSET
42
42
  metadata: Union["ScoredMemoryUpdateMetadataType0", None, Unset] = UNSET
43
43
  source_id: Union[None, Unset, str] = UNSET
44
- score: Union[Unset, float] = UNSET
45
44
  metrics: Union["MemoryMetrics", None, Unset] = UNSET
45
+ score: Union[Unset, float] = UNSET
46
46
 
47
47
  def to_dict(self) -> dict[str, Any]:
48
48
  from ..models.memory_metrics import MemoryMetrics
@@ -70,8 +70,6 @@ class ScoredMemoryUpdate:
70
70
  else:
71
71
  source_id = self.source_id
72
72
 
73
- score = self.score
74
-
75
73
  metrics: Union[Dict[str, Any], None, Unset]
76
74
  if isinstance(self.metrics, Unset):
77
75
  metrics = UNSET
@@ -80,6 +78,8 @@ class ScoredMemoryUpdate:
80
78
  else:
81
79
  metrics = self.metrics
82
80
 
81
+ score = self.score
82
+
83
83
  field_dict: dict[str, Any] = {}
84
84
  field_dict.update(
85
85
  {
@@ -92,10 +92,10 @@ class ScoredMemoryUpdate:
92
92
  field_dict["metadata"] = metadata
93
93
  if source_id is not UNSET:
94
94
  field_dict["source_id"] = source_id
95
- if score is not UNSET:
96
- field_dict["score"] = score
97
95
  if metrics is not UNSET:
98
96
  field_dict["metrics"] = metrics
97
+ if score is not UNSET:
98
+ field_dict["score"] = score
99
99
 
100
100
  return field_dict
101
101
 
@@ -140,8 +140,6 @@ class ScoredMemoryUpdate:
140
140
 
141
141
  source_id = _parse_source_id(d.pop("source_id", UNSET))
142
142
 
143
- score = d.pop("score", UNSET)
144
-
145
143
  def _parse_metrics(data: object) -> Union["MemoryMetrics", None, Unset]:
146
144
  if data is None:
147
145
  return data
@@ -159,13 +157,15 @@ class ScoredMemoryUpdate:
159
157
 
160
158
  metrics = _parse_metrics(d.pop("metrics", UNSET))
161
159
 
160
+ score = d.pop("score", UNSET)
161
+
162
162
  scored_memory_update = cls(
163
163
  memory_id=memory_id,
164
164
  value=value,
165
165
  metadata=metadata,
166
166
  source_id=source_id,
167
- score=score,
168
167
  metrics=metrics,
168
+ score=score,
169
169
  )
170
170
 
171
171
  return scored_memory_update
@@ -10,11 +10,14 @@ The main change is:
10
10
 
11
11
  # flake8: noqa: C901
12
12
 
13
- from typing import Any, Literal, Type, TypeVar, cast
13
+ from enum import Enum
14
+ from typing import Any, Type, TypeVar
14
15
 
15
16
  from attrs import define as _attrs_define
16
17
  from attrs import field as _attrs_field
17
18
 
19
+ from ..models.service_unavailable_error_response_status_code import ServiceUnavailableErrorResponseStatusCode
20
+
18
21
  T = TypeVar("T", bound="ServiceUnavailableErrorResponse")
19
22
 
20
23
 
@@ -22,16 +25,16 @@ T = TypeVar("T", bound="ServiceUnavailableErrorResponse")
22
25
  class ServiceUnavailableErrorResponse:
23
26
  """
24
27
  Attributes:
25
- status_code (Literal[503]):
28
+ status_code (ServiceUnavailableErrorResponseStatusCode):
26
29
  service (str):
27
30
  """
28
31
 
29
- status_code: Literal[503]
32
+ status_code: ServiceUnavailableErrorResponseStatusCode
30
33
  service: str
31
34
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
35
 
33
36
  def to_dict(self) -> dict[str, Any]:
34
- status_code = self.status_code
37
+ status_code = self.status_code.value if isinstance(self.status_code, Enum) else self.status_code
35
38
 
36
39
  service = self.service
37
40
 
@@ -49,9 +52,7 @@ class ServiceUnavailableErrorResponse:
49
52
  @classmethod
50
53
  def from_dict(cls: Type[T], src_dict: dict[str, Any]) -> T:
51
54
  d = src_dict.copy()
52
- status_code = cast(Literal[503], d.pop("status_code"))
53
- if status_code != 503:
54
- raise ValueError(f"status_code must match const 503, got '{status_code}'")
55
+ status_code = ServiceUnavailableErrorResponseStatusCode(d.pop("status_code"))
55
56
 
56
57
  service = d.pop("service")
57
58
 
@@ -0,0 +1,8 @@
1
+ from enum import IntEnum
2
+
3
+
4
+ class ServiceUnavailableErrorResponseStatusCode(IntEnum):
5
+ VALUE_503 = 503
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class TelemetryFieldType0ItemType0(str, Enum):
5
+ FEEDBACK_METRICS = "feedback_metrics"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class TelemetryFieldType1ItemType0(str, Enum):
5
+ LOOKUP = "lookup"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class TelemetryFieldType1ItemType1(str, Enum):
5
+ COUNT = "count"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -11,12 +11,15 @@ The main change is:
11
11
  # flake8: noqa: C901
12
12
 
13
13
  from enum import Enum
14
- from typing import Any, List, Literal, Type, TypeVar, Union, cast
14
+ from typing import Any, List, Type, TypeVar, Union, cast
15
15
 
16
16
  from attrs import define as _attrs_define
17
17
  from attrs import field as _attrs_field
18
18
 
19
+ from ..models.telemetry_field_type_0_item_type_0 import TelemetryFieldType0ItemType0
19
20
  from ..models.telemetry_field_type_0_item_type_2 import TelemetryFieldType0ItemType2
21
+ from ..models.telemetry_field_type_1_item_type_0 import TelemetryFieldType1ItemType0
22
+ from ..models.telemetry_field_type_1_item_type_1 import TelemetryFieldType1ItemType1
20
23
  from ..models.telemetry_filter_item_op import TelemetryFilterItemOp
21
24
 
22
25
  T = TypeVar("T", bound="TelemetryFilterItem")
@@ -26,27 +29,33 @@ T = TypeVar("T", bound="TelemetryFilterItem")
26
29
  class TelemetryFilterItem:
27
30
  """
28
31
  Attributes:
29
- field (Union[List[Union[Literal['count'], Literal['lookup']]], List[Union[Literal['feedback_metrics'],
30
- TelemetryFieldType0ItemType2, str]]]):
32
+ field (Union[List[Union[TelemetryFieldType0ItemType0, TelemetryFieldType0ItemType2, str]],
33
+ List[Union[TelemetryFieldType1ItemType0, TelemetryFieldType1ItemType1]]]):
31
34
  op (TelemetryFilterItemOp):
32
35
  value (Union[List[float], List[int], float, int]):
33
36
  """
34
37
 
35
38
  field: Union[
36
- List[Union[Literal["count"], Literal["lookup"]]],
37
- List[Union[Literal["feedback_metrics"], TelemetryFieldType0ItemType2, str]],
39
+ List[Union[TelemetryFieldType0ItemType0, TelemetryFieldType0ItemType2, str]],
40
+ List[Union[TelemetryFieldType1ItemType0, TelemetryFieldType1ItemType1]],
38
41
  ]
39
42
  op: TelemetryFilterItemOp
40
43
  value: Union[List[float], List[int], float, int]
41
44
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
45
 
43
46
  def to_dict(self) -> dict[str, Any]:
44
- field: Union[List[Union[Literal["count"], Literal["lookup"]]], List[Union[Literal["feedback_metrics"], str]]]
47
+ field: List[str]
45
48
  if isinstance(self.field, list):
46
49
  field = []
47
50
  for componentsschemas_telemetry_field_type_0_item_data in self.field:
48
- componentsschemas_telemetry_field_type_0_item: Union[Literal["feedback_metrics"], str]
49
- if isinstance(componentsschemas_telemetry_field_type_0_item_data, TelemetryFieldType0ItemType2):
51
+ componentsschemas_telemetry_field_type_0_item: str
52
+ if isinstance(componentsschemas_telemetry_field_type_0_item_data, TelemetryFieldType0ItemType0):
53
+ componentsschemas_telemetry_field_type_0_item = (
54
+ componentsschemas_telemetry_field_type_0_item_data.value
55
+ if isinstance(componentsschemas_telemetry_field_type_0_item_data, Enum)
56
+ else componentsschemas_telemetry_field_type_0_item_data
57
+ )
58
+ elif isinstance(componentsschemas_telemetry_field_type_0_item_data, TelemetryFieldType0ItemType2):
50
59
  componentsschemas_telemetry_field_type_0_item = (
51
60
  componentsschemas_telemetry_field_type_0_item_data.value
52
61
  if isinstance(componentsschemas_telemetry_field_type_0_item_data, Enum)
@@ -84,8 +93,8 @@ class TelemetryFilterItem:
84
93
  def _parse_field(
85
94
  data: object,
86
95
  ) -> Union[
87
- List[Union[Literal["count"], Literal["lookup"]]],
88
- List[Union[Literal["feedback_metrics"], TelemetryFieldType0ItemType2, str]],
96
+ List[Union[TelemetryFieldType0ItemType0, TelemetryFieldType0ItemType2, str]],
97
+ List[Union[TelemetryFieldType1ItemType0, TelemetryFieldType1ItemType1]],
89
98
  ]:
90
99
  try:
91
100
  if not isinstance(data, list):
@@ -96,13 +105,15 @@ class TelemetryFilterItem:
96
105
 
97
106
  def _parse_componentsschemas_telemetry_field_type_0_item(
98
107
  data: object,
99
- ) -> Union[Literal["feedback_metrics"], TelemetryFieldType0ItemType2, str]:
100
- componentsschemas_telemetry_field_type_0_item_type_0 = cast(Literal["feedback_metrics"], data)
101
- if componentsschemas_telemetry_field_type_0_item_type_0 != "feedback_metrics":
102
- raise ValueError(
103
- f"/components/schemas/TelemetryField_type_0_item_type_0 must match const 'feedback_metrics', got '{componentsschemas_telemetry_field_type_0_item_type_0}'"
104
- )
105
- return componentsschemas_telemetry_field_type_0_item_type_0
108
+ ) -> Union[TelemetryFieldType0ItemType0, TelemetryFieldType0ItemType2, str]:
109
+ try:
110
+ if not isinstance(data, str):
111
+ raise TypeError()
112
+ componentsschemas_telemetry_field_type_0_item_type_0 = TelemetryFieldType0ItemType0(data)
113
+
114
+ return componentsschemas_telemetry_field_type_0_item_type_0
115
+ except: # noqa: E722
116
+ pass
106
117
  try:
107
118
  if not isinstance(data, str):
108
119
  raise TypeError()
@@ -111,7 +122,7 @@ class TelemetryFilterItem:
111
122
  return componentsschemas_telemetry_field_type_0_item_type_2
112
123
  except: # noqa: E722
113
124
  pass
114
- return cast(Union[Literal["feedback_metrics"], TelemetryFieldType0ItemType2, str], data)
125
+ return cast(Union[TelemetryFieldType0ItemType0, TelemetryFieldType0ItemType2, str], data)
115
126
 
116
127
  componentsschemas_telemetry_field_type_0_item = (
117
128
  _parse_componentsschemas_telemetry_field_type_0_item(
@@ -132,18 +143,19 @@ class TelemetryFilterItem:
132
143
 
133
144
  def _parse_componentsschemas_telemetry_field_type_1_item(
134
145
  data: object,
135
- ) -> Union[Literal["count"], Literal["lookup"]]:
136
- componentsschemas_telemetry_field_type_1_item_type_0 = cast(Literal["lookup"], data)
137
- if componentsschemas_telemetry_field_type_1_item_type_0 != "lookup":
138
- raise ValueError(
139
- f"/components/schemas/TelemetryField_type_1_item_type_0 must match const 'lookup', got '{componentsschemas_telemetry_field_type_1_item_type_0}'"
140
- )
141
- return componentsschemas_telemetry_field_type_1_item_type_0
142
- componentsschemas_telemetry_field_type_1_item_type_1 = cast(Literal["count"], data)
143
- if componentsschemas_telemetry_field_type_1_item_type_1 != "count":
144
- raise ValueError(
145
- f"/components/schemas/TelemetryField_type_1_item_type_1 must match const 'count', got '{componentsschemas_telemetry_field_type_1_item_type_1}'"
146
- )
146
+ ) -> Union[TelemetryFieldType1ItemType0, TelemetryFieldType1ItemType1]:
147
+ try:
148
+ if not isinstance(data, str):
149
+ raise TypeError()
150
+ componentsschemas_telemetry_field_type_1_item_type_0 = TelemetryFieldType1ItemType0(data)
151
+
152
+ return componentsschemas_telemetry_field_type_1_item_type_0
153
+ except: # noqa: E722
154
+ pass
155
+ if not isinstance(data, str):
156
+ raise TypeError()
157
+ componentsschemas_telemetry_field_type_1_item_type_1 = TelemetryFieldType1ItemType1(data)
158
+
147
159
  return componentsschemas_telemetry_field_type_1_item_type_1
148
160
 
149
161
  componentsschemas_telemetry_field_type_1_item = _parse_componentsschemas_telemetry_field_type_1_item(