agenta 0.52.6__py3-none-any.whl → 0.63.2__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 (271) hide show
  1. agenta/__init__.py +12 -3
  2. agenta/client/__init__.py +4 -4
  3. agenta/client/backend/__init__.py +4 -4
  4. agenta/client/backend/api_keys/client.py +2 -2
  5. agenta/client/backend/billing/client.py +2 -2
  6. agenta/client/backend/billing/raw_client.py +2 -2
  7. agenta/client/backend/client.py +56 -48
  8. agenta/client/backend/core/client_wrapper.py +2 -2
  9. agenta/client/backend/core/file.py +3 -1
  10. agenta/client/backend/core/http_client.py +3 -3
  11. agenta/client/backend/core/pydantic_utilities.py +13 -3
  12. agenta/client/backend/human_evaluations/client.py +2 -2
  13. agenta/client/backend/human_evaluations/raw_client.py +2 -2
  14. agenta/client/backend/organization/client.py +46 -34
  15. agenta/client/backend/organization/raw_client.py +32 -26
  16. agenta/client/backend/raw_client.py +26 -26
  17. agenta/client/backend/testsets/client.py +18 -18
  18. agenta/client/backend/testsets/raw_client.py +30 -30
  19. agenta/client/backend/types/__init__.py +4 -4
  20. agenta/client/backend/types/account_request.py +3 -1
  21. agenta/client/backend/types/account_response.py +3 -1
  22. agenta/client/backend/types/agenta_node_dto.py +3 -1
  23. agenta/client/backend/types/agenta_nodes_response.py +3 -1
  24. agenta/client/backend/types/agenta_root_dto.py +3 -1
  25. agenta/client/backend/types/agenta_roots_response.py +3 -1
  26. agenta/client/backend/types/agenta_tree_dto.py +3 -1
  27. agenta/client/backend/types/agenta_trees_response.py +3 -1
  28. agenta/client/backend/types/aggregated_result.py +3 -1
  29. agenta/client/backend/types/analytics_response.py +3 -1
  30. agenta/client/backend/types/annotation.py +6 -4
  31. agenta/client/backend/types/annotation_create.py +3 -1
  32. agenta/client/backend/types/annotation_edit.py +3 -1
  33. agenta/client/backend/types/annotation_link.py +3 -1
  34. agenta/client/backend/types/annotation_link_response.py +3 -1
  35. agenta/client/backend/types/annotation_query.py +3 -1
  36. agenta/client/backend/types/annotation_query_request.py +3 -1
  37. agenta/client/backend/types/annotation_reference.py +3 -1
  38. agenta/client/backend/types/annotation_references.py +3 -1
  39. agenta/client/backend/types/annotation_response.py +3 -1
  40. agenta/client/backend/types/annotations_response.py +3 -1
  41. agenta/client/backend/types/app.py +3 -1
  42. agenta/client/backend/types/app_variant_response.py +3 -1
  43. agenta/client/backend/types/app_variant_revision.py +3 -1
  44. agenta/client/backend/types/artifact.py +6 -4
  45. agenta/client/backend/types/base_output.py +3 -1
  46. agenta/client/backend/types/body_fetch_workflow_revision.py +3 -1
  47. agenta/client/backend/types/body_import_testset.py +3 -1
  48. agenta/client/backend/types/bucket_dto.py +3 -1
  49. agenta/client/backend/types/collect_status_response.py +3 -1
  50. agenta/client/backend/types/config_db.py +3 -1
  51. agenta/client/backend/types/config_dto.py +3 -1
  52. agenta/client/backend/types/config_response_model.py +3 -1
  53. agenta/client/backend/types/correct_answer.py +3 -1
  54. agenta/client/backend/types/create_app_output.py +3 -1
  55. agenta/client/backend/types/custom_model_settings_dto.py +3 -1
  56. agenta/client/backend/types/custom_provider_dto.py +3 -1
  57. agenta/client/backend/types/custom_provider_kind.py +1 -1
  58. agenta/client/backend/types/custom_provider_settings_dto.py +3 -1
  59. agenta/client/backend/types/delete_evaluation.py +3 -1
  60. agenta/client/backend/types/environment_output.py +3 -1
  61. agenta/client/backend/types/environment_output_extended.py +3 -1
  62. agenta/client/backend/types/environment_revision.py +3 -1
  63. agenta/client/backend/types/error.py +3 -1
  64. agenta/client/backend/types/evaluation.py +3 -1
  65. agenta/client/backend/types/evaluation_scenario.py +3 -1
  66. agenta/client/backend/types/evaluation_scenario_input.py +3 -1
  67. agenta/client/backend/types/evaluation_scenario_output.py +3 -1
  68. agenta/client/backend/types/evaluation_scenario_result.py +3 -1
  69. agenta/client/backend/types/evaluator.py +6 -4
  70. agenta/client/backend/types/evaluator_config.py +6 -4
  71. agenta/client/backend/types/evaluator_flags.py +3 -1
  72. agenta/client/backend/types/evaluator_mapping_output_interface.py +3 -1
  73. agenta/client/backend/types/evaluator_output_interface.py +3 -1
  74. agenta/client/backend/types/evaluator_query.py +3 -1
  75. agenta/client/backend/types/evaluator_query_request.py +3 -1
  76. agenta/client/backend/types/evaluator_request.py +3 -1
  77. agenta/client/backend/types/evaluator_response.py +3 -1
  78. agenta/client/backend/types/evaluators_response.py +3 -1
  79. agenta/client/backend/types/exception_dto.py +3 -1
  80. agenta/client/backend/types/extended_o_tel_tracing_response.py +3 -1
  81. agenta/client/backend/types/get_config_response.py +3 -1
  82. agenta/client/backend/types/header.py +3 -1
  83. agenta/client/backend/types/http_validation_error.py +3 -1
  84. agenta/client/backend/types/human_evaluation.py +3 -1
  85. agenta/client/backend/types/human_evaluation_scenario.py +3 -1
  86. agenta/client/backend/types/human_evaluation_scenario_input.py +3 -1
  87. agenta/client/backend/types/human_evaluation_scenario_output.py +3 -1
  88. agenta/client/backend/types/invite_request.py +3 -1
  89. agenta/client/backend/types/legacy_analytics_response.py +3 -1
  90. agenta/client/backend/types/legacy_data_point.py +3 -1
  91. agenta/client/backend/types/legacy_evaluator.py +3 -1
  92. agenta/client/backend/types/legacy_scope_request.py +3 -1
  93. agenta/client/backend/types/legacy_scopes_response.py +3 -1
  94. agenta/client/backend/types/legacy_subscription_request.py +3 -1
  95. agenta/client/backend/types/legacy_user_request.py +3 -1
  96. agenta/client/backend/types/legacy_user_response.py +3 -1
  97. agenta/client/backend/types/lifecycle_dto.py +3 -1
  98. agenta/client/backend/types/link_dto.py +3 -1
  99. agenta/client/backend/types/list_api_keys_response.py +3 -1
  100. agenta/client/backend/types/llm_run_rate_limit.py +3 -1
  101. agenta/client/backend/types/meta_request.py +3 -1
  102. agenta/client/backend/types/metrics_dto.py +3 -1
  103. agenta/client/backend/types/new_testset.py +3 -1
  104. agenta/client/backend/types/node_dto.py +3 -1
  105. agenta/client/backend/types/o_tel_context_dto.py +3 -1
  106. agenta/client/backend/types/o_tel_event.py +6 -4
  107. agenta/client/backend/types/o_tel_event_dto.py +3 -1
  108. agenta/client/backend/types/o_tel_extra_dto.py +3 -1
  109. agenta/client/backend/types/o_tel_flat_span.py +6 -4
  110. agenta/client/backend/types/o_tel_link.py +6 -4
  111. agenta/client/backend/types/o_tel_link_dto.py +3 -1
  112. agenta/client/backend/types/o_tel_links_response.py +3 -1
  113. agenta/client/backend/types/o_tel_span.py +1 -1
  114. agenta/client/backend/types/o_tel_span_dto.py +3 -1
  115. agenta/client/backend/types/o_tel_spans_tree.py +3 -1
  116. agenta/client/backend/types/o_tel_tracing_data_response.py +3 -1
  117. agenta/client/backend/types/o_tel_tracing_request.py +3 -1
  118. agenta/client/backend/types/o_tel_tracing_response.py +3 -1
  119. agenta/client/backend/types/organization.py +3 -1
  120. agenta/client/backend/types/organization_details.py +3 -1
  121. agenta/client/backend/types/organization_membership_request.py +3 -1
  122. agenta/client/backend/types/organization_output.py +3 -1
  123. agenta/client/backend/types/organization_request.py +3 -1
  124. agenta/client/backend/types/parent_dto.py +3 -1
  125. agenta/client/backend/types/project_membership_request.py +3 -1
  126. agenta/client/backend/types/project_request.py +3 -1
  127. agenta/client/backend/types/project_scope.py +3 -1
  128. agenta/client/backend/types/projects_response.py +3 -1
  129. agenta/client/backend/types/reference.py +6 -4
  130. agenta/client/backend/types/reference_dto.py +3 -1
  131. agenta/client/backend/types/reference_request_model.py +3 -1
  132. agenta/client/backend/types/result.py +3 -1
  133. agenta/client/backend/types/root_dto.py +3 -1
  134. agenta/client/backend/types/scopes_response_model.py +3 -1
  135. agenta/client/backend/types/secret_dto.py +3 -1
  136. agenta/client/backend/types/secret_response_dto.py +3 -1
  137. agenta/client/backend/types/simple_evaluation_output.py +3 -1
  138. agenta/client/backend/types/span_dto.py +6 -4
  139. agenta/client/backend/types/standard_provider_dto.py +3 -1
  140. agenta/client/backend/types/standard_provider_settings_dto.py +3 -1
  141. agenta/client/backend/types/status_dto.py +3 -1
  142. agenta/client/backend/types/tags_request.py +3 -1
  143. agenta/client/backend/types/testcase_response.py +6 -4
  144. agenta/client/backend/types/testset.py +6 -4
  145. agenta/client/backend/types/{test_set_output_response.py → testset_output_response.py} +4 -2
  146. agenta/client/backend/types/testset_request.py +3 -1
  147. agenta/client/backend/types/testset_response.py +3 -1
  148. agenta/client/backend/types/{test_set_simple_response.py → testset_simple_response.py} +4 -2
  149. agenta/client/backend/types/testsets_response.py +3 -1
  150. agenta/client/backend/types/time_dto.py +3 -1
  151. agenta/client/backend/types/tree_dto.py +3 -1
  152. agenta/client/backend/types/update_app_output.py +3 -1
  153. agenta/client/backend/types/user_request.py +3 -1
  154. agenta/client/backend/types/validation_error.py +3 -1
  155. agenta/client/backend/types/workflow_artifact.py +6 -4
  156. agenta/client/backend/types/workflow_data.py +3 -1
  157. agenta/client/backend/types/workflow_flags.py +3 -1
  158. agenta/client/backend/types/workflow_request.py +3 -1
  159. agenta/client/backend/types/workflow_response.py +3 -1
  160. agenta/client/backend/types/workflow_revision.py +6 -4
  161. agenta/client/backend/types/workflow_revision_request.py +3 -1
  162. agenta/client/backend/types/workflow_revision_response.py +3 -1
  163. agenta/client/backend/types/workflow_revisions_response.py +3 -1
  164. agenta/client/backend/types/workflow_variant.py +6 -4
  165. agenta/client/backend/types/workflow_variant_request.py +3 -1
  166. agenta/client/backend/types/workflow_variant_response.py +3 -1
  167. agenta/client/backend/types/workflow_variants_response.py +3 -1
  168. agenta/client/backend/types/workflows_response.py +3 -1
  169. agenta/client/backend/types/workspace.py +3 -1
  170. agenta/client/backend/types/workspace_member_response.py +3 -1
  171. agenta/client/backend/types/workspace_membership_request.py +3 -1
  172. agenta/client/backend/types/workspace_permission.py +3 -1
  173. agenta/client/backend/types/workspace_request.py +3 -1
  174. agenta/client/backend/types/workspace_response.py +3 -1
  175. agenta/client/backend/vault/raw_client.py +4 -4
  176. agenta/client/backend/workspace/client.py +2 -2
  177. agenta/client/client.py +102 -88
  178. agenta/sdk/__init__.py +52 -3
  179. agenta/sdk/agenta_init.py +43 -16
  180. agenta/sdk/assets.py +23 -15
  181. agenta/sdk/context/serving.py +20 -8
  182. agenta/sdk/context/tracing.py +40 -22
  183. agenta/sdk/contexts/__init__.py +0 -0
  184. agenta/sdk/contexts/routing.py +38 -0
  185. agenta/sdk/contexts/running.py +57 -0
  186. agenta/sdk/contexts/tracing.py +86 -0
  187. agenta/sdk/decorators/__init__.py +1 -0
  188. agenta/sdk/decorators/routing.py +284 -0
  189. agenta/sdk/decorators/running.py +692 -98
  190. agenta/sdk/decorators/serving.py +20 -21
  191. agenta/sdk/decorators/tracing.py +176 -131
  192. agenta/sdk/engines/__init__.py +0 -0
  193. agenta/sdk/engines/running/__init__.py +0 -0
  194. agenta/sdk/engines/running/utils.py +17 -0
  195. agenta/sdk/engines/tracing/__init__.py +1 -0
  196. agenta/sdk/engines/tracing/attributes.py +185 -0
  197. agenta/sdk/engines/tracing/conventions.py +49 -0
  198. agenta/sdk/engines/tracing/exporters.py +130 -0
  199. agenta/sdk/engines/tracing/inline.py +1154 -0
  200. agenta/sdk/engines/tracing/processors.py +190 -0
  201. agenta/sdk/engines/tracing/propagation.py +102 -0
  202. agenta/sdk/engines/tracing/spans.py +136 -0
  203. agenta/sdk/engines/tracing/tracing.py +324 -0
  204. agenta/sdk/evaluations/__init__.py +2 -0
  205. agenta/sdk/evaluations/metrics.py +37 -0
  206. agenta/sdk/evaluations/preview/__init__.py +0 -0
  207. agenta/sdk/evaluations/preview/evaluate.py +765 -0
  208. agenta/sdk/evaluations/preview/utils.py +861 -0
  209. agenta/sdk/evaluations/results.py +66 -0
  210. agenta/sdk/evaluations/runs.py +153 -0
  211. agenta/sdk/evaluations/scenarios.py +48 -0
  212. agenta/sdk/litellm/litellm.py +12 -0
  213. agenta/sdk/litellm/mockllm.py +6 -8
  214. agenta/sdk/litellm/mocks/__init__.py +5 -5
  215. agenta/sdk/managers/applications.py +304 -0
  216. agenta/sdk/managers/config.py +2 -2
  217. agenta/sdk/managers/evaluations.py +0 -0
  218. agenta/sdk/managers/evaluators.py +303 -0
  219. agenta/sdk/managers/secrets.py +161 -24
  220. agenta/sdk/managers/shared.py +3 -1
  221. agenta/sdk/managers/testsets.py +441 -0
  222. agenta/sdk/managers/vault.py +3 -3
  223. agenta/sdk/middleware/auth.py +0 -176
  224. agenta/sdk/middleware/config.py +27 -9
  225. agenta/sdk/middleware/vault.py +204 -9
  226. agenta/sdk/middlewares/__init__.py +0 -0
  227. agenta/sdk/middlewares/routing/__init__.py +0 -0
  228. agenta/sdk/middlewares/routing/auth.py +263 -0
  229. agenta/sdk/middlewares/routing/cors.py +30 -0
  230. agenta/sdk/middlewares/routing/otel.py +29 -0
  231. agenta/sdk/middlewares/running/__init__.py +0 -0
  232. agenta/sdk/middlewares/running/normalizer.py +321 -0
  233. agenta/sdk/middlewares/running/resolver.py +161 -0
  234. agenta/sdk/middlewares/running/vault.py +140 -0
  235. agenta/sdk/models/__init__.py +0 -0
  236. agenta/sdk/models/blobs.py +33 -0
  237. agenta/sdk/models/evaluations.py +119 -0
  238. agenta/sdk/models/git.py +126 -0
  239. agenta/sdk/models/shared.py +167 -0
  240. agenta/sdk/models/testsets.py +163 -0
  241. agenta/sdk/models/tracing.py +202 -0
  242. agenta/sdk/models/workflows.py +753 -0
  243. agenta/sdk/tracing/attributes.py +4 -4
  244. agenta/sdk/tracing/exporters.py +67 -17
  245. agenta/sdk/tracing/inline.py +37 -45
  246. agenta/sdk/tracing/processors.py +97 -0
  247. agenta/sdk/tracing/propagation.py +3 -1
  248. agenta/sdk/tracing/spans.py +4 -0
  249. agenta/sdk/tracing/tracing.py +13 -15
  250. agenta/sdk/types.py +222 -22
  251. agenta/sdk/utils/cache.py +1 -1
  252. agenta/sdk/utils/client.py +38 -0
  253. agenta/sdk/utils/helpers.py +13 -12
  254. agenta/sdk/utils/logging.py +18 -78
  255. agenta/sdk/utils/references.py +23 -0
  256. agenta/sdk/workflows/builtin.py +600 -0
  257. agenta/sdk/workflows/configurations.py +22 -0
  258. agenta/sdk/workflows/errors.py +292 -0
  259. agenta/sdk/workflows/handlers.py +1791 -0
  260. agenta/sdk/workflows/interfaces.py +948 -0
  261. agenta/sdk/workflows/sandbox.py +118 -0
  262. agenta/sdk/workflows/utils.py +303 -6
  263. {agenta-0.52.6.dist-info → agenta-0.63.2.dist-info}/METADATA +37 -33
  264. agenta-0.63.2.dist-info/RECORD +421 -0
  265. {agenta-0.52.6.dist-info → agenta-0.63.2.dist-info}/WHEEL +1 -1
  266. agenta/sdk/middleware/adapt.py +0 -253
  267. agenta/sdk/middleware/base.py +0 -40
  268. agenta/sdk/middleware/flags.py +0 -40
  269. agenta/sdk/workflows/types.py +0 -472
  270. agenta-0.52.6.dist-info/RECORD +0 -371
  271. /agenta/sdk/{workflows → engines/running}/registry.py +0 -0
@@ -15,7 +15,9 @@ class ProjectMembershipRequest(UniversalBaseModel):
15
15
  project_ref: Reference
16
16
 
17
17
  if IS_PYDANTIC_V2:
18
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
19
21
  else:
20
22
 
21
23
  class Config:
@@ -15,7 +15,9 @@ class ProjectRequest(UniversalBaseModel):
15
15
  organization_ref: Reference
16
16
 
17
17
  if IS_PYDANTIC_V2:
18
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
19
21
  else:
20
22
 
21
23
  class Config:
@@ -18,7 +18,9 @@ class ProjectScope(UniversalBaseModel):
18
18
  organization: Reference
19
19
 
20
20
  if IS_PYDANTIC_V2:
21
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
22
+ extra="allow", frozen=True
23
+ ) # type: ignore # Pydantic v2
22
24
  else:
23
25
 
24
26
  class Config:
@@ -17,7 +17,9 @@ class ProjectsResponse(UniversalBaseModel):
17
17
  is_demo: typing.Optional[bool] = None
18
18
 
19
19
  if IS_PYDANTIC_V2:
20
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
21
+ extra="allow", frozen=True
22
+ ) # type: ignore # Pydantic v2
21
23
  else:
22
24
 
23
25
  class Config:
@@ -16,12 +16,14 @@ class Reference(UniversalBaseModel):
16
16
  id: typing.Optional[str] = None
17
17
  slug: typing.Optional[str] = None
18
18
  version: typing.Optional[str] = None
19
- attributes: typing.Optional[
20
- typing.Dict[str, typing.Optional["FullJsonInput"]]
21
- ] = None
19
+ attributes: typing.Optional[typing.Dict[str, typing.Optional["FullJsonInput"]]] = (
20
+ None
21
+ )
22
22
 
23
23
  if IS_PYDANTIC_V2:
24
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
24
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
25
+ extra="allow", frozen=True
26
+ ) # type: ignore # Pydantic v2
25
27
  else:
26
28
 
27
29
  class Config:
@@ -13,7 +13,9 @@ class ReferenceDto(UniversalBaseModel):
13
13
  id: typing.Optional[str] = None
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -13,7 +13,9 @@ class ReferenceRequestModel(UniversalBaseModel):
13
13
  id: typing.Optional[str] = None
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -13,7 +13,9 @@ class Result(UniversalBaseModel):
13
13
  error: typing.Optional[Error] = None
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -10,7 +10,9 @@ class RootDto(UniversalBaseModel):
10
10
  id: str
11
11
 
12
12
  if IS_PYDANTIC_V2:
13
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
13
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
14
+ extra="allow", frozen=True
15
+ ) # type: ignore # Pydantic v2
14
16
  else:
15
17
 
16
18
  class Config:
@@ -11,7 +11,9 @@ class ScopesResponseModel(UniversalBaseModel):
11
11
  projects: typing.Optional[typing.Dict[str, typing.Dict[str, ProjectScope]]] = None
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -13,7 +13,9 @@ class SecretDto(UniversalBaseModel):
13
13
  data: Data
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -18,7 +18,9 @@ class SecretResponseDto(UniversalBaseModel):
18
18
  lifecycle: typing.Optional[LifecycleDto] = None
19
19
 
20
20
  if IS_PYDANTIC_V2:
21
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
22
+ extra="allow", frozen=True
23
+ ) # type: ignore # Pydantic v2
22
24
  else:
23
25
 
24
26
  class Config:
@@ -15,7 +15,9 @@ class SimpleEvaluationOutput(UniversalBaseModel):
15
15
  evaluation_type: EvaluationType
16
16
 
17
17
  if IS_PYDANTIC_V2:
18
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
19
21
  else:
20
22
 
21
23
  class Config:
@@ -39,12 +39,14 @@ class SpanDto(UniversalBaseModel):
39
39
  refs: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
40
40
  links: typing.Optional[typing.List[LinkDto]] = None
41
41
  otel: typing.Optional[OTelExtraDto] = None
42
- nodes: typing.Optional[
43
- typing.Dict[str, typing.Optional["SpanDtoNodesValue"]]
44
- ] = None
42
+ nodes: typing.Optional[typing.Dict[str, typing.Optional["SpanDtoNodesValue"]]] = (
43
+ None
44
+ )
45
45
 
46
46
  if IS_PYDANTIC_V2:
47
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
47
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
48
+ extra="allow", frozen=True
49
+ ) # type: ignore # Pydantic v2
48
50
  else:
49
51
 
50
52
  class Config:
@@ -13,7 +13,9 @@ class StandardProviderDto(UniversalBaseModel):
13
13
  provider: StandardProviderSettingsDto
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -10,7 +10,9 @@ class StandardProviderSettingsDto(UniversalBaseModel):
10
10
  key: str
11
11
 
12
12
  if IS_PYDANTIC_V2:
13
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
13
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
14
+ extra="allow", frozen=True
15
+ ) # type: ignore # Pydantic v2
14
16
  else:
15
17
 
16
18
  class Config:
@@ -12,7 +12,9 @@ class StatusDto(UniversalBaseModel):
12
12
  message: typing.Optional[str] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -16,7 +16,9 @@ class TagsRequest(UniversalBaseModel):
16
16
  metadata: typing.Dict[str, typing.Optional["FullJsonInput"]]
17
17
 
18
18
  if IS_PYDANTIC_V2:
19
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
19
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
20
+ extra="allow", frozen=True
21
+ ) # type: ignore # Pydantic v2
20
22
  else:
21
23
 
22
24
  class Config:
@@ -14,12 +14,14 @@ from ..core.pydantic_utilities import (
14
14
 
15
15
  class TestcaseResponse(UniversalBaseModel):
16
16
  count: int
17
- testcase: typing.Optional[
18
- typing.Dict[str, typing.Optional["FullJsonOutput"]]
19
- ] = None
17
+ testcase: typing.Optional[typing.Dict[str, typing.Optional["FullJsonOutput"]]] = (
18
+ None
19
+ )
20
20
 
21
21
  if IS_PYDANTIC_V2:
22
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
23
+ extra="allow", frozen=True
24
+ ) # type: ignore # Pydantic v2
23
25
  else:
24
26
 
25
27
  class Config:
@@ -27,12 +27,14 @@ class Testset(UniversalBaseModel):
27
27
  testcases: typing.Optional[
28
28
  typing.List[typing.Dict[str, typing.Optional["FullJsonOutput"]]]
29
29
  ] = None
30
- metadata: typing.Optional[
31
- typing.Dict[str, typing.Optional["FullJsonOutput"]]
32
- ] = None
30
+ metadata: typing.Optional[typing.Dict[str, typing.Optional["FullJsonOutput"]]] = (
31
+ None
32
+ )
33
33
 
34
34
  if IS_PYDANTIC_V2:
35
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
35
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
36
+ extra="allow", frozen=True
37
+ ) # type: ignore # Pydantic v2
36
38
  else:
37
39
 
38
40
  class Config:
@@ -8,14 +8,16 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
  from ..core.serialization import FieldMetadata
9
9
 
10
10
 
11
- class TestSetOutputResponse(UniversalBaseModel):
11
+ class TestsetOutputResponse(UniversalBaseModel):
12
12
  id: typing_extensions.Annotated[str, FieldMetadata(alias="_id")]
13
13
  name: str
14
14
  created_at: str
15
15
  updated_at: str
16
16
 
17
17
  if IS_PYDANTIC_V2:
18
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
19
21
  else:
20
22
 
21
23
  class Config:
@@ -11,7 +11,9 @@ class TestsetRequest(UniversalBaseModel):
11
11
  testset: Testset
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -12,7 +12,9 @@ class TestsetResponse(UniversalBaseModel):
12
12
  testset: typing.Optional[Testset] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -6,13 +6,15 @@ import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
7
 
8
8
 
9
- class TestSetSimpleResponse(UniversalBaseModel):
9
+ class TestsetSimpleResponse(UniversalBaseModel):
10
10
  id: str
11
11
  name: str
12
12
  created_at: str
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class TestsetsResponse(UniversalBaseModel):
12
12
  testsets: typing.Optional[typing.List[Testset]] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class TimeDto(UniversalBaseModel):
12
12
  end: dt.datetime
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class TreeDto(UniversalBaseModel):
12
12
  type: typing.Optional[TreeType] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -11,7 +11,9 @@ class UpdateAppOutput(UniversalBaseModel):
11
11
  app_name: str
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -11,7 +11,9 @@ class UserRequest(UniversalBaseModel):
11
11
  email: str
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -13,7 +13,9 @@ class ValidationError(UniversalBaseModel):
13
13
  type: str
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -26,12 +26,14 @@ class WorkflowArtifact(UniversalBaseModel):
26
26
  slug: typing.Optional[str] = None
27
27
  id: typing.Optional[str] = None
28
28
  flags: typing.Optional[WorkflowFlags] = None
29
- metadata: typing.Optional[
30
- typing.Dict[str, typing.Optional["FullJsonOutput"]]
31
- ] = None
29
+ metadata: typing.Optional[typing.Dict[str, typing.Optional["FullJsonOutput"]]] = (
30
+ None
31
+ )
32
32
 
33
33
  if IS_PYDANTIC_V2:
34
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
34
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
35
+ extra="allow", frozen=True
36
+ ) # type: ignore # Pydantic v2
35
37
  else:
36
38
 
37
39
  class Config:
@@ -11,7 +11,9 @@ class WorkflowData(UniversalBaseModel):
11
11
  configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -12,7 +12,9 @@ class WorkflowFlags(UniversalBaseModel):
12
12
  is_human: typing.Optional[bool] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -11,7 +11,9 @@ class WorkflowRequest(UniversalBaseModel):
11
11
  workflow: WorkflowArtifact
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -12,7 +12,9 @@ class WorkflowResponse(UniversalBaseModel):
12
12
  workflow: typing.Optional[WorkflowArtifact] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -33,9 +33,9 @@ class WorkflowRevision(UniversalBaseModel):
33
33
  slug: typing.Optional[str] = None
34
34
  id: typing.Optional[str] = None
35
35
  flags: typing.Optional[WorkflowFlags] = None
36
- metadata: typing.Optional[
37
- typing.Dict[str, typing.Optional["FullJsonOutput"]]
38
- ] = None
36
+ metadata: typing.Optional[typing.Dict[str, typing.Optional["FullJsonOutput"]]] = (
37
+ None
38
+ )
39
39
  data: typing.Optional[WorkflowData] = None
40
40
  artifact_id: typing.Optional[str] = None
41
41
  artifact: typing.Optional[Artifact] = None
@@ -43,7 +43,9 @@ class WorkflowRevision(UniversalBaseModel):
43
43
  variant: typing.Optional[WorkflowVariant] = None
44
44
 
45
45
  if IS_PYDANTIC_V2:
46
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
46
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
47
+ extra="allow", frozen=True
48
+ ) # type: ignore # Pydantic v2
47
49
  else:
48
50
 
49
51
  class Config:
@@ -11,7 +11,9 @@ class WorkflowRevisionRequest(UniversalBaseModel):
11
11
  revision: WorkflowRevision
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -12,7 +12,9 @@ class WorkflowRevisionResponse(UniversalBaseModel):
12
12
  revision: typing.Optional[WorkflowRevision] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class WorkflowRevisionsResponse(UniversalBaseModel):
12
12
  revisions: typing.Optional[typing.List[WorkflowRevision]] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -27,14 +27,16 @@ class WorkflowVariant(UniversalBaseModel):
27
27
  slug: typing.Optional[str] = None
28
28
  id: typing.Optional[str] = None
29
29
  flags: typing.Optional[WorkflowFlags] = None
30
- metadata: typing.Optional[
31
- typing.Dict[str, typing.Optional["FullJsonOutput"]]
32
- ] = None
30
+ metadata: typing.Optional[typing.Dict[str, typing.Optional["FullJsonOutput"]]] = (
31
+ None
32
+ )
33
33
  artifact_id: typing.Optional[str] = None
34
34
  artifact: typing.Optional[WorkflowArtifact] = None
35
35
 
36
36
  if IS_PYDANTIC_V2:
37
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
37
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
38
+ extra="allow", frozen=True
39
+ ) # type: ignore # Pydantic v2
38
40
  else:
39
41
 
40
42
  class Config:
@@ -11,7 +11,9 @@ class WorkflowVariantRequest(UniversalBaseModel):
11
11
  variant: WorkflowVariant
12
12
 
13
13
  if IS_PYDANTIC_V2:
14
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
15
17
  else:
16
18
 
17
19
  class Config:
@@ -12,7 +12,9 @@ class WorkflowVariantResponse(UniversalBaseModel):
12
12
  variant: typing.Optional[WorkflowVariant] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class WorkflowVariantsResponse(UniversalBaseModel):
12
12
  variants: typing.Optional[typing.List[WorkflowVariant]] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -12,7 +12,9 @@ class WorkflowsResponse(UniversalBaseModel):
12
12
  workflows: typing.Optional[typing.List[WorkflowArtifact]] = None
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config:
@@ -13,7 +13,9 @@ class Workspace(UniversalBaseModel):
13
13
  type: typing.Optional[str] = None
14
14
 
15
15
  if IS_PYDANTIC_V2:
16
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
17
19
  else:
18
20
 
19
21
  class Config:
@@ -12,7 +12,9 @@ class WorkspaceMemberResponse(UniversalBaseModel):
12
12
  roles: typing.List[WorkspacePermission]
13
13
 
14
14
  if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
16
18
  else:
17
19
 
18
20
  class Config: