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,96 +1,91 @@
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 ProjectsCreateResponse(pydantic_v1.BaseModel):
9
+ class ProjectsCreateResponse(UniversalBaseModel):
11
10
  """
12
11
  Project
13
12
  """
14
13
 
15
- title: typing.Optional[str] = pydantic_v1.Field(default=None)
14
+ id: typing.Optional[int] = pydantic.Field(default=None)
15
+ """
16
+ Project ID
17
+ """
18
+
19
+ title: typing.Optional[str] = pydantic.Field(default=None)
16
20
  """
17
21
  Project title
18
22
  """
19
23
 
20
- description: typing.Optional[str] = pydantic_v1.Field(default=None)
24
+ description: typing.Optional[str] = pydantic.Field(default=None)
21
25
  """
22
26
  Project description
23
27
  """
24
28
 
25
- label_config: typing.Optional[str] = pydantic_v1.Field(default=None)
29
+ label_config: typing.Optional[str] = pydantic.Field(default=None)
26
30
  """
27
31
  Label config in XML format
28
32
  """
29
33
 
30
- expert_instruction: typing.Optional[str] = pydantic_v1.Field(default=None)
34
+ expert_instruction: typing.Optional[str] = pydantic.Field(default=None)
31
35
  """
32
36
  Labeling instructions to show to the user
33
37
  """
34
38
 
35
- show_instruction: typing.Optional[bool] = pydantic_v1.Field(default=None)
39
+ show_instruction: typing.Optional[bool] = pydantic.Field(default=None)
36
40
  """
37
41
  Show labeling instructions
38
42
  """
39
43
 
40
- show_skip_button: typing.Optional[bool] = pydantic_v1.Field(default=None)
44
+ show_skip_button: typing.Optional[bool] = pydantic.Field(default=None)
41
45
  """
42
46
  Show skip button
43
47
  """
44
48
 
45
- enable_empty_annotation: typing.Optional[bool] = pydantic_v1.Field(default=None)
49
+ enable_empty_annotation: typing.Optional[bool] = pydantic.Field(default=None)
46
50
  """
47
51
  Allow empty annotations
48
52
  """
49
53
 
50
- show_annotation_history: typing.Optional[bool] = pydantic_v1.Field(default=None)
54
+ show_annotation_history: typing.Optional[bool] = pydantic.Field(default=None)
51
55
  """
52
56
  Show annotation history
53
57
  """
54
58
 
55
- reveal_preannotations_interactively: typing.Optional[bool] = pydantic_v1.Field(default=None)
59
+ reveal_preannotations_interactively: typing.Optional[bool] = pydantic.Field(default=None)
56
60
  """
57
61
  Reveal preannotations interactively. If set to True, predictions will be shown to the user only after selecting the area of interest
58
62
  """
59
63
 
60
- show_collab_predictions: typing.Optional[bool] = pydantic_v1.Field(default=None)
64
+ show_collab_predictions: typing.Optional[bool] = pydantic.Field(default=None)
61
65
  """
62
66
  Show predictions to annotators
63
67
  """
64
68
 
65
- maximum_annotations: typing.Optional[int] = pydantic_v1.Field(default=None)
69
+ maximum_annotations: typing.Optional[int] = pydantic.Field(default=None)
66
70
  """
67
71
  Maximum annotations per task
68
72
  """
69
73
 
70
- color: typing.Optional[str] = pydantic_v1.Field(default=None)
74
+ color: typing.Optional[str] = pydantic.Field(default=None)
71
75
  """
72
76
  Project color in HEX format
73
77
  """
74
78
 
75
- control_weights: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
79
+ control_weights: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
76
80
  """
77
81
  Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
78
82
  """
79
83
 
80
- def json(self, **kwargs: typing.Any) -> str:
81
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
82
- return super().json(**kwargs_with_defaults)
83
-
84
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
85
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
86
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
87
-
88
- return deep_union_pydantic_dicts(
89
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
90
- )
84
+ if IS_PYDANTIC_V2:
85
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
86
+ else:
91
87
 
92
- class Config:
93
- frozen = True
94
- smart_union = True
95
- extra = pydantic_v1.Extra.allow
96
- json_encoders = {dt.datetime: serialize_datetime}
88
+ class Config:
89
+ frozen = True
90
+ smart_union = True
91
+ extra = pydantic.Extra.allow
@@ -1,71 +1,61 @@
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 ProjectsImportTasksResponse(pydantic_v1.BaseModel):
9
+ class ProjectsImportTasksResponse(UniversalBaseModel):
11
10
  """
12
11
  Task creation response
13
12
  """
14
13
 
15
- task_count: typing.Optional[int] = pydantic_v1.Field(default=None)
14
+ task_count: typing.Optional[int] = pydantic.Field(default=None)
16
15
  """
17
16
  Number of tasks added
18
17
  """
19
18
 
20
- annotation_count: typing.Optional[int] = pydantic_v1.Field(default=None)
19
+ annotation_count: typing.Optional[int] = pydantic.Field(default=None)
21
20
  """
22
21
  Number of annotations added
23
22
  """
24
23
 
25
- predictions_count: typing.Optional[int] = pydantic_v1.Field(default=None)
24
+ predictions_count: typing.Optional[int] = pydantic.Field(default=None)
26
25
  """
27
26
  Number of predictions added
28
27
  """
29
28
 
30
- duration: typing.Optional[float] = pydantic_v1.Field(default=None)
29
+ duration: typing.Optional[float] = pydantic.Field(default=None)
31
30
  """
32
31
  Time in seconds to create
33
32
  """
34
33
 
35
- file_upload_ids: typing.Optional[typing.List[int]] = pydantic_v1.Field(default=None)
34
+ file_upload_ids: typing.Optional[typing.List[int]] = pydantic.Field(default=None)
36
35
  """
37
36
  Database IDs of uploaded files
38
37
  """
39
38
 
40
- could_be_tasks_list: typing.Optional[bool] = pydantic_v1.Field(default=None)
39
+ could_be_tasks_list: typing.Optional[bool] = pydantic.Field(default=None)
41
40
  """
42
41
  Whether uploaded files can contain lists of tasks, like CSV/TSV files
43
42
  """
44
43
 
45
- found_formats: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None)
44
+ found_formats: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
46
45
  """
47
46
  The list of found file formats
48
47
  """
49
48
 
50
- data_columns: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None)
49
+ data_columns: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
51
50
  """
52
51
  The list of found data columns
53
52
  """
54
53
 
55
- def json(self, **kwargs: typing.Any) -> str:
56
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
57
- return super().json(**kwargs_with_defaults)
58
-
59
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
60
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
61
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
62
-
63
- return deep_union_pydantic_dicts(
64
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
65
- )
54
+ if IS_PYDANTIC_V2:
55
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
56
+ else:
66
57
 
67
- class Config:
68
- frozen = True
69
- smart_union = True
70
- extra = pydantic_v1.Extra.allow
71
- json_encoders = {dt.datetime: serialize_datetime}
58
+ class Config:
59
+ frozen = True
60
+ smart_union = True
61
+ extra = pydantic.Extra.allow
@@ -1,33 +1,23 @@
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
5
  from ...types.project import Project
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
9
8
 
10
9
 
11
- class ProjectsListResponse(pydantic_v1.BaseModel):
10
+ class ProjectsListResponse(UniversalBaseModel):
12
11
  count: int
13
12
  next: typing.Optional[str] = None
14
13
  previous: typing.Optional[str] = None
15
14
  results: typing.List[Project]
16
15
 
17
- def json(self, **kwargs: typing.Any) -> str:
18
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
- return super().json(**kwargs_with_defaults)
20
-
21
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
22
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
24
-
25
- return deep_union_pydantic_dicts(
26
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
27
- )
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
28
19
 
29
- class Config:
30
- frozen = True
31
- smart_union = True
32
- extra = pydantic_v1.Extra.allow
33
- json_encoders = {dt.datetime: serialize_datetime}
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -1,96 +1,96 @@
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 ProjectsUpdateResponse(pydantic_v1.BaseModel):
9
+ class ProjectsUpdateResponse(UniversalBaseModel):
11
10
  """
12
11
  Project
13
12
  """
14
13
 
15
- title: typing.Optional[str] = pydantic_v1.Field(default=None)
14
+ title: typing.Optional[str] = pydantic.Field(default=None)
16
15
  """
17
16
  Project title
18
17
  """
19
18
 
20
- description: typing.Optional[str] = pydantic_v1.Field(default=None)
19
+ description: typing.Optional[str] = pydantic.Field(default=None)
21
20
  """
22
21
  Project description
23
22
  """
24
23
 
25
- label_config: typing.Optional[str] = pydantic_v1.Field(default=None)
24
+ label_config: typing.Optional[str] = pydantic.Field(default=None)
26
25
  """
27
26
  Label config in XML format
28
27
  """
29
28
 
30
- expert_instruction: typing.Optional[str] = pydantic_v1.Field(default=None)
29
+ expert_instruction: typing.Optional[str] = pydantic.Field(default=None)
31
30
  """
32
31
  Labeling instructions to show to the user
33
32
  """
34
33
 
35
- show_instruction: typing.Optional[bool] = pydantic_v1.Field(default=None)
34
+ show_instruction: typing.Optional[bool] = pydantic.Field(default=None)
36
35
  """
37
36
  Show labeling instructions
38
37
  """
39
38
 
40
- show_skip_button: typing.Optional[bool] = pydantic_v1.Field(default=None)
39
+ show_skip_button: typing.Optional[bool] = pydantic.Field(default=None)
41
40
  """
42
41
  Show skip button
43
42
  """
44
43
 
45
- enable_empty_annotation: typing.Optional[bool] = pydantic_v1.Field(default=None)
44
+ enable_empty_annotation: typing.Optional[bool] = pydantic.Field(default=None)
46
45
  """
47
46
  Allow empty annotations
48
47
  """
49
48
 
50
- show_annotation_history: typing.Optional[bool] = pydantic_v1.Field(default=None)
49
+ show_annotation_history: typing.Optional[bool] = pydantic.Field(default=None)
51
50
  """
52
51
  Show annotation history
53
52
  """
54
53
 
55
- reveal_preannotations_interactively: typing.Optional[bool] = pydantic_v1.Field(default=None)
54
+ reveal_preannotations_interactively: typing.Optional[bool] = pydantic.Field(default=None)
56
55
  """
57
56
  Reveal preannotations interactively. If set to True, predictions will be shown to the user only after selecting the area of interest
58
57
  """
59
58
 
60
- show_collab_predictions: typing.Optional[bool] = pydantic_v1.Field(default=None)
59
+ show_collab_predictions: typing.Optional[bool] = pydantic.Field(default=None)
61
60
  """
62
61
  Show predictions to annotators
63
62
  """
64
63
 
65
- maximum_annotations: typing.Optional[int] = pydantic_v1.Field(default=None)
64
+ maximum_annotations: typing.Optional[int] = pydantic.Field(default=None)
66
65
  """
67
66
  Maximum annotations per task
68
67
  """
69
68
 
70
- color: typing.Optional[str] = pydantic_v1.Field(default=None)
69
+ annotation_limit_count: typing.Optional[int] = pydantic.Field(default=None)
71
70
  """
72
- Project color in HEX format
71
+ Maximum number of annotations per annotator
73
72
  """
74
73
 
75
- control_weights: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
74
+ annotation_limit_percent: typing.Optional[float] = pydantic.Field(default=None)
76
75
  """
77
- Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
76
+ Maximum percentage of annotations per annotator
78
77
  """
79
78
 
80
- def json(self, **kwargs: typing.Any) -> str:
81
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
82
- return super().json(**kwargs_with_defaults)
79
+ color: typing.Optional[str] = pydantic.Field(default=None)
80
+ """
81
+ Project color in HEX format
82
+ """
83
83
 
84
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
85
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
86
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
84
+ control_weights: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
85
+ """
86
+ Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
87
+ """
87
88
 
88
- return deep_union_pydantic_dicts(
89
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
90
- )
89
+ if IS_PYDANTIC_V2:
90
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
91
+ else:
91
92
 
92
- class Config:
93
- frozen = True
94
- smart_union = True
95
- extra = pydantic_v1.Extra.allow
96
- json_encoders = {dt.datetime: serialize_datetime}
93
+ class Config:
94
+ frozen = True
95
+ smart_union = True
96
+ extra = pydantic.Extra.allow