dart-tools 0.8.6__tar.gz → 0.8.7__tar.gz

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 (128) hide show
  1. {dart_tools-0.8.6 → dart_tools-0.8.7}/PKG-INFO +1 -1
  2. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/__init__.py +1 -1
  3. dart_tools-0.8.7/dart/generated/api/task/add_task_time_tracking.py +190 -0
  4. dart_tools-0.8.7/dart/generated/api/task/move_task.py +190 -0
  5. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/__init__.py +22 -0
  6. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/paginated_comment_list.py +42 -0
  7. dart_tools-0.8.7/dart/generated/models/paginated_comment_list_meta_type_0.py +109 -0
  8. dart_tools-0.8.7/dart/generated/models/paginated_comment_list_meta_type_0_applied_default_filters.py +44 -0
  9. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/paginated_concise_doc_list.py +42 -0
  10. dart_tools-0.8.7/dart/generated/models/paginated_concise_doc_list_meta_type_0.py +109 -0
  11. dart_tools-0.8.7/dart/generated/models/paginated_concise_doc_list_meta_type_0_applied_default_filters.py +44 -0
  12. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/paginated_concise_task_list.py +42 -0
  13. dart_tools-0.8.7/dart/generated/models/paginated_concise_task_list_meta_type_0.py +109 -0
  14. dart_tools-0.8.7/dart/generated/models/paginated_concise_task_list_meta_type_0_applied_default_filters.py +44 -0
  15. dart_tools-0.8.7/dart/generated/models/task_move.py +94 -0
  16. dart_tools-0.8.7/dart/generated/models/task_time_tracking_create.py +84 -0
  17. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/PKG-INFO +1 -1
  18. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/SOURCES.txt +11 -16
  19. {dart_tools-0.8.6 → dart_tools-0.8.7}/pyproject.toml +1 -1
  20. dart_tools-0.8.6/.env.example +0 -1
  21. dart_tools-0.8.6/.gitattributes +0 -2
  22. dart_tools-0.8.6/.gitignore +0 -129
  23. dart_tools-0.8.6/admin/README.md +0 -44
  24. dart_tools-0.8.6/admin/make-api.sh +0 -30
  25. dart_tools-0.8.6/admin/make-deploy.sh +0 -8
  26. dart_tools-0.8.6/admin/make-lambda-layer.sh +0 -23
  27. dart_tools-0.8.6/examples/Lambda functions.md +0 -36
  28. dart_tools-0.8.6/examples/replicate_space.py +0 -50
  29. dart_tools-0.8.6/examples/replicate_space_and_more.js +0 -102
  30. dart_tools-0.8.6/examples/upload_attachment.py +0 -112
  31. dart_tools-0.8.6/examples/watch_for_status_change.py +0 -41
  32. dart_tools-0.8.6/examples/webhook_server.py +0 -70
  33. dart_tools-0.8.6/makefile +0 -21
  34. dart_tools-0.8.6/uv.lock +0 -971
  35. {dart_tools-0.8.6 → dart_tools-0.8.7}/LICENSE +0 -0
  36. {dart_tools-0.8.6 → dart_tools-0.8.7}/README.md +0 -0
  37. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/__init__.py +0 -0
  38. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/dart.py +0 -0
  39. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/exception.py +0 -0
  40. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/__init__.py +0 -0
  41. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/attachment/__init__.py +0 -0
  42. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/attachment/add_task_attachment_from_url.py +0 -0
  43. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/comment/__init__.py +0 -0
  44. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/comment/add_task_comment.py +0 -0
  45. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/comment/list_comments.py +0 -0
  46. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/config/__init__.py +0 -0
  47. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/config/get_config.py +0 -0
  48. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/dartboard/__init__.py +0 -0
  49. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/dartboard/get_dartboard.py +0 -0
  50. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/__init__.py +0 -0
  51. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/create_doc.py +0 -0
  52. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/delete_doc.py +0 -0
  53. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/get_doc.py +0 -0
  54. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/list_docs.py +0 -0
  55. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/doc/update_doc.py +0 -0
  56. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/folder/__init__.py +0 -0
  57. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/folder/get_folder.py +0 -0
  58. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/help_center_article/__init__.py +0 -0
  59. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/help_center_article/list_help_center_articles.py +0 -0
  60. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/skill/__init__.py +0 -0
  61. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/skill/retrieve_skill_by_title.py +0 -0
  62. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/__init__.py +0 -0
  63. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/create_task.py +0 -0
  64. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/delete_task.py +0 -0
  65. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/get_task.py +0 -0
  66. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/list_tasks.py +0 -0
  67. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/task/update_task.py +0 -0
  68. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/view/__init__.py +0 -0
  69. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/api/view/get_view.py +0 -0
  70. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/client.py +0 -0
  71. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/errors.py +0 -0
  72. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/attachment.py +0 -0
  73. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/attachment_create_from_url.py +0 -0
  74. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/comment.py +0 -0
  75. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/comment_create.py +0 -0
  76. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/concise_doc.py +0 -0
  77. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/concise_task.py +0 -0
  78. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/custom_properties.py +0 -0
  79. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/dartboard.py +0 -0
  80. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/doc.py +0 -0
  81. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/doc_create.py +0 -0
  82. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/doc_update.py +0 -0
  83. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/folder.py +0 -0
  84. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/list_comments_o_item.py +0 -0
  85. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/list_docs_o_item.py +0 -0
  86. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/list_tasks_o_item.py +0 -0
  87. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/priority.py +0 -0
  88. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/skill.py +0 -0
  89. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/task.py +0 -0
  90. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/task_create.py +0 -0
  91. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/task_relationships_type_0.py +0 -0
  92. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/task_update.py +0 -0
  93. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/time_tracking_entry.py +0 -0
  94. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user.py +0 -0
  95. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration.py +0 -0
  96. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_checkbox_type_def.py +0 -0
  97. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_dates_type_def.py +0 -0
  98. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_multiselect_type_def.py +0 -0
  99. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_number_type_def.py +0 -0
  100. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_number_type_def_custom_property_number_format_type_def.py +0 -0
  101. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_select_type_def.py +0 -0
  102. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_status_type_def.py +0 -0
  103. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_text_type_def.py +0 -0
  104. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_time_tracking_type_def.py +0 -0
  105. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/user_space_configuration_custom_property_user_type_def.py +0 -0
  106. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/view.py +0 -0
  107. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_comment.py +0 -0
  108. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_comment_create.py +0 -0
  109. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_dartboard.py +0 -0
  110. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_doc.py +0 -0
  111. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_doc_create.py +0 -0
  112. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_doc_update.py +0 -0
  113. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_folder.py +0 -0
  114. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_help_center_articles.py +0 -0
  115. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_skill.py +0 -0
  116. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_task.py +0 -0
  117. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_task_create.py +0 -0
  118. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_task_update.py +0 -0
  119. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/models/wrapped_view.py +0 -0
  120. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/generated/types.py +0 -0
  121. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/old.py +0 -0
  122. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/order_manager.py +0 -0
  123. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart/webhook.py +0 -0
  124. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/dependency_links.txt +0 -0
  125. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/entry_points.txt +0 -0
  126. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/requires.txt +0 -0
  127. {dart_tools-0.8.6 → dart_tools-0.8.7}/dart_tools.egg-info/top_level.txt +0 -0
  128. {dart_tools-0.8.6 → dart_tools-0.8.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dart-tools
3
- Version: 0.8.6
3
+ Version: 0.8.7
4
4
  Summary: The Dart CLI and Python Library
5
5
  Author-email: Dart <software@dartai.com>
6
6
  License: MIT License
@@ -8,5 +8,5 @@ from .doc import create_doc, delete_doc, get_doc, list_docs, update_doc
8
8
  from .folder import get_folder
9
9
  from .help_center_article import list_help_center_articles
10
10
  from .skill import retrieve_skill_by_title
11
- from .task import create_task, delete_task, get_task, list_tasks, update_task
11
+ from .task import add_task_time_tracking, create_task, delete_task, get_task, list_tasks, move_task, update_task
12
12
  from .view import get_view
@@ -0,0 +1,190 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.task_time_tracking_create import TaskTimeTrackingCreate
9
+ from ...models.wrapped_task import WrappedTask
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ id: str,
15
+ *,
16
+ body: TaskTimeTrackingCreate,
17
+ ) -> dict[str, Any]:
18
+ headers: dict[str, Any] = {}
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": "/tasks/{id}/time-tracking".format(
23
+ id=id,
24
+ ),
25
+ }
26
+
27
+ _body = body.to_dict()
28
+
29
+ _kwargs["json"] = _body
30
+ headers["Content-Type"] = "application/json"
31
+
32
+ _kwargs["headers"] = headers
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
38
+ ) -> Optional[Union[Any, WrappedTask]]:
39
+ if response.status_code == 200:
40
+ response_200 = WrappedTask.from_dict(response.json())
41
+
42
+ return response_200
43
+ if response.status_code == 400:
44
+ response_400 = cast(Any, None)
45
+ return response_400
46
+ if client.raise_on_unexpected_status:
47
+ raise errors.UnexpectedStatus(response.status_code, response.content)
48
+ else:
49
+ return None
50
+
51
+
52
+ def _build_response(
53
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
54
+ ) -> Response[Union[Any, WrappedTask]]:
55
+ return Response(
56
+ status_code=HTTPStatus(response.status_code),
57
+ content=response.content,
58
+ headers=response.headers,
59
+ parsed=_parse_response(client=client, response=response),
60
+ )
61
+
62
+
63
+ def sync_detailed(
64
+ id: str,
65
+ *,
66
+ client: Union[AuthenticatedClient, Client],
67
+ body: TaskTimeTrackingCreate,
68
+ ) -> Response[Union[Any, WrappedTask]]:
69
+ """Add a time tracking entry to a task
70
+
71
+ Record an additional time tracking entry on a task and return the updated task with refreshed time
72
+ tracking.
73
+
74
+ Args:
75
+ id (str):
76
+ body (TaskTimeTrackingCreate):
77
+
78
+ Raises:
79
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
80
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
81
+
82
+ Returns:
83
+ Response[Union[Any, WrappedTask]]
84
+ """
85
+
86
+ kwargs = _get_kwargs(
87
+ id=id,
88
+ body=body,
89
+ )
90
+
91
+ response = client.get_httpx_client().request(
92
+ **kwargs,
93
+ )
94
+
95
+ return _build_response(client=client, response=response)
96
+
97
+
98
+ def sync(
99
+ id: str,
100
+ *,
101
+ client: Union[AuthenticatedClient, Client],
102
+ body: TaskTimeTrackingCreate,
103
+ ) -> Optional[Union[Any, WrappedTask]]:
104
+ """Add a time tracking entry to a task
105
+
106
+ Record an additional time tracking entry on a task and return the updated task with refreshed time
107
+ tracking.
108
+
109
+ Args:
110
+ id (str):
111
+ body (TaskTimeTrackingCreate):
112
+
113
+ Raises:
114
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
115
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
116
+
117
+ Returns:
118
+ Union[Any, WrappedTask]
119
+ """
120
+
121
+ return sync_detailed(
122
+ id=id,
123
+ client=client,
124
+ body=body,
125
+ ).parsed
126
+
127
+
128
+ async def asyncio_detailed(
129
+ id: str,
130
+ *,
131
+ client: Union[AuthenticatedClient, Client],
132
+ body: TaskTimeTrackingCreate,
133
+ ) -> Response[Union[Any, WrappedTask]]:
134
+ """Add a time tracking entry to a task
135
+
136
+ Record an additional time tracking entry on a task and return the updated task with refreshed time
137
+ tracking.
138
+
139
+ Args:
140
+ id (str):
141
+ body (TaskTimeTrackingCreate):
142
+
143
+ Raises:
144
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
145
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
146
+
147
+ Returns:
148
+ Response[Union[Any, WrappedTask]]
149
+ """
150
+
151
+ kwargs = _get_kwargs(
152
+ id=id,
153
+ body=body,
154
+ )
155
+
156
+ response = await client.get_async_httpx_client().request(**kwargs)
157
+
158
+ return _build_response(client=client, response=response)
159
+
160
+
161
+ async def asyncio(
162
+ id: str,
163
+ *,
164
+ client: Union[AuthenticatedClient, Client],
165
+ body: TaskTimeTrackingCreate,
166
+ ) -> Optional[Union[Any, WrappedTask]]:
167
+ """Add a time tracking entry to a task
168
+
169
+ Record an additional time tracking entry on a task and return the updated task with refreshed time
170
+ tracking.
171
+
172
+ Args:
173
+ id (str):
174
+ body (TaskTimeTrackingCreate):
175
+
176
+ Raises:
177
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
178
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
179
+
180
+ Returns:
181
+ Union[Any, WrappedTask]
182
+ """
183
+
184
+ return (
185
+ await asyncio_detailed(
186
+ id=id,
187
+ client=client,
188
+ body=body,
189
+ )
190
+ ).parsed
@@ -0,0 +1,190 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.task_move import TaskMove
9
+ from ...models.wrapped_task import WrappedTask
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ id: str,
15
+ *,
16
+ body: TaskMove,
17
+ ) -> dict[str, Any]:
18
+ headers: dict[str, Any] = {}
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": "/tasks/{id}/move".format(
23
+ id=id,
24
+ ),
25
+ }
26
+
27
+ _body = body.to_dict()
28
+
29
+ _kwargs["json"] = _body
30
+ headers["Content-Type"] = "application/json"
31
+
32
+ _kwargs["headers"] = headers
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
38
+ ) -> Optional[Union[Any, WrappedTask]]:
39
+ if response.status_code == 200:
40
+ response_200 = WrappedTask.from_dict(response.json())
41
+
42
+ return response_200
43
+ if response.status_code == 400:
44
+ response_400 = cast(Any, None)
45
+ return response_400
46
+ if client.raise_on_unexpected_status:
47
+ raise errors.UnexpectedStatus(response.status_code, response.content)
48
+ else:
49
+ return None
50
+
51
+
52
+ def _build_response(
53
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
54
+ ) -> Response[Union[Any, WrappedTask]]:
55
+ return Response(
56
+ status_code=HTTPStatus(response.status_code),
57
+ content=response.content,
58
+ headers=response.headers,
59
+ parsed=_parse_response(client=client, response=response),
60
+ )
61
+
62
+
63
+ def sync_detailed(
64
+ id: str,
65
+ *,
66
+ client: Union[AuthenticatedClient, Client],
67
+ body: TaskMove,
68
+ ) -> Response[Union[Any, WrappedTask]]:
69
+ """Move a task within its dartboard
70
+
71
+ Move a task to a specific position within results sorted by the order field. Use afterTaskId to
72
+ place the task after a specific task, or beforeTaskId to place it before one.
73
+
74
+ Args:
75
+ id (str):
76
+ body (TaskMove):
77
+
78
+ Raises:
79
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
80
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
81
+
82
+ Returns:
83
+ Response[Union[Any, WrappedTask]]
84
+ """
85
+
86
+ kwargs = _get_kwargs(
87
+ id=id,
88
+ body=body,
89
+ )
90
+
91
+ response = client.get_httpx_client().request(
92
+ **kwargs,
93
+ )
94
+
95
+ return _build_response(client=client, response=response)
96
+
97
+
98
+ def sync(
99
+ id: str,
100
+ *,
101
+ client: Union[AuthenticatedClient, Client],
102
+ body: TaskMove,
103
+ ) -> Optional[Union[Any, WrappedTask]]:
104
+ """Move a task within its dartboard
105
+
106
+ Move a task to a specific position within results sorted by the order field. Use afterTaskId to
107
+ place the task after a specific task, or beforeTaskId to place it before one.
108
+
109
+ Args:
110
+ id (str):
111
+ body (TaskMove):
112
+
113
+ Raises:
114
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
115
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
116
+
117
+ Returns:
118
+ Union[Any, WrappedTask]
119
+ """
120
+
121
+ return sync_detailed(
122
+ id=id,
123
+ client=client,
124
+ body=body,
125
+ ).parsed
126
+
127
+
128
+ async def asyncio_detailed(
129
+ id: str,
130
+ *,
131
+ client: Union[AuthenticatedClient, Client],
132
+ body: TaskMove,
133
+ ) -> Response[Union[Any, WrappedTask]]:
134
+ """Move a task within its dartboard
135
+
136
+ Move a task to a specific position within results sorted by the order field. Use afterTaskId to
137
+ place the task after a specific task, or beforeTaskId to place it before one.
138
+
139
+ Args:
140
+ id (str):
141
+ body (TaskMove):
142
+
143
+ Raises:
144
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
145
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
146
+
147
+ Returns:
148
+ Response[Union[Any, WrappedTask]]
149
+ """
150
+
151
+ kwargs = _get_kwargs(
152
+ id=id,
153
+ body=body,
154
+ )
155
+
156
+ response = await client.get_async_httpx_client().request(**kwargs)
157
+
158
+ return _build_response(client=client, response=response)
159
+
160
+
161
+ async def asyncio(
162
+ id: str,
163
+ *,
164
+ client: Union[AuthenticatedClient, Client],
165
+ body: TaskMove,
166
+ ) -> Optional[Union[Any, WrappedTask]]:
167
+ """Move a task within its dartboard
168
+
169
+ Move a task to a specific position within results sorted by the order field. Use afterTaskId to
170
+ place the task after a specific task, or beforeTaskId to place it before one.
171
+
172
+ Args:
173
+ id (str):
174
+ body (TaskMove):
175
+
176
+ Raises:
177
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
178
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
179
+
180
+ Returns:
181
+ Union[Any, WrappedTask]
182
+ """
183
+
184
+ return (
185
+ await asyncio_detailed(
186
+ id=id,
187
+ client=client,
188
+ body=body,
189
+ )
190
+ ).parsed
@@ -16,13 +16,27 @@ from .list_comments_o_item import ListCommentsOItem
16
16
  from .list_docs_o_item import ListDocsOItem
17
17
  from .list_tasks_o_item import ListTasksOItem
18
18
  from .paginated_comment_list import PaginatedCommentList
19
+ from .paginated_comment_list_meta_type_0 import PaginatedCommentListMetaType0
20
+ from .paginated_comment_list_meta_type_0_applied_default_filters import (
21
+ PaginatedCommentListMetaType0AppliedDefaultFilters,
22
+ )
19
23
  from .paginated_concise_doc_list import PaginatedConciseDocList
24
+ from .paginated_concise_doc_list_meta_type_0 import PaginatedConciseDocListMetaType0
25
+ from .paginated_concise_doc_list_meta_type_0_applied_default_filters import (
26
+ PaginatedConciseDocListMetaType0AppliedDefaultFilters,
27
+ )
20
28
  from .paginated_concise_task_list import PaginatedConciseTaskList
29
+ from .paginated_concise_task_list_meta_type_0 import PaginatedConciseTaskListMetaType0
30
+ from .paginated_concise_task_list_meta_type_0_applied_default_filters import (
31
+ PaginatedConciseTaskListMetaType0AppliedDefaultFilters,
32
+ )
21
33
  from .priority import Priority
22
34
  from .skill import Skill
23
35
  from .task import Task
24
36
  from .task_create import TaskCreate
37
+ from .task_move import TaskMove
25
38
  from .task_relationships_type_0 import TaskRelationshipsType0
39
+ from .task_time_tracking_create import TaskTimeTrackingCreate
26
40
  from .task_update import TaskUpdate
27
41
  from .time_tracking_entry import TimeTrackingEntry
28
42
  from .user import User
@@ -89,13 +103,21 @@ __all__ = (
89
103
  "ListDocsOItem",
90
104
  "ListTasksOItem",
91
105
  "PaginatedCommentList",
106
+ "PaginatedCommentListMetaType0",
107
+ "PaginatedCommentListMetaType0AppliedDefaultFilters",
92
108
  "PaginatedConciseDocList",
109
+ "PaginatedConciseDocListMetaType0",
110
+ "PaginatedConciseDocListMetaType0AppliedDefaultFilters",
93
111
  "PaginatedConciseTaskList",
112
+ "PaginatedConciseTaskListMetaType0",
113
+ "PaginatedConciseTaskListMetaType0AppliedDefaultFilters",
94
114
  "Priority",
95
115
  "Skill",
96
116
  "Task",
97
117
  "TaskCreate",
118
+ "TaskMove",
98
119
  "TaskRelationshipsType0",
120
+ "TaskTimeTrackingCreate",
99
121
  "TaskUpdate",
100
122
  "TimeTrackingEntry",
101
123
  "User",
@@ -8,6 +8,9 @@ from ..types import UNSET, Unset
8
8
 
9
9
  if TYPE_CHECKING:
10
10
  from ..models.comment import Comment
11
+ from ..models.paginated_comment_list_meta_type_0 import (
12
+ PaginatedCommentListMetaType0,
13
+ )
11
14
 
12
15
 
13
16
  T = TypeVar("T", bound="PaginatedCommentList")
@@ -21,15 +24,21 @@ class PaginatedCommentList:
21
24
  results (list['Comment']):
22
25
  next_ (Union[None, Unset, str]): Example: http://api.example.org/accounts/?offset=400&limit=100.
23
26
  previous (Union[None, Unset, str]): Example: http://api.example.org/accounts/?offset=200&limit=100.
27
+ meta (Union['PaginatedCommentListMetaType0', None, Unset]):
24
28
  """
25
29
 
26
30
  count: int
27
31
  results: list["Comment"]
28
32
  next_: Union[None, Unset, str] = UNSET
29
33
  previous: Union[None, Unset, str] = UNSET
34
+ meta: Union["PaginatedCommentListMetaType0", None, Unset] = UNSET
30
35
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
36
 
32
37
  def to_dict(self) -> dict[str, Any]:
38
+ from ..models.paginated_comment_list_meta_type_0 import (
39
+ PaginatedCommentListMetaType0,
40
+ )
41
+
33
42
  count = self.count
34
43
 
35
44
  results = []
@@ -49,6 +58,14 @@ class PaginatedCommentList:
49
58
  else:
50
59
  previous = self.previous
51
60
 
61
+ meta: Union[None, Unset, dict[str, Any]]
62
+ if isinstance(self.meta, Unset):
63
+ meta = UNSET
64
+ elif isinstance(self.meta, PaginatedCommentListMetaType0):
65
+ meta = self.meta.to_dict()
66
+ else:
67
+ meta = self.meta
68
+
52
69
  field_dict: dict[str, Any] = {}
53
70
  field_dict.update(self.additional_properties)
54
71
  field_dict.update(
@@ -61,12 +78,17 @@ class PaginatedCommentList:
61
78
  field_dict["next"] = next_
62
79
  if previous is not UNSET:
63
80
  field_dict["previous"] = previous
81
+ if meta is not UNSET:
82
+ field_dict["meta"] = meta
64
83
 
65
84
  return field_dict
66
85
 
67
86
  @classmethod
68
87
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
69
88
  from ..models.comment import Comment
89
+ from ..models.paginated_comment_list_meta_type_0 import (
90
+ PaginatedCommentListMetaType0,
91
+ )
70
92
 
71
93
  d = dict(src_dict)
72
94
  count = d.pop("count")
@@ -96,11 +118,31 @@ class PaginatedCommentList:
96
118
 
97
119
  previous = _parse_previous(d.pop("previous", UNSET))
98
120
 
121
+ def _parse_meta(
122
+ data: object,
123
+ ) -> Union["PaginatedCommentListMetaType0", None, Unset]:
124
+ if data is None:
125
+ return data
126
+ if isinstance(data, Unset):
127
+ return data
128
+ try:
129
+ if not isinstance(data, dict):
130
+ raise TypeError()
131
+ meta_type_0 = PaginatedCommentListMetaType0.from_dict(data)
132
+
133
+ return meta_type_0
134
+ except: # noqa: E722
135
+ pass
136
+ return cast(Union["PaginatedCommentListMetaType0", None, Unset], data)
137
+
138
+ meta = _parse_meta(d.pop("meta", UNSET))
139
+
99
140
  paginated_comment_list = cls(
100
141
  count=count,
101
142
  results=results,
102
143
  next_=next_,
103
144
  previous=previous,
145
+ meta=meta,
104
146
  )
105
147
 
106
148
  paginated_comment_list.additional_properties = d
@@ -0,0 +1,109 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.paginated_comment_list_meta_type_0_applied_default_filters import (
11
+ PaginatedCommentListMetaType0AppliedDefaultFilters,
12
+ )
13
+
14
+
15
+ T = TypeVar("T", bound="PaginatedCommentListMetaType0")
16
+
17
+
18
+ @_attrs_define
19
+ class PaginatedCommentListMetaType0:
20
+ """
21
+ Attributes:
22
+ defaults_applied (Union[Unset, bool]): Whether default filters or ordering were applied to the response.
23
+ applied_default_filters (Union[Unset, PaginatedCommentListMetaType0AppliedDefaultFilters]): The default filters
24
+ that were applied automatically, if any.
25
+ applied_default_sorts (Union[Unset, list[str]]): The default ordering fields that were applied automatically, if
26
+ any.
27
+ instructions (Union[Unset, str]): Guidance on how to disable or override default filters and ordering.
28
+ """
29
+
30
+ defaults_applied: Union[Unset, bool] = UNSET
31
+ applied_default_filters: Union[Unset, "PaginatedCommentListMetaType0AppliedDefaultFilters"] = UNSET
32
+ applied_default_sorts: Union[Unset, list[str]] = UNSET
33
+ instructions: Union[Unset, str] = UNSET
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ defaults_applied = self.defaults_applied
38
+
39
+ applied_default_filters: Union[Unset, dict[str, Any]] = UNSET
40
+ if not isinstance(self.applied_default_filters, Unset):
41
+ applied_default_filters = self.applied_default_filters.to_dict()
42
+
43
+ applied_default_sorts: Union[Unset, list[str]] = UNSET
44
+ if not isinstance(self.applied_default_sorts, Unset):
45
+ applied_default_sorts = self.applied_default_sorts
46
+
47
+ instructions = self.instructions
48
+
49
+ field_dict: dict[str, Any] = {}
50
+ field_dict.update(self.additional_properties)
51
+ field_dict.update({})
52
+ if defaults_applied is not UNSET:
53
+ field_dict["defaultsApplied"] = defaults_applied
54
+ if applied_default_filters is not UNSET:
55
+ field_dict["appliedDefaultFilters"] = applied_default_filters
56
+ if applied_default_sorts is not UNSET:
57
+ field_dict["appliedDefaultSorts"] = applied_default_sorts
58
+ if instructions is not UNSET:
59
+ field_dict["instructions"] = instructions
60
+
61
+ return field_dict
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ from ..models.paginated_comment_list_meta_type_0_applied_default_filters import (
66
+ PaginatedCommentListMetaType0AppliedDefaultFilters,
67
+ )
68
+
69
+ d = dict(src_dict)
70
+ defaults_applied = d.pop("defaultsApplied", UNSET)
71
+
72
+ _applied_default_filters = d.pop("appliedDefaultFilters", UNSET)
73
+ applied_default_filters: Union[Unset, PaginatedCommentListMetaType0AppliedDefaultFilters]
74
+ if isinstance(_applied_default_filters, Unset):
75
+ applied_default_filters = UNSET
76
+ else:
77
+ applied_default_filters = PaginatedCommentListMetaType0AppliedDefaultFilters.from_dict(
78
+ _applied_default_filters
79
+ )
80
+
81
+ applied_default_sorts = cast(list[str], d.pop("appliedDefaultSorts", UNSET))
82
+
83
+ instructions = d.pop("instructions", UNSET)
84
+
85
+ paginated_comment_list_meta_type_0 = cls(
86
+ defaults_applied=defaults_applied,
87
+ applied_default_filters=applied_default_filters,
88
+ applied_default_sorts=applied_default_sorts,
89
+ instructions=instructions,
90
+ )
91
+
92
+ paginated_comment_list_meta_type_0.additional_properties = d
93
+ return paginated_comment_list_meta_type_0
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="PaginatedCommentListMetaType0AppliedDefaultFilters")
8
+
9
+
10
+ @_attrs_define
11
+ class PaginatedCommentListMetaType0AppliedDefaultFilters:
12
+ """The default filters that were applied automatically, if any."""
13
+
14
+ additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ paginated_comment_list_meta_type_0_applied_default_filters = cls()
26
+
27
+ paginated_comment_list_meta_type_0_applied_default_filters.additional_properties = d
28
+ return paginated_comment_list_meta_type_0_applied_default_filters
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> str:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: str) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties