dart-tools 0.6.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 dart-tools might be problematic. Click here for more details.

Files changed (257) hide show
  1. dart/__init__.py +20 -0
  2. dart/dart.py +1144 -0
  3. dart/exception.py +6 -0
  4. dart/generated/__init__.py +8 -0
  5. dart/generated/api/__init__.py +1 -0
  6. dart/generated/api/attachments/__init__.py +0 -0
  7. dart/generated/api/attachments/attachments_list.py +169 -0
  8. dart/generated/api/comments/__init__.py +0 -0
  9. dart/generated/api/comments/comments_list.py +278 -0
  10. dart/generated/api/dartboards/__init__.py +0 -0
  11. dart/generated/api/dartboards/dartboards_list.py +271 -0
  12. dart/generated/api/dashboards/__init__.py +0 -0
  13. dart/generated/api/dashboards/dashboards_list.py +184 -0
  14. dart/generated/api/docs/__init__.py +0 -0
  15. dart/generated/api/docs/docs_list.py +372 -0
  16. dart/generated/api/folders/__init__.py +0 -0
  17. dart/generated/api/folders/folders_list.py +234 -0
  18. dart/generated/api/form_fields/__init__.py +0 -0
  19. dart/generated/api/form_fields/form_fields_list.py +169 -0
  20. dart/generated/api/forms/__init__.py +0 -0
  21. dart/generated/api/forms/forms_list.py +169 -0
  22. dart/generated/api/layouts/__init__.py +0 -0
  23. dart/generated/api/layouts/layouts_list.py +169 -0
  24. dart/generated/api/links/__init__.py +0 -0
  25. dart/generated/api/links/links_list.py +169 -0
  26. dart/generated/api/options/__init__.py +0 -0
  27. dart/generated/api/options/options_list.py +229 -0
  28. dart/generated/api/properties/__init__.py +0 -0
  29. dart/generated/api/properties/properties_list.py +204 -0
  30. dart/generated/api/reactions/__init__.py +0 -0
  31. dart/generated/api/reactions/reactions_list.py +169 -0
  32. dart/generated/api/relationship_kinds/__init__.py +0 -0
  33. dart/generated/api/relationship_kinds/relationship_kinds_list.py +169 -0
  34. dart/generated/api/relationships/__init__.py +0 -0
  35. dart/generated/api/relationships/relationships_list.py +169 -0
  36. dart/generated/api/spaces/__init__.py +0 -0
  37. dart/generated/api/spaces/spaces_list.py +214 -0
  38. dart/generated/api/statuses/__init__.py +0 -0
  39. dart/generated/api/statuses/statuses_list.py +249 -0
  40. dart/generated/api/task_doc_relationships/__init__.py +0 -0
  41. dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +169 -0
  42. dart/generated/api/task_kinds/__init__.py +0 -0
  43. dart/generated/api/task_kinds/task_kinds_list.py +204 -0
  44. dart/generated/api/tasks/__init__.py +0 -0
  45. dart/generated/api/tasks/tasks_list.py +446 -0
  46. dart/generated/api/tenants/__init__.py +0 -0
  47. dart/generated/api/tenants/tenants_list.py +169 -0
  48. dart/generated/api/transactions/__init__.py +0 -0
  49. dart/generated/api/transactions/transactions_create.py +176 -0
  50. dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
  51. dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +169 -0
  52. dart/generated/api/user_data/__init__.py +0 -0
  53. dart/generated/api/user_data/user_data_entity_retrieve.py +580 -0
  54. dart/generated/api/users/__init__.py +0 -0
  55. dart/generated/api/users/users_list.py +214 -0
  56. dart/generated/api/views/__init__.py +0 -0
  57. dart/generated/api/views/views_list.py +184 -0
  58. dart/generated/api/webhooks/__init__.py +0 -0
  59. dart/generated/api/webhooks/webhooks_list.py +169 -0
  60. dart/generated/client.py +268 -0
  61. dart/generated/errors.py +16 -0
  62. dart/generated/models/__init__.py +373 -0
  63. dart/generated/models/attachment.py +112 -0
  64. dart/generated/models/attachment_create.py +121 -0
  65. dart/generated/models/attachment_update.py +125 -0
  66. dart/generated/models/bar_chart_adtl.py +72 -0
  67. dart/generated/models/brainstorm.py +149 -0
  68. dart/generated/models/brainstorm_create.py +134 -0
  69. dart/generated/models/brainstorm_state.py +10 -0
  70. dart/generated/models/brainstorm_update.py +153 -0
  71. dart/generated/models/burn_up_chart_adtl.py +103 -0
  72. dart/generated/models/chart.py +208 -0
  73. dart/generated/models/chart_aggregation.py +10 -0
  74. dart/generated/models/chart_type.py +14 -0
  75. dart/generated/models/comment.py +207 -0
  76. dart/generated/models/comment_create.py +146 -0
  77. dart/generated/models/comment_reaction.py +84 -0
  78. dart/generated/models/comment_reaction_create.py +82 -0
  79. dart/generated/models/comment_reaction_update.py +87 -0
  80. dart/generated/models/comment_update.py +148 -0
  81. dart/generated/models/dartboard.py +280 -0
  82. dart/generated/models/dartboard_create.py +285 -0
  83. dart/generated/models/dartboard_kind.py +12 -0
  84. dart/generated/models/dartboard_update.py +287 -0
  85. dart/generated/models/dartboards_list_kind.py +12 -0
  86. dart/generated/models/dashboard.py +185 -0
  87. dart/generated/models/dashboard_create.py +171 -0
  88. dart/generated/models/dashboard_update.py +173 -0
  89. dart/generated/models/discord_integration.py +72 -0
  90. dart/generated/models/doc.py +243 -0
  91. dart/generated/models/doc_create.py +295 -0
  92. dart/generated/models/doc_source_type.py +13 -0
  93. dart/generated/models/doc_update.py +295 -0
  94. dart/generated/models/docs_list_o_item.py +11 -0
  95. dart/generated/models/entity_name.py +22 -0
  96. dart/generated/models/event.py +420 -0
  97. dart/generated/models/event_actor.py +19 -0
  98. dart/generated/models/event_create.py +158 -0
  99. dart/generated/models/event_kind.py +88 -0
  100. dart/generated/models/event_subscription.py +74 -0
  101. dart/generated/models/event_subscription_update.py +173 -0
  102. dart/generated/models/filter_applicability.py +22 -0
  103. dart/generated/models/filter_assignee.py +116 -0
  104. dart/generated/models/filter_connector.py +9 -0
  105. dart/generated/models/filter_group.py +112 -0
  106. dart/generated/models/filter_search.py +82 -0
  107. dart/generated/models/filter_set.py +116 -0
  108. dart/generated/models/folder.py +150 -0
  109. dart/generated/models/folder_create.py +150 -0
  110. dart/generated/models/folder_kind.py +10 -0
  111. dart/generated/models/folder_update.py +152 -0
  112. dart/generated/models/folders_list_kind.py +10 -0
  113. dart/generated/models/form.py +147 -0
  114. dart/generated/models/form_create.py +141 -0
  115. dart/generated/models/form_field.py +144 -0
  116. dart/generated/models/form_field_create.py +129 -0
  117. dart/generated/models/form_field_update.py +132 -0
  118. dart/generated/models/form_update.py +142 -0
  119. dart/generated/models/github_integration.py +163 -0
  120. dart/generated/models/github_integration_tenant_extension_status.py +11 -0
  121. dart/generated/models/google_data.py +94 -0
  122. dart/generated/models/icon_kind.py +10 -0
  123. dart/generated/models/layout.py +167 -0
  124. dart/generated/models/layout_config.py +70 -0
  125. dart/generated/models/layout_create.py +130 -0
  126. dart/generated/models/layout_kind.py +11 -0
  127. dart/generated/models/layout_kind_config_map.py +56 -0
  128. dart/generated/models/layout_update.py +130 -0
  129. dart/generated/models/line_chart_adtl.py +72 -0
  130. dart/generated/models/models_response.py +671 -0
  131. dart/generated/models/notification.py +120 -0
  132. dart/generated/models/notification_update.py +100 -0
  133. dart/generated/models/notion_integration.py +90 -0
  134. dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
  135. dart/generated/models/number_chart_adtl.py +77 -0
  136. dart/generated/models/operation.py +874 -0
  137. dart/generated/models/operation_kind.py +12 -0
  138. dart/generated/models/operation_model_kind.py +36 -0
  139. dart/generated/models/option.py +118 -0
  140. dart/generated/models/option_create.py +105 -0
  141. dart/generated/models/option_update.py +107 -0
  142. dart/generated/models/paginated_attachment_list.py +122 -0
  143. dart/generated/models/paginated_comment_list.py +122 -0
  144. dart/generated/models/paginated_comment_reaction_list.py +122 -0
  145. dart/generated/models/paginated_dartboard_list.py +122 -0
  146. dart/generated/models/paginated_dashboard_list.py +122 -0
  147. dart/generated/models/paginated_doc_list.py +122 -0
  148. dart/generated/models/paginated_folder_list.py +122 -0
  149. dart/generated/models/paginated_form_field_list.py +122 -0
  150. dart/generated/models/paginated_form_list.py +122 -0
  151. dart/generated/models/paginated_layout_list.py +122 -0
  152. dart/generated/models/paginated_option_list.py +122 -0
  153. dart/generated/models/paginated_property_list.py +122 -0
  154. dart/generated/models/paginated_relationship_kind_list.py +122 -0
  155. dart/generated/models/paginated_relationship_list.py +122 -0
  156. dart/generated/models/paginated_space_list.py +122 -0
  157. dart/generated/models/paginated_status_list.py +122 -0
  158. dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
  159. dart/generated/models/paginated_task_kind_list.py +122 -0
  160. dart/generated/models/paginated_task_link_list.py +122 -0
  161. dart/generated/models/paginated_task_list.py +122 -0
  162. dart/generated/models/paginated_tenant_list.py +122 -0
  163. dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
  164. dart/generated/models/paginated_user_list.py +122 -0
  165. dart/generated/models/paginated_view_list.py +122 -0
  166. dart/generated/models/paginated_webhook_list.py +122 -0
  167. dart/generated/models/pie_chart_adtl.py +69 -0
  168. dart/generated/models/pie_chart_display_metric.py +9 -0
  169. dart/generated/models/priority.py +11 -0
  170. dart/generated/models/properties_list_kind.py +32 -0
  171. dart/generated/models/property_.py +153 -0
  172. dart/generated/models/property_create.py +137 -0
  173. dart/generated/models/property_kind.py +32 -0
  174. dart/generated/models/property_update.py +146 -0
  175. dart/generated/models/relationship.py +74 -0
  176. dart/generated/models/relationship_create.py +93 -0
  177. dart/generated/models/relationship_kind.py +123 -0
  178. dart/generated/models/relationship_kind_create.py +117 -0
  179. dart/generated/models/relationship_kind_kind.py +12 -0
  180. dart/generated/models/relationship_kind_update.py +119 -0
  181. dart/generated/models/report_kind.py +9 -0
  182. dart/generated/models/request_body.py +80 -0
  183. dart/generated/models/response_body.py +72 -0
  184. dart/generated/models/saml_config.py +77 -0
  185. dart/generated/models/saml_config_tenant_extension_status.py +9 -0
  186. dart/generated/models/slack_integration.py +90 -0
  187. dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
  188. dart/generated/models/sort.py +66 -0
  189. dart/generated/models/space.py +325 -0
  190. dart/generated/models/space_create.py +360 -0
  191. dart/generated/models/space_kind.py +10 -0
  192. dart/generated/models/space_update.py +361 -0
  193. dart/generated/models/sprint_mode.py +9 -0
  194. dart/generated/models/status.py +141 -0
  195. dart/generated/models/status_create.py +125 -0
  196. dart/generated/models/status_kind.py +12 -0
  197. dart/generated/models/status_update.py +135 -0
  198. dart/generated/models/statuses_list_kind.py +12 -0
  199. dart/generated/models/subscription.py +9 -0
  200. dart/generated/models/subtask_display_mode.py +10 -0
  201. dart/generated/models/summary_statistic_kind.py +14 -0
  202. dart/generated/models/table_chart_adtl.py +98 -0
  203. dart/generated/models/task.py +531 -0
  204. dart/generated/models/task_create.py +585 -0
  205. dart/generated/models/task_detail_mode.py +10 -0
  206. dart/generated/models/task_doc_relationship.py +96 -0
  207. dart/generated/models/task_doc_relationship_create.py +74 -0
  208. dart/generated/models/task_kind.py +149 -0
  209. dart/generated/models/task_kind_create.py +144 -0
  210. dart/generated/models/task_kind_kind.py +9 -0
  211. dart/generated/models/task_kind_update.py +153 -0
  212. dart/generated/models/task_kinds_list_kind.py +9 -0
  213. dart/generated/models/task_link.py +131 -0
  214. dart/generated/models/task_link_create.py +152 -0
  215. dart/generated/models/task_link_kind.py +19 -0
  216. dart/generated/models/task_link_update.py +155 -0
  217. dart/generated/models/task_notion_document.py +196 -0
  218. dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
  219. dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
  220. dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
  221. dart/generated/models/task_properties.py +43 -0
  222. dart/generated/models/task_source_type.py +31 -0
  223. dart/generated/models/task_update.py +585 -0
  224. dart/generated/models/tenant.py +378 -0
  225. dart/generated/models/tenant_update.py +157 -0
  226. dart/generated/models/theme.py +10 -0
  227. dart/generated/models/transaction.py +156 -0
  228. dart/generated/models/transaction_kind.py +74 -0
  229. dart/generated/models/transaction_response.py +96 -0
  230. dart/generated/models/user.py +245 -0
  231. dart/generated/models/user_dartboard_layout.py +66 -0
  232. dart/generated/models/user_dartboard_layout_create.py +74 -0
  233. dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
  234. dart/generated/models/user_role.py +12 -0
  235. dart/generated/models/user_status.py +12 -0
  236. dart/generated/models/user_update.py +210 -0
  237. dart/generated/models/validation_error_response.py +64 -0
  238. dart/generated/models/validation_error_response_items.py +43 -0
  239. dart/generated/models/view.py +215 -0
  240. dart/generated/models/view_create.py +213 -0
  241. dart/generated/models/view_kind.py +11 -0
  242. dart/generated/models/view_update.py +215 -0
  243. dart/generated/models/webhook.py +96 -0
  244. dart/generated/models/webhook_create.py +77 -0
  245. dart/generated/models/webhook_update.py +78 -0
  246. dart/generated/models/zapier_integration.py +66 -0
  247. dart/generated/py.typed +1 -0
  248. dart/generated/types.py +45 -0
  249. dart/order_manager.py +62 -0
  250. dart/webhook.py +21 -0
  251. dart_tools-0.6.11.dist-info/LICENSE +21 -0
  252. dart_tools-0.6.11.dist-info/METADATA +221 -0
  253. dart_tools-0.6.11.dist-info/RECORD +257 -0
  254. dart_tools-0.6.11.dist-info/WHEEL +5 -0
  255. dart_tools-0.6.11.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  256. dart_tools-0.6.11.dist-info/entry_points.txt +2 -0
  257. dart_tools-0.6.11.dist-info/top_level.txt +1 -0
@@ -0,0 +1,146 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="CommentCreate")
11
+
12
+
13
+ @_attrs_define
14
+ class CommentCreate:
15
+ """
16
+ 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]):
24
+ """
25
+
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
41
+
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
49
+
50
+ text = self.text
51
+
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] = {}
61
+ field_dict.update(self.additional_properties)
62
+ field_dict.update(
63
+ {
64
+ "duid": duid,
65
+ "authorDuid": author_duid,
66
+ "taskDuid": task_duid,
67
+ }
68
+ )
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
+
78
+ return field_dict
79
+
80
+ @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)
116
+
117
+ published_at = _parse_published_at(d.pop("publishedAt", UNSET))
118
+
119
+ 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,
125
+ text=text,
126
+ published_at=published_at,
127
+ )
128
+
129
+ comment_create.additional_properties = d
130
+ return comment_create
131
+
132
+ @property
133
+ def additional_keys(self) -> List[str]:
134
+ return list(self.additional_properties.keys())
135
+
136
+ def __getitem__(self, key: str) -> Any:
137
+ return self.additional_properties[key]
138
+
139
+ def __setitem__(self, key: str, value: Any) -> None:
140
+ self.additional_properties[key] = value
141
+
142
+ def __delitem__(self, key: str) -> None:
143
+ del self.additional_properties[key]
144
+
145
+ def __contains__(self, key: str) -> bool:
146
+ return key in self.additional_properties
@@ -0,0 +1,84 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ T = TypeVar("T", bound="CommentReaction")
9
+
10
+
11
+ @_attrs_define
12
+ class CommentReaction:
13
+ """
14
+ Attributes:
15
+ duid (str):
16
+ created_at (datetime.datetime):
17
+ author_duid (str):
18
+ emoji (str):
19
+ """
20
+
21
+ duid: str
22
+ created_at: datetime.datetime
23
+ author_duid: str
24
+ emoji: str
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ duid = self.duid
29
+
30
+ created_at = self.created_at.isoformat()
31
+
32
+ author_duid = self.author_duid
33
+
34
+ emoji = self.emoji
35
+
36
+ field_dict: Dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "duid": duid,
41
+ "createdAt": created_at,
42
+ "authorDuid": author_duid,
43
+ "emoji": emoji,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51
+ d = src_dict.copy()
52
+ duid = d.pop("duid")
53
+
54
+ created_at = isoparse(d.pop("createdAt"))
55
+
56
+ author_duid = d.pop("authorDuid")
57
+
58
+ emoji = d.pop("emoji")
59
+
60
+ comment_reaction = cls(
61
+ duid=duid,
62
+ created_at=created_at,
63
+ author_duid=author_duid,
64
+ emoji=emoji,
65
+ )
66
+
67
+ comment_reaction.additional_properties = d
68
+ return comment_reaction
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
@@ -0,0 +1,82 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="CommentReactionCreate")
7
+
8
+
9
+ @_attrs_define
10
+ class CommentReactionCreate:
11
+ """
12
+ Attributes:
13
+ duid (str):
14
+ author_duid (str):
15
+ comment_duid (str):
16
+ emoji (str):
17
+ """
18
+
19
+ duid: str
20
+ author_duid: str
21
+ comment_duid: str
22
+ emoji: str
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ duid = self.duid
27
+
28
+ author_duid = self.author_duid
29
+
30
+ comment_duid = self.comment_duid
31
+
32
+ emoji = self.emoji
33
+
34
+ field_dict: Dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update(
37
+ {
38
+ "duid": duid,
39
+ "authorDuid": author_duid,
40
+ "commentDuid": comment_duid,
41
+ "emoji": emoji,
42
+ }
43
+ )
44
+
45
+ return field_dict
46
+
47
+ @classmethod
48
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
49
+ d = src_dict.copy()
50
+ duid = d.pop("duid")
51
+
52
+ author_duid = d.pop("authorDuid")
53
+
54
+ comment_duid = d.pop("commentDuid")
55
+
56
+ emoji = d.pop("emoji")
57
+
58
+ comment_reaction_create = cls(
59
+ duid=duid,
60
+ author_duid=author_duid,
61
+ comment_duid=comment_duid,
62
+ emoji=emoji,
63
+ )
64
+
65
+ comment_reaction_create.additional_properties = d
66
+ return comment_reaction_create
67
+
68
+ @property
69
+ def additional_keys(self) -> List[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,87 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="CommentReactionUpdate")
9
+
10
+
11
+ @_attrs_define
12
+ class CommentReactionUpdate:
13
+ """
14
+ Attributes:
15
+ duid (str):
16
+ author_duid (Union[Unset, str]):
17
+ comment_duid (Union[Unset, str]):
18
+ emoji (Union[Unset, str]):
19
+ """
20
+
21
+ duid: str
22
+ author_duid: Union[Unset, str] = UNSET
23
+ comment_duid: Union[Unset, str] = UNSET
24
+ emoji: Union[Unset, str] = UNSET
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ duid = self.duid
29
+
30
+ author_duid = self.author_duid
31
+
32
+ comment_duid = self.comment_duid
33
+
34
+ emoji = self.emoji
35
+
36
+ field_dict: Dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "duid": duid,
41
+ }
42
+ )
43
+ if author_duid is not UNSET:
44
+ field_dict["authorDuid"] = author_duid
45
+ if comment_duid is not UNSET:
46
+ field_dict["commentDuid"] = comment_duid
47
+ if emoji is not UNSET:
48
+ field_dict["emoji"] = emoji
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
54
+ d = src_dict.copy()
55
+ duid = d.pop("duid")
56
+
57
+ author_duid = d.pop("authorDuid", UNSET)
58
+
59
+ comment_duid = d.pop("commentDuid", UNSET)
60
+
61
+ emoji = d.pop("emoji", UNSET)
62
+
63
+ comment_reaction_update = cls(
64
+ duid=duid,
65
+ author_duid=author_duid,
66
+ comment_duid=comment_duid,
67
+ emoji=emoji,
68
+ )
69
+
70
+ comment_reaction_update.additional_properties = d
71
+ return comment_reaction_update
72
+
73
+ @property
74
+ def additional_keys(self) -> List[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties
@@ -0,0 +1,148 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="CommentUpdate")
11
+
12
+
13
+ @_attrs_define
14
+ class CommentUpdate:
15
+ """
16
+ Attributes:
17
+ duid (str):
18
+ authored_by_ai (Union[Unset, bool]):
19
+ author_duid (Union[Unset, str]):
20
+ task_duid (Union[Unset, str]):
21
+ root_duid (Union[None, Unset, str]):
22
+ text (Union[Unset, Any]):
23
+ published_at (Union[None, Unset, datetime.datetime]):
24
+ """
25
+
26
+ duid: str
27
+ authored_by_ai: Union[Unset, bool] = UNSET
28
+ author_duid: Union[Unset, str] = UNSET
29
+ task_duid: Union[Unset, str] = 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
+ authored_by_ai = self.authored_by_ai
39
+
40
+ author_duid = self.author_duid
41
+
42
+ task_duid = self.task_duid
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
49
+
50
+ text = self.text
51
+
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] = {}
61
+ field_dict.update(self.additional_properties)
62
+ field_dict.update(
63
+ {
64
+ "duid": duid,
65
+ }
66
+ )
67
+ if authored_by_ai is not UNSET:
68
+ field_dict["authoredByAi"] = authored_by_ai
69
+ if author_duid is not UNSET:
70
+ field_dict["authorDuid"] = author_duid
71
+ if task_duid is not UNSET:
72
+ field_dict["taskDuid"] = task_duid
73
+ if root_duid is not UNSET:
74
+ field_dict["rootDuid"] = root_duid
75
+ if text is not UNSET:
76
+ field_dict["text"] = text
77
+ if published_at is not UNSET:
78
+ field_dict["publishedAt"] = published_at
79
+
80
+ return field_dict
81
+
82
+ @classmethod
83
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
84
+ d = src_dict.copy()
85
+ duid = d.pop("duid")
86
+
87
+ authored_by_ai = d.pop("authoredByAi", UNSET)
88
+
89
+ author_duid = d.pop("authorDuid", UNSET)
90
+
91
+ task_duid = d.pop("taskDuid", UNSET)
92
+
93
+ def _parse_root_duid(data: object) -> Union[None, Unset, str]:
94
+ if data is None:
95
+ return data
96
+ if isinstance(data, Unset):
97
+ return data
98
+ return cast(Union[None, Unset, str], data)
99
+
100
+ root_duid = _parse_root_duid(d.pop("rootDuid", UNSET))
101
+
102
+ text = d.pop("text", UNSET)
103
+
104
+ def _parse_published_at(data: object) -> Union[None, Unset, datetime.datetime]:
105
+ if data is None:
106
+ return data
107
+ if isinstance(data, Unset):
108
+ return data
109
+ try:
110
+ if not isinstance(data, str):
111
+ raise TypeError()
112
+ published_at_type_0 = isoparse(data)
113
+
114
+ return published_at_type_0
115
+ except: # noqa: E722
116
+ pass
117
+ return cast(Union[None, Unset, datetime.datetime], data)
118
+
119
+ published_at = _parse_published_at(d.pop("publishedAt", UNSET))
120
+
121
+ comment_update = cls(
122
+ duid=duid,
123
+ authored_by_ai=authored_by_ai,
124
+ author_duid=author_duid,
125
+ task_duid=task_duid,
126
+ root_duid=root_duid,
127
+ text=text,
128
+ published_at=published_at,
129
+ )
130
+
131
+ comment_update.additional_properties = d
132
+ return comment_update
133
+
134
+ @property
135
+ def additional_keys(self) -> List[str]:
136
+ return list(self.additional_properties.keys())
137
+
138
+ def __getitem__(self, key: str) -> Any:
139
+ return self.additional_properties[key]
140
+
141
+ def __setitem__(self, key: str, value: Any) -> None:
142
+ self.additional_properties[key] = value
143
+
144
+ def __delitem__(self, key: str) -> None:
145
+ del self.additional_properties[key]
146
+
147
+ def __contains__(self, key: str) -> bool:
148
+ return key in self.additional_properties