dart-tools 0.6.16__py3-none-any.whl → 0.7.0__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 dart-tools might be problematic. Click here for more details.

Files changed (285) hide show
  1. dart/__init__.py +8 -6
  2. dart/dart.py +421 -698
  3. dart/generated/__init__.py +1 -1
  4. dart/generated/api/__init__.py +8 -0
  5. dart/generated/api/comment/__init__.py +1 -0
  6. dart/generated/api/{transactions/transactions_create.py → comment/create_comment.py} +57 -58
  7. dart/generated/api/config/__init__.py +1 -0
  8. dart/generated/api/config/get_config.py +141 -0
  9. dart/generated/api/dartboard/__init__.py +1 -0
  10. dart/generated/api/{attachments/attachments_list.py → dartboard/retrieve_dartboard.py} +58 -62
  11. dart/generated/api/doc/__init__.py +1 -0
  12. dart/generated/api/doc/create_doc.py +179 -0
  13. dart/generated/api/doc/delete_doc.py +165 -0
  14. dart/generated/api/{comments/comments_list.py → doc/list_docs.py} +115 -111
  15. dart/generated/api/{forms/forms_list.py → doc/retrieve_doc.py} +58 -62
  16. dart/generated/api/doc/update_doc.py +188 -0
  17. dart/generated/api/folder/__init__.py +1 -0
  18. dart/generated/api/{webhooks/webhooks_list.py → folder/retrieve_folder.py} +58 -62
  19. dart/generated/api/task/__init__.py +1 -0
  20. dart/generated/api/task/create_task.py +172 -0
  21. dart/generated/api/task/delete_task.py +165 -0
  22. dart/generated/api/task/list_tasks.py +497 -0
  23. dart/generated/api/{layouts/layouts_list.py → task/retrieve_task.py} +58 -62
  24. dart/generated/api/task/update_task.py +188 -0
  25. dart/generated/api/view/__init__.py +1 -0
  26. dart/generated/api/{tenants/tenants_list.py → view/retrieve_view.py} +58 -62
  27. dart/generated/client.py +13 -13
  28. dart/generated/models/__init__.py +34 -342
  29. dart/generated/models/comment.py +34 -150
  30. dart/generated/models/comment_create.py +18 -97
  31. dart/generated/models/concise_doc.py +84 -0
  32. dart/generated/models/concise_task.py +267 -0
  33. dart/generated/models/dartboard.py +37 -237
  34. dart/generated/models/doc.py +31 -183
  35. dart/generated/models/doc_create.py +22 -238
  36. dart/generated/models/doc_update.py +26 -233
  37. dart/generated/models/folder.py +39 -84
  38. dart/generated/models/list_docs_o_item.py +15 -0
  39. dart/generated/models/{paginated_attachment_list.py → paginated_concise_doc_list.py} +18 -17
  40. dart/generated/models/{paginated_dartboard_list.py → paginated_concise_task_list.py} +18 -17
  41. dart/generated/models/task.py +149 -406
  42. dart/generated/models/task_create.py +113 -428
  43. dart/generated/models/task_update.py +113 -421
  44. dart/generated/models/user.py +14 -192
  45. dart/generated/models/user_space_configuration.py +147 -0
  46. dart/generated/models/view.py +39 -149
  47. dart/generated/models/wrapped_comment.py +65 -0
  48. dart/generated/models/wrapped_comment_create.py +65 -0
  49. dart/generated/models/wrapped_dartboard.py +65 -0
  50. dart/generated/models/wrapped_doc.py +65 -0
  51. dart/generated/models/wrapped_doc_create.py +65 -0
  52. dart/generated/models/wrapped_doc_update.py +65 -0
  53. dart/generated/models/wrapped_folder.py +65 -0
  54. dart/generated/models/wrapped_task.py +65 -0
  55. dart/generated/models/wrapped_task_create.py +65 -0
  56. dart/generated/models/wrapped_task_update.py +65 -0
  57. dart/generated/models/wrapped_view.py +65 -0
  58. dart/generated/types.py +4 -3
  59. dart/old.py +216 -0
  60. dart/order_manager.py +4 -15
  61. dart/webhook.py +2 -7
  62. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/METADATA +15 -75
  63. dart_tools-0.7.0.dist-info/RECORD +71 -0
  64. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/WHEEL +1 -1
  65. dart/generated/api/attachments/__init__.py +0 -0
  66. dart/generated/api/comments/__init__.py +0 -0
  67. dart/generated/api/dartboards/__init__.py +0 -0
  68. dart/generated/api/dartboards/dartboards_list.py +0 -286
  69. dart/generated/api/dashboards/__init__.py +0 -0
  70. dart/generated/api/dashboards/dashboards_list.py +0 -199
  71. dart/generated/api/docs/__init__.py +0 -0
  72. dart/generated/api/docs/docs_list.py +0 -387
  73. dart/generated/api/folders/__init__.py +0 -0
  74. dart/generated/api/folders/folders_list.py +0 -249
  75. dart/generated/api/form_fields/__init__.py +0 -0
  76. dart/generated/api/form_fields/form_fields_list.py +0 -169
  77. dart/generated/api/forms/__init__.py +0 -0
  78. dart/generated/api/layouts/__init__.py +0 -0
  79. dart/generated/api/links/__init__.py +0 -0
  80. dart/generated/api/links/links_list.py +0 -169
  81. dart/generated/api/options/__init__.py +0 -0
  82. dart/generated/api/options/options_list.py +0 -244
  83. dart/generated/api/properties/__init__.py +0 -0
  84. dart/generated/api/properties/properties_list.py +0 -219
  85. dart/generated/api/reactions/__init__.py +0 -0
  86. dart/generated/api/reactions/reactions_list.py +0 -169
  87. dart/generated/api/relationship_kinds/__init__.py +0 -0
  88. dart/generated/api/relationship_kinds/relationship_kinds_list.py +0 -169
  89. dart/generated/api/relationships/__init__.py +0 -0
  90. dart/generated/api/relationships/relationships_list.py +0 -169
  91. dart/generated/api/spaces/__init__.py +0 -0
  92. dart/generated/api/spaces/spaces_list.py +0 -229
  93. dart/generated/api/statuses/__init__.py +0 -0
  94. dart/generated/api/statuses/statuses_list.py +0 -264
  95. dart/generated/api/task_doc_relationships/__init__.py +0 -0
  96. dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +0 -169
  97. dart/generated/api/task_kinds/__init__.py +0 -0
  98. dart/generated/api/task_kinds/task_kinds_list.py +0 -219
  99. dart/generated/api/tasks/__init__.py +0 -0
  100. dart/generated/api/tasks/tasks_list.py +0 -461
  101. dart/generated/api/tenants/__init__.py +0 -0
  102. dart/generated/api/transactions/__init__.py +0 -0
  103. dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
  104. dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +0 -169
  105. dart/generated/api/user_data/__init__.py +0 -0
  106. dart/generated/api/user_data/user_data_entity_retrieve.py +0 -580
  107. dart/generated/api/users/__init__.py +0 -0
  108. dart/generated/api/users/users_list.py +0 -229
  109. dart/generated/api/views/__init__.py +0 -0
  110. dart/generated/api/views/views_list.py +0 -199
  111. dart/generated/api/webhooks/__init__.py +0 -0
  112. dart/generated/models/attachment.py +0 -112
  113. dart/generated/models/attachment_create.py +0 -121
  114. dart/generated/models/attachment_update.py +0 -125
  115. dart/generated/models/bar_chart_adtl.py +0 -98
  116. dart/generated/models/brainstorm.py +0 -149
  117. dart/generated/models/brainstorm_create.py +0 -134
  118. dart/generated/models/brainstorm_state.py +0 -10
  119. dart/generated/models/brainstorm_update.py +0 -153
  120. dart/generated/models/burn_up_chart_adtl.py +0 -103
  121. dart/generated/models/chart.py +0 -208
  122. dart/generated/models/chart_aggregation.py +0 -10
  123. dart/generated/models/chart_type.py +0 -14
  124. dart/generated/models/comment_reaction.py +0 -84
  125. dart/generated/models/comment_reaction_create.py +0 -82
  126. dart/generated/models/comment_reaction_update.py +0 -87
  127. dart/generated/models/comment_update.py +0 -148
  128. dart/generated/models/dartboard_create.py +0 -315
  129. dart/generated/models/dartboard_kind.py +0 -12
  130. dart/generated/models/dartboard_update.py +0 -317
  131. dart/generated/models/dartboards_list_kind.py +0 -12
  132. dart/generated/models/dashboard.py +0 -185
  133. dart/generated/models/dashboard_create.py +0 -171
  134. dart/generated/models/dashboard_update.py +0 -173
  135. dart/generated/models/discord_integration.py +0 -72
  136. dart/generated/models/doc_source_type.py +0 -13
  137. dart/generated/models/docs_list_o_item.py +0 -15
  138. dart/generated/models/entity_name.py +0 -22
  139. dart/generated/models/event.py +0 -420
  140. dart/generated/models/event_actor.py +0 -19
  141. dart/generated/models/event_create.py +0 -158
  142. dart/generated/models/event_kind.py +0 -88
  143. dart/generated/models/event_subscription.py +0 -74
  144. dart/generated/models/event_subscription_update.py +0 -173
  145. dart/generated/models/filter_applicability.py +0 -22
  146. dart/generated/models/filter_assignee.py +0 -116
  147. dart/generated/models/filter_connector.py +0 -9
  148. dart/generated/models/filter_group.py +0 -112
  149. dart/generated/models/filter_search.py +0 -82
  150. dart/generated/models/filter_set.py +0 -116
  151. dart/generated/models/folder_create.py +0 -150
  152. dart/generated/models/folder_kind.py +0 -10
  153. dart/generated/models/folder_update.py +0 -152
  154. dart/generated/models/folders_list_kind.py +0 -10
  155. dart/generated/models/form.py +0 -147
  156. dart/generated/models/form_create.py +0 -141
  157. dart/generated/models/form_field.py +0 -144
  158. dart/generated/models/form_field_create.py +0 -129
  159. dart/generated/models/form_field_update.py +0 -132
  160. dart/generated/models/form_update.py +0 -142
  161. dart/generated/models/github_integration.py +0 -163
  162. dart/generated/models/github_integration_tenant_extension_status.py +0 -11
  163. dart/generated/models/google_data.py +0 -94
  164. dart/generated/models/icon_kind.py +0 -10
  165. dart/generated/models/layout.py +0 -167
  166. dart/generated/models/layout_config.py +0 -70
  167. dart/generated/models/layout_create.py +0 -130
  168. dart/generated/models/layout_kind.py +0 -11
  169. dart/generated/models/layout_kind_config_map.py +0 -56
  170. dart/generated/models/layout_update.py +0 -130
  171. dart/generated/models/line_chart_adtl.py +0 -72
  172. dart/generated/models/models_response.py +0 -671
  173. dart/generated/models/notification.py +0 -120
  174. dart/generated/models/notification_update.py +0 -100
  175. dart/generated/models/notion_integration.py +0 -90
  176. dart/generated/models/notion_integration_tenant_extension_status.py +0 -10
  177. dart/generated/models/number_chart_adtl.py +0 -77
  178. dart/generated/models/operation.py +0 -874
  179. dart/generated/models/operation_kind.py +0 -12
  180. dart/generated/models/operation_model_kind.py +0 -36
  181. dart/generated/models/option.py +0 -118
  182. dart/generated/models/option_create.py +0 -105
  183. dart/generated/models/option_update.py +0 -107
  184. dart/generated/models/paginated_comment_list.py +0 -122
  185. dart/generated/models/paginated_comment_reaction_list.py +0 -122
  186. dart/generated/models/paginated_dashboard_list.py +0 -122
  187. dart/generated/models/paginated_doc_list.py +0 -122
  188. dart/generated/models/paginated_folder_list.py +0 -122
  189. dart/generated/models/paginated_form_field_list.py +0 -122
  190. dart/generated/models/paginated_form_list.py +0 -122
  191. dart/generated/models/paginated_layout_list.py +0 -122
  192. dart/generated/models/paginated_option_list.py +0 -122
  193. dart/generated/models/paginated_property_list.py +0 -122
  194. dart/generated/models/paginated_relationship_kind_list.py +0 -122
  195. dart/generated/models/paginated_relationship_list.py +0 -122
  196. dart/generated/models/paginated_space_list.py +0 -122
  197. dart/generated/models/paginated_status_list.py +0 -122
  198. dart/generated/models/paginated_task_doc_relationship_list.py +0 -122
  199. dart/generated/models/paginated_task_kind_list.py +0 -122
  200. dart/generated/models/paginated_task_link_list.py +0 -122
  201. dart/generated/models/paginated_task_list.py +0 -122
  202. dart/generated/models/paginated_tenant_list.py +0 -122
  203. dart/generated/models/paginated_user_dartboard_layout_list.py +0 -122
  204. dart/generated/models/paginated_user_list.py +0 -122
  205. dart/generated/models/paginated_view_list.py +0 -122
  206. dart/generated/models/paginated_webhook_list.py +0 -122
  207. dart/generated/models/pie_chart_adtl.py +0 -69
  208. dart/generated/models/pie_chart_display_metric.py +0 -9
  209. dart/generated/models/properties_list_kind.py +0 -32
  210. dart/generated/models/property_.py +0 -153
  211. dart/generated/models/property_create.py +0 -137
  212. dart/generated/models/property_kind.py +0 -32
  213. dart/generated/models/property_update.py +0 -146
  214. dart/generated/models/relationship.py +0 -74
  215. dart/generated/models/relationship_create.py +0 -93
  216. dart/generated/models/relationship_kind.py +0 -123
  217. dart/generated/models/relationship_kind_create.py +0 -117
  218. dart/generated/models/relationship_kind_kind.py +0 -12
  219. dart/generated/models/relationship_kind_update.py +0 -119
  220. dart/generated/models/report_kind.py +0 -9
  221. dart/generated/models/request_body.py +0 -83
  222. dart/generated/models/response_body.py +0 -72
  223. dart/generated/models/saml_config.py +0 -77
  224. dart/generated/models/saml_config_tenant_extension_status.py +0 -9
  225. dart/generated/models/slack_integration.py +0 -90
  226. dart/generated/models/slack_integration_tenant_extension_status.py +0 -10
  227. dart/generated/models/sort.py +0 -66
  228. dart/generated/models/space.py +0 -311
  229. dart/generated/models/space_create.py +0 -340
  230. dart/generated/models/space_kind.py +0 -10
  231. dart/generated/models/space_update.py +0 -341
  232. dart/generated/models/sprint_mode.py +0 -9
  233. dart/generated/models/status.py +0 -141
  234. dart/generated/models/status_create.py +0 -125
  235. dart/generated/models/status_kind.py +0 -12
  236. dart/generated/models/status_update.py +0 -135
  237. dart/generated/models/statuses_list_kind.py +0 -12
  238. dart/generated/models/subscription.py +0 -9
  239. dart/generated/models/subtask_display_mode.py +0 -10
  240. dart/generated/models/summary_statistic_kind.py +0 -14
  241. dart/generated/models/table_chart_adtl.py +0 -98
  242. dart/generated/models/task_detail_mode.py +0 -10
  243. dart/generated/models/task_doc_relationship.py +0 -96
  244. dart/generated/models/task_doc_relationship_create.py +0 -74
  245. dart/generated/models/task_kind.py +0 -149
  246. dart/generated/models/task_kind_create.py +0 -144
  247. dart/generated/models/task_kind_kind.py +0 -9
  248. dart/generated/models/task_kind_update.py +0 -153
  249. dart/generated/models/task_kinds_list_kind.py +0 -9
  250. dart/generated/models/task_link.py +0 -131
  251. dart/generated/models/task_link_create.py +0 -152
  252. dart/generated/models/task_link_kind.py +0 -19
  253. dart/generated/models/task_link_update.py +0 -155
  254. dart/generated/models/task_notion_document.py +0 -196
  255. dart/generated/models/task_notion_document_block_children_map_type_0.py +0 -43
  256. dart/generated/models/task_notion_document_block_map_type_0.py +0 -43
  257. dart/generated/models/task_notion_document_page_map_type_0.py +0 -43
  258. dart/generated/models/task_properties.py +0 -43
  259. dart/generated/models/task_source_type.py +0 -31
  260. dart/generated/models/tenant.py +0 -386
  261. dart/generated/models/tenant_update.py +0 -166
  262. dart/generated/models/theme.py +0 -10
  263. dart/generated/models/transaction.py +0 -158
  264. dart/generated/models/transaction_kind.py +0 -74
  265. dart/generated/models/transaction_response.py +0 -96
  266. dart/generated/models/user_dartboard_layout.py +0 -66
  267. dart/generated/models/user_dartboard_layout_create.py +0 -74
  268. dart/generated/models/user_data_entity_retrieve_entity_kind.py +0 -32
  269. dart/generated/models/user_role.py +0 -12
  270. dart/generated/models/user_status.py +0 -12
  271. dart/generated/models/user_update.py +0 -210
  272. dart/generated/models/validation_error_response.py +0 -64
  273. dart/generated/models/validation_error_response_items.py +0 -43
  274. dart/generated/models/view_create.py +0 -213
  275. dart/generated/models/view_kind.py +0 -11
  276. dart/generated/models/view_update.py +0 -215
  277. dart/generated/models/webhook.py +0 -96
  278. dart/generated/models/webhook_create.py +0 -77
  279. dart/generated/models/webhook_update.py +0 -78
  280. dart/generated/models/zapier_integration.py +0 -66
  281. dart_tools-0.6.16.dist-info/RECORD +0 -257
  282. dart_tools-0.6.16.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  283. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/entry_points.txt +0 -0
  284. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info/licenses}/LICENSE +0 -0
  285. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,267 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.priority import Priority
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="ConciseTask")
11
+
12
+
13
+ @_attrs_define
14
+ class ConciseTask:
15
+ """This concise task serializer is going to be used in tasks listing view only.
16
+
17
+ Attributes:
18
+ id (str): The universal, unique ID of the task.
19
+ html_url (str): The URL that can be used to open the task in the Dart web UI.
20
+ title (str): The title, which is a short description of what needs to be done.
21
+ parent_id (Union[None, str]): The universal, unique ID of the parent task. This can be null.
22
+ dartboard (str): The full title of the dartboard, which is a project or list of tasks.
23
+ type_ (str): The title of the type of the task.
24
+ status (str): The status from the list of available statuses.
25
+ assignees (Union[Unset, list[str]]): The names or emails of the users that the task is assigned to. Either this
26
+ or assignee must be included, depending on whether the workspaces allows multiple assignees or not.
27
+ assignee (Union[None, Unset, str]): The name or email of the user that the task is assigned to. Either this or
28
+ assignees must be included, depending on whether the workspaces allows multiple assignees or not.
29
+ tags (Union[Unset, list[str]]): Any tags that should be applied to the task, which can be used to filter and
30
+ search for tasks. Tags are also known as labels or components and are strings that can be anything, but should
31
+ be short and descriptive. This list can be empty.
32
+ priority (Union[None, Priority, Unset]): The priority, which is a string that can be one of the specified
33
+ options. This is used to sort tasks and determine which tasks should be done first.
34
+ start_at (Union[None, Unset, str]): The start date, which is a date and time that the task should be started by
35
+ in ISO format. It should be at 9:00am in the timezone of the user.
36
+ due_at (Union[None, Unset, str]): The due date, which is a date and time that the task should be completed by in
37
+ ISO format. It should be at 9:00am in the timezone of the user.
38
+ size (Union[None, Unset, int]): The size, which is a number that represents the amount of work that needs to be
39
+ done. This is used to determine how long the task will take to complete.
40
+ time_tracking (Union[Unset, str]): The time tracking, which is a string that indicates the amount of time spent
41
+ on the task in hh:mm:ss format (or an empty string if no time has been tracked).
42
+ """
43
+
44
+ id: str
45
+ html_url: str
46
+ title: str
47
+ parent_id: Union[None, str]
48
+ dartboard: str
49
+ type_: str
50
+ status: str
51
+ assignees: Union[Unset, list[str]] = UNSET
52
+ assignee: Union[None, Unset, str] = UNSET
53
+ tags: Union[Unset, list[str]] = UNSET
54
+ priority: Union[None, Priority, Unset] = UNSET
55
+ start_at: Union[None, Unset, str] = UNSET
56
+ due_at: Union[None, Unset, str] = UNSET
57
+ size: Union[None, Unset, int] = UNSET
58
+ time_tracking: Union[Unset, str] = UNSET
59
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
60
+
61
+ def to_dict(self) -> dict[str, Any]:
62
+ id = self.id
63
+
64
+ html_url = self.html_url
65
+
66
+ title = self.title
67
+
68
+ parent_id: Union[None, str]
69
+ parent_id = self.parent_id
70
+
71
+ dartboard = self.dartboard
72
+
73
+ type_ = self.type_
74
+
75
+ status = self.status
76
+
77
+ assignees: Union[Unset, list[str]] = UNSET
78
+ if not isinstance(self.assignees, Unset):
79
+ assignees = self.assignees
80
+
81
+ assignee: Union[None, Unset, str]
82
+ if isinstance(self.assignee, Unset):
83
+ assignee = UNSET
84
+ else:
85
+ assignee = self.assignee
86
+
87
+ tags: Union[Unset, list[str]] = UNSET
88
+ if not isinstance(self.tags, Unset):
89
+ tags = self.tags
90
+
91
+ priority: Union[None, Unset, str]
92
+ if isinstance(self.priority, Unset):
93
+ priority = UNSET
94
+ elif isinstance(self.priority, Priority):
95
+ priority = self.priority.value
96
+ else:
97
+ priority = self.priority
98
+
99
+ start_at: Union[None, Unset, str]
100
+ if isinstance(self.start_at, Unset):
101
+ start_at = UNSET
102
+ else:
103
+ start_at = self.start_at
104
+
105
+ due_at: Union[None, Unset, str]
106
+ if isinstance(self.due_at, Unset):
107
+ due_at = UNSET
108
+ else:
109
+ due_at = self.due_at
110
+
111
+ size: Union[None, Unset, int]
112
+ if isinstance(self.size, Unset):
113
+ size = UNSET
114
+ else:
115
+ size = self.size
116
+
117
+ time_tracking = self.time_tracking
118
+
119
+ field_dict: dict[str, Any] = {}
120
+ field_dict.update(self.additional_properties)
121
+ field_dict.update(
122
+ {
123
+ "id": id,
124
+ "htmlUrl": html_url,
125
+ "title": title,
126
+ "parentId": parent_id,
127
+ "dartboard": dartboard,
128
+ "type": type_,
129
+ "status": status,
130
+ }
131
+ )
132
+ if assignees is not UNSET:
133
+ field_dict["assignees"] = assignees
134
+ if assignee is not UNSET:
135
+ field_dict["assignee"] = assignee
136
+ if tags is not UNSET:
137
+ field_dict["tags"] = tags
138
+ if priority is not UNSET:
139
+ field_dict["priority"] = priority
140
+ if start_at is not UNSET:
141
+ field_dict["startAt"] = start_at
142
+ if due_at is not UNSET:
143
+ field_dict["dueAt"] = due_at
144
+ if size is not UNSET:
145
+ field_dict["size"] = size
146
+ if time_tracking is not UNSET:
147
+ field_dict["timeTracking"] = time_tracking
148
+
149
+ return field_dict
150
+
151
+ @classmethod
152
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
153
+ d = dict(src_dict)
154
+ id = d.pop("id")
155
+
156
+ html_url = d.pop("htmlUrl")
157
+
158
+ title = d.pop("title")
159
+
160
+ def _parse_parent_id(data: object) -> Union[None, str]:
161
+ if data is None:
162
+ return data
163
+ return cast(Union[None, str], data)
164
+
165
+ parent_id = _parse_parent_id(d.pop("parentId"))
166
+
167
+ dartboard = d.pop("dartboard")
168
+
169
+ type_ = d.pop("type")
170
+
171
+ status = d.pop("status")
172
+
173
+ assignees = cast(list[str], d.pop("assignees", UNSET))
174
+
175
+ def _parse_assignee(data: object) -> Union[None, Unset, str]:
176
+ if data is None:
177
+ return data
178
+ if isinstance(data, Unset):
179
+ return data
180
+ return cast(Union[None, Unset, str], data)
181
+
182
+ assignee = _parse_assignee(d.pop("assignee", UNSET))
183
+
184
+ tags = cast(list[str], d.pop("tags", UNSET))
185
+
186
+ def _parse_priority(data: object) -> Union[None, Priority, Unset]:
187
+ if data is None:
188
+ return data
189
+ if isinstance(data, Unset):
190
+ return data
191
+ try:
192
+ if not isinstance(data, str):
193
+ raise TypeError()
194
+ priority_type_0 = Priority(data)
195
+
196
+ return priority_type_0
197
+ except: # noqa: E722
198
+ pass
199
+ return cast(Union[None, Priority, Unset], data)
200
+
201
+ priority = _parse_priority(d.pop("priority", UNSET))
202
+
203
+ def _parse_start_at(data: object) -> Union[None, Unset, str]:
204
+ if data is None:
205
+ return data
206
+ if isinstance(data, Unset):
207
+ return data
208
+ return cast(Union[None, Unset, str], data)
209
+
210
+ start_at = _parse_start_at(d.pop("startAt", UNSET))
211
+
212
+ def _parse_due_at(data: object) -> Union[None, Unset, str]:
213
+ if data is None:
214
+ return data
215
+ if isinstance(data, Unset):
216
+ return data
217
+ return cast(Union[None, Unset, str], data)
218
+
219
+ due_at = _parse_due_at(d.pop("dueAt", UNSET))
220
+
221
+ def _parse_size(data: object) -> Union[None, Unset, int]:
222
+ if data is None:
223
+ return data
224
+ if isinstance(data, Unset):
225
+ return data
226
+ return cast(Union[None, Unset, int], data)
227
+
228
+ size = _parse_size(d.pop("size", UNSET))
229
+
230
+ time_tracking = d.pop("timeTracking", UNSET)
231
+
232
+ concise_task = cls(
233
+ id=id,
234
+ html_url=html_url,
235
+ title=title,
236
+ parent_id=parent_id,
237
+ dartboard=dartboard,
238
+ type_=type_,
239
+ status=status,
240
+ assignees=assignees,
241
+ assignee=assignee,
242
+ tags=tags,
243
+ priority=priority,
244
+ start_at=start_at,
245
+ due_at=due_at,
246
+ size=size,
247
+ time_tracking=time_tracking,
248
+ )
249
+
250
+ concise_task.additional_properties = d
251
+ return concise_task
252
+
253
+ @property
254
+ def additional_keys(self) -> list[str]:
255
+ return list(self.additional_properties.keys())
256
+
257
+ def __getitem__(self, key: str) -> Any:
258
+ return self.additional_properties[key]
259
+
260
+ def __setitem__(self, key: str, value: Any) -> None:
261
+ self.additional_properties[key] = value
262
+
263
+ def __delitem__(self, key: str) -> None:
264
+ del self.additional_properties[key]
265
+
266
+ def __contains__(self, key: str) -> bool:
267
+ return key in self.additional_properties
@@ -1,16 +1,11 @@
1
- import datetime
2
- from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
- from dateutil.parser import isoparse
7
-
8
- from ..models.dartboard_kind import DartboardKind
9
- from ..models.icon_kind import IconKind
10
- from ..types import UNSET, Unset
11
6
 
12
7
  if TYPE_CHECKING:
13
- from ..models.user_dartboard_layout import UserDartboardLayout
8
+ from ..models.task import Task
14
9
 
15
10
 
16
11
  T = TypeVar("T", bound="Dartboard")
@@ -20,276 +15,81 @@ T = TypeVar("T", bound="Dartboard")
20
15
  class Dartboard:
21
16
  """
22
17
  Attributes:
23
- duid (str):
24
- space_duid (str):
25
- kind (DartboardKind): * `Active` - ACTIVE
26
- * `Next` - NEXT
27
- * `Backlog` - BACKLOG
28
- * `Finished` - FINISHED
29
- * `Custom` - CUSTOM
30
- order (str):
31
- title (str):
32
- description (str):
33
- icon_kind (IconKind): * `None` - NONE
34
- * `Icon` - ICON
35
- * `Emoji` - EMOJI
36
- icon_name_or_emoji (str):
37
- color_hex (str):
38
- user_duids_to_layout_duids (List['UserDartboardLayout']):
39
- index (Union[None, int]):
40
- started_at (Union[None, datetime.datetime]):
41
- finished_at (Union[None, datetime.datetime]):
42
- planned_finish_at (Union[None, datetime.datetime]):
43
- default_property_map (Any):
44
- always_shown_property_duids (List[str]):
45
- always_hidden_property_duids (List[str]):
46
- property_order_duids (List[str]):
47
- property_width_map (Any):
48
- updated_by_client_duid (Union[None, Unset, str]):
18
+ id (str): The universal, unique ID of the dartboard.
19
+ html_url (str): The URL that can be used to open the dartboard in the Dart web UI.
20
+ title (str): The title, which is a short description of the dartboard.
21
+ description (str): The description, which is a longer description of the dartboard.
22
+ tasks (list['Task']): The list of all of the tasks in the dartboard.
49
23
  """
50
24
 
51
- duid: str
52
- space_duid: str
53
- kind: DartboardKind
54
- order: str
25
+ id: str
26
+ html_url: str
55
27
  title: str
56
28
  description: str
57
- icon_kind: IconKind
58
- icon_name_or_emoji: str
59
- color_hex: str
60
- user_duids_to_layout_duids: List["UserDartboardLayout"]
61
- index: Union[None, int]
62
- started_at: Union[None, datetime.datetime]
63
- finished_at: Union[None, datetime.datetime]
64
- planned_finish_at: Union[None, datetime.datetime]
65
- default_property_map: Any
66
- always_shown_property_duids: List[str]
67
- always_hidden_property_duids: List[str]
68
- property_order_duids: List[str]
69
- property_width_map: Any
70
- updated_by_client_duid: Union[None, Unset, str] = UNSET
71
- additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
72
-
73
- def to_dict(self) -> Dict[str, Any]:
74
- duid = self.duid
75
-
76
- space_duid = self.space_duid
29
+ tasks: list["Task"]
30
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
77
31
 
78
- kind = self.kind.value
32
+ def to_dict(self) -> dict[str, Any]:
33
+ id = self.id
79
34
 
80
- order = self.order
35
+ html_url = self.html_url
81
36
 
82
37
  title = self.title
83
38
 
84
39
  description = self.description
85
40
 
86
- icon_kind = self.icon_kind.value
87
-
88
- icon_name_or_emoji = self.icon_name_or_emoji
89
-
90
- color_hex = self.color_hex
91
-
92
- user_duids_to_layout_duids = []
93
- for user_duids_to_layout_duids_item_data in self.user_duids_to_layout_duids:
94
- user_duids_to_layout_duids_item = user_duids_to_layout_duids_item_data.to_dict()
95
- user_duids_to_layout_duids.append(user_duids_to_layout_duids_item)
96
-
97
- index: Union[None, int]
98
- index = self.index
99
-
100
- started_at: Union[None, str]
101
- if isinstance(self.started_at, datetime.datetime):
102
- started_at = self.started_at.isoformat()
103
- else:
104
- started_at = self.started_at
105
-
106
- finished_at: Union[None, str]
107
- if isinstance(self.finished_at, datetime.datetime):
108
- finished_at = self.finished_at.isoformat()
109
- else:
110
- finished_at = self.finished_at
111
-
112
- planned_finish_at: Union[None, str]
113
- if isinstance(self.planned_finish_at, datetime.datetime):
114
- planned_finish_at = self.planned_finish_at.isoformat()
115
- else:
116
- planned_finish_at = self.planned_finish_at
41
+ tasks = []
42
+ for tasks_item_data in self.tasks:
43
+ tasks_item = tasks_item_data.to_dict()
44
+ tasks.append(tasks_item)
117
45
 
118
- default_property_map = self.default_property_map
119
-
120
- always_shown_property_duids = self.always_shown_property_duids
121
-
122
- always_hidden_property_duids = self.always_hidden_property_duids
123
-
124
- property_order_duids = self.property_order_duids
125
-
126
- property_width_map = self.property_width_map
127
-
128
- updated_by_client_duid: Union[None, Unset, str]
129
- if isinstance(self.updated_by_client_duid, Unset):
130
- updated_by_client_duid = UNSET
131
- else:
132
- updated_by_client_duid = self.updated_by_client_duid
133
-
134
- field_dict: Dict[str, Any] = {}
46
+ field_dict: dict[str, Any] = {}
135
47
  field_dict.update(self.additional_properties)
136
48
  field_dict.update(
137
49
  {
138
- "duid": duid,
139
- "spaceDuid": space_duid,
140
- "kind": kind,
141
- "order": order,
50
+ "id": id,
51
+ "htmlUrl": html_url,
142
52
  "title": title,
143
53
  "description": description,
144
- "iconKind": icon_kind,
145
- "iconNameOrEmoji": icon_name_or_emoji,
146
- "colorHex": color_hex,
147
- "userDuidsToLayoutDuids": user_duids_to_layout_duids,
148
- "index": index,
149
- "startedAt": started_at,
150
- "finishedAt": finished_at,
151
- "plannedFinishAt": planned_finish_at,
152
- "defaultPropertyMap": default_property_map,
153
- "alwaysShownPropertyDuids": always_shown_property_duids,
154
- "alwaysHiddenPropertyDuids": always_hidden_property_duids,
155
- "propertyOrderDuids": property_order_duids,
156
- "propertyWidthMap": property_width_map,
54
+ "tasks": tasks,
157
55
  }
158
56
  )
159
- if updated_by_client_duid is not UNSET:
160
- field_dict["updatedByClientDuid"] = updated_by_client_duid
161
57
 
162
58
  return field_dict
163
59
 
164
60
  @classmethod
165
- def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
166
- from ..models.user_dartboard_layout import UserDartboardLayout
167
-
168
- d = src_dict.copy()
169
- duid = d.pop("duid")
170
-
171
- space_duid = d.pop("spaceDuid")
61
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
62
+ from ..models.task import Task
172
63
 
173
- kind = DartboardKind(d.pop("kind"))
64
+ d = dict(src_dict)
65
+ id = d.pop("id")
174
66
 
175
- order = d.pop("order")
67
+ html_url = d.pop("htmlUrl")
176
68
 
177
69
  title = d.pop("title")
178
70
 
179
71
  description = d.pop("description")
180
72
 
181
- icon_kind = IconKind(d.pop("iconKind"))
182
-
183
- icon_name_or_emoji = d.pop("iconNameOrEmoji")
184
-
185
- color_hex = d.pop("colorHex")
186
-
187
- user_duids_to_layout_duids = []
188
- _user_duids_to_layout_duids = d.pop("userDuidsToLayoutDuids")
189
- for user_duids_to_layout_duids_item_data in _user_duids_to_layout_duids:
190
- user_duids_to_layout_duids_item = UserDartboardLayout.from_dict(user_duids_to_layout_duids_item_data)
191
-
192
- user_duids_to_layout_duids.append(user_duids_to_layout_duids_item)
193
-
194
- def _parse_index(data: object) -> Union[None, int]:
195
- if data is None:
196
- return data
197
- return cast(Union[None, int], data)
198
-
199
- index = _parse_index(d.pop("index"))
200
-
201
- def _parse_started_at(data: object) -> Union[None, datetime.datetime]:
202
- if data is None:
203
- return data
204
- try:
205
- if not isinstance(data, str):
206
- raise TypeError()
207
- started_at_type_0 = isoparse(data)
208
-
209
- return started_at_type_0
210
- except: # noqa: E722
211
- pass
212
- return cast(Union[None, datetime.datetime], data)
213
-
214
- started_at = _parse_started_at(d.pop("startedAt"))
215
-
216
- def _parse_finished_at(data: object) -> Union[None, datetime.datetime]:
217
- if data is None:
218
- return data
219
- try:
220
- if not isinstance(data, str):
221
- raise TypeError()
222
- finished_at_type_0 = isoparse(data)
223
-
224
- return finished_at_type_0
225
- except: # noqa: E722
226
- pass
227
- return cast(Union[None, datetime.datetime], data)
228
-
229
- finished_at = _parse_finished_at(d.pop("finishedAt"))
230
-
231
- def _parse_planned_finish_at(data: object) -> Union[None, datetime.datetime]:
232
- if data is None:
233
- return data
234
- try:
235
- if not isinstance(data, str):
236
- raise TypeError()
237
- planned_finish_at_type_0 = isoparse(data)
238
-
239
- return planned_finish_at_type_0
240
- except: # noqa: E722
241
- pass
242
- return cast(Union[None, datetime.datetime], data)
243
-
244
- planned_finish_at = _parse_planned_finish_at(d.pop("plannedFinishAt"))
245
-
246
- default_property_map = d.pop("defaultPropertyMap")
247
-
248
- always_shown_property_duids = cast(List[str], d.pop("alwaysShownPropertyDuids"))
249
-
250
- always_hidden_property_duids = cast(List[str], d.pop("alwaysHiddenPropertyDuids"))
251
-
252
- property_order_duids = cast(List[str], d.pop("propertyOrderDuids"))
253
-
254
- property_width_map = d.pop("propertyWidthMap")
255
-
256
- def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
257
- if data is None:
258
- return data
259
- if isinstance(data, Unset):
260
- return data
261
- return cast(Union[None, Unset, str], data)
73
+ tasks = []
74
+ _tasks = d.pop("tasks")
75
+ for tasks_item_data in _tasks:
76
+ tasks_item = Task.from_dict(tasks_item_data)
262
77
 
263
- updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
78
+ tasks.append(tasks_item)
264
79
 
265
80
  dartboard = cls(
266
- duid=duid,
267
- space_duid=space_duid,
268
- kind=kind,
269
- order=order,
81
+ id=id,
82
+ html_url=html_url,
270
83
  title=title,
271
84
  description=description,
272
- icon_kind=icon_kind,
273
- icon_name_or_emoji=icon_name_or_emoji,
274
- color_hex=color_hex,
275
- user_duids_to_layout_duids=user_duids_to_layout_duids,
276
- index=index,
277
- started_at=started_at,
278
- finished_at=finished_at,
279
- planned_finish_at=planned_finish_at,
280
- default_property_map=default_property_map,
281
- always_shown_property_duids=always_shown_property_duids,
282
- always_hidden_property_duids=always_hidden_property_duids,
283
- property_order_duids=property_order_duids,
284
- property_width_map=property_width_map,
285
- updated_by_client_duid=updated_by_client_duid,
85
+ tasks=tasks,
286
86
  )
287
87
 
288
88
  dartboard.additional_properties = d
289
89
  return dartboard
290
90
 
291
91
  @property
292
- def additional_keys(self) -> List[str]:
92
+ def additional_keys(self) -> list[str]:
293
93
  return list(self.additional_properties.keys())
294
94
 
295
95
  def __getitem__(self, key: str) -> Any: