dart-tools 0.6.1__tar.gz → 0.6.3__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 (200) hide show
  1. {dart_tools-0.6.1/dart_tools.egg-info → dart_tools-0.6.3}/PKG-INFO +1 -1
  2. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/dart.py +51 -30
  3. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/api/transactions/transactions_create.py +12 -11
  4. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/webhook.py +7 -4
  5. {dart_tools-0.6.1 → dart_tools-0.6.3/dart_tools.egg-info}/PKG-INFO +1 -1
  6. {dart_tools-0.6.1 → dart_tools-0.6.3}/pyproject.toml +1 -1
  7. {dart_tools-0.6.1 → dart_tools-0.6.3}/LICENSE +0 -0
  8. {dart_tools-0.6.1 → dart_tools-0.6.3}/README.md +0 -0
  9. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/__init__.py +0 -0
  10. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/exception.py +0 -0
  11. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/__init__.py +0 -0
  12. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/api/__init__.py +0 -0
  13. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/api/transactions/__init__.py +0 -0
  14. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/client.py +0 -0
  15. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/errors.py +0 -0
  16. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/__init__.py +0 -0
  17. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/attachment.py +0 -0
  18. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/attachment_create.py +0 -0
  19. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/attachment_update.py +0 -0
  20. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/bar_chart_adtl.py +0 -0
  21. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/brainstorm.py +0 -0
  22. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/brainstorm_create.py +0 -0
  23. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/brainstorm_state.py +0 -0
  24. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/brainstorm_update.py +0 -0
  25. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/chart.py +0 -0
  26. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/chart_type.py +0 -0
  27. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment.py +0 -0
  28. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment_create.py +0 -0
  29. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment_reaction.py +0 -0
  30. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment_reaction_create.py +0 -0
  31. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment_reaction_update.py +0 -0
  32. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/comment_update.py +0 -0
  33. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dartboard.py +0 -0
  34. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dartboard_create.py +0 -0
  35. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dartboard_kind.py +0 -0
  36. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dartboard_update.py +0 -0
  37. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dartboards_list_kind.py +0 -0
  38. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dashboard.py +0 -0
  39. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dashboard_create.py +0 -0
  40. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/dashboard_update.py +0 -0
  41. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/discord_integration.py +0 -0
  42. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/doc.py +0 -0
  43. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/doc_create.py +0 -0
  44. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/doc_source_type.py +0 -0
  45. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/doc_update.py +0 -0
  46. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/entity_name.py +0 -0
  47. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event.py +0 -0
  48. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event_actor.py +0 -0
  49. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event_create.py +0 -0
  50. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event_kind.py +0 -0
  51. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event_subscription.py +0 -0
  52. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/event_subscription_update.py +0 -0
  53. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_applicability.py +0 -0
  54. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_assignee.py +0 -0
  55. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_connector.py +0 -0
  56. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_group.py +0 -0
  57. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_search.py +0 -0
  58. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/filter_set.py +0 -0
  59. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/folder.py +0 -0
  60. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/folder_create.py +0 -0
  61. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/folder_kind.py +0 -0
  62. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/folder_update.py +0 -0
  63. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/folders_list_kind.py +0 -0
  64. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form.py +0 -0
  65. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form_create.py +0 -0
  66. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form_field.py +0 -0
  67. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form_field_create.py +0 -0
  68. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form_field_update.py +0 -0
  69. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/form_update.py +0 -0
  70. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/github_integration.py +0 -0
  71. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/github_integration_tenant_extension_status.py +0 -0
  72. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/google_data.py +0 -0
  73. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/icon_kind.py +0 -0
  74. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout.py +0 -0
  75. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout_config.py +0 -0
  76. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout_create.py +0 -0
  77. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout_kind.py +0 -0
  78. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout_kind_config_map.py +0 -0
  79. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/layout_update.py +0 -0
  80. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/line_chart_adtl.py +0 -0
  81. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/models_response.py +0 -0
  82. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/notification.py +0 -0
  83. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/notification_update.py +0 -0
  84. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/notion_integration.py +0 -0
  85. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/notion_integration_tenant_extension_status.py +0 -0
  86. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/number_chart_adtl.py +0 -0
  87. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/number_chart_aggregation.py +0 -0
  88. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/operation.py +0 -0
  89. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/operation_kind.py +0 -0
  90. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/operation_model_kind.py +0 -0
  91. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/option.py +0 -0
  92. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/option_create.py +0 -0
  93. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/option_update.py +0 -0
  94. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_attachment_list.py +0 -0
  95. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_comment_list.py +0 -0
  96. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_comment_reaction_list.py +0 -0
  97. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_dartboard_list.py +0 -0
  98. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_doc_list.py +0 -0
  99. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_folder_list.py +0 -0
  100. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_form_field_list.py +0 -0
  101. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_form_list.py +0 -0
  102. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_layout_list.py +0 -0
  103. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_option_list.py +0 -0
  104. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_property_list.py +0 -0
  105. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_relationship_kind_list.py +0 -0
  106. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_relationship_list.py +0 -0
  107. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_space_list.py +0 -0
  108. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_status_list.py +0 -0
  109. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_task_doc_relationship_list.py +0 -0
  110. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_task_kind_list.py +0 -0
  111. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_task_link_list.py +0 -0
  112. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_task_list.py +0 -0
  113. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_tenant_list.py +0 -0
  114. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_user_dartboard_layout_list.py +0 -0
  115. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_user_list.py +0 -0
  116. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/paginated_view_list.py +0 -0
  117. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/pie_chart_adtl.py +0 -0
  118. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/pie_chart_display_metric.py +0 -0
  119. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/priority.py +0 -0
  120. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/properties_list_kind.py +0 -0
  121. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/property_.py +0 -0
  122. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/property_create.py +0 -0
  123. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/property_kind.py +0 -0
  124. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/property_update.py +0 -0
  125. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship.py +0 -0
  126. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship_create.py +0 -0
  127. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship_kind.py +0 -0
  128. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship_kind_create.py +0 -0
  129. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship_kind_kind.py +0 -0
  130. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/relationship_kind_update.py +0 -0
  131. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/report_kind.py +0 -0
  132. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/request_body.py +0 -0
  133. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/response_body.py +0 -0
  134. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/slack_integration.py +0 -0
  135. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/slack_integration_tenant_extension_status.py +0 -0
  136. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/sort.py +0 -0
  137. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/space.py +0 -0
  138. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/space_create.py +0 -0
  139. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/space_kind.py +0 -0
  140. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/space_update.py +0 -0
  141. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/sprint_mode.py +0 -0
  142. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/status.py +0 -0
  143. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/status_create.py +0 -0
  144. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/status_kind.py +0 -0
  145. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/status_update.py +0 -0
  146. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/statuses_list_kind.py +0 -0
  147. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/subscription.py +0 -0
  148. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/subtask_display_mode.py +0 -0
  149. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/summary_statistic_kind.py +0 -0
  150. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/table_chart_adtl.py +0 -0
  151. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task.py +0 -0
  152. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_create.py +0 -0
  153. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_detail_mode.py +0 -0
  154. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_doc_relationship.py +0 -0
  155. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_doc_relationship_create.py +0 -0
  156. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_kind.py +0 -0
  157. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_kind_create.py +0 -0
  158. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_kind_kind.py +0 -0
  159. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_kind_update.py +0 -0
  160. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_link.py +0 -0
  161. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_link_create.py +0 -0
  162. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_link_kind.py +0 -0
  163. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_link_update.py +0 -0
  164. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_notion_document.py +0 -0
  165. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_notion_document_block_children_map_type_0.py +0 -0
  166. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_notion_document_block_map_type_0.py +0 -0
  167. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_notion_document_page_map_type_0.py +0 -0
  168. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_properties.py +0 -0
  169. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_source_type.py +0 -0
  170. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/task_update.py +0 -0
  171. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/tenant.py +0 -0
  172. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/tenant_update.py +0 -0
  173. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/theme.py +0 -0
  174. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/transaction.py +0 -0
  175. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/transaction_kind.py +0 -0
  176. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/transaction_response.py +0 -0
  177. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user.py +0 -0
  178. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_dartboard_layout.py +0 -0
  179. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_dartboard_layout_create.py +0 -0
  180. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_data_entity_retrieve_entity_kind.py +0 -0
  181. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_role.py +0 -0
  182. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_status.py +0 -0
  183. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/user_update.py +0 -0
  184. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/validation_error_response.py +0 -0
  185. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/validation_error_response_items.py +0 -0
  186. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/view.py +0 -0
  187. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/view_create.py +0 -0
  188. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/view_kind.py +0 -0
  189. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/view_update.py +0 -0
  190. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/models/zapier_integration.py +0 -0
  191. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/py.typed +0 -0
  192. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/generated/types.py +0 -0
  193. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart/order_manager.py +0 -0
  194. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/SOURCES.txt +0 -0
  195. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/dependency_links.txt +0 -0
  196. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  197. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/entry_points.txt +0 -0
  198. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/requires.txt +0 -0
  199. {dart_tools-0.6.1 → dart_tools-0.6.3}/dart_tools.egg-info/top_level.txt +0 -0
  200. {dart_tools-0.6.1 → dart_tools-0.6.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dart-tools
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: The Dart CLI and Python Library
5
5
  Author-email: Dart Software Team <software@itsdart.com>
6
6
  License: MIT License
@@ -27,6 +27,7 @@ import platformdirs
27
27
  from .exception import DartException
28
28
  from .generated import Client
29
29
  from .generated.models import (
30
+ Dartboard,
30
31
  DartboardKind,
31
32
  Operation,
32
33
  OperationKind,
@@ -64,20 +65,18 @@ _BEGIN_TASK_CMD = "begintask"
64
65
 
65
66
  _PROFILE_SETTINGS_URL_FRAG = "/?settings=account"
66
67
  _ROOT_API_URL_FRAG = "/api/v0"
67
- _CSRF_URL_FRAG = _ROOT_API_URL_FRAG + "/csrf-token"
68
68
  _USER_STATUS_URL_FRAG = _ROOT_API_URL_FRAG + "/user-status"
69
69
  _USER_DATA_URL_FRAG = _ROOT_API_URL_FRAG + "/user-data?mode=auto"
70
70
  _COPY_BRANCH_URL_FRAG = _ROOT_API_URL_FRAG + "/vcs/copy-branch-link"
71
71
  _REPLICATE_SPACE_URL_FRAG_FMT = _ROOT_API_URL_FRAG + "/spaces/replicate/{duid}"
72
+ _REPLICATE_DARTBOARD_URL_FRAG_FMT = _ROOT_API_URL_FRAG + "/dartboards/replicate/{duid}"
72
73
 
73
74
  _AUTH_TOKEN_ENVVAR_KEY = "DART_TOKEN"
74
75
  _CONFIG_FPATH = platformdirs.user_config_path(_APP, roaming=False, ensure_exists=False)
75
- _CSRF_TOKEN_COOKIE = "csrftoken"
76
76
  _CLIENT_DUID_KEY = "clientDuid"
77
77
  _HOST_KEY = "host"
78
78
  _HOSTS_KEY = "hosts"
79
79
  _AUTH_TOKEN_KEY = "authToken"
80
- _CSRF_TOKEN_KEY = "csrfToken"
81
80
 
82
81
  _DUID_CHARS = string.ascii_lowercase + string.ascii_uppercase + string.digits
83
82
  _NON_ALPHANUM_RE = re.compile(r"[^a-zA-Z0-9-]+")
@@ -112,7 +111,7 @@ def trim_slug_str(s: str, length: int, max_under: int | None = None) -> str:
112
111
  return s[:length]
113
112
 
114
113
 
115
- def slugify_str(s: str, lower: bool = False, trim_kwargs: dict = None) -> str:
114
+ def slugify_str(s: str, lower: bool = False, trim_kwargs: dict | None = None) -> str:
116
115
  lowered = s.lower() if lower else s
117
116
  formatted = _NON_ALPHANUM_RE.sub("-", lowered.replace("'", ""))
118
117
  formatted = _REPEATED_DASH_RE.sub("-", formatted).strip("-")
@@ -131,6 +130,10 @@ def _get_space_url(host: str, duid: str) -> str:
131
130
  return f"{host}/s/{duid}"
132
131
 
133
132
 
133
+ def _get_dartboard_url(host: str, duid: str) -> str:
134
+ return f"{host}/d/{duid}"
135
+
136
+
134
137
  def _get_task_url(host: str, duid: str) -> str:
135
138
  return f"{host}/t/{duid}"
136
139
 
@@ -205,8 +208,6 @@ class _Session:
205
208
  def __init__(self, config=None):
206
209
  self._config = config or _Config()
207
210
  self._session = requests.Session()
208
- if (csrf_token := self._config.get(_CSRF_TOKEN_KEY)) is not None:
209
- self._session.cookies.set(_CSRF_TOKEN_COOKIE, csrf_token)
210
211
 
211
212
  def get_base_url(self):
212
213
  return self._config.host
@@ -220,34 +221,15 @@ class _Session:
220
221
  return result
221
222
  return _AUTH_TOKEN_ENVVAR
222
223
 
223
- def _refresh_csrf(self):
224
- response = self._session.get(self._config.host + _CSRF_URL_FRAG)
225
- response.raise_for_status()
226
- csrf_token = response.cookies.get_dict().get(_CSRF_TOKEN_COOKIE)
227
- self._config.set(_CSRF_TOKEN_KEY, csrf_token)
228
- return csrf_token
229
-
230
- def get_csrf_token(self):
231
- csrf_token = self._config.get(_CSRF_TOKEN_KEY)
232
- if csrf_token is None:
233
- csrf_token = self._refresh_csrf()
234
- return csrf_token
235
-
236
224
  def get_headers(self):
237
225
  result = {
238
226
  "Origin": self._config.host,
239
227
  "client-duid": self.get_client_duid(),
240
- "x-csrftoken": self.get_csrf_token(),
241
228
  }
242
229
  if (auth_token := self.get_auth_token()) is not None:
243
230
  result["Authorization"] = f"Bearer {auth_token}"
244
231
  return result
245
232
 
246
- def get_cookies(self):
247
- return {
248
- _CSRF_TOKEN_COOKIE: self.get_csrf_token(),
249
- }
250
-
251
233
  def get(self, url_frag, *args, **kwargs):
252
234
  kwargs["headers"] = self.get_headers() | kwargs.get("headers", {})
253
235
  return self._session.get(self._config.host + url_frag, *args, **kwargs)
@@ -257,7 +239,6 @@ class _Session:
257
239
  result = self._session.post(self._config.host + url_frag, *args, **kwargs)
258
240
  if result.status_code != 403:
259
241
  return result
260
- self._refresh_csrf()
261
242
  kwargs["headers"] = self.get_headers() | kwargs.get("headers", {})
262
243
  return self._session.post(self._config.host + url_frag, *args, **kwargs)
263
244
 
@@ -267,7 +248,6 @@ class Dart(Client):
267
248
  self._session = session or _Session()
268
249
  super().__init__(
269
250
  base_url=self._session.get_base_url(),
270
- cookies=self._session.get_cookies(),
271
251
  headers=self._session.get_headers(),
272
252
  )
273
253
 
@@ -283,7 +263,6 @@ class Dart(Client):
283
263
  )
284
264
  return transactions_create.sync(
285
265
  client=self,
286
- x_csrftoken=self._session.get_csrf_token(),
287
266
  body=request_body,
288
267
  )
289
268
 
@@ -313,6 +292,10 @@ class UserBundle:
313
292
  def properties(self):
314
293
  return self._raw["properties"]
315
294
 
295
+ @property
296
+ def task_kinds(self):
297
+ return self._raw["taskKinds"]
298
+
316
299
  @property
317
300
  def default_statuses(self):
318
301
  default_status_property_duid = next(
@@ -603,6 +586,7 @@ def create_task(
603
586
  *,
604
587
  should_begin: bool = False,
605
588
  dartboard_title: str | None = None,
589
+ kind_title: str | None = None,
606
590
  status_title: str | None = None,
607
591
  assignee_emails: list[str] | None = None,
608
592
  tag_titles: list[str] | None = None,
@@ -642,6 +626,16 @@ def create_task(
642
626
  first_order = min(orders) if len(orders) > 0 else None
643
627
  order = get_orders_between(None, first_order, 1)[0]
644
628
 
629
+ kinds = user_bundle.task_kinds
630
+ if kind_title is not None:
631
+ kind_title_norm = kind_title.strip().lower()
632
+ kind = next((e for e in kinds if e["title"].lower() == kind_title_norm), None)
633
+ if kind is None:
634
+ _dart_exit(f"No status found with title '{status_title}'.")
635
+ else:
636
+ kind = next(e for e in kinds if e["locked"])
637
+ kind_duid = kind["duid"]
638
+
645
639
  statuses = user_bundle.default_statuses
646
640
  if status_title is not None:
647
641
  status_title_norm = status_title.strip().lower()
@@ -704,6 +698,7 @@ def create_task(
704
698
  drafter_duid=None,
705
699
  dartboard_duid=dartboard_duid,
706
700
  order=order,
701
+ kind_duid=kind_duid,
707
702
  title=title,
708
703
  status_duid=status_duid,
709
704
  assignee_duids=assignee_duids,
@@ -863,11 +858,16 @@ def update_task(
863
858
  return task
864
859
 
865
860
 
866
- def replicate_space(duid: str) -> Space:
861
+ def replicate_space(duid: str, title: str | None = None) -> Space:
867
862
  config = _Config()
868
863
  session = _Session(config)
869
864
 
870
- response = session.post(_REPLICATE_SPACE_URL_FRAG_FMT.format(duid=duid))
865
+ content = {}
866
+ if title is not None:
867
+ content["title"] = title
868
+ response = session.post(
869
+ _REPLICATE_SPACE_URL_FRAG_FMT.format(duid=duid), json=content
870
+ )
871
871
  _check_request_response_and_maybe_exit(response)
872
872
 
873
873
  space = Space.from_dict(response.json()["item"])
@@ -877,6 +877,27 @@ def replicate_space(duid: str) -> Space:
877
877
  return space
878
878
 
879
879
 
880
+ def replicate_dartboard(duid: str, title: str | None = None) -> Dartboard:
881
+ config = _Config()
882
+ session = _Session(config)
883
+
884
+ content = {}
885
+ if title is not None:
886
+ content["title"] = title
887
+ response = session.post(
888
+ _REPLICATE_DARTBOARD_URL_FRAG_FMT.format(duid=duid), json=content
889
+ )
890
+ _check_request_response_and_maybe_exit(response)
891
+
892
+ dartboard = Dartboard.from_dict(response.json()["item"])
893
+
894
+ _log(
895
+ f"Replicated dartboard {dartboard.title} at {_get_dartboard_url(config.host, dartboard.duid)}"
896
+ )
897
+ _log("Done.")
898
+ return dartboard
899
+
900
+
880
901
  def _add_standard_task_arguments(parser: ArgumentParser) -> None:
881
902
  parser.add_argument(
882
903
  "-d", "--dartboard", dest="dartboard_title", help="dartboard title"
@@ -8,16 +8,17 @@ from ...client import AuthenticatedClient, Client
8
8
  from ...models.request_body import RequestBody
9
9
  from ...models.response_body import ResponseBody
10
10
  from ...models.validation_error_response import ValidationErrorResponse
11
- from ...types import Response
11
+ from ...types import UNSET, Response, Unset
12
12
 
13
13
 
14
14
  def _get_kwargs(
15
15
  *,
16
16
  body: RequestBody,
17
- x_csrftoken: str,
17
+ x_csrftoken: Union[Unset, str] = UNSET,
18
18
  ) -> Dict[str, Any]:
19
19
  headers: Dict[str, Any] = {}
20
- headers["x-csrftoken"] = x_csrftoken
20
+ if not isinstance(x_csrftoken, Unset):
21
+ headers["x-csrftoken"] = x_csrftoken
21
22
 
22
23
  _kwargs: Dict[str, Any] = {
23
24
  "method": "post",
@@ -65,11 +66,11 @@ def sync_detailed(
65
66
  *,
66
67
  client: AuthenticatedClient,
67
68
  body: RequestBody,
68
- x_csrftoken: str,
69
+ x_csrftoken: Union[Unset, str] = UNSET,
69
70
  ) -> Response[Union[ResponseBody, ValidationErrorResponse]]:
70
71
  """
71
72
  Args:
72
- x_csrftoken (str):
73
+ x_csrftoken (Union[Unset, str]):
73
74
  body (RequestBody):
74
75
 
75
76
  Raises:
@@ -96,11 +97,11 @@ def sync(
96
97
  *,
97
98
  client: AuthenticatedClient,
98
99
  body: RequestBody,
99
- x_csrftoken: str,
100
+ x_csrftoken: Union[Unset, str] = UNSET,
100
101
  ) -> Optional[Union[ResponseBody, ValidationErrorResponse]]:
101
102
  """
102
103
  Args:
103
- x_csrftoken (str):
104
+ x_csrftoken (Union[Unset, str]):
104
105
  body (RequestBody):
105
106
 
106
107
  Raises:
@@ -122,11 +123,11 @@ async def asyncio_detailed(
122
123
  *,
123
124
  client: AuthenticatedClient,
124
125
  body: RequestBody,
125
- x_csrftoken: str,
126
+ x_csrftoken: Union[Unset, str] = UNSET,
126
127
  ) -> Response[Union[ResponseBody, ValidationErrorResponse]]:
127
128
  """
128
129
  Args:
129
- x_csrftoken (str):
130
+ x_csrftoken (Union[Unset, str]):
130
131
  body (RequestBody):
131
132
 
132
133
  Raises:
@@ -151,11 +152,11 @@ async def asyncio(
151
152
  *,
152
153
  client: AuthenticatedClient,
153
154
  body: RequestBody,
154
- x_csrftoken: str,
155
+ x_csrftoken: Union[Unset, str] = UNSET,
155
156
  ) -> Optional[Union[ResponseBody, ValidationErrorResponse]]:
156
157
  """
157
158
  Args:
158
- x_csrftoken (str):
159
+ x_csrftoken (Union[Unset, str]):
159
160
  body (RequestBody):
160
161
 
161
162
  Raises:
@@ -4,14 +4,17 @@ import os
4
4
 
5
5
 
6
6
  _WEBHOOK_SECRET = os.environ.get("DART_WEBHOOK_SECRET")
7
- if _WEBHOOK_SECRET is not None:
8
- _WEBHOOK_SECRET = _WEBHOOK_SECRET.encode("utf-8")
7
+ _ENCODED_WEBHOOK_SECRET = (
8
+ _WEBHOOK_SECRET.encode() if _WEBHOOK_SECRET is not None else None
9
+ )
9
10
 
10
11
 
11
12
  def is_signature_correct(payload: bytes, signature: str) -> bool:
12
- if _WEBHOOK_SECRET is None:
13
+ if _ENCODED_WEBHOOK_SECRET is None:
13
14
  raise RuntimeError("DART_WEBHOOK_SECRET environment variable is not set")
14
- expected_signature = hmac.new(_WEBHOOK_SECRET, payload, hashlib.sha256).hexdigest()
15
+ expected_signature = hmac.new(
16
+ _ENCODED_WEBHOOK_SECRET, payload, hashlib.sha256
17
+ ).hexdigest()
15
18
  try:
16
19
  return hmac.compare_digest(expected_signature, signature)
17
20
  except TypeError:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dart-tools
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: The Dart CLI and Python Library
5
5
  Author-email: Dart Software Team <software@itsdart.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dart-tools"
3
- version = "0.6.1"
3
+ version = "0.6.3"
4
4
  description = "The Dart CLI and Python Library"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.8"
File without changes
File without changes
File without changes
File without changes
File without changes