taskadence 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. taskadence/__init__.py +100 -0
  2. taskadence/_brand.py +87 -0
  3. taskadence/_client.py +144 -0
  4. taskadence/_core.py +563 -0
  5. taskadence/_generated/__init__.py +11 -0
  6. taskadence/_generated/api/__init__.py +3 -0
  7. taskadence/_generated/api/audit/__init__.py +3 -0
  8. taskadence/_generated/api/audit/audit_export.py +407 -0
  9. taskadence/_generated/api/audit/audit_export_json.py +422 -0
  10. taskadence/_generated/api/audit/audit_list.py +441 -0
  11. taskadence/_generated/api/availability/__init__.py +3 -0
  12. taskadence/_generated/api/availability/availability_create.py +242 -0
  13. taskadence/_generated/api/availability/availability_delete.py +227 -0
  14. taskadence/_generated/api/availability/availability_range.py +293 -0
  15. taskadence/_generated/api/availability/availability_update.py +260 -0
  16. taskadence/_generated/api/connected_apps/__init__.py +3 -0
  17. taskadence/_generated/api/connected_apps/connected_apps_delete.py +213 -0
  18. taskadence/_generated/api/connected_apps/connected_apps_list.py +304 -0
  19. taskadence/_generated/api/designations/__init__.py +3 -0
  20. taskadence/_generated/api/designations/designations_create.py +217 -0
  21. taskadence/_generated/api/designations/designations_delete.py +252 -0
  22. taskadence/_generated/api/designations/designations_list.py +433 -0
  23. taskadence/_generated/api/designations/designations_read.py +261 -0
  24. taskadence/_generated/api/designations/designations_replace.py +276 -0
  25. taskadence/_generated/api/designations/designations_set_visibility.py +254 -0
  26. taskadence/_generated/api/designations/designations_update.py +272 -0
  27. taskadence/_generated/api/goals/__init__.py +3 -0
  28. taskadence/_generated/api/goals/goals_create.py +246 -0
  29. taskadence/_generated/api/goals/goals_delete.py +252 -0
  30. taskadence/_generated/api/goals/goals_file_tasks.py +256 -0
  31. taskadence/_generated/api/goals/goals_list.py +338 -0
  32. taskadence/_generated/api/goals/goals_move.py +252 -0
  33. taskadence/_generated/api/goals/goals_org.py +249 -0
  34. taskadence/_generated/api/goals/goals_reorder.py +238 -0
  35. taskadence/_generated/api/goals/goals_replace.py +260 -0
  36. taskadence/_generated/api/goals/goals_unfile_task.py +241 -0
  37. taskadence/_generated/api/goals/goals_update.py +256 -0
  38. taskadence/_generated/api/health/__init__.py +3 -0
  39. taskadence/_generated/api/health/health_read.py +219 -0
  40. taskadence/_generated/api/mcp/__init__.py +3 -0
  41. taskadence/_generated/api/mcp/mcp_clients.py +237 -0
  42. taskadence/_generated/api/me/__init__.py +3 -0
  43. taskadence/_generated/api/me/me_read.py +243 -0
  44. taskadence/_generated/api/milestones/__init__.py +3 -0
  45. taskadence/_generated/api/milestones/milestones_create.py +252 -0
  46. taskadence/_generated/api/milestones/milestones_delete.py +254 -0
  47. taskadence/_generated/api/milestones/milestones_file_tasks.py +256 -0
  48. taskadence/_generated/api/milestones/milestones_list.py +338 -0
  49. taskadence/_generated/api/milestones/milestones_list_org.py +374 -0
  50. taskadence/_generated/api/milestones/milestones_move.py +256 -0
  51. taskadence/_generated/api/milestones/milestones_reorder.py +238 -0
  52. taskadence/_generated/api/milestones/milestones_replace.py +314 -0
  53. taskadence/_generated/api/milestones/milestones_unfile_task.py +245 -0
  54. taskadence/_generated/api/milestones/milestones_update.py +302 -0
  55. taskadence/_generated/api/oauth_clients/__init__.py +3 -0
  56. taskadence/_generated/api/oauth_clients/oauth_clients_create.py +223 -0
  57. taskadence/_generated/api/oauth_clients/oauth_clients_delete.py +221 -0
  58. taskadence/_generated/api/oauth_clients/oauth_clients_list.py +327 -0
  59. taskadence/_generated/api/oauth_clients/oauth_clients_read.py +236 -0
  60. taskadence/_generated/api/oauth_clients/oauth_clients_rotate_secret.py +213 -0
  61. taskadence/_generated/api/oauth_clients/oauth_clients_update.py +234 -0
  62. taskadence/_generated/api/organization_invites/__init__.py +3 -0
  63. taskadence/_generated/api/organization_invites/organization_invites_accept.py +213 -0
  64. taskadence/_generated/api/organization_invites/organization_invites_create.py +219 -0
  65. taskadence/_generated/api/organization_invites/organization_invites_delete.py +213 -0
  66. taskadence/_generated/api/organization_invites/organization_invites_list.py +383 -0
  67. taskadence/_generated/api/organization_invites/organization_invites_mine.py +332 -0
  68. taskadence/_generated/api/organization_invites/organization_invites_reject.py +213 -0
  69. taskadence/_generated/api/organization_invites/organization_invites_update.py +234 -0
  70. taskadence/_generated/api/organization_members/__init__.py +3 -0
  71. taskadence/_generated/api/organization_members/organization_members_delete.py +246 -0
  72. taskadence/_generated/api/organization_members/organization_members_list.py +395 -0
  73. taskadence/_generated/api/organization_members/organization_members_read.py +250 -0
  74. taskadence/_generated/api/organization_members/organization_members_replace.py +272 -0
  75. taskadence/_generated/api/organization_members/organization_members_update.py +268 -0
  76. taskadence/_generated/api/organizations/__init__.py +3 -0
  77. taskadence/_generated/api/organizations/organizations_access_review.py +244 -0
  78. taskadence/_generated/api/organizations/organizations_list.py +304 -0
  79. taskadence/_generated/api/organizations/organizations_read.py +236 -0
  80. taskadence/_generated/api/organizations/organizations_settings.py +236 -0
  81. taskadence/_generated/api/organizations/organizations_storage.py +244 -0
  82. taskadence/_generated/api/organizations/organizations_update_settings.py +262 -0
  83. taskadence/_generated/api/project_members/__init__.py +3 -0
  84. taskadence/_generated/api/project_members/project_members_create.py +219 -0
  85. taskadence/_generated/api/project_members/project_members_delete.py +246 -0
  86. taskadence/_generated/api/project_members/project_members_list.py +364 -0
  87. taskadence/_generated/api/project_members/project_members_read.py +250 -0
  88. taskadence/_generated/api/project_members/project_members_replace.py +276 -0
  89. taskadence/_generated/api/project_members/project_members_update.py +272 -0
  90. taskadence/_generated/api/project_resources/__init__.py +3 -0
  91. taskadence/_generated/api/project_resources/project_resources_create.py +239 -0
  92. taskadence/_generated/api/project_resources/project_resources_delete.py +252 -0
  93. taskadence/_generated/api/project_resources/project_resources_list.py +355 -0
  94. taskadence/_generated/api/project_resources/project_resources_read.py +256 -0
  95. taskadence/_generated/api/project_resources/project_resources_update.py +270 -0
  96. taskadence/_generated/api/project_resources/project_resources_upload.py +268 -0
  97. taskadence/_generated/api/project_stats/__init__.py +3 -0
  98. taskadence/_generated/api/project_stats/project_stats_read.py +236 -0
  99. taskadence/_generated/api/projects/__init__.py +3 -0
  100. taskadence/_generated/api/projects/projects_create.py +233 -0
  101. taskadence/_generated/api/projects/projects_delete.py +232 -0
  102. taskadence/_generated/api/projects/projects_list.py +386 -0
  103. taskadence/_generated/api/projects/projects_read.py +236 -0
  104. taskadence/_generated/api/projects/projects_reorder.py +235 -0
  105. taskadence/_generated/api/projects/projects_replace.py +252 -0
  106. taskadence/_generated/api/projects/projects_update.py +248 -0
  107. taskadence/_generated/api/releases/__init__.py +3 -0
  108. taskadence/_generated/api/releases/releases_whats_new.py +286 -0
  109. taskadence/_generated/api/sections/__init__.py +3 -0
  110. taskadence/_generated/api/sections/sections_create.py +221 -0
  111. taskadence/_generated/api/sections/sections_delete.py +217 -0
  112. taskadence/_generated/api/sections/sections_list.py +461 -0
  113. taskadence/_generated/api/sections/sections_reorder.py +228 -0
  114. taskadence/_generated/api/sections/sections_update.py +232 -0
  115. taskadence/_generated/api/service_accounts/__init__.py +3 -0
  116. taskadence/_generated/api/service_accounts/service_accounts_create.py +242 -0
  117. taskadence/_generated/api/service_accounts/service_accounts_delete.py +235 -0
  118. taskadence/_generated/api/service_accounts/service_accounts_list.py +319 -0
  119. taskadence/_generated/api/service_accounts/service_accounts_update.py +248 -0
  120. taskadence/_generated/api/sprints/__init__.py +3 -0
  121. taskadence/_generated/api/sprints/sprints_create.py +234 -0
  122. taskadence/_generated/api/sprints/sprints_delete.py +258 -0
  123. taskadence/_generated/api/sprints/sprints_list.py +323 -0
  124. taskadence/_generated/api/sprints/sprints_update.py +252 -0
  125. taskadence/_generated/api/task_attachments/__init__.py +3 -0
  126. taskadence/_generated/api/task_attachments/task_attachments_create.py +290 -0
  127. taskadence/_generated/api/task_attachments/task_attachments_delete.py +251 -0
  128. taskadence/_generated/api/task_attachments/task_attachments_list.py +334 -0
  129. taskadence/_generated/api/task_attachments/task_attachments_read.py +261 -0
  130. taskadence/_generated/api/task_attachments/task_attachments_update.py +279 -0
  131. taskadence/_generated/api/task_comments/__init__.py +3 -0
  132. taskadence/_generated/api/task_comments/task_comments_create.py +235 -0
  133. taskadence/_generated/api/task_comments/task_comments_delete.py +257 -0
  134. taskadence/_generated/api/task_comments/task_comments_list.py +339 -0
  135. taskadence/_generated/api/task_comments/task_comments_read.py +261 -0
  136. taskadence/_generated/api/task_comments/task_comments_reply.py +235 -0
  137. taskadence/_generated/api/task_comments/task_comments_update.py +275 -0
  138. taskadence/_generated/api/task_history/__init__.py +3 -0
  139. taskadence/_generated/api/task_history/task_history_list.py +339 -0
  140. taskadence/_generated/api/task_history/task_history_read.py +261 -0
  141. taskadence/_generated/api/tasks/__init__.py +3 -0
  142. taskadence/_generated/api/tasks/tasks_add_dependency.py +230 -0
  143. taskadence/_generated/api/tasks/tasks_add_subtask.py +230 -0
  144. taskadence/_generated/api/tasks/tasks_create.py +231 -0
  145. taskadence/_generated/api/tasks/tasks_delete.py +236 -0
  146. taskadence/_generated/api/tasks/tasks_list.py +1044 -0
  147. taskadence/_generated/api/tasks/tasks_read.py +236 -0
  148. taskadence/_generated/api/tasks/tasks_remove_dependency.py +223 -0
  149. taskadence/_generated/api/tasks/tasks_remove_subtask.py +223 -0
  150. taskadence/_generated/api/tasks/tasks_replace.py +274 -0
  151. taskadence/_generated/api/tasks/tasks_review.py +270 -0
  152. taskadence/_generated/api/tasks/tasks_set_milestone.py +262 -0
  153. taskadence/_generated/api/tasks/tasks_set_project.py +238 -0
  154. taskadence/_generated/api/tasks/tasks_set_section.py +246 -0
  155. taskadence/_generated/api/tasks/tasks_set_sprint.py +262 -0
  156. taskadence/_generated/api/tasks/tasks_update.py +262 -0
  157. taskadence/_generated/api/teams/__init__.py +3 -0
  158. taskadence/_generated/api/teams/teams_add_member.py +238 -0
  159. taskadence/_generated/api/teams/teams_create.py +221 -0
  160. taskadence/_generated/api/teams/teams_delete.py +282 -0
  161. taskadence/_generated/api/teams/teams_list.py +339 -0
  162. taskadence/_generated/api/teams/teams_list_tasks.py +373 -0
  163. taskadence/_generated/api/teams/teams_read.py +236 -0
  164. taskadence/_generated/api/teams/teams_remove_member.py +227 -0
  165. taskadence/_generated/api/teams/teams_replace.py +260 -0
  166. taskadence/_generated/api/teams/teams_replace_member.py +264 -0
  167. taskadence/_generated/api/teams/teams_update.py +248 -0
  168. taskadence/_generated/api/teams/teams_update_member.py +252 -0
  169. taskadence/_generated/api/tokens/__init__.py +3 -0
  170. taskadence/_generated/api/tokens/tokens_create.py +249 -0
  171. taskadence/_generated/api/tokens/tokens_delete.py +209 -0
  172. taskadence/_generated/api/tokens/tokens_list.py +327 -0
  173. taskadence/_generated/api/tokens/tokens_read.py +236 -0
  174. taskadence/_generated/api/tokens/tokens_rotate.py +219 -0
  175. taskadence/_generated/api/tokens/tokens_update.py +230 -0
  176. taskadence/_generated/api/uploads/__init__.py +3 -0
  177. taskadence/_generated/api/uploads/uploads_complete.py +311 -0
  178. taskadence/_generated/api/uploads/uploads_create.py +251 -0
  179. taskadence/_generated/api/view_pins/__init__.py +3 -0
  180. taskadence/_generated/api/view_pins/view_pins_list.py +315 -0
  181. taskadence/_generated/api/view_pins/view_pins_pin_project.py +230 -0
  182. taskadence/_generated/api/view_pins/view_pins_pin_view.py +213 -0
  183. taskadence/_generated/api/view_pins/view_pins_reorder.py +221 -0
  184. taskadence/_generated/api/view_pins/view_pins_unpin_project.py +213 -0
  185. taskadence/_generated/api/view_pins/view_pins_unpin_view.py +213 -0
  186. taskadence/_generated/api/views/__init__.py +3 -0
  187. taskadence/_generated/api/views/views_create.py +247 -0
  188. taskadence/_generated/api/views/views_delete.py +230 -0
  189. taskadence/_generated/api/views/views_duplicate.py +234 -0
  190. taskadence/_generated/api/views/views_list.py +367 -0
  191. taskadence/_generated/api/views/views_read.py +236 -0
  192. taskadence/_generated/api/views/views_rows.py +336 -0
  193. taskadence/_generated/api/views/views_update.py +254 -0
  194. taskadence/_generated/api/webhooks/__init__.py +3 -0
  195. taskadence/_generated/api/webhooks/webhooks_create.py +231 -0
  196. taskadence/_generated/api/webhooks/webhooks_delete.py +230 -0
  197. taskadence/_generated/api/webhooks/webhooks_deliveries.py +319 -0
  198. taskadence/_generated/api/webhooks/webhooks_delivery.py +254 -0
  199. taskadence/_generated/api/webhooks/webhooks_events.py +312 -0
  200. taskadence/_generated/api/webhooks/webhooks_list.py +323 -0
  201. taskadence/_generated/api/webhooks/webhooks_read.py +236 -0
  202. taskadence/_generated/api/webhooks/webhooks_replay.py +233 -0
  203. taskadence/_generated/api/webhooks/webhooks_rotate_secret.py +217 -0
  204. taskadence/_generated/api/webhooks/webhooks_test.py +221 -0
  205. taskadence/_generated/api/webhooks/webhooks_update.py +256 -0
  206. taskadence/_generated/client.py +272 -0
  207. taskadence/_generated/errors.py +18 -0
  208. taskadence/_generated/models/__init__.py +619 -0
  209. taskadence/_generated/models/access_review.py +167 -0
  210. taskadence/_generated/models/acknowledgement.py +73 -0
  211. taskadence/_generated/models/agent_task_review_enum.py +17 -0
  212. taskadence/_generated/models/audit_export_row.py +358 -0
  213. taskadence/_generated/models/audit_export_row_after_type_0.py +53 -0
  214. taskadence/_generated/models/audit_export_row_before_type_0.py +53 -0
  215. taskadence/_generated/models/audit_page.py +108 -0
  216. taskadence/_generated/models/audit_page_data_item.py +53 -0
  217. taskadence/_generated/models/authorization_server_metadata.py +218 -0
  218. taskadence/_generated/models/availability_create.py +92 -0
  219. taskadence/_generated/models/availability_deleted.py +78 -0
  220. taskadence/_generated/models/availability_entry.py +226 -0
  221. taskadence/_generated/models/availability_member.py +101 -0
  222. taskadence/_generated/models/availability_range.py +131 -0
  223. taskadence/_generated/models/availability_update.py +147 -0
  224. taskadence/_generated/models/body_upload_attachment_v1_task_attachments_post.py +175 -0
  225. taskadence/_generated/models/body_upload_resource_v1_project_resources_upload_post.py +139 -0
  226. taskadence/_generated/models/client_registration_response.py +199 -0
  227. taskadence/_generated/models/commit_type.py +25 -0
  228. taskadence/_generated/models/connected_app.py +243 -0
  229. taskadence/_generated/models/connected_app_revoked.py +93 -0
  230. taskadence/_generated/models/delivery_detail.py +405 -0
  231. taskadence/_generated/models/delivery_detail_attempt_log_item.py +53 -0
  232. taskadence/_generated/models/delivery_detail_payload.py +55 -0
  233. taskadence/_generated/models/delivery_detail_request_headers.py +55 -0
  234. taskadence/_generated/models/delivery_detail_status.py +19 -0
  235. taskadence/_generated/models/delivery_out.py +334 -0
  236. taskadence/_generated/models/delivery_out_status.py +19 -0
  237. taskadence/_generated/models/dependency_link.py +52 -0
  238. taskadence/_generated/models/designation.py +504 -0
  239. taskadence/_generated/models/designation_catalog.py +116 -0
  240. taskadence/_generated/models/designation_create.py +204 -0
  241. taskadence/_generated/models/designation_create_metadata_type_0.py +53 -0
  242. taskadence/_generated/models/designation_deleted.py +86 -0
  243. taskadence/_generated/models/designation_group.py +95 -0
  244. taskadence/_generated/models/designation_metadata_type_0.py +53 -0
  245. taskadence/_generated/models/designation_update.py +213 -0
  246. taskadence/_generated/models/designation_update_metadata_type_0.py +53 -0
  247. taskadence/_generated/models/designation_usage.py +97 -0
  248. taskadence/_generated/models/designation_visibility.py +148 -0
  249. taskadence/_generated/models/environment.py +17 -0
  250. taskadence/_generated/models/goal_create.py +106 -0
  251. taskadence/_generated/models/goal_deleted.py +86 -0
  252. taskadence/_generated/models/goal_move.py +52 -0
  253. taskadence/_generated/models/goal_moved.py +410 -0
  254. taskadence/_generated/models/goal_moved_tasks_type_0_item.py +53 -0
  255. taskadence/_generated/models/goal_order.py +54 -0
  256. taskadence/_generated/models/goal_out.py +402 -0
  257. taskadence/_generated/models/goal_out_tasks_type_0_item.py +53 -0
  258. taskadence/_generated/models/goal_task_unfiled.py +86 -0
  259. taskadence/_generated/models/goal_tasks_file.py +54 -0
  260. taskadence/_generated/models/goal_tasks_filed.py +86 -0
  261. taskadence/_generated/models/goal_update.py +137 -0
  262. taskadence/_generated/models/goals_reordered.py +80 -0
  263. taskadence/_generated/models/health.py +73 -0
  264. taskadence/_generated/models/http_validation_error.py +90 -0
  265. taskadence/_generated/models/invite_status_enum.py +18 -0
  266. taskadence/_generated/models/mcp_artefact.py +121 -0
  267. taskadence/_generated/models/mcp_artefact_kind.py +17 -0
  268. taskadence/_generated/models/mcp_artefact_lang.py +17 -0
  269. taskadence/_generated/models/mcp_client_row.py +192 -0
  270. taskadence/_generated/models/mcp_clients_out.py +144 -0
  271. taskadence/_generated/models/mcp_clients_out_scopes_for_group.py +68 -0
  272. taskadence/_generated/models/mcp_group_out.py +125 -0
  273. taskadence/_generated/models/mcp_group_scopes.py +80 -0
  274. taskadence/_generated/models/mcp_package.py +98 -0
  275. taskadence/_generated/models/mcp_package_registry.py +16 -0
  276. taskadence/_generated/models/mcp_stdio.py +109 -0
  277. taskadence/_generated/models/mcp_stdio_env.py +55 -0
  278. taskadence/_generated/models/mcp_stdio_flags.py +55 -0
  279. taskadence/_generated/models/mcp_stdio_packages.py +70 -0
  280. taskadence/_generated/models/me_auth.py +201 -0
  281. taskadence/_generated/models/me_auth_grant_type.py +17 -0
  282. taskadence/_generated/models/me_auth_token_kind.py +16 -0
  283. taskadence/_generated/models/me_organization.py +121 -0
  284. taskadence/_generated/models/me_out.py +164 -0
  285. taskadence/_generated/models/me_principal.py +151 -0
  286. taskadence/_generated/models/me_principal_type.py +16 -0
  287. taskadence/_generated/models/mention.py +123 -0
  288. taskadence/_generated/models/mention_in.py +105 -0
  289. taskadence/_generated/models/mfa_enrolment_counts.py +79 -0
  290. taskadence/_generated/models/mfa_requirement_enum.py +17 -0
  291. taskadence/_generated/models/milestone_create.py +106 -0
  292. taskadence/_generated/models/milestone_deleted.py +86 -0
  293. taskadence/_generated/models/milestone_move.py +52 -0
  294. taskadence/_generated/models/milestone_moved.py +387 -0
  295. taskadence/_generated/models/milestone_moved_tasks_type_0_item.py +53 -0
  296. taskadence/_generated/models/milestone_order.py +54 -0
  297. taskadence/_generated/models/milestone_org_out.py +388 -0
  298. taskadence/_generated/models/milestone_org_out_tasks_type_0_item.py +53 -0
  299. taskadence/_generated/models/milestone_out.py +379 -0
  300. taskadence/_generated/models/milestone_out_tasks_type_0_item.py +53 -0
  301. taskadence/_generated/models/milestone_task_unfiled.py +86 -0
  302. taskadence/_generated/models/milestone_tasks_file.py +54 -0
  303. taskadence/_generated/models/milestone_tasks_filed.py +86 -0
  304. taskadence/_generated/models/milestone_update.py +161 -0
  305. taskadence/_generated/models/milestones_reordered.py +80 -0
  306. taskadence/_generated/models/o_auth_client_create.py +161 -0
  307. taskadence/_generated/models/o_auth_client_create_client_type.py +16 -0
  308. taskadence/_generated/models/o_auth_client_created.py +491 -0
  309. taskadence/_generated/models/o_auth_client_created_client_type.py +16 -0
  310. taskadence/_generated/models/o_auth_client_created_registration.py +16 -0
  311. taskadence/_generated/models/o_auth_client_created_review_state.py +16 -0
  312. taskadence/_generated/models/o_auth_client_created_status.py +16 -0
  313. taskadence/_generated/models/o_auth_client_out.py +470 -0
  314. taskadence/_generated/models/o_auth_client_out_client_type.py +16 -0
  315. taskadence/_generated/models/o_auth_client_out_registration.py +16 -0
  316. taskadence/_generated/models/o_auth_client_out_review_state.py +16 -0
  317. taskadence/_generated/models/o_auth_client_out_status.py +16 -0
  318. taskadence/_generated/models/o_auth_client_update.py +188 -0
  319. taskadence/_generated/models/o_auth_error_body.py +94 -0
  320. taskadence/_generated/models/org_card.py +310 -0
  321. taskadence/_generated/models/org_goals_out.py +106 -0
  322. taskadence/_generated/models/org_join_mode_enum.py +16 -0
  323. taskadence/_generated/models/org_milestones_out.py +106 -0
  324. taskadence/_generated/models/organization_in_db.py +460 -0
  325. taskadence/_generated/models/organization_in_db_metadata_type_0.py +53 -0
  326. taskadence/_generated/models/organization_invite_create.py +327 -0
  327. taskadence/_generated/models/organization_invite_in_db.py +463 -0
  328. taskadence/_generated/models/organization_invite_update.py +220 -0
  329. taskadence/_generated/models/organization_member_in_db.py +454 -0
  330. taskadence/_generated/models/organization_member_update.py +126 -0
  331. taskadence/_generated/models/organization_settings_out.py +385 -0
  332. taskadence/_generated/models/organization_settings_update.py +364 -0
  333. taskadence/_generated/models/organization_settings_update_idle_timeout_minutes_type_0.py +25 -0
  334. taskadence/_generated/models/page_connected_app.py +109 -0
  335. taskadence/_generated/models/page_delivery_out.py +109 -0
  336. taskadence/_generated/models/page_designation.py +109 -0
  337. taskadence/_generated/models/page_o_auth_client_out.py +109 -0
  338. taskadence/_generated/models/page_org_card.py +109 -0
  339. taskadence/_generated/models/page_organization_invite_in_db.py +109 -0
  340. taskadence/_generated/models/page_organization_member_in_db.py +109 -0
  341. taskadence/_generated/models/page_project_card.py +109 -0
  342. taskadence/_generated/models/page_project_member_in_db.py +109 -0
  343. taskadence/_generated/models/page_project_resource_in_db.py +109 -0
  344. taskadence/_generated/models/page_section_out.py +109 -0
  345. taskadence/_generated/models/page_service_account_out.py +109 -0
  346. taskadence/_generated/models/page_task_attachment_in_db.py +109 -0
  347. taskadence/_generated/models/page_task_comment_in_db.py +109 -0
  348. taskadence/_generated/models/page_task_history_in_db.py +109 -0
  349. taskadence/_generated/models/page_token_out.py +109 -0
  350. taskadence/_generated/models/page_webhook_event_type.py +109 -0
  351. taskadence/_generated/models/page_webhook_out.py +109 -0
  352. taskadence/_generated/models/pin_list_page.py +108 -0
  353. taskadence/_generated/models/pin_order.py +78 -0
  354. taskadence/_generated/models/pin_out.py +203 -0
  355. taskadence/_generated/models/pin_ref.py +64 -0
  356. taskadence/_generated/models/pin_type_enum.py +16 -0
  357. taskadence/_generated/models/priority_enum.py +19 -0
  358. taskadence/_generated/models/problem.py +167 -0
  359. taskadence/_generated/models/problem_errors_item.py +53 -0
  360. taskadence/_generated/models/problem_mfa.py +109 -0
  361. taskadence/_generated/models/problem_mfa_reason.py +16 -0
  362. taskadence/_generated/models/problem_mfa_required_for.py +16 -0
  363. taskadence/_generated/models/problem_type.py +63 -0
  364. taskadence/_generated/models/project_card.py +574 -0
  365. taskadence/_generated/models/project_card_metadata_type_0.py +53 -0
  366. taskadence/_generated/models/project_create.py +494 -0
  367. taskadence/_generated/models/project_create_metadata_type_0.py +53 -0
  368. taskadence/_generated/models/project_goals_out.py +135 -0
  369. taskadence/_generated/models/project_in_db.py +565 -0
  370. taskadence/_generated/models/project_in_db_metadata_type_0.py +53 -0
  371. taskadence/_generated/models/project_lead_out.py +145 -0
  372. taskadence/_generated/models/project_member_create.py +349 -0
  373. taskadence/_generated/models/project_member_in_db.py +368 -0
  374. taskadence/_generated/models/project_member_update.py +161 -0
  375. taskadence/_generated/models/project_milestones_group.py +143 -0
  376. taskadence/_generated/models/project_milestones_out.py +135 -0
  377. taskadence/_generated/models/project_order.py +63 -0
  378. taskadence/_generated/models/project_resource_create.py +191 -0
  379. taskadence/_generated/models/project_resource_in_db.py +384 -0
  380. taskadence/_generated/models/project_resource_update.py +125 -0
  381. taskadence/_generated/models/project_role_enum.py +17 -0
  382. taskadence/_generated/models/project_stats_in_db.py +153 -0
  383. taskadence/_generated/models/project_status_enum.py +24 -0
  384. taskadence/_generated/models/project_update.py +454 -0
  385. taskadence/_generated/models/project_update_metadata_type_0.py +53 -0
  386. taskadence/_generated/models/project_visibility_enum.py +16 -0
  387. taskadence/_generated/models/projects_reordered.py +88 -0
  388. taskadence/_generated/models/protected_resource_metadata.py +137 -0
  389. taskadence/_generated/models/registration_error_body.py +95 -0
  390. taskadence/_generated/models/registration_error_body_error.py +16 -0
  391. taskadence/_generated/models/release.py +215 -0
  392. taskadence/_generated/models/release_note_item.py +278 -0
  393. taskadence/_generated/models/release_summary.py +97 -0
  394. taskadence/_generated/models/release_type.py +18 -0
  395. taskadence/_generated/models/reply_create.py +60 -0
  396. taskadence/_generated/models/review_member.py +261 -0
  397. taskadence/_generated/models/review_meta.py +70 -0
  398. taskadence/_generated/models/review_project.py +101 -0
  399. taskadence/_generated/models/review_summary.py +158 -0
  400. taskadence/_generated/models/review_token.py +184 -0
  401. taskadence/_generated/models/scope_ref.py +82 -0
  402. taskadence/_generated/models/section_create.py +101 -0
  403. taskadence/_generated/models/section_out.py +225 -0
  404. taskadence/_generated/models/section_reorder.py +72 -0
  405. taskadence/_generated/models/section_scope_enum.py +17 -0
  406. taskadence/_generated/models/section_update.py +85 -0
  407. taskadence/_generated/models/sections_for_scopes.py +133 -0
  408. taskadence/_generated/models/service_account_create.py +75 -0
  409. taskadence/_generated/models/service_account_out.py +209 -0
  410. taskadence/_generated/models/service_account_update.py +52 -0
  411. taskadence/_generated/models/sprint_create.py +156 -0
  412. taskadence/_generated/models/sprint_deleted.py +86 -0
  413. taskadence/_generated/models/sprint_list_page.py +116 -0
  414. taskadence/_generated/models/sprint_out.py +371 -0
  415. taskadence/_generated/models/sprint_update.py +208 -0
  416. taskadence/_generated/models/storage_breakdown.py +104 -0
  417. taskadence/_generated/models/storage_by_kind.py +88 -0
  418. taskadence/_generated/models/storage_day.py +78 -0
  419. taskadence/_generated/models/storage_file.py +171 -0
  420. taskadence/_generated/models/storage_file_kind.py +17 -0
  421. taskadence/_generated/models/storage_project.py +101 -0
  422. taskadence/_generated/models/storage_usage.py +233 -0
  423. taskadence/_generated/models/storage_usage_status.py +19 -0
  424. taskadence/_generated/models/subtask_link.py +52 -0
  425. taskadence/_generated/models/task_attachment_in_db.py +333 -0
  426. taskadence/_generated/models/task_attachment_update.py +127 -0
  427. taskadence/_generated/models/task_card_view.py +1019 -0
  428. taskadence/_generated/models/task_card_view_metadata_type_0_item.py +53 -0
  429. taskadence/_generated/models/task_card_view_type_data_type_0.py +53 -0
  430. taskadence/_generated/models/task_comment_create.py +282 -0
  431. taskadence/_generated/models/task_comment_in_db.py +329 -0
  432. taskadence/_generated/models/task_comment_update.py +85 -0
  433. taskadence/_generated/models/task_create.py +669 -0
  434. taskadence/_generated/models/task_create_metadata_type_0_item.py +53 -0
  435. taskadence/_generated/models/task_create_type_data_type_0.py +53 -0
  436. taskadence/_generated/models/task_history_in_db.py +231 -0
  437. taskadence/_generated/models/task_history_in_db_metadata_type_0_item.py +53 -0
  438. taskadence/_generated/models/task_in_db.py +997 -0
  439. taskadence/_generated/models/task_in_db_metadata_type_0_item.py +53 -0
  440. taskadence/_generated/models/task_in_db_type_data_type_0.py +53 -0
  441. taskadence/_generated/models/task_list_page.py +109 -0
  442. taskadence/_generated/models/task_milestone_set.py +67 -0
  443. taskadence/_generated/models/task_project_set.py +66 -0
  444. taskadence/_generated/models/task_review_decision.py +58 -0
  445. taskadence/_generated/models/task_review_decision_decision.py +16 -0
  446. taskadence/_generated/models/task_section_out.py +118 -0
  447. taskadence/_generated/models/task_section_set.py +105 -0
  448. taskadence/_generated/models/task_sprint_set.py +65 -0
  449. taskadence/_generated/models/task_status_enum.py +21 -0
  450. taskadence/_generated/models/task_type_enum.py +16 -0
  451. taskadence/_generated/models/task_update.py +582 -0
  452. taskadence/_generated/models/task_update_metadata_type_0_item.py +53 -0
  453. taskadence/_generated/models/task_update_type_data_type_0.py +53 -0
  454. taskadence/_generated/models/team_create.py +95 -0
  455. taskadence/_generated/models/team_deleted.py +94 -0
  456. taskadence/_generated/models/team_detail.py +298 -0
  457. taskadence/_generated/models/team_list_page.py +116 -0
  458. taskadence/_generated/models/team_member_create.py +73 -0
  459. taskadence/_generated/models/team_member_designation.py +75 -0
  460. taskadence/_generated/models/team_member_out.py +192 -0
  461. taskadence/_generated/models/team_member_update.py +56 -0
  462. taskadence/_generated/models/team_out.py +270 -0
  463. taskadence/_generated/models/team_role_enum.py +16 -0
  464. taskadence/_generated/models/team_update.py +85 -0
  465. taskadence/_generated/models/token_create.py +190 -0
  466. taskadence/_generated/models/token_create_kind.py +16 -0
  467. taskadence/_generated/models/token_created.py +461 -0
  468. taskadence/_generated/models/token_created_grant_type.py +17 -0
  469. taskadence/_generated/models/token_created_kind.py +16 -0
  470. taskadence/_generated/models/token_created_status.py +17 -0
  471. taskadence/_generated/models/token_out.py +452 -0
  472. taskadence/_generated/models/token_out_grant_type.py +17 -0
  473. taskadence/_generated/models/token_out_kind.py +16 -0
  474. taskadence/_generated/models/token_out_status.py +17 -0
  475. taskadence/_generated/models/token_response.py +113 -0
  476. taskadence/_generated/models/token_update.py +52 -0
  477. taskadence/_generated/models/unattached_token.py +192 -0
  478. taskadence/_generated/models/upload_complete_in.py +65 -0
  479. taskadence/_generated/models/upload_create_in.py +193 -0
  480. taskadence/_generated/models/upload_create_in_kind.py +16 -0
  481. taskadence/_generated/models/upload_create_out.py +116 -0
  482. taskadence/_generated/models/upload_create_out_headers.py +55 -0
  483. taskadence/_generated/models/validation_error.py +134 -0
  484. taskadence/_generated/models/validation_error_context.py +53 -0
  485. taskadence/_generated/models/view_create.py +165 -0
  486. taskadence/_generated/models/view_create_display.py +55 -0
  487. taskadence/_generated/models/view_create_query.py +83 -0
  488. taskadence/_generated/models/view_deleted.py +78 -0
  489. taskadence/_generated/models/view_duplicate.py +102 -0
  490. taskadence/_generated/models/view_list_page.py +108 -0
  491. taskadence/_generated/models/view_out.py +295 -0
  492. taskadence/_generated/models/view_out_display.py +53 -0
  493. taskadence/_generated/models/view_out_query.py +53 -0
  494. taskadence/_generated/models/view_resource_enum.py +16 -0
  495. taskadence/_generated/models/view_scope_enum.py +17 -0
  496. taskadence/_generated/models/view_update.py +168 -0
  497. taskadence/_generated/models/view_update_display_type_0.py +53 -0
  498. taskadence/_generated/models/view_update_query_type_0.py +78 -0
  499. taskadence/_generated/models/visibility_update.py +85 -0
  500. taskadence/_generated/models/webhook_actor.py +100 -0
  501. taskadence/_generated/models/webhook_create.py +113 -0
  502. taskadence/_generated/models/webhook_created.py +438 -0
  503. taskadence/_generated/models/webhook_created_status.py +17 -0
  504. taskadence/_generated/models/webhook_event.py +161 -0
  505. taskadence/_generated/models/webhook_event_data.py +140 -0
  506. taskadence/_generated/models/webhook_event_data_after_type_0.py +53 -0
  507. taskadence/_generated/models/webhook_event_data_before_type_0.py +53 -0
  508. taskadence/_generated/models/webhook_event_type.py +97 -0
  509. taskadence/_generated/models/webhook_out.py +428 -0
  510. taskadence/_generated/models/webhook_out_status.py +17 -0
  511. taskadence/_generated/models/webhook_update.py +184 -0
  512. taskadence/_generated/models/webhook_update_status_type_0.py +16 -0
  513. taskadence/_generated/models/whats_new_response.py +107 -0
  514. taskadence/_generated/models/whats_new_response_summary.py +53 -0
  515. taskadence/_generated/types.py +56 -0
  516. taskadence/_operations.py +1969 -0
  517. taskadence/_uploads.py +527 -0
  518. taskadence/_version.py +3 -0
  519. taskadence/cli/__init__.py +612 -0
  520. taskadence/cli/_config.py +166 -0
  521. taskadence/dataframe.py +68 -0
  522. taskadence/errors.py +350 -0
  523. taskadence/models.py +14 -0
  524. taskadence/pagination.py +137 -0
  525. taskadence/py.typed +0 -0
  526. taskadence/resources.py +6127 -0
  527. taskadence/webhooks.py +149 -0
  528. taskadence-0.1.0.dist-info/METADATA +524 -0
  529. taskadence-0.1.0.dist-info/RECORD +533 -0
  530. taskadence-0.1.0.dist-info/WHEEL +4 -0
  531. taskadence-0.1.0.dist-info/entry_points.txt +3 -0
  532. taskadence-0.1.0.dist-info/licenses/LICENSE +202 -0
  533. taskadence-0.1.0.dist-info/licenses/NOTICE +2 -0
taskadence/__init__.py ADDED
@@ -0,0 +1,100 @@
1
+ """TasKadence for Python.
2
+
3
+ from taskadence import Taskadence
4
+
5
+ tm = Taskadence(token="tkd_live_…") # or set TASKADENCE_TOKEN
6
+ for task in tm.tasks.list(org_id="O123456"):
7
+ print(task.task_id, task.title)
8
+ tm.views.rows("V…").to_dataframe() # pip install "taskadence[pandas]"
9
+
10
+ `tm.<resource>.<verb>(…)` exists for every public operation of the API (`tm.tasks.list`, `tm.projects.read`, …); the
11
+ models are in `taskadence.models`, the exceptions in `taskadence.errors`, webhook verification in `taskadence.webhooks`.
12
+ `0.x` is a pre-release: no compatibility promise until 1.0.
13
+ """
14
+
15
+ from . import errors, models, webhooks
16
+ from ._client import AsyncTaskadence, Taskadence
17
+ from ._core import AUTO, ConfigurationError, FileInput, NotModified, NotModifiedType, Operation
18
+ from ._operations import API_VERSION, DEFAULT_BASE_URL, OPERATIONS
19
+ from ._uploads import UploadProgress
20
+ from ._version import __version__
21
+ from .errors import (
22
+ APIConnectionError,
23
+ APIError,
24
+ APITimeoutError,
25
+ AuthenticationError,
26
+ BadRequestError,
27
+ BlobUploadError,
28
+ ConflictError,
29
+ ForbiddenError,
30
+ IdempotencyKeyInFlightError,
31
+ IdempotencyKeyInvalidError,
32
+ IdempotencyKeyReusedError,
33
+ InsufficientScopeError,
34
+ InternalError,
35
+ InvalidParameterError,
36
+ InvalidValueError,
37
+ NotFoundError,
38
+ PreconditionFailedError,
39
+ RateLimitedError,
40
+ ResponseValidationError,
41
+ TaskadenceError,
42
+ TestTokenReadOnlyError,
43
+ TokenExpiredError,
44
+ TokenInvalidError,
45
+ TokenPolicyError,
46
+ TokenRevokedError,
47
+ UnprocessableEntityError,
48
+ UrlRefusedError,
49
+ ValidationError,
50
+ )
51
+ from .pagination import AsyncPage, Page
52
+
53
+ __all__ = [
54
+ "API_VERSION",
55
+ "AUTO",
56
+ "DEFAULT_BASE_URL",
57
+ "OPERATIONS",
58
+ "APIConnectionError",
59
+ "APIError",
60
+ "APITimeoutError",
61
+ "AsyncPage",
62
+ "AsyncTaskadence",
63
+ "AuthenticationError",
64
+ "BadRequestError",
65
+ "BlobUploadError",
66
+ "ConfigurationError",
67
+ "ConflictError",
68
+ "FileInput",
69
+ "ForbiddenError",
70
+ "IdempotencyKeyInFlightError",
71
+ "IdempotencyKeyInvalidError",
72
+ "IdempotencyKeyReusedError",
73
+ "InsufficientScopeError",
74
+ "InternalError",
75
+ "InvalidParameterError",
76
+ "InvalidValueError",
77
+ "NotFoundError",
78
+ "NotModified",
79
+ "NotModifiedType",
80
+ "Operation",
81
+ "Page",
82
+ "PreconditionFailedError",
83
+ "RateLimitedError",
84
+ "ResponseValidationError",
85
+ "Taskadence",
86
+ "TaskadenceError",
87
+ "TestTokenReadOnlyError",
88
+ "TokenExpiredError",
89
+ "TokenInvalidError",
90
+ "TokenPolicyError",
91
+ "TokenRevokedError",
92
+ "UnprocessableEntityError",
93
+ "UploadProgress",
94
+ "UrlRefusedError",
95
+ "ValidationError",
96
+ "__version__",
97
+ "errors",
98
+ "models",
99
+ "webhooks",
100
+ ]
taskadence/_brand.py ADDED
@@ -0,0 +1,87 @@
1
+ """The product's name and every name derived from it, in ONE place — plus the pre-rename (TasksMate) spellings that
2
+ are still accepted on input. Nothing here is emitted under the old name: the legacy values are read, never sent.
3
+
4
+ - `BRAND_NAME`: the wordmark, what prose, messages and help text call the product (5.8c). Identifiers, package names,
5
+ imports, environment variables and URLs stay `Taskadence` / `taskadence`; `wordmark()` applies it to generated prose.
6
+ - Environment: `TASKADENCE_*` first; a `TASKSMATE_*` variable still works, with a `DeprecationWarning` (`getenv`).
7
+ - Problem types: the API emits `urn:taskadence:problem:…`; `urn:tasksmate:problem:…` (older servers) is read the same.
8
+ - Access tokens: issued as `tkd_live_…` / `tkd_test_…`; `tm_live_…` / `tm_test_…` tokens minted before the rename
9
+ keep working.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import os
15
+ import re
16
+ import sys
17
+ import warnings
18
+ from types import FrameType
19
+
20
+ BRAND_NAME = "TasKadence"
21
+ SLUG = "taskadence"
22
+
23
+ ENV_PREFIX = "TASKADENCE_"
24
+ LEGACY_ENV_PREFIX = "TASKSMATE_" # pre-rename; read with a DeprecationWarning
25
+
26
+ URN_PREFIX = "urn:taskadence:problem:"
27
+ LEGACY_URN_PREFIX = "urn:tasksmate:problem:" # pre-rename servers
28
+ URN_PREFIXES = (URN_PREFIX, LEGACY_URN_PREFIX)
29
+
30
+ TOKEN_PREFIXES = ("tkd_live_", "tkd_test_")
31
+ LEGACY_TOKEN_PREFIXES = ("tm_live_", "tm_test_") # minted before the rename; still valid
32
+ ACCEPTED_TOKEN_PREFIXES = TOKEN_PREFIXES + LEGACY_TOKEN_PREFIXES
33
+
34
+ # The class-style name in running prose: not inside code (`Taskadence(...)`, `AsyncTaskadence`, `TaskadenceError`,
35
+ # `X-Taskadence-Event`, `Taskadence-Version`) and not a path or URL.
36
+ _PROSE_NAME = re.compile(r"(?<![\w`./-])Taskadence(?![\w(`/-])")
37
+
38
+ LEGACY_SLUG = "tasksmate" # the CLI's keyring service and config directory before the rename (read, then migrated)
39
+
40
+
41
+ def getenv(name: str) -> str | None:
42
+ """`TASKADENCE_<name>`, else the deprecated `TASKSMATE_<name>` (with a `DeprecationWarning`), else None.
43
+
44
+ `name` is the full new name (`TASKADENCE_TOKEN`) or its suffix (`TOKEN`). An empty value counts as unset.
45
+ """
46
+ suffix = name.removeprefix(ENV_PREFIX)
47
+ value = os.environ.get(ENV_PREFIX + suffix)
48
+ if value:
49
+ return value
50
+ legacy = os.environ.get(LEGACY_ENV_PREFIX + suffix)
51
+ if legacy:
52
+ warnings.warn(
53
+ f"{LEGACY_ENV_PREFIX}{suffix} is deprecated: {BRAND_NAME} reads {ENV_PREFIX}{suffix}. "
54
+ f"Rename the variable; the old name will stop working in a future release.",
55
+ DeprecationWarning,
56
+ stacklevel=_caller_level(),
57
+ )
58
+ return legacy
59
+ return None
60
+
61
+
62
+ def _caller_level() -> int:
63
+ """The `stacklevel` that points the warning at the first frame outside this package (the user's code)."""
64
+ level = 2
65
+ frame: FrameType | None = sys._getframe(2)
66
+ while frame is not None and str(frame.f_globals.get("__name__", "")).startswith(SLUG):
67
+ level, frame = level + 1, frame.f_back
68
+ return level
69
+
70
+
71
+ def wordmark(text: str) -> str:
72
+ """`text` with the product name in prose spelled as the wordmark; code spans (`…`) are left as they are."""
73
+ parts = text.split("`")
74
+ return "`".join(part if i % 2 else _PROSE_NAME.sub(BRAND_NAME, part) for i, part in enumerate(parts))
75
+
76
+
77
+ def problem_slug(type_: str) -> str | None:
78
+ """`token-expired` for `urn:taskadence:problem:token-expired` (or the legacy `urn:tasksmate:…`); else None."""
79
+ for prefix in URN_PREFIXES:
80
+ if type_.startswith(prefix):
81
+ return type_[len(prefix) :]
82
+ return None
83
+
84
+
85
+ def is_access_token(value: str) -> bool:
86
+ """True for a token-shaped access token: `tkd_live_` / `tkd_test_`, or the pre-rename `tm_live_` / `tm_test_`."""
87
+ return value.startswith(ACCEPTED_TOKEN_PREFIXES)
taskadence/_client.py ADDED
@@ -0,0 +1,144 @@
1
+ """`Taskadence` and `AsyncTaskadence`: configuration, the resource namespaces, lifetime."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from types import TracebackType
7
+
8
+ import httpx
9
+
10
+ from ._core import AsyncCore, SyncCore
11
+ from ._generated import models
12
+ from ._operations import API_VERSION, DEFAULT_BASE_URL
13
+ from .resources import AsyncResources, SyncResources
14
+
15
+ DEFAULT_TIMEOUT = 30.0
16
+ DEFAULT_MAX_RETRIES = 3
17
+ DEFAULT_MAX_RETRY_AFTER = 60.0
18
+
19
+
20
+ class Taskadence(SyncResources):
21
+ """The TasKadence API.
22
+
23
+ from taskadence import Taskadence
24
+
25
+ tm = Taskadence() # token from TASKADENCE_TOKEN
26
+ for task in tm.tasks.list(org_id="O123456", filter={"status": ["in_progress"]}):
27
+ print(task.task_id, task.title)
28
+
29
+ `token`: a TasKadence access token (`tkd_live_…`; a pre-rename `tm_live_…` works too), else `TASKADENCE_TOKEN`.
30
+ `base_url`: else `TASKADENCE_API_URL`, else the spec's first server (`taskadence.DEFAULT_BASE_URL`); a trailing
31
+ `/v1` is accepted. Safe requests are retried `max_retries` times (see `taskadence._core`); a `Retry-After` over
32
+ `max_retry_after` seconds is not waited out.
33
+ `api_version` is sent as `Taskadence-Version` (default: the API date this SDK was generated from).
34
+ """
35
+
36
+ def __init__(
37
+ self,
38
+ token: str | None = None,
39
+ base_url: str | None = None,
40
+ *,
41
+ timeout: float = DEFAULT_TIMEOUT,
42
+ max_retries: int = DEFAULT_MAX_RETRIES,
43
+ api_version: str | None = None,
44
+ max_retry_after: float = DEFAULT_MAX_RETRY_AFTER,
45
+ headers: Mapping[str, str] | None = None,
46
+ http_client: httpx.Client | None = None,
47
+ ) -> None:
48
+ self._core = SyncCore(
49
+ token,
50
+ base_url,
51
+ timeout=timeout,
52
+ max_retries=max_retries,
53
+ api_version=api_version,
54
+ default_base_url=DEFAULT_BASE_URL,
55
+ spec_version=API_VERSION,
56
+ max_retry_after=max_retry_after,
57
+ headers=headers,
58
+ http_client=http_client,
59
+ )
60
+ self._attach(self._core)
61
+
62
+ @property
63
+ def base_url(self) -> str:
64
+ return self._core.base_url
65
+
66
+ @property
67
+ def api_version(self) -> str:
68
+ return self._core.api_version
69
+
70
+ def close(self) -> None:
71
+ """Close the HTTP connection pool (not an `http_client` you passed in)."""
72
+ self._core.close()
73
+
74
+ def __enter__(self) -> Taskadence:
75
+ return self
76
+
77
+ def __exit__(
78
+ self, exc_type: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None
79
+ ) -> None:
80
+ self.close()
81
+
82
+ def __repr__(self) -> str:
83
+ return f"Taskadence(base_url={self.base_url!r})"
84
+
85
+
86
+ class AsyncTaskadence(AsyncResources):
87
+ """`Taskadence` for asyncio: the same namespaces and methods, awaited; lists are `AsyncPage`s (`async for`).
88
+
89
+ async with AsyncTaskadence() as tm:
90
+ me = await tm.me()
91
+ async for task in await tm.tasks.list(org_id=me.organizations[0].org_id):
92
+ ...
93
+ """
94
+
95
+ def __init__(
96
+ self,
97
+ token: str | None = None,
98
+ base_url: str | None = None,
99
+ *,
100
+ timeout: float = DEFAULT_TIMEOUT,
101
+ max_retries: int = DEFAULT_MAX_RETRIES,
102
+ api_version: str | None = None,
103
+ max_retry_after: float = DEFAULT_MAX_RETRY_AFTER,
104
+ headers: Mapping[str, str] | None = None,
105
+ http_client: httpx.AsyncClient | None = None,
106
+ ) -> None:
107
+ self._core = AsyncCore(
108
+ token,
109
+ base_url,
110
+ timeout=timeout,
111
+ max_retries=max_retries,
112
+ api_version=api_version,
113
+ default_base_url=DEFAULT_BASE_URL,
114
+ spec_version=API_VERSION,
115
+ max_retry_after=max_retry_after,
116
+ headers=headers,
117
+ http_client=http_client,
118
+ )
119
+ self._attach(self._core)
120
+
121
+ @property
122
+ def base_url(self) -> str:
123
+ return self._core.base_url
124
+
125
+ @property
126
+ def api_version(self) -> str:
127
+ return self._core.api_version
128
+
129
+ async def close(self) -> None:
130
+ await self._core.aclose()
131
+
132
+ async def __aenter__(self) -> AsyncTaskadence:
133
+ return self
134
+
135
+ async def __aexit__(
136
+ self, exc_type: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None
137
+ ) -> None:
138
+ await self.close()
139
+
140
+ def __repr__(self) -> str:
141
+ return f"AsyncTaskadence(base_url={self.base_url!r})"
142
+
143
+
144
+ __all__ = ["AsyncTaskadence", "Taskadence", "models"]