dart-tools 0.6.6__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 (256) hide show
  1. dart/__init__.py +18 -0
  2. dart/dart.py +1134 -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 +334 -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 +371 -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 +207 -0
  73. dart/generated/models/chart_type.py +13 -0
  74. dart/generated/models/comment.py +207 -0
  75. dart/generated/models/comment_create.py +146 -0
  76. dart/generated/models/comment_reaction.py +84 -0
  77. dart/generated/models/comment_reaction_create.py +82 -0
  78. dart/generated/models/comment_reaction_update.py +87 -0
  79. dart/generated/models/comment_update.py +148 -0
  80. dart/generated/models/dartboard.py +264 -0
  81. dart/generated/models/dartboard_create.py +267 -0
  82. dart/generated/models/dartboard_kind.py +12 -0
  83. dart/generated/models/dartboard_update.py +269 -0
  84. dart/generated/models/dartboards_list_kind.py +12 -0
  85. dart/generated/models/dashboard.py +185 -0
  86. dart/generated/models/dashboard_create.py +171 -0
  87. dart/generated/models/dashboard_update.py +173 -0
  88. dart/generated/models/discord_integration.py +72 -0
  89. dart/generated/models/doc.py +243 -0
  90. dart/generated/models/doc_create.py +295 -0
  91. dart/generated/models/doc_source_type.py +13 -0
  92. dart/generated/models/doc_update.py +295 -0
  93. dart/generated/models/entity_name.py +22 -0
  94. dart/generated/models/event.py +420 -0
  95. dart/generated/models/event_actor.py +18 -0
  96. dart/generated/models/event_create.py +158 -0
  97. dart/generated/models/event_kind.py +88 -0
  98. dart/generated/models/event_subscription.py +74 -0
  99. dart/generated/models/event_subscription_update.py +173 -0
  100. dart/generated/models/filter_applicability.py +22 -0
  101. dart/generated/models/filter_assignee.py +116 -0
  102. dart/generated/models/filter_connector.py +9 -0
  103. dart/generated/models/filter_group.py +112 -0
  104. dart/generated/models/filter_search.py +82 -0
  105. dart/generated/models/filter_set.py +116 -0
  106. dart/generated/models/folder.py +150 -0
  107. dart/generated/models/folder_create.py +150 -0
  108. dart/generated/models/folder_kind.py +10 -0
  109. dart/generated/models/folder_update.py +152 -0
  110. dart/generated/models/folders_list_kind.py +10 -0
  111. dart/generated/models/form.py +147 -0
  112. dart/generated/models/form_create.py +141 -0
  113. dart/generated/models/form_field.py +144 -0
  114. dart/generated/models/form_field_create.py +129 -0
  115. dart/generated/models/form_field_update.py +132 -0
  116. dart/generated/models/form_update.py +142 -0
  117. dart/generated/models/github_integration.py +163 -0
  118. dart/generated/models/github_integration_tenant_extension_status.py +11 -0
  119. dart/generated/models/google_data.py +94 -0
  120. dart/generated/models/icon_kind.py +10 -0
  121. dart/generated/models/layout.py +167 -0
  122. dart/generated/models/layout_config.py +70 -0
  123. dart/generated/models/layout_create.py +130 -0
  124. dart/generated/models/layout_kind.py +11 -0
  125. dart/generated/models/layout_kind_config_map.py +56 -0
  126. dart/generated/models/layout_update.py +130 -0
  127. dart/generated/models/line_chart_adtl.py +72 -0
  128. dart/generated/models/models_response.py +671 -0
  129. dart/generated/models/notification.py +120 -0
  130. dart/generated/models/notification_update.py +100 -0
  131. dart/generated/models/notion_integration.py +90 -0
  132. dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
  133. dart/generated/models/number_chart_adtl.py +85 -0
  134. dart/generated/models/number_chart_aggregation.py +10 -0
  135. dart/generated/models/operation.py +874 -0
  136. dart/generated/models/operation_kind.py +12 -0
  137. dart/generated/models/operation_model_kind.py +36 -0
  138. dart/generated/models/option.py +118 -0
  139. dart/generated/models/option_create.py +105 -0
  140. dart/generated/models/option_update.py +107 -0
  141. dart/generated/models/paginated_attachment_list.py +122 -0
  142. dart/generated/models/paginated_comment_list.py +122 -0
  143. dart/generated/models/paginated_comment_reaction_list.py +122 -0
  144. dart/generated/models/paginated_dartboard_list.py +122 -0
  145. dart/generated/models/paginated_dashboard_list.py +122 -0
  146. dart/generated/models/paginated_doc_list.py +122 -0
  147. dart/generated/models/paginated_folder_list.py +122 -0
  148. dart/generated/models/paginated_form_field_list.py +122 -0
  149. dart/generated/models/paginated_form_list.py +122 -0
  150. dart/generated/models/paginated_layout_list.py +122 -0
  151. dart/generated/models/paginated_option_list.py +122 -0
  152. dart/generated/models/paginated_property_list.py +122 -0
  153. dart/generated/models/paginated_relationship_kind_list.py +122 -0
  154. dart/generated/models/paginated_relationship_list.py +122 -0
  155. dart/generated/models/paginated_space_list.py +122 -0
  156. dart/generated/models/paginated_status_list.py +122 -0
  157. dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
  158. dart/generated/models/paginated_task_kind_list.py +122 -0
  159. dart/generated/models/paginated_task_link_list.py +122 -0
  160. dart/generated/models/paginated_task_list.py +122 -0
  161. dart/generated/models/paginated_tenant_list.py +122 -0
  162. dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
  163. dart/generated/models/paginated_user_list.py +122 -0
  164. dart/generated/models/paginated_view_list.py +122 -0
  165. dart/generated/models/paginated_webhook_list.py +122 -0
  166. dart/generated/models/pie_chart_adtl.py +69 -0
  167. dart/generated/models/pie_chart_display_metric.py +9 -0
  168. dart/generated/models/priority.py +11 -0
  169. dart/generated/models/properties_list_kind.py +32 -0
  170. dart/generated/models/property_.py +153 -0
  171. dart/generated/models/property_create.py +137 -0
  172. dart/generated/models/property_kind.py +32 -0
  173. dart/generated/models/property_update.py +146 -0
  174. dart/generated/models/relationship.py +74 -0
  175. dart/generated/models/relationship_create.py +93 -0
  176. dart/generated/models/relationship_kind.py +123 -0
  177. dart/generated/models/relationship_kind_create.py +117 -0
  178. dart/generated/models/relationship_kind_kind.py +12 -0
  179. dart/generated/models/relationship_kind_update.py +119 -0
  180. dart/generated/models/report_kind.py +9 -0
  181. dart/generated/models/request_body.py +80 -0
  182. dart/generated/models/response_body.py +72 -0
  183. dart/generated/models/saml_config.py +77 -0
  184. dart/generated/models/saml_config_tenant_extension_status.py +9 -0
  185. dart/generated/models/slack_integration.py +90 -0
  186. dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
  187. dart/generated/models/sort.py +66 -0
  188. dart/generated/models/space.py +286 -0
  189. dart/generated/models/space_create.py +310 -0
  190. dart/generated/models/space_kind.py +10 -0
  191. dart/generated/models/space_update.py +311 -0
  192. dart/generated/models/sprint_mode.py +9 -0
  193. dart/generated/models/status.py +141 -0
  194. dart/generated/models/status_create.py +125 -0
  195. dart/generated/models/status_kind.py +12 -0
  196. dart/generated/models/status_update.py +135 -0
  197. dart/generated/models/statuses_list_kind.py +12 -0
  198. dart/generated/models/subscription.py +9 -0
  199. dart/generated/models/subtask_display_mode.py +10 -0
  200. dart/generated/models/summary_statistic_kind.py +14 -0
  201. dart/generated/models/table_chart_adtl.py +72 -0
  202. dart/generated/models/task.py +531 -0
  203. dart/generated/models/task_create.py +585 -0
  204. dart/generated/models/task_detail_mode.py +10 -0
  205. dart/generated/models/task_doc_relationship.py +96 -0
  206. dart/generated/models/task_doc_relationship_create.py +74 -0
  207. dart/generated/models/task_kind.py +149 -0
  208. dart/generated/models/task_kind_create.py +144 -0
  209. dart/generated/models/task_kind_kind.py +9 -0
  210. dart/generated/models/task_kind_update.py +153 -0
  211. dart/generated/models/task_kinds_list_kind.py +9 -0
  212. dart/generated/models/task_link.py +131 -0
  213. dart/generated/models/task_link_create.py +152 -0
  214. dart/generated/models/task_link_kind.py +19 -0
  215. dart/generated/models/task_link_update.py +155 -0
  216. dart/generated/models/task_notion_document.py +196 -0
  217. dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
  218. dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
  219. dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
  220. dart/generated/models/task_properties.py +43 -0
  221. dart/generated/models/task_source_type.py +31 -0
  222. dart/generated/models/task_update.py +585 -0
  223. dart/generated/models/tenant.py +378 -0
  224. dart/generated/models/tenant_update.py +157 -0
  225. dart/generated/models/theme.py +10 -0
  226. dart/generated/models/transaction.py +155 -0
  227. dart/generated/models/transaction_kind.py +73 -0
  228. dart/generated/models/transaction_response.py +96 -0
  229. dart/generated/models/user.py +245 -0
  230. dart/generated/models/user_dartboard_layout.py +66 -0
  231. dart/generated/models/user_dartboard_layout_create.py +74 -0
  232. dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
  233. dart/generated/models/user_role.py +12 -0
  234. dart/generated/models/user_status.py +12 -0
  235. dart/generated/models/user_update.py +190 -0
  236. dart/generated/models/validation_error_response.py +64 -0
  237. dart/generated/models/validation_error_response_items.py +43 -0
  238. dart/generated/models/view.py +207 -0
  239. dart/generated/models/view_create.py +204 -0
  240. dart/generated/models/view_kind.py +11 -0
  241. dart/generated/models/view_update.py +206 -0
  242. dart/generated/models/webhook.py +96 -0
  243. dart/generated/models/webhook_create.py +77 -0
  244. dart/generated/models/webhook_update.py +78 -0
  245. dart/generated/models/zapier_integration.py +66 -0
  246. dart/generated/py.typed +1 -0
  247. dart/generated/types.py +45 -0
  248. dart/order_manager.py +59 -0
  249. dart/webhook.py +21 -0
  250. dart_tools-0.6.6.dist-info/LICENSE +21 -0
  251. dart_tools-0.6.6.dist-info/METADATA +183 -0
  252. dart_tools-0.6.6.dist-info/RECORD +256 -0
  253. dart_tools-0.6.6.dist-info/WHEEL +5 -0
  254. dart_tools-0.6.6.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  255. dart_tools-0.6.6.dist-info/entry_points.txt +2 -0
  256. dart_tools-0.6.6.dist-info/top_level.txt +1 -0
@@ -0,0 +1,268 @@
1
+ import ssl
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+ from attrs import define, evolve, field
6
+
7
+
8
+ @define
9
+ class Client:
10
+ """A class for keeping track of data related to the API
11
+
12
+ The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
13
+
14
+ ``base_url``: The base URL for the API, all requests are made to a relative path to this URL
15
+
16
+ ``cookies``: A dictionary of cookies to be sent with every request
17
+
18
+ ``headers``: A dictionary of headers to be sent with every request
19
+
20
+ ``timeout``: The maximum amount of a time a request can take. API functions will raise
21
+ httpx.TimeoutException if this is exceeded.
22
+
23
+ ``verify_ssl``: Whether or not to verify the SSL certificate of the API server. This should be True in production,
24
+ but can be set to False for testing purposes.
25
+
26
+ ``follow_redirects``: Whether or not to follow redirects. Default value is False.
27
+
28
+ ``httpx_args``: A dictionary of additional arguments to be passed to the ``httpx.Client`` and ``httpx.AsyncClient`` constructor.
29
+
30
+
31
+ Attributes:
32
+ raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
33
+ status code that was not documented in the source OpenAPI document. Can also be provided as a keyword
34
+ argument to the constructor.
35
+ """
36
+
37
+ raise_on_unexpected_status: bool = field(default=False, kw_only=True)
38
+ _base_url: str = field(alias="base_url")
39
+ _cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
40
+ _headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
41
+ _timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
42
+ _verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
43
+ _follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
44
+ _httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
45
+ _client: Optional[httpx.Client] = field(default=None, init=False)
46
+ _async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
47
+
48
+ def with_headers(self, headers: Dict[str, str]) -> "Client":
49
+ """Get a new client matching this one with additional headers"""
50
+ if self._client is not None:
51
+ self._client.headers.update(headers)
52
+ if self._async_client is not None:
53
+ self._async_client.headers.update(headers)
54
+ return evolve(self, headers={**self._headers, **headers})
55
+
56
+ def with_cookies(self, cookies: Dict[str, str]) -> "Client":
57
+ """Get a new client matching this one with additional cookies"""
58
+ if self._client is not None:
59
+ self._client.cookies.update(cookies)
60
+ if self._async_client is not None:
61
+ self._async_client.cookies.update(cookies)
62
+ return evolve(self, cookies={**self._cookies, **cookies})
63
+
64
+ def with_timeout(self, timeout: httpx.Timeout) -> "Client":
65
+ """Get a new client matching this one with a new timeout (in seconds)"""
66
+ if self._client is not None:
67
+ self._client.timeout = timeout
68
+ if self._async_client is not None:
69
+ self._async_client.timeout = timeout
70
+ return evolve(self, timeout=timeout)
71
+
72
+ def set_httpx_client(self, client: httpx.Client) -> "Client":
73
+ """Manually the underlying httpx.Client
74
+
75
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
76
+ """
77
+ self._client = client
78
+ return self
79
+
80
+ def get_httpx_client(self) -> httpx.Client:
81
+ """Get the underlying httpx.Client, constructing a new one if not previously set"""
82
+ if self._client is None:
83
+ self._client = httpx.Client(
84
+ base_url=self._base_url,
85
+ cookies=self._cookies,
86
+ headers=self._headers,
87
+ timeout=self._timeout,
88
+ verify=self._verify_ssl,
89
+ follow_redirects=self._follow_redirects,
90
+ **self._httpx_args,
91
+ )
92
+ return self._client
93
+
94
+ def __enter__(self) -> "Client":
95
+ """Enter a context manager for self.client—you cannot enter twice (see httpx docs)"""
96
+ self.get_httpx_client().__enter__()
97
+ return self
98
+
99
+ def __exit__(self, *args: Any, **kwargs: Any) -> None:
100
+ """Exit a context manager for internal httpx.Client (see httpx docs)"""
101
+ self.get_httpx_client().__exit__(*args, **kwargs)
102
+
103
+ def set_async_httpx_client(self, async_client: httpx.AsyncClient) -> "Client":
104
+ """Manually the underlying httpx.AsyncClient
105
+
106
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
107
+ """
108
+ self._async_client = async_client
109
+ return self
110
+
111
+ def get_async_httpx_client(self) -> httpx.AsyncClient:
112
+ """Get the underlying httpx.AsyncClient, constructing a new one if not previously set"""
113
+ if self._async_client is None:
114
+ self._async_client = httpx.AsyncClient(
115
+ base_url=self._base_url,
116
+ cookies=self._cookies,
117
+ headers=self._headers,
118
+ timeout=self._timeout,
119
+ verify=self._verify_ssl,
120
+ follow_redirects=self._follow_redirects,
121
+ **self._httpx_args,
122
+ )
123
+ return self._async_client
124
+
125
+ async def __aenter__(self) -> "Client":
126
+ """Enter a context manager for underlying httpx.AsyncClient—you cannot enter twice (see httpx docs)"""
127
+ await self.get_async_httpx_client().__aenter__()
128
+ return self
129
+
130
+ async def __aexit__(self, *args: Any, **kwargs: Any) -> None:
131
+ """Exit a context manager for underlying httpx.AsyncClient (see httpx docs)"""
132
+ await self.get_async_httpx_client().__aexit__(*args, **kwargs)
133
+
134
+
135
+ @define
136
+ class AuthenticatedClient:
137
+ """A Client which has been authenticated for use on secured endpoints
138
+
139
+ The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
140
+
141
+ ``base_url``: The base URL for the API, all requests are made to a relative path to this URL
142
+
143
+ ``cookies``: A dictionary of cookies to be sent with every request
144
+
145
+ ``headers``: A dictionary of headers to be sent with every request
146
+
147
+ ``timeout``: The maximum amount of a time a request can take. API functions will raise
148
+ httpx.TimeoutException if this is exceeded.
149
+
150
+ ``verify_ssl``: Whether or not to verify the SSL certificate of the API server. This should be True in production,
151
+ but can be set to False for testing purposes.
152
+
153
+ ``follow_redirects``: Whether or not to follow redirects. Default value is False.
154
+
155
+ ``httpx_args``: A dictionary of additional arguments to be passed to the ``httpx.Client`` and ``httpx.AsyncClient`` constructor.
156
+
157
+
158
+ Attributes:
159
+ raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
160
+ status code that was not documented in the source OpenAPI document. Can also be provided as a keyword
161
+ argument to the constructor.
162
+ token: The token to use for authentication
163
+ prefix: The prefix to use for the Authorization header
164
+ auth_header_name: The name of the Authorization header
165
+ """
166
+
167
+ raise_on_unexpected_status: bool = field(default=False, kw_only=True)
168
+ _base_url: str = field(alias="base_url")
169
+ _cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
170
+ _headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
171
+ _timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
172
+ _verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
173
+ _follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
174
+ _httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
175
+ _client: Optional[httpx.Client] = field(default=None, init=False)
176
+ _async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
177
+
178
+ token: str
179
+ prefix: str = "Bearer"
180
+ auth_header_name: str = "Authorization"
181
+
182
+ def with_headers(self, headers: Dict[str, str]) -> "AuthenticatedClient":
183
+ """Get a new client matching this one with additional headers"""
184
+ if self._client is not None:
185
+ self._client.headers.update(headers)
186
+ if self._async_client is not None:
187
+ self._async_client.headers.update(headers)
188
+ return evolve(self, headers={**self._headers, **headers})
189
+
190
+ def with_cookies(self, cookies: Dict[str, str]) -> "AuthenticatedClient":
191
+ """Get a new client matching this one with additional cookies"""
192
+ if self._client is not None:
193
+ self._client.cookies.update(cookies)
194
+ if self._async_client is not None:
195
+ self._async_client.cookies.update(cookies)
196
+ return evolve(self, cookies={**self._cookies, **cookies})
197
+
198
+ def with_timeout(self, timeout: httpx.Timeout) -> "AuthenticatedClient":
199
+ """Get a new client matching this one with a new timeout (in seconds)"""
200
+ if self._client is not None:
201
+ self._client.timeout = timeout
202
+ if self._async_client is not None:
203
+ self._async_client.timeout = timeout
204
+ return evolve(self, timeout=timeout)
205
+
206
+ def set_httpx_client(self, client: httpx.Client) -> "AuthenticatedClient":
207
+ """Manually the underlying httpx.Client
208
+
209
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
210
+ """
211
+ self._client = client
212
+ return self
213
+
214
+ def get_httpx_client(self) -> httpx.Client:
215
+ """Get the underlying httpx.Client, constructing a new one if not previously set"""
216
+ if self._client is None:
217
+ self._headers[self.auth_header_name] = f"{self.prefix} {self.token}" if self.prefix else self.token
218
+ self._client = httpx.Client(
219
+ base_url=self._base_url,
220
+ cookies=self._cookies,
221
+ headers=self._headers,
222
+ timeout=self._timeout,
223
+ verify=self._verify_ssl,
224
+ follow_redirects=self._follow_redirects,
225
+ **self._httpx_args,
226
+ )
227
+ return self._client
228
+
229
+ def __enter__(self) -> "AuthenticatedClient":
230
+ """Enter a context manager for self.client—you cannot enter twice (see httpx docs)"""
231
+ self.get_httpx_client().__enter__()
232
+ return self
233
+
234
+ def __exit__(self, *args: Any, **kwargs: Any) -> None:
235
+ """Exit a context manager for internal httpx.Client (see httpx docs)"""
236
+ self.get_httpx_client().__exit__(*args, **kwargs)
237
+
238
+ def set_async_httpx_client(self, async_client: httpx.AsyncClient) -> "AuthenticatedClient":
239
+ """Manually the underlying httpx.AsyncClient
240
+
241
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
242
+ """
243
+ self._async_client = async_client
244
+ return self
245
+
246
+ def get_async_httpx_client(self) -> httpx.AsyncClient:
247
+ """Get the underlying httpx.AsyncClient, constructing a new one if not previously set"""
248
+ if self._async_client is None:
249
+ self._headers[self.auth_header_name] = f"{self.prefix} {self.token}" if self.prefix else self.token
250
+ self._async_client = httpx.AsyncClient(
251
+ base_url=self._base_url,
252
+ cookies=self._cookies,
253
+ headers=self._headers,
254
+ timeout=self._timeout,
255
+ verify=self._verify_ssl,
256
+ follow_redirects=self._follow_redirects,
257
+ **self._httpx_args,
258
+ )
259
+ return self._async_client
260
+
261
+ async def __aenter__(self) -> "AuthenticatedClient":
262
+ """Enter a context manager for underlying httpx.AsyncClient—you cannot enter twice (see httpx docs)"""
263
+ await self.get_async_httpx_client().__aenter__()
264
+ return self
265
+
266
+ async def __aexit__(self, *args: Any, **kwargs: Any) -> None:
267
+ """Exit a context manager for underlying httpx.AsyncClient (see httpx docs)"""
268
+ await self.get_async_httpx_client().__aexit__(*args, **kwargs)
@@ -0,0 +1,16 @@
1
+ """Contains shared errors types that can be raised from API functions"""
2
+
3
+
4
+ class UnexpectedStatus(Exception):
5
+ """Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True"""
6
+
7
+ def __init__(self, status_code: int, content: bytes):
8
+ self.status_code = status_code
9
+ self.content = content
10
+
11
+ super().__init__(
12
+ f"Unexpected status code: {status_code}\n\nResponse content:\n{content.decode(errors='ignore')}"
13
+ )
14
+
15
+
16
+ __all__ = ["UnexpectedStatus"]
@@ -0,0 +1,371 @@
1
+ """Contains all the data models used in inputs/outputs"""
2
+
3
+ from .attachment import Attachment
4
+ from .attachment_create import AttachmentCreate
5
+ from .attachment_update import AttachmentUpdate
6
+ from .bar_chart_adtl import BarChartAdtl
7
+ from .brainstorm import Brainstorm
8
+ from .brainstorm_create import BrainstormCreate
9
+ from .brainstorm_state import BrainstormState
10
+ from .brainstorm_update import BrainstormUpdate
11
+ from .burn_up_chart_adtl import BurnUpChartAdtl
12
+ from .chart import Chart
13
+ from .chart_type import ChartType
14
+ from .comment import Comment
15
+ from .comment_create import CommentCreate
16
+ from .comment_reaction import CommentReaction
17
+ from .comment_reaction_create import CommentReactionCreate
18
+ from .comment_reaction_update import CommentReactionUpdate
19
+ from .comment_update import CommentUpdate
20
+ from .dartboard import Dartboard
21
+ from .dartboard_create import DartboardCreate
22
+ from .dartboard_kind import DartboardKind
23
+ from .dartboard_update import DartboardUpdate
24
+ from .dartboards_list_kind import DartboardsListKind
25
+ from .dashboard import Dashboard
26
+ from .dashboard_create import DashboardCreate
27
+ from .dashboard_update import DashboardUpdate
28
+ from .discord_integration import DiscordIntegration
29
+ from .doc import Doc
30
+ from .doc_create import DocCreate
31
+ from .doc_source_type import DocSourceType
32
+ from .doc_update import DocUpdate
33
+ from .entity_name import EntityName
34
+ from .event import Event
35
+ from .event_actor import EventActor
36
+ from .event_create import EventCreate
37
+ from .event_kind import EventKind
38
+ from .event_subscription import EventSubscription
39
+ from .event_subscription_update import EventSubscriptionUpdate
40
+ from .filter_applicability import FilterApplicability
41
+ from .filter_assignee import FilterAssignee
42
+ from .filter_connector import FilterConnector
43
+ from .filter_group import FilterGroup
44
+ from .filter_search import FilterSearch
45
+ from .filter_set import FilterSet
46
+ from .folder import Folder
47
+ from .folder_create import FolderCreate
48
+ from .folder_kind import FolderKind
49
+ from .folder_update import FolderUpdate
50
+ from .folders_list_kind import FoldersListKind
51
+ from .form import Form
52
+ from .form_create import FormCreate
53
+ from .form_field import FormField
54
+ from .form_field_create import FormFieldCreate
55
+ from .form_field_update import FormFieldUpdate
56
+ from .form_update import FormUpdate
57
+ from .github_integration import GithubIntegration
58
+ from .github_integration_tenant_extension_status import GithubIntegrationTenantExtensionStatus
59
+ from .google_data import GoogleData
60
+ from .icon_kind import IconKind
61
+ from .layout import Layout
62
+ from .layout_config import LayoutConfig
63
+ from .layout_create import LayoutCreate
64
+ from .layout_kind import LayoutKind
65
+ from .layout_kind_config_map import LayoutKindConfigMap
66
+ from .layout_update import LayoutUpdate
67
+ from .line_chart_adtl import LineChartAdtl
68
+ from .models_response import ModelsResponse
69
+ from .notification import Notification
70
+ from .notification_update import NotificationUpdate
71
+ from .notion_integration import NotionIntegration
72
+ from .notion_integration_tenant_extension_status import NotionIntegrationTenantExtensionStatus
73
+ from .number_chart_adtl import NumberChartAdtl
74
+ from .number_chart_aggregation import NumberChartAggregation
75
+ from .operation import Operation
76
+ from .operation_kind import OperationKind
77
+ from .operation_model_kind import OperationModelKind
78
+ from .option import Option
79
+ from .option_create import OptionCreate
80
+ from .option_update import OptionUpdate
81
+ from .paginated_attachment_list import PaginatedAttachmentList
82
+ from .paginated_comment_list import PaginatedCommentList
83
+ from .paginated_comment_reaction_list import PaginatedCommentReactionList
84
+ from .paginated_dartboard_list import PaginatedDartboardList
85
+ from .paginated_dashboard_list import PaginatedDashboardList
86
+ from .paginated_doc_list import PaginatedDocList
87
+ from .paginated_folder_list import PaginatedFolderList
88
+ from .paginated_form_field_list import PaginatedFormFieldList
89
+ from .paginated_form_list import PaginatedFormList
90
+ from .paginated_layout_list import PaginatedLayoutList
91
+ from .paginated_option_list import PaginatedOptionList
92
+ from .paginated_property_list import PaginatedPropertyList
93
+ from .paginated_relationship_kind_list import PaginatedRelationshipKindList
94
+ from .paginated_relationship_list import PaginatedRelationshipList
95
+ from .paginated_space_list import PaginatedSpaceList
96
+ from .paginated_status_list import PaginatedStatusList
97
+ from .paginated_task_doc_relationship_list import PaginatedTaskDocRelationshipList
98
+ from .paginated_task_kind_list import PaginatedTaskKindList
99
+ from .paginated_task_link_list import PaginatedTaskLinkList
100
+ from .paginated_task_list import PaginatedTaskList
101
+ from .paginated_tenant_list import PaginatedTenantList
102
+ from .paginated_user_dartboard_layout_list import PaginatedUserDartboardLayoutList
103
+ from .paginated_user_list import PaginatedUserList
104
+ from .paginated_view_list import PaginatedViewList
105
+ from .paginated_webhook_list import PaginatedWebhookList
106
+ from .pie_chart_adtl import PieChartAdtl
107
+ from .pie_chart_display_metric import PieChartDisplayMetric
108
+ from .priority import Priority
109
+ from .properties_list_kind import PropertiesListKind
110
+ from .property_ import Property
111
+ from .property_create import PropertyCreate
112
+ from .property_kind import PropertyKind
113
+ from .property_update import PropertyUpdate
114
+ from .relationship import Relationship
115
+ from .relationship_create import RelationshipCreate
116
+ from .relationship_kind import RelationshipKind
117
+ from .relationship_kind_create import RelationshipKindCreate
118
+ from .relationship_kind_kind import RelationshipKindKind
119
+ from .relationship_kind_update import RelationshipKindUpdate
120
+ from .report_kind import ReportKind
121
+ from .request_body import RequestBody
122
+ from .response_body import ResponseBody
123
+ from .saml_config import SamlConfig
124
+ from .saml_config_tenant_extension_status import SamlConfigTenantExtensionStatus
125
+ from .slack_integration import SlackIntegration
126
+ from .slack_integration_tenant_extension_status import SlackIntegrationTenantExtensionStatus
127
+ from .sort import Sort
128
+ from .space import Space
129
+ from .space_create import SpaceCreate
130
+ from .space_kind import SpaceKind
131
+ from .space_update import SpaceUpdate
132
+ from .sprint_mode import SprintMode
133
+ from .status import Status
134
+ from .status_create import StatusCreate
135
+ from .status_kind import StatusKind
136
+ from .status_update import StatusUpdate
137
+ from .statuses_list_kind import StatusesListKind
138
+ from .subscription import Subscription
139
+ from .subtask_display_mode import SubtaskDisplayMode
140
+ from .summary_statistic_kind import SummaryStatisticKind
141
+ from .table_chart_adtl import TableChartAdtl
142
+ from .task import Task
143
+ from .task_create import TaskCreate
144
+ from .task_detail_mode import TaskDetailMode
145
+ from .task_doc_relationship import TaskDocRelationship
146
+ from .task_doc_relationship_create import TaskDocRelationshipCreate
147
+ from .task_kind import TaskKind
148
+ from .task_kind_create import TaskKindCreate
149
+ from .task_kind_kind import TaskKindKind
150
+ from .task_kind_update import TaskKindUpdate
151
+ from .task_kinds_list_kind import TaskKindsListKind
152
+ from .task_link import TaskLink
153
+ from .task_link_create import TaskLinkCreate
154
+ from .task_link_kind import TaskLinkKind
155
+ from .task_link_update import TaskLinkUpdate
156
+ from .task_notion_document import TaskNotionDocument
157
+ from .task_notion_document_block_children_map_type_0 import TaskNotionDocumentBlockChildrenMapType0
158
+ from .task_notion_document_block_map_type_0 import TaskNotionDocumentBlockMapType0
159
+ from .task_notion_document_page_map_type_0 import TaskNotionDocumentPageMapType0
160
+ from .task_properties import TaskProperties
161
+ from .task_source_type import TaskSourceType
162
+ from .task_update import TaskUpdate
163
+ from .tenant import Tenant
164
+ from .tenant_update import TenantUpdate
165
+ from .theme import Theme
166
+ from .transaction import Transaction
167
+ from .transaction_kind import TransactionKind
168
+ from .transaction_response import TransactionResponse
169
+ from .user import User
170
+ from .user_dartboard_layout import UserDartboardLayout
171
+ from .user_dartboard_layout_create import UserDartboardLayoutCreate
172
+ from .user_data_entity_retrieve_entity_kind import UserDataEntityRetrieveEntityKind
173
+ from .user_role import UserRole
174
+ from .user_status import UserStatus
175
+ from .user_update import UserUpdate
176
+ from .validation_error_response import ValidationErrorResponse
177
+ from .validation_error_response_items import ValidationErrorResponseItems
178
+ from .view import View
179
+ from .view_create import ViewCreate
180
+ from .view_kind import ViewKind
181
+ from .view_update import ViewUpdate
182
+ from .webhook import Webhook
183
+ from .webhook_create import WebhookCreate
184
+ from .webhook_update import WebhookUpdate
185
+ from .zapier_integration import ZapierIntegration
186
+
187
+ __all__ = (
188
+ "Attachment",
189
+ "AttachmentCreate",
190
+ "AttachmentUpdate",
191
+ "BarChartAdtl",
192
+ "Brainstorm",
193
+ "BrainstormCreate",
194
+ "BrainstormState",
195
+ "BrainstormUpdate",
196
+ "BurnUpChartAdtl",
197
+ "Chart",
198
+ "ChartType",
199
+ "Comment",
200
+ "CommentCreate",
201
+ "CommentReaction",
202
+ "CommentReactionCreate",
203
+ "CommentReactionUpdate",
204
+ "CommentUpdate",
205
+ "Dartboard",
206
+ "DartboardCreate",
207
+ "DartboardKind",
208
+ "DartboardsListKind",
209
+ "DartboardUpdate",
210
+ "Dashboard",
211
+ "DashboardCreate",
212
+ "DashboardUpdate",
213
+ "DiscordIntegration",
214
+ "Doc",
215
+ "DocCreate",
216
+ "DocSourceType",
217
+ "DocUpdate",
218
+ "EntityName",
219
+ "Event",
220
+ "EventActor",
221
+ "EventCreate",
222
+ "EventKind",
223
+ "EventSubscription",
224
+ "EventSubscriptionUpdate",
225
+ "FilterApplicability",
226
+ "FilterAssignee",
227
+ "FilterConnector",
228
+ "FilterGroup",
229
+ "FilterSearch",
230
+ "FilterSet",
231
+ "Folder",
232
+ "FolderCreate",
233
+ "FolderKind",
234
+ "FoldersListKind",
235
+ "FolderUpdate",
236
+ "Form",
237
+ "FormCreate",
238
+ "FormField",
239
+ "FormFieldCreate",
240
+ "FormFieldUpdate",
241
+ "FormUpdate",
242
+ "GithubIntegration",
243
+ "GithubIntegrationTenantExtensionStatus",
244
+ "GoogleData",
245
+ "IconKind",
246
+ "Layout",
247
+ "LayoutConfig",
248
+ "LayoutCreate",
249
+ "LayoutKind",
250
+ "LayoutKindConfigMap",
251
+ "LayoutUpdate",
252
+ "LineChartAdtl",
253
+ "ModelsResponse",
254
+ "Notification",
255
+ "NotificationUpdate",
256
+ "NotionIntegration",
257
+ "NotionIntegrationTenantExtensionStatus",
258
+ "NumberChartAdtl",
259
+ "NumberChartAggregation",
260
+ "Operation",
261
+ "OperationKind",
262
+ "OperationModelKind",
263
+ "Option",
264
+ "OptionCreate",
265
+ "OptionUpdate",
266
+ "PaginatedAttachmentList",
267
+ "PaginatedCommentList",
268
+ "PaginatedCommentReactionList",
269
+ "PaginatedDartboardList",
270
+ "PaginatedDashboardList",
271
+ "PaginatedDocList",
272
+ "PaginatedFolderList",
273
+ "PaginatedFormFieldList",
274
+ "PaginatedFormList",
275
+ "PaginatedLayoutList",
276
+ "PaginatedOptionList",
277
+ "PaginatedPropertyList",
278
+ "PaginatedRelationshipKindList",
279
+ "PaginatedRelationshipList",
280
+ "PaginatedSpaceList",
281
+ "PaginatedStatusList",
282
+ "PaginatedTaskDocRelationshipList",
283
+ "PaginatedTaskKindList",
284
+ "PaginatedTaskLinkList",
285
+ "PaginatedTaskList",
286
+ "PaginatedTenantList",
287
+ "PaginatedUserDartboardLayoutList",
288
+ "PaginatedUserList",
289
+ "PaginatedViewList",
290
+ "PaginatedWebhookList",
291
+ "PieChartAdtl",
292
+ "PieChartDisplayMetric",
293
+ "Priority",
294
+ "PropertiesListKind",
295
+ "Property",
296
+ "PropertyCreate",
297
+ "PropertyKind",
298
+ "PropertyUpdate",
299
+ "Relationship",
300
+ "RelationshipCreate",
301
+ "RelationshipKind",
302
+ "RelationshipKindCreate",
303
+ "RelationshipKindKind",
304
+ "RelationshipKindUpdate",
305
+ "ReportKind",
306
+ "RequestBody",
307
+ "ResponseBody",
308
+ "SamlConfig",
309
+ "SamlConfigTenantExtensionStatus",
310
+ "SlackIntegration",
311
+ "SlackIntegrationTenantExtensionStatus",
312
+ "Sort",
313
+ "Space",
314
+ "SpaceCreate",
315
+ "SpaceKind",
316
+ "SpaceUpdate",
317
+ "SprintMode",
318
+ "Status",
319
+ "StatusCreate",
320
+ "StatusesListKind",
321
+ "StatusKind",
322
+ "StatusUpdate",
323
+ "Subscription",
324
+ "SubtaskDisplayMode",
325
+ "SummaryStatisticKind",
326
+ "TableChartAdtl",
327
+ "Task",
328
+ "TaskCreate",
329
+ "TaskDetailMode",
330
+ "TaskDocRelationship",
331
+ "TaskDocRelationshipCreate",
332
+ "TaskKind",
333
+ "TaskKindCreate",
334
+ "TaskKindKind",
335
+ "TaskKindsListKind",
336
+ "TaskKindUpdate",
337
+ "TaskLink",
338
+ "TaskLinkCreate",
339
+ "TaskLinkKind",
340
+ "TaskLinkUpdate",
341
+ "TaskNotionDocument",
342
+ "TaskNotionDocumentBlockChildrenMapType0",
343
+ "TaskNotionDocumentBlockMapType0",
344
+ "TaskNotionDocumentPageMapType0",
345
+ "TaskProperties",
346
+ "TaskSourceType",
347
+ "TaskUpdate",
348
+ "Tenant",
349
+ "TenantUpdate",
350
+ "Theme",
351
+ "Transaction",
352
+ "TransactionKind",
353
+ "TransactionResponse",
354
+ "User",
355
+ "UserDartboardLayout",
356
+ "UserDartboardLayoutCreate",
357
+ "UserDataEntityRetrieveEntityKind",
358
+ "UserRole",
359
+ "UserStatus",
360
+ "UserUpdate",
361
+ "ValidationErrorResponse",
362
+ "ValidationErrorResponseItems",
363
+ "View",
364
+ "ViewCreate",
365
+ "ViewKind",
366
+ "ViewUpdate",
367
+ "Webhook",
368
+ "WebhookCreate",
369
+ "WebhookUpdate",
370
+ "ZapierIntegration",
371
+ )