label-studio-sdk 1.0.8__py3-none-any.whl → 1.0.11__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.

Potentially problematic release.


This version of label-studio-sdk might be problematic. Click here for more details.

Files changed (218) hide show
  1. label_studio_sdk/__init__.py +37 -8
  2. label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
  3. label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +5 -0
  4. label_studio_sdk/_extensions/pager_ext.py +8 -0
  5. label_studio_sdk/actions/client.py +91 -40
  6. label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
  7. label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
  8. label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
  9. label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
  10. label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
  11. label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
  12. label_studio_sdk/annotations/__init__.py +2 -2
  13. label_studio_sdk/annotations/client.py +278 -104
  14. label_studio_sdk/annotations/types/__init__.py +2 -1
  15. label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
  16. label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
  17. label_studio_sdk/base_client.py +54 -27
  18. label_studio_sdk/client.py +1 -0
  19. label_studio_sdk/comments/client.py +190 -44
  20. label_studio_sdk/converter/converter.py +56 -13
  21. label_studio_sdk/converter/imports/yolo.py +1 -1
  22. label_studio_sdk/converter/utils.py +3 -2
  23. label_studio_sdk/core/__init__.py +21 -4
  24. label_studio_sdk/core/client_wrapper.py +37 -19
  25. label_studio_sdk/core/file.py +37 -8
  26. label_studio_sdk/core/http_client.py +52 -28
  27. label_studio_sdk/core/jsonable_encoder.py +33 -31
  28. label_studio_sdk/core/pagination.py +5 -4
  29. label_studio_sdk/core/pydantic_utilities.py +272 -4
  30. label_studio_sdk/core/query_encoder.py +38 -13
  31. label_studio_sdk/core/request_options.py +3 -0
  32. label_studio_sdk/core/serialization.py +272 -0
  33. label_studio_sdk/errors/__init__.py +3 -1
  34. label_studio_sdk/errors/bad_request_error.py +2 -3
  35. label_studio_sdk/errors/not_found_error.py +9 -0
  36. label_studio_sdk/errors/unauthorized_error.py +9 -0
  37. label_studio_sdk/export_storage/azure/client.py +228 -58
  38. label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
  39. label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
  40. label_studio_sdk/export_storage/client.py +48 -18
  41. label_studio_sdk/export_storage/gcs/client.py +228 -58
  42. label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
  43. label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
  44. label_studio_sdk/export_storage/local/client.py +222 -56
  45. label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
  46. label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
  47. label_studio_sdk/export_storage/redis/client.py +228 -58
  48. label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
  49. label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
  50. label_studio_sdk/export_storage/s3/client.py +228 -58
  51. label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
  52. label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
  53. label_studio_sdk/export_storage/s3s/client.py +187 -43
  54. label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
  55. label_studio_sdk/files/client.py +172 -56
  56. label_studio_sdk/import_storage/azure/client.py +223 -53
  57. label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
  58. label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
  59. label_studio_sdk/import_storage/client.py +48 -18
  60. label_studio_sdk/import_storage/gcs/client.py +223 -53
  61. label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
  62. label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
  63. label_studio_sdk/import_storage/local/client.py +223 -53
  64. label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
  65. label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
  66. label_studio_sdk/import_storage/redis/client.py +223 -53
  67. label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
  68. label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
  69. label_studio_sdk/import_storage/s3/client.py +223 -53
  70. label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
  71. label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
  72. label_studio_sdk/import_storage/s3s/client.py +222 -52
  73. label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
  74. label_studio_sdk/jwt_settings/__init__.py +2 -0
  75. label_studio_sdk/jwt_settings/client.py +259 -0
  76. label_studio_sdk/label_interface/control_tags.py +16 -3
  77. label_studio_sdk/label_interface/interface.py +80 -1
  78. label_studio_sdk/label_interface/object_tags.py +2 -2
  79. label_studio_sdk/ml/client.py +280 -78
  80. label_studio_sdk/ml/types/ml_create_response.py +21 -31
  81. label_studio_sdk/ml/types/ml_update_response.py +21 -31
  82. label_studio_sdk/model_providers/client.py +173 -56
  83. label_studio_sdk/predictions/client.py +247 -101
  84. label_studio_sdk/projects/__init__.py +5 -1
  85. label_studio_sdk/projects/client.py +313 -115
  86. label_studio_sdk/projects/client_ext.py +16 -0
  87. label_studio_sdk/projects/exports/__init__.py +3 -0
  88. label_studio_sdk/projects/exports/client.py +447 -296
  89. label_studio_sdk/projects/exports/client_ext.py +200 -0
  90. label_studio_sdk/projects/exports/types/__init__.py +6 -0
  91. label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
  92. label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
  93. label_studio_sdk/projects/pauses/__init__.py +2 -0
  94. label_studio_sdk/projects/pauses/client.py +704 -0
  95. label_studio_sdk/projects/types/projects_create_response.py +29 -34
  96. label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
  97. label_studio_sdk/projects/types/projects_list_response.py +11 -21
  98. label_studio_sdk/projects/types/projects_update_response.py +34 -34
  99. label_studio_sdk/prompts/client.py +309 -92
  100. label_studio_sdk/prompts/indicators/client.py +67 -23
  101. label_studio_sdk/prompts/runs/client.py +95 -40
  102. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
  103. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
  104. label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
  105. label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
  106. label_studio_sdk/prompts/versions/client.py +277 -88
  107. label_studio_sdk/tasks/client.py +263 -90
  108. label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
  109. label_studio_sdk/tokens/__init__.py +2 -0
  110. label_studio_sdk/tokens/client.py +470 -0
  111. label_studio_sdk/tokens/client_ext.py +94 -0
  112. label_studio_sdk/types/__init__.py +20 -6
  113. label_studio_sdk/types/access_token_response.py +22 -0
  114. label_studio_sdk/types/annotation.py +29 -38
  115. label_studio_sdk/types/annotation_filter_options.py +14 -24
  116. label_studio_sdk/types/annotations_dm_field.py +30 -39
  117. label_studio_sdk/types/api_token_response.py +32 -0
  118. label_studio_sdk/types/azure_blob_export_storage.py +28 -37
  119. label_studio_sdk/types/azure_blob_import_storage.py +28 -37
  120. label_studio_sdk/types/base_task.py +30 -39
  121. label_studio_sdk/types/base_task_updated_by.py +3 -1
  122. label_studio_sdk/types/base_user.py +14 -21
  123. label_studio_sdk/types/comment.py +12 -21
  124. label_studio_sdk/types/comment_created_by.py +1 -1
  125. label_studio_sdk/types/converted_format.py +12 -22
  126. label_studio_sdk/types/data_manager_task_serializer.py +31 -40
  127. label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
  128. label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
  129. label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
  130. label_studio_sdk/types/export.py +17 -26
  131. label_studio_sdk/types/export_format.py +25 -0
  132. label_studio_sdk/types/export_snapshot.py +45 -0
  133. label_studio_sdk/types/export_snapshot_status.py +5 -0
  134. label_studio_sdk/types/file_upload.py +11 -21
  135. label_studio_sdk/types/filter.py +16 -26
  136. label_studio_sdk/types/filter_group.py +12 -22
  137. label_studio_sdk/types/gcs_export_storage.py +28 -37
  138. label_studio_sdk/types/gcs_import_storage.py +28 -37
  139. label_studio_sdk/types/inference_run.py +14 -23
  140. label_studio_sdk/types/inference_run_cost_estimate.py +17 -27
  141. label_studio_sdk/types/inference_run_created_by.py +1 -1
  142. label_studio_sdk/types/inference_run_organization.py +1 -1
  143. label_studio_sdk/types/jwt_settings_response.py +32 -0
  144. label_studio_sdk/types/key_indicator_value.py +12 -22
  145. label_studio_sdk/types/key_indicators.py +0 -1
  146. label_studio_sdk/types/key_indicators_item.py +15 -25
  147. label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
  148. label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
  149. label_studio_sdk/types/local_files_export_storage.py +25 -34
  150. label_studio_sdk/types/local_files_import_storage.py +24 -33
  151. label_studio_sdk/types/ml_backend.py +23 -32
  152. label_studio_sdk/types/model_provider_connection.py +22 -31
  153. label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
  154. label_studio_sdk/types/model_provider_connection_organization.py +1 -1
  155. label_studio_sdk/types/model_provider_connection_provider.py +3 -1
  156. label_studio_sdk/types/pause.py +34 -0
  157. label_studio_sdk/types/pause_paused_by.py +5 -0
  158. label_studio_sdk/types/prediction.py +21 -30
  159. label_studio_sdk/types/project.py +58 -55
  160. label_studio_sdk/types/project_import.py +21 -30
  161. label_studio_sdk/types/project_label_config.py +12 -22
  162. label_studio_sdk/types/prompt.py +24 -32
  163. label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
  164. label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
  165. label_studio_sdk/types/prompt_created_by.py +1 -1
  166. label_studio_sdk/types/prompt_organization.py +1 -1
  167. label_studio_sdk/types/prompt_version.py +13 -22
  168. label_studio_sdk/types/prompt_version_created_by.py +1 -1
  169. label_studio_sdk/types/prompt_version_organization.py +1 -1
  170. label_studio_sdk/types/prompt_version_provider.py +3 -1
  171. label_studio_sdk/types/redis_export_storage.py +29 -38
  172. label_studio_sdk/types/redis_import_storage.py +28 -37
  173. label_studio_sdk/types/refined_prompt_response.py +19 -29
  174. label_studio_sdk/types/s3export_storage.py +36 -43
  175. label_studio_sdk/types/s3import_storage.py +37 -44
  176. label_studio_sdk/types/s3s_export_storage.py +26 -33
  177. label_studio_sdk/types/s3s_import_storage.py +35 -42
  178. label_studio_sdk/types/serialization_option.py +12 -22
  179. label_studio_sdk/types/serialization_options.py +18 -28
  180. label_studio_sdk/types/task.py +44 -47
  181. label_studio_sdk/types/task_annotators_item.py +1 -1
  182. label_studio_sdk/types/task_comment_authors_item.py +1 -1
  183. label_studio_sdk/types/task_filter_options.py +15 -25
  184. label_studio_sdk/types/user_simple.py +11 -21
  185. label_studio_sdk/types/view.py +16 -26
  186. label_studio_sdk/types/webhook.py +19 -28
  187. label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
  188. label_studio_sdk/types/workspace.py +22 -31
  189. label_studio_sdk/users/client.py +257 -63
  190. label_studio_sdk/users/types/users_get_token_response.py +12 -22
  191. label_studio_sdk/users/types/users_reset_token_response.py +12 -22
  192. label_studio_sdk/version.py +0 -1
  193. label_studio_sdk/versions/__init__.py +5 -0
  194. label_studio_sdk/versions/client.py +112 -0
  195. label_studio_sdk/versions/types/__init__.py +6 -0
  196. label_studio_sdk/versions/types/versions_get_response.py +73 -0
  197. label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
  198. label_studio_sdk/views/client.py +219 -52
  199. label_studio_sdk/views/types/views_create_request_data.py +13 -23
  200. label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
  201. label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
  202. label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
  203. label_studio_sdk/views/types/views_update_request_data.py +13 -23
  204. label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
  205. label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
  206. label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
  207. label_studio_sdk/webhooks/client.py +191 -61
  208. label_studio_sdk/workspaces/client.py +164 -41
  209. label_studio_sdk/workspaces/members/client.py +109 -31
  210. label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
  211. label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
  212. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/METADATA +8 -5
  213. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/RECORD +215 -188
  214. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/WHEEL +1 -1
  215. label_studio_sdk/types/export_convert.py +0 -32
  216. label_studio_sdk/types/export_create.py +0 -54
  217. label_studio_sdk/types/export_create_status.py +0 -5
  218. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/LICENSE +0 -0
@@ -1,20 +1,20 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
- from .inference_run_created_by import InferenceRunCreatedBy
9
5
  from .inference_run_organization import InferenceRunOrganization
6
+ from .inference_run_created_by import InferenceRunCreatedBy
10
7
  from .inference_run_project_subset import InferenceRunProjectSubset
11
8
  from .inference_run_status import InferenceRunStatus
9
+ import datetime as dt
10
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
11
+ import pydantic
12
12
 
13
13
 
14
- class InferenceRun(pydantic_v1.BaseModel):
14
+ class InferenceRun(UniversalBaseModel):
15
15
  organization: typing.Optional[InferenceRunOrganization] = None
16
16
  project: int
17
- model_version: typing.Optional[str] = None
17
+ model_version: typing.Optional[int] = None
18
18
  created_by: typing.Optional[InferenceRunCreatedBy] = None
19
19
  project_subset: InferenceRunProjectSubset
20
20
  status: typing.Optional[InferenceRunStatus] = None
@@ -24,20 +24,11 @@ class InferenceRun(pydantic_v1.BaseModel):
24
24
  predictions_updated_at: typing.Optional[dt.datetime] = None
25
25
  completed_at: typing.Optional[dt.datetime] = None
26
26
 
27
- def json(self, **kwargs: typing.Any) -> str:
28
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
29
- return super().json(**kwargs_with_defaults)
30
-
31
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
32
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
33
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
34
-
35
- return deep_union_pydantic_dicts(
36
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
37
- )
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
38
30
 
39
- class Config:
40
- frozen = True
41
- smart_union = True
42
- extra = pydantic_v1.Extra.allow
43
- json_encoders = {dt.datetime: serialize_datetime}
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -1,57 +1,47 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
-
10
- class InferenceRunCostEstimate(pydantic_v1.BaseModel):
11
- prompt_cost_usd: typing.Optional[str] = pydantic_v1.Field(default=None)
9
+ class InferenceRunCostEstimate(UniversalBaseModel):
10
+ prompt_cost_usd: typing.Optional[str] = pydantic.Field(default=None)
12
11
  """
13
12
  Cost of the prompt (in USD)
14
13
  """
15
14
 
16
- completion_cost_usd: typing.Optional[str] = pydantic_v1.Field(default=None)
15
+ completion_cost_usd: typing.Optional[str] = pydantic.Field(default=None)
17
16
  """
18
17
  Cost of the completion (in USD)
19
18
  """
20
19
 
21
- total_cost_usd: typing.Optional[str] = pydantic_v1.Field(default=None)
20
+ total_cost_usd: typing.Optional[str] = pydantic.Field(default=None)
22
21
  """
23
22
  Total cost of the inference (in USD)
24
23
  """
25
24
 
26
- is_error: typing.Optional[bool] = pydantic_v1.Field(default=None)
25
+ is_error: typing.Optional[bool] = pydantic.Field(default=None)
27
26
  """
28
27
  Whether an error occurred or not
29
28
  """
30
29
 
31
- error_type: typing.Optional[str] = pydantic_v1.Field(default=None)
30
+ error_type: typing.Optional[str] = pydantic.Field(default=None)
32
31
  """
33
32
  Type of error (e.g. "Timeout", "Rate Limit", etc)
34
33
  """
35
34
 
36
- error_message: typing.Optional[str] = pydantic_v1.Field(default=None)
35
+ error_message: typing.Optional[str] = pydantic.Field(default=None)
37
36
  """
38
37
  Error message details
39
38
  """
40
39
 
41
- def json(self, **kwargs: typing.Any) -> str:
42
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
43
- return super().json(**kwargs_with_defaults)
44
-
45
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
46
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
47
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
48
-
49
- return deep_union_pydantic_dicts(
50
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
51
- )
40
+ if IS_PYDANTIC_V2:
41
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
42
+ else:
52
43
 
53
- class Config:
54
- frozen = True
55
- smart_union = True
56
- extra = pydantic_v1.Extra.allow
57
- json_encoders = {dt.datetime: serialize_datetime}
44
+ class Config:
45
+ frozen = True
46
+ smart_union = True
47
+ extra = pydantic.Extra.allow
@@ -2,4 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- InferenceRunCreatedBy = typing.Union[int, typing.Dict[str, typing.Any]]
5
+ InferenceRunCreatedBy = typing.Union[int, typing.Dict[str, typing.Optional[typing.Any]]]
@@ -2,4 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- InferenceRunOrganization = typing.Union[int, typing.Dict[str, typing.Any]]
5
+ InferenceRunOrganization = typing.Union[int, typing.Dict[str, typing.Optional[typing.Any]]]
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import pydantic
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+
8
+
9
+ class JwtSettingsResponse(UniversalBaseModel):
10
+ api_tokens_enabled: bool = pydantic.Field()
11
+ """
12
+ Whether JWT API tokens are enabled
13
+ """
14
+
15
+ legacy_api_tokens_enabled: bool = pydantic.Field()
16
+ """
17
+ Whether legacy API tokens are enabled
18
+ """
19
+
20
+ api_token_ttl_days: int = pydantic.Field()
21
+ """
22
+ Number of days before API tokens expire
23
+ """
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -1,30 +1,20 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
-
10
- class KeyIndicatorValue(pydantic_v1.BaseModel):
9
+ class KeyIndicatorValue(UniversalBaseModel):
11
10
  title: typing.Optional[str] = None
12
- values: typing.Optional[typing.Dict[str, typing.Any]] = None
13
-
14
- def json(self, **kwargs: typing.Any) -> str:
15
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
16
- return super().json(**kwargs_with_defaults)
17
-
18
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
19
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
11
+ values: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
21
12
 
22
- return deep_union_pydantic_dicts(
23
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
24
- )
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ else:
25
16
 
26
- class Config:
27
- frozen = True
28
- smart_union = True
29
- extra = pydantic_v1.Extra.allow
30
- json_encoders = {dt.datetime: serialize_datetime}
17
+ class Config:
18
+ frozen = True
19
+ smart_union = True
20
+ extra = pydantic.Extra.allow
@@ -1,7 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
-
5
4
  from .key_indicators_item import KeyIndicatorsItem
6
5
 
7
6
  KeyIndicators = typing.List[KeyIndicatorsItem]
@@ -1,51 +1,41 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import pydantic
4
5
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
6
  from .key_indicators_item_additional_kpis_item import KeyIndicatorsItemAdditionalKpisItem
9
7
  from .key_indicators_item_extra_kpis_item import KeyIndicatorsItemExtraKpisItem
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
10
9
 
11
10
 
12
- class KeyIndicatorsItem(pydantic_v1.BaseModel):
13
- key: str = pydantic_v1.Field()
11
+ class KeyIndicatorsItem(UniversalBaseModel):
12
+ key: str = pydantic.Field()
14
13
  """
15
14
  The key for this KPI, where you can find the value from inside main_kpi
16
15
  """
17
16
 
18
- title: str = pydantic_v1.Field()
17
+ title: str = pydantic.Field()
19
18
  """
20
19
  The title for this metric, to be displayed to the user
21
20
  """
22
21
 
23
22
  main_kpi: str
24
23
  secondary_kpi: typing.Optional[str] = None
25
- additional_kpis: typing.Optional[typing.List[KeyIndicatorsItemAdditionalKpisItem]] = pydantic_v1.Field(default=None)
24
+ additional_kpis: typing.Optional[typing.List[KeyIndicatorsItemAdditionalKpisItem]] = pydantic.Field(default=None)
26
25
  """
27
26
  Additional KPIs to be displayed at the bottom of the box
28
27
  """
29
28
 
30
- extra_kpis: typing.Optional[typing.List[KeyIndicatorsItemExtraKpisItem]] = pydantic_v1.Field(default=None)
29
+ extra_kpis: typing.Optional[typing.List[KeyIndicatorsItemExtraKpisItem]] = pydantic.Field(default=None)
31
30
  """
32
31
  Extra KPIs to be displayed in the hover-tootip for that indicator
33
32
  """
34
33
 
35
- def json(self, **kwargs: typing.Any) -> str:
36
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
37
- return super().json(**kwargs_with_defaults)
38
-
39
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
40
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
41
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
42
-
43
- return deep_union_pydantic_dicts(
44
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
45
- )
34
+ if IS_PYDANTIC_V2:
35
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
36
+ else:
46
37
 
47
- class Config:
48
- frozen = True
49
- smart_union = True
50
- extra = pydantic_v1.Extra.allow
51
- json_encoders = {dt.datetime: serialize_datetime}
38
+ class Config:
39
+ frozen = True
40
+ smart_union = True
41
+ extra = pydantic.Extra.allow
@@ -1,37 +1,27 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
-
10
- class KeyIndicatorsItemAdditionalKpisItem(pydantic_v1.BaseModel):
11
- key: typing.Optional[str] = pydantic_v1.Field(default=None)
9
+ class KeyIndicatorsItemAdditionalKpisItem(UniversalBaseModel):
10
+ key: typing.Optional[str] = pydantic.Field(default=None)
12
11
  """
13
12
  The key for this KPI, where you can find the value from inside main_kpi
14
13
  """
15
14
 
16
- label: typing.Optional[str] = pydantic_v1.Field(default=None)
15
+ label: typing.Optional[str] = pydantic.Field(default=None)
17
16
  """
18
17
  The label for this KPI, to be displayed to the user
19
18
  """
20
19
 
21
- def json(self, **kwargs: typing.Any) -> str:
22
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
- return super().json(**kwargs_with_defaults)
24
-
25
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
26
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
27
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
28
-
29
- return deep_union_pydantic_dicts(
30
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
31
- )
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
32
23
 
33
- class Config:
34
- frozen = True
35
- smart_union = True
36
- extra = pydantic_v1.Extra.allow
37
- json_encoders = {dt.datetime: serialize_datetime}
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -1,37 +1,27 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
-
10
- class KeyIndicatorsItemExtraKpisItem(pydantic_v1.BaseModel):
11
- key: typing.Optional[str] = pydantic_v1.Field(default=None)
9
+ class KeyIndicatorsItemExtraKpisItem(UniversalBaseModel):
10
+ key: typing.Optional[str] = pydantic.Field(default=None)
12
11
  """
13
12
  The key for this KPI, where you can find the value from inside main_kpi
14
13
  """
15
14
 
16
- label: typing.Optional[str] = pydantic_v1.Field(default=None)
15
+ label: typing.Optional[str] = pydantic.Field(default=None)
17
16
  """
18
17
  The label for this KPI, to be displayed to the user
19
18
  """
20
19
 
21
- def json(self, **kwargs: typing.Any) -> str:
22
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
- return super().json(**kwargs_with_defaults)
24
-
25
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
26
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
27
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
28
-
29
- return deep_union_pydantic_dicts(
30
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
31
- )
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
32
23
 
33
- class Config:
34
- frozen = True
35
- smart_union = True
36
- extra = pydantic_v1.Extra.allow
37
- json_encoders = {dt.datetime: serialize_datetime}
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -1,97 +1,88 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
5
+ import pydantic
6
+ import datetime as dt
8
7
  from .local_files_export_storage_status import LocalFilesExportStorageStatus
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
9
 
10
10
 
11
- class LocalFilesExportStorage(pydantic_v1.BaseModel):
11
+ class LocalFilesExportStorage(UniversalBaseModel):
12
12
  id: typing.Optional[int] = None
13
13
  type: typing.Optional[str] = None
14
14
  synchronizable: typing.Optional[bool] = None
15
- path: typing.Optional[str] = pydantic_v1.Field(default=None)
15
+ path: typing.Optional[str] = pydantic.Field(default=None)
16
16
  """
17
17
  Local path
18
18
  """
19
19
 
20
- regex_filter: typing.Optional[str] = pydantic_v1.Field(default=None)
20
+ regex_filter: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  Regex for filtering objects
23
23
  """
24
24
 
25
- use_blob_urls: typing.Optional[bool] = pydantic_v1.Field(default=None)
25
+ use_blob_urls: typing.Optional[bool] = pydantic.Field(default=None)
26
26
  """
27
27
  Interpret objects as BLOBs and generate URLs
28
28
  """
29
29
 
30
- last_sync: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
30
+ last_sync: typing.Optional[dt.datetime] = pydantic.Field(default=None)
31
31
  """
32
32
  Last sync finished time
33
33
  """
34
34
 
35
- last_sync_count: typing.Optional[int] = pydantic_v1.Field(default=None)
35
+ last_sync_count: typing.Optional[int] = pydantic.Field(default=None)
36
36
  """
37
37
  Count of tasks synced last time
38
38
  """
39
39
 
40
- last_sync_job: typing.Optional[str] = pydantic_v1.Field(default=None)
40
+ last_sync_job: typing.Optional[str] = pydantic.Field(default=None)
41
41
  """
42
42
  Last sync job ID
43
43
  """
44
44
 
45
45
  status: typing.Optional[LocalFilesExportStorageStatus] = None
46
- traceback: typing.Optional[str] = pydantic_v1.Field(default=None)
46
+ traceback: typing.Optional[str] = pydantic.Field(default=None)
47
47
  """
48
48
  Traceback report for the last failed sync
49
49
  """
50
50
 
51
- meta: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
51
+ meta: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
52
52
  """
53
53
  Meta and debug information about storage processes
54
54
  """
55
55
 
56
- title: typing.Optional[str] = pydantic_v1.Field(default=None)
56
+ title: typing.Optional[str] = pydantic.Field(default=None)
57
57
  """
58
58
  Cloud storage title
59
59
  """
60
60
 
61
- description: typing.Optional[str] = pydantic_v1.Field(default=None)
61
+ description: typing.Optional[str] = pydantic.Field(default=None)
62
62
  """
63
63
  Cloud storage description
64
64
  """
65
65
 
66
- created_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
66
+ created_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
67
67
  """
68
68
  Creation time
69
69
  """
70
70
 
71
- can_delete_objects: typing.Optional[bool] = pydantic_v1.Field(default=None)
71
+ can_delete_objects: typing.Optional[bool] = pydantic.Field(default=None)
72
72
  """
73
73
  Deletion from storage enabled
74
74
  """
75
75
 
76
- project: int = pydantic_v1.Field()
76
+ project: int = pydantic.Field()
77
77
  """
78
78
  A unique integer value identifying this project.
79
79
  """
80
80
 
81
- def json(self, **kwargs: typing.Any) -> str:
82
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
83
- return super().json(**kwargs_with_defaults)
84
-
85
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
86
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
87
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
88
-
89
- return deep_union_pydantic_dicts(
90
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
91
- )
81
+ if IS_PYDANTIC_V2:
82
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
83
+ else:
92
84
 
93
- class Config:
94
- frozen = True
95
- smart_union = True
96
- extra = pydantic_v1.Extra.allow
97
- json_encoders = {dt.datetime: serialize_datetime}
85
+ class Config:
86
+ frozen = True
87
+ smart_union = True
88
+ extra = pydantic.Extra.allow
@@ -1,92 +1,83 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
5
+ import pydantic
6
+ import datetime as dt
8
7
  from .local_files_import_storage_status import LocalFilesImportStorageStatus
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
9
 
10
10
 
11
- class LocalFilesImportStorage(pydantic_v1.BaseModel):
11
+ class LocalFilesImportStorage(UniversalBaseModel):
12
12
  id: typing.Optional[int] = None
13
13
  type: typing.Optional[str] = None
14
14
  synchronizable: typing.Optional[bool] = None
15
- path: typing.Optional[str] = pydantic_v1.Field(default=None)
15
+ path: typing.Optional[str] = pydantic.Field(default=None)
16
16
  """
17
17
  Local path
18
18
  """
19
19
 
20
- regex_filter: typing.Optional[str] = pydantic_v1.Field(default=None)
20
+ regex_filter: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  Regex for filtering objects
23
23
  """
24
24
 
25
- use_blob_urls: typing.Optional[bool] = pydantic_v1.Field(default=None)
25
+ use_blob_urls: typing.Optional[bool] = pydantic.Field(default=None)
26
26
  """
27
27
  Interpret objects as BLOBs and generate URLs
28
28
  """
29
29
 
30
- last_sync: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
30
+ last_sync: typing.Optional[dt.datetime] = pydantic.Field(default=None)
31
31
  """
32
32
  Last sync finished time
33
33
  """
34
34
 
35
- last_sync_count: typing.Optional[int] = pydantic_v1.Field(default=None)
35
+ last_sync_count: typing.Optional[int] = pydantic.Field(default=None)
36
36
  """
37
37
  Count of tasks synced last time
38
38
  """
39
39
 
40
- last_sync_job: typing.Optional[str] = pydantic_v1.Field(default=None)
40
+ last_sync_job: typing.Optional[str] = pydantic.Field(default=None)
41
41
  """
42
42
  Last sync job ID
43
43
  """
44
44
 
45
45
  status: typing.Optional[LocalFilesImportStorageStatus] = None
46
- traceback: typing.Optional[str] = pydantic_v1.Field(default=None)
46
+ traceback: typing.Optional[str] = pydantic.Field(default=None)
47
47
  """
48
48
  Traceback report for the last failed sync
49
49
  """
50
50
 
51
- meta: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
51
+ meta: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
52
52
  """
53
53
  Meta and debug information about storage processes
54
54
  """
55
55
 
56
- title: typing.Optional[str] = pydantic_v1.Field(default=None)
56
+ title: typing.Optional[str] = pydantic.Field(default=None)
57
57
  """
58
58
  Cloud storage title
59
59
  """
60
60
 
61
- description: typing.Optional[str] = pydantic_v1.Field(default=None)
61
+ description: typing.Optional[str] = pydantic.Field(default=None)
62
62
  """
63
63
  Cloud storage description
64
64
  """
65
65
 
66
- created_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
66
+ created_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
67
67
  """
68
68
  Creation time
69
69
  """
70
70
 
71
- project: int = pydantic_v1.Field()
71
+ project: int = pydantic.Field()
72
72
  """
73
73
  A unique integer value identifying this project.
74
74
  """
75
75
 
76
- def json(self, **kwargs: typing.Any) -> str:
77
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
78
- return super().json(**kwargs_with_defaults)
79
-
80
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
81
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
82
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
83
-
84
- return deep_union_pydantic_dicts(
85
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
86
- )
76
+ if IS_PYDANTIC_V2:
77
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
78
+ else:
87
79
 
88
- class Config:
89
- frozen = True
90
- smart_union = True
91
- extra = pydantic_v1.Extra.allow
92
- json_encoders = {dt.datetime: serialize_datetime}
80
+ class Config:
81
+ frozen = True
82
+ smart_union = True
83
+ extra = pydantic.Extra.allow