dart-tools 0.6.15__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.15.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.15.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 -80
  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.15.dist-info/RECORD +0 -257
  282. dart_tools-0.6.15.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  283. {dart_tools-0.6.15.dist-info → dart_tools-0.7.0.dist-info}/entry_points.txt +0 -0
  284. {dart_tools-0.6.15.dist-info → dart_tools-0.7.0.dist-info/licenses}/LICENSE +0 -0
  285. {dart_tools-0.6.15.dist-info → dart_tools-0.7.0.dist-info}/top_level.txt +0 -0
@@ -1,15 +1,8 @@
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 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 ..types import UNSET, Unset
9
-
10
- if TYPE_CHECKING:
11
- from ..models.comment_reaction import CommentReaction
12
-
13
6
 
14
7
  T = TypeVar("T", bound="Comment")
15
8
 
@@ -18,180 +11,71 @@ T = TypeVar("T", bound="Comment")
18
11
  class Comment:
19
12
  """
20
13
  Attributes:
21
- duid (str):
22
- created_at (datetime.datetime):
23
- updated_at (datetime.datetime):
24
- task_duid (str):
25
- root_duid (Union[None, str]):
26
- authored_by_ai (bool):
27
- author_duid (str):
28
- text (Any):
29
- published_at (Union[None, datetime.datetime]):
30
- reactions (List['CommentReaction']):
31
- is_draft (bool):
32
- edited (bool):
33
- updated_by_client_duid (Union[None, Unset, str]):
14
+ id (str): The universal, unique ID of the comment.
15
+ html_url (str): The URL that can be used to open the comment in the Dart web UI.
16
+ task_id (str): The universal, unique ID of the task that the comment is associated with.
17
+ author (str): The name or email of the user that authored the comment.
18
+ text (str): The full content of the comment, which can include markdown formatting.
34
19
  """
35
20
 
36
- duid: str
37
- created_at: datetime.datetime
38
- updated_at: datetime.datetime
39
- task_duid: str
40
- root_duid: Union[None, str]
41
- authored_by_ai: bool
42
- author_duid: str
43
- text: Any
44
- published_at: Union[None, datetime.datetime]
45
- reactions: List["CommentReaction"]
46
- is_draft: bool
47
- edited: bool
48
- updated_by_client_duid: Union[None, Unset, str] = UNSET
49
- additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
50
-
51
- def to_dict(self) -> Dict[str, Any]:
52
- duid = self.duid
21
+ id: str
22
+ html_url: str
23
+ task_id: str
24
+ author: str
25
+ text: str
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
53
27
 
54
- created_at = self.created_at.isoformat()
28
+ def to_dict(self) -> dict[str, Any]:
29
+ id = self.id
55
30
 
56
- updated_at = self.updated_at.isoformat()
31
+ html_url = self.html_url
57
32
 
58
- task_duid = self.task_duid
33
+ task_id = self.task_id
59
34
 
60
- root_duid: Union[None, str]
61
- root_duid = self.root_duid
62
-
63
- authored_by_ai = self.authored_by_ai
64
-
65
- author_duid = self.author_duid
35
+ author = self.author
66
36
 
67
37
  text = self.text
68
38
 
69
- published_at: Union[None, str]
70
- if isinstance(self.published_at, datetime.datetime):
71
- published_at = self.published_at.isoformat()
72
- else:
73
- published_at = self.published_at
74
-
75
- reactions = []
76
- for reactions_item_data in self.reactions:
77
- reactions_item = reactions_item_data.to_dict()
78
- reactions.append(reactions_item)
79
-
80
- is_draft = self.is_draft
81
-
82
- edited = self.edited
83
-
84
- updated_by_client_duid: Union[None, Unset, str]
85
- if isinstance(self.updated_by_client_duid, Unset):
86
- updated_by_client_duid = UNSET
87
- else:
88
- updated_by_client_duid = self.updated_by_client_duid
89
-
90
- field_dict: Dict[str, Any] = {}
39
+ field_dict: dict[str, Any] = {}
91
40
  field_dict.update(self.additional_properties)
92
41
  field_dict.update(
93
42
  {
94
- "duid": duid,
95
- "createdAt": created_at,
96
- "updatedAt": updated_at,
97
- "taskDuid": task_duid,
98
- "rootDuid": root_duid,
99
- "authoredByAi": authored_by_ai,
100
- "authorDuid": author_duid,
43
+ "id": id,
44
+ "htmlUrl": html_url,
45
+ "taskId": task_id,
46
+ "author": author,
101
47
  "text": text,
102
- "publishedAt": published_at,
103
- "reactions": reactions,
104
- "isDraft": is_draft,
105
- "edited": edited,
106
48
  }
107
49
  )
108
- if updated_by_client_duid is not UNSET:
109
- field_dict["updatedByClientDuid"] = updated_by_client_duid
110
50
 
111
51
  return field_dict
112
52
 
113
53
  @classmethod
114
- def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
115
- from ..models.comment_reaction import CommentReaction
116
-
117
- d = src_dict.copy()
118
- duid = d.pop("duid")
119
-
120
- created_at = isoparse(d.pop("createdAt"))
54
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
+ d = dict(src_dict)
56
+ id = d.pop("id")
121
57
 
122
- updated_at = isoparse(d.pop("updatedAt"))
58
+ html_url = d.pop("htmlUrl")
123
59
 
124
- task_duid = d.pop("taskDuid")
60
+ task_id = d.pop("taskId")
125
61
 
126
- def _parse_root_duid(data: object) -> Union[None, str]:
127
- if data is None:
128
- return data
129
- return cast(Union[None, str], data)
130
-
131
- root_duid = _parse_root_duid(d.pop("rootDuid"))
132
-
133
- authored_by_ai = d.pop("authoredByAi")
134
-
135
- author_duid = d.pop("authorDuid")
62
+ author = d.pop("author")
136
63
 
137
64
  text = d.pop("text")
138
65
 
139
- def _parse_published_at(data: object) -> Union[None, datetime.datetime]:
140
- if data is None:
141
- return data
142
- try:
143
- if not isinstance(data, str):
144
- raise TypeError()
145
- published_at_type_0 = isoparse(data)
146
-
147
- return published_at_type_0
148
- except: # noqa: E722
149
- pass
150
- return cast(Union[None, datetime.datetime], data)
151
-
152
- published_at = _parse_published_at(d.pop("publishedAt"))
153
-
154
- reactions = []
155
- _reactions = d.pop("reactions")
156
- for reactions_item_data in _reactions:
157
- reactions_item = CommentReaction.from_dict(reactions_item_data)
158
-
159
- reactions.append(reactions_item)
160
-
161
- is_draft = d.pop("isDraft")
162
-
163
- edited = d.pop("edited")
164
-
165
- def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
166
- if data is None:
167
- return data
168
- if isinstance(data, Unset):
169
- return data
170
- return cast(Union[None, Unset, str], data)
171
-
172
- updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
173
-
174
66
  comment = cls(
175
- duid=duid,
176
- created_at=created_at,
177
- updated_at=updated_at,
178
- task_duid=task_duid,
179
- root_duid=root_duid,
180
- authored_by_ai=authored_by_ai,
181
- author_duid=author_duid,
67
+ id=id,
68
+ html_url=html_url,
69
+ task_id=task_id,
70
+ author=author,
182
71
  text=text,
183
- published_at=published_at,
184
- reactions=reactions,
185
- is_draft=is_draft,
186
- edited=edited,
187
- updated_by_client_duid=updated_by_client_duid,
188
72
  )
189
73
 
190
74
  comment.additional_properties = d
191
75
  return comment
192
76
 
193
77
  @property
194
- def additional_keys(self) -> List[str]:
78
+ def additional_keys(self) -> list[str]:
195
79
  return list(self.additional_properties.keys())
196
80
 
197
81
  def __getitem__(self, key: str) -> Any:
@@ -1,11 +1,8 @@
1
- import datetime
2
- from typing import Any, Dict, List, Type, TypeVar, Union, cast
1
+ from collections.abc import Mapping
2
+ from typing import 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 ..types import UNSET, Unset
9
6
 
10
7
  T = TypeVar("T", bound="CommentCreate")
11
8
 
@@ -14,123 +11,47 @@ T = TypeVar("T", bound="CommentCreate")
14
11
  class CommentCreate:
15
12
  """
16
13
  Attributes:
17
- duid (str):
18
- author_duid (str):
19
- task_duid (str):
20
- authored_by_ai (Union[Unset, bool]):
21
- root_duid (Union[None, Unset, str]):
22
- text (Union[Unset, Any]):
23
- published_at (Union[None, Unset, datetime.datetime]):
14
+ task_id (str): The universal, unique ID of the task that the comment is associated with.
15
+ text (str): The full content of the comment, which can include markdown formatting.
24
16
  """
25
17
 
26
- duid: str
27
- author_duid: str
28
- task_duid: str
29
- authored_by_ai: Union[Unset, bool] = UNSET
30
- root_duid: Union[None, Unset, str] = UNSET
31
- text: Union[Unset, Any] = UNSET
32
- published_at: Union[None, Unset, datetime.datetime] = UNSET
33
- additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
34
-
35
- def to_dict(self) -> Dict[str, Any]:
36
- duid = self.duid
37
-
38
- author_duid = self.author_duid
39
-
40
- task_duid = self.task_duid
18
+ task_id: str
19
+ text: str
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
41
21
 
42
- authored_by_ai = self.authored_by_ai
43
-
44
- root_duid: Union[None, Unset, str]
45
- if isinstance(self.root_duid, Unset):
46
- root_duid = UNSET
47
- else:
48
- root_duid = self.root_duid
22
+ def to_dict(self) -> dict[str, Any]:
23
+ task_id = self.task_id
49
24
 
50
25
  text = self.text
51
26
 
52
- published_at: Union[None, Unset, str]
53
- if isinstance(self.published_at, Unset):
54
- published_at = UNSET
55
- elif isinstance(self.published_at, datetime.datetime):
56
- published_at = self.published_at.isoformat()
57
- else:
58
- published_at = self.published_at
59
-
60
- field_dict: Dict[str, Any] = {}
27
+ field_dict: dict[str, Any] = {}
61
28
  field_dict.update(self.additional_properties)
62
29
  field_dict.update(
63
30
  {
64
- "duid": duid,
65
- "authorDuid": author_duid,
66
- "taskDuid": task_duid,
31
+ "taskId": task_id,
32
+ "text": text,
67
33
  }
68
34
  )
69
- if authored_by_ai is not UNSET:
70
- field_dict["authoredByAi"] = authored_by_ai
71
- if root_duid is not UNSET:
72
- field_dict["rootDuid"] = root_duid
73
- if text is not UNSET:
74
- field_dict["text"] = text
75
- if published_at is not UNSET:
76
- field_dict["publishedAt"] = published_at
77
35
 
78
36
  return field_dict
79
37
 
80
38
  @classmethod
81
- def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
82
- d = src_dict.copy()
83
- duid = d.pop("duid")
84
-
85
- author_duid = d.pop("authorDuid")
86
-
87
- task_duid = d.pop("taskDuid")
88
-
89
- authored_by_ai = d.pop("authoredByAi", UNSET)
90
-
91
- def _parse_root_duid(data: object) -> Union[None, Unset, str]:
92
- if data is None:
93
- return data
94
- if isinstance(data, Unset):
95
- return data
96
- return cast(Union[None, Unset, str], data)
97
-
98
- root_duid = _parse_root_duid(d.pop("rootDuid", UNSET))
99
-
100
- text = d.pop("text", UNSET)
101
-
102
- def _parse_published_at(data: object) -> Union[None, Unset, datetime.datetime]:
103
- if data is None:
104
- return data
105
- if isinstance(data, Unset):
106
- return data
107
- try:
108
- if not isinstance(data, str):
109
- raise TypeError()
110
- published_at_type_0 = isoparse(data)
111
-
112
- return published_at_type_0
113
- except: # noqa: E722
114
- pass
115
- return cast(Union[None, Unset, datetime.datetime], data)
39
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
40
+ d = dict(src_dict)
41
+ task_id = d.pop("taskId")
116
42
 
117
- published_at = _parse_published_at(d.pop("publishedAt", UNSET))
43
+ text = d.pop("text")
118
44
 
119
45
  comment_create = cls(
120
- duid=duid,
121
- author_duid=author_duid,
122
- task_duid=task_duid,
123
- authored_by_ai=authored_by_ai,
124
- root_duid=root_duid,
46
+ task_id=task_id,
125
47
  text=text,
126
- published_at=published_at,
127
48
  )
128
49
 
129
50
  comment_create.additional_properties = d
130
51
  return comment_create
131
52
 
132
53
  @property
133
- def additional_keys(self) -> List[str]:
54
+ def additional_keys(self) -> list[str]:
134
55
  return list(self.additional_properties.keys())
135
56
 
136
57
  def __getitem__(self, key: str) -> Any:
@@ -0,0 +1,84 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="ConciseDoc")
8
+
9
+
10
+ @_attrs_define
11
+ class ConciseDoc:
12
+ """This concise doc serializer is going to be used in docs listing view only.
13
+
14
+ Attributes:
15
+ id (str): The universal, unique ID of the doc.
16
+ html_url (str): The URL that can be used to open the doc in the Dart web UI.
17
+ title (str): The title, which is a short description of the doc.
18
+ folder (str): The full title of the folder, which is a project or list of docs.
19
+ """
20
+
21
+ id: str
22
+ html_url: str
23
+ title: str
24
+ folder: str
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ id = self.id
29
+
30
+ html_url = self.html_url
31
+
32
+ title = self.title
33
+
34
+ folder = self.folder
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "id": id,
41
+ "htmlUrl": html_url,
42
+ "title": title,
43
+ "folder": folder,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
51
+ d = dict(src_dict)
52
+ id = d.pop("id")
53
+
54
+ html_url = d.pop("htmlUrl")
55
+
56
+ title = d.pop("title")
57
+
58
+ folder = d.pop("folder")
59
+
60
+ concise_doc = cls(
61
+ id=id,
62
+ html_url=html_url,
63
+ title=title,
64
+ folder=folder,
65
+ )
66
+
67
+ concise_doc.additional_properties = d
68
+ return concise_doc
69
+
70
+ @property
71
+ def additional_keys(self) -> list[str]:
72
+ return list(self.additional_properties.keys())
73
+
74
+ def __getitem__(self, key: str) -> Any:
75
+ return self.additional_properties[key]
76
+
77
+ def __setitem__(self, key: str, value: Any) -> None:
78
+ self.additional_properties[key] = value
79
+
80
+ def __delitem__(self, key: str) -> None:
81
+ del self.additional_properties[key]
82
+
83
+ def __contains__(self, key: str) -> bool:
84
+ return key in self.additional_properties