dart-tools 0.6.1__tar.gz → 0.6.2__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.
- {dart_tools-0.6.1/dart_tools.egg-info → dart_tools-0.6.2}/PKG-INFO +1 -1
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/dart.py +51 -30
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/api/transactions/transactions_create.py +12 -11
- {dart_tools-0.6.1 → dart_tools-0.6.2/dart_tools.egg-info}/PKG-INFO +1 -1
- {dart_tools-0.6.1 → dart_tools-0.6.2}/pyproject.toml +1 -1
- {dart_tools-0.6.1 → dart_tools-0.6.2}/LICENSE +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/README.md +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/__init__.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/exception.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/__init__.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/api/__init__.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/api/transactions/__init__.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/client.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/errors.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/__init__.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/attachment.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/attachment_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/attachment_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/bar_chart_adtl.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/brainstorm.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/brainstorm_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/brainstorm_state.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/brainstorm_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/chart.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/chart_type.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment_reaction.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment_reaction_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment_reaction_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/comment_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dartboard.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dartboard_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dartboard_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dartboard_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dartboards_list_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dashboard.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dashboard_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/dashboard_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/discord_integration.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/doc.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/doc_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/doc_source_type.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/doc_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/entity_name.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event_actor.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event_subscription.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/event_subscription_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_applicability.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_assignee.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_connector.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_group.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_search.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/filter_set.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/folder.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/folder_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/folder_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/folder_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/folders_list_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form_field.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form_field_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form_field_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/form_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/github_integration.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/github_integration_tenant_extension_status.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/google_data.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/icon_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout_config.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout_kind_config_map.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/layout_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/line_chart_adtl.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/models_response.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/notification.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/notification_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/notion_integration.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/notion_integration_tenant_extension_status.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/number_chart_adtl.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/number_chart_aggregation.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/operation.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/operation_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/operation_model_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/option.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/option_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/option_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_attachment_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_comment_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_comment_reaction_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_dartboard_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_doc_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_folder_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_form_field_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_form_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_layout_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_option_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_property_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_relationship_kind_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_relationship_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_space_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_status_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_task_doc_relationship_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_task_kind_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_task_link_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_task_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_tenant_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_user_dartboard_layout_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_user_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_view_list.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/pie_chart_adtl.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/pie_chart_display_metric.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/priority.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/properties_list_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/property_.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/property_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/property_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/property_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship_kind_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship_kind_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/relationship_kind_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/report_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/request_body.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/response_body.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/slack_integration.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/slack_integration_tenant_extension_status.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/sort.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/space.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/space_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/space_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/space_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/sprint_mode.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/status.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/status_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/status_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/status_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/statuses_list_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/subscription.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/subtask_display_mode.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/summary_statistic_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/table_chart_adtl.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_detail_mode.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_doc_relationship.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_doc_relationship_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_kind_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_kind_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_kind_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_link.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_link_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_link_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_link_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document_block_children_map_type_0.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document_block_map_type_0.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document_page_map_type_0.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_properties.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_source_type.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/tenant.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/tenant_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/theme.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/transaction.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/transaction_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/transaction_response.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_dartboard_layout.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_dartboard_layout_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_data_entity_retrieve_entity_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_role.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_status.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/validation_error_response.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/validation_error_response_items.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/view.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/view_create.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/view_kind.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/view_update.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/zapier_integration.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/py.typed +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/types.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/order_manager.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart/webhook.py +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/SOURCES.txt +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/dependency_links.txt +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/dist/dart-tools-0.3.3.tar.gz +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/entry_points.txt +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/requires.txt +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/dart_tools.egg-info/top_level.txt +0 -0
- {dart_tools-0.6.1 → dart_tools-0.6.2}/setup.cfg +0 -0
|
@@ -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
|
-
|
|
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"
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/api/transactions/transactions_create.py
RENAMED
|
@@ -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
|
-
|
|
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:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_comment_reaction_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_relationship_kind_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_task_doc_relationship_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/paginated_user_dartboard_layout_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document_block_map_type_0.py
RENAMED
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/task_notion_document_page_map_type_0.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/user_data_entity_retrieve_entity_kind.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dart_tools-0.6.1 → dart_tools-0.6.2}/dart/generated/models/validation_error_response_items.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|