dart-tools 0.6.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dart-tools might be problematic. Click here for more details.
- dart/__init__.py +20 -0
- dart/dart.py +1144 -0
- dart/exception.py +6 -0
- dart/generated/__init__.py +8 -0
- dart/generated/api/__init__.py +1 -0
- dart/generated/api/attachments/__init__.py +0 -0
- dart/generated/api/attachments/attachments_list.py +169 -0
- dart/generated/api/comments/__init__.py +0 -0
- dart/generated/api/comments/comments_list.py +278 -0
- dart/generated/api/dartboards/__init__.py +0 -0
- dart/generated/api/dartboards/dartboards_list.py +271 -0
- dart/generated/api/dashboards/__init__.py +0 -0
- dart/generated/api/dashboards/dashboards_list.py +184 -0
- dart/generated/api/docs/__init__.py +0 -0
- dart/generated/api/docs/docs_list.py +372 -0
- dart/generated/api/folders/__init__.py +0 -0
- dart/generated/api/folders/folders_list.py +234 -0
- dart/generated/api/form_fields/__init__.py +0 -0
- dart/generated/api/form_fields/form_fields_list.py +169 -0
- dart/generated/api/forms/__init__.py +0 -0
- dart/generated/api/forms/forms_list.py +169 -0
- dart/generated/api/layouts/__init__.py +0 -0
- dart/generated/api/layouts/layouts_list.py +169 -0
- dart/generated/api/links/__init__.py +0 -0
- dart/generated/api/links/links_list.py +169 -0
- dart/generated/api/options/__init__.py +0 -0
- dart/generated/api/options/options_list.py +229 -0
- dart/generated/api/properties/__init__.py +0 -0
- dart/generated/api/properties/properties_list.py +204 -0
- dart/generated/api/reactions/__init__.py +0 -0
- dart/generated/api/reactions/reactions_list.py +169 -0
- dart/generated/api/relationship_kinds/__init__.py +0 -0
- dart/generated/api/relationship_kinds/relationship_kinds_list.py +169 -0
- dart/generated/api/relationships/__init__.py +0 -0
- dart/generated/api/relationships/relationships_list.py +169 -0
- dart/generated/api/spaces/__init__.py +0 -0
- dart/generated/api/spaces/spaces_list.py +214 -0
- dart/generated/api/statuses/__init__.py +0 -0
- dart/generated/api/statuses/statuses_list.py +249 -0
- dart/generated/api/task_doc_relationships/__init__.py +0 -0
- dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +169 -0
- dart/generated/api/task_kinds/__init__.py +0 -0
- dart/generated/api/task_kinds/task_kinds_list.py +204 -0
- dart/generated/api/tasks/__init__.py +0 -0
- dart/generated/api/tasks/tasks_list.py +446 -0
- dart/generated/api/tenants/__init__.py +0 -0
- dart/generated/api/tenants/tenants_list.py +169 -0
- dart/generated/api/transactions/__init__.py +0 -0
- dart/generated/api/transactions/transactions_create.py +176 -0
- dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
- dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +169 -0
- dart/generated/api/user_data/__init__.py +0 -0
- dart/generated/api/user_data/user_data_entity_retrieve.py +580 -0
- dart/generated/api/users/__init__.py +0 -0
- dart/generated/api/users/users_list.py +214 -0
- dart/generated/api/views/__init__.py +0 -0
- dart/generated/api/views/views_list.py +184 -0
- dart/generated/api/webhooks/__init__.py +0 -0
- dart/generated/api/webhooks/webhooks_list.py +169 -0
- dart/generated/client.py +268 -0
- dart/generated/errors.py +16 -0
- dart/generated/models/__init__.py +373 -0
- dart/generated/models/attachment.py +112 -0
- dart/generated/models/attachment_create.py +121 -0
- dart/generated/models/attachment_update.py +125 -0
- dart/generated/models/bar_chart_adtl.py +72 -0
- dart/generated/models/brainstorm.py +149 -0
- dart/generated/models/brainstorm_create.py +134 -0
- dart/generated/models/brainstorm_state.py +10 -0
- dart/generated/models/brainstorm_update.py +153 -0
- dart/generated/models/burn_up_chart_adtl.py +103 -0
- dart/generated/models/chart.py +208 -0
- dart/generated/models/chart_aggregation.py +10 -0
- dart/generated/models/chart_type.py +14 -0
- dart/generated/models/comment.py +207 -0
- dart/generated/models/comment_create.py +146 -0
- dart/generated/models/comment_reaction.py +84 -0
- dart/generated/models/comment_reaction_create.py +82 -0
- dart/generated/models/comment_reaction_update.py +87 -0
- dart/generated/models/comment_update.py +148 -0
- dart/generated/models/dartboard.py +280 -0
- dart/generated/models/dartboard_create.py +285 -0
- dart/generated/models/dartboard_kind.py +12 -0
- dart/generated/models/dartboard_update.py +287 -0
- dart/generated/models/dartboards_list_kind.py +12 -0
- dart/generated/models/dashboard.py +185 -0
- dart/generated/models/dashboard_create.py +171 -0
- dart/generated/models/dashboard_update.py +173 -0
- dart/generated/models/discord_integration.py +72 -0
- dart/generated/models/doc.py +243 -0
- dart/generated/models/doc_create.py +295 -0
- dart/generated/models/doc_source_type.py +13 -0
- dart/generated/models/doc_update.py +295 -0
- dart/generated/models/docs_list_o_item.py +11 -0
- dart/generated/models/entity_name.py +22 -0
- dart/generated/models/event.py +420 -0
- dart/generated/models/event_actor.py +19 -0
- dart/generated/models/event_create.py +158 -0
- dart/generated/models/event_kind.py +88 -0
- dart/generated/models/event_subscription.py +74 -0
- dart/generated/models/event_subscription_update.py +173 -0
- dart/generated/models/filter_applicability.py +22 -0
- dart/generated/models/filter_assignee.py +116 -0
- dart/generated/models/filter_connector.py +9 -0
- dart/generated/models/filter_group.py +112 -0
- dart/generated/models/filter_search.py +82 -0
- dart/generated/models/filter_set.py +116 -0
- dart/generated/models/folder.py +150 -0
- dart/generated/models/folder_create.py +150 -0
- dart/generated/models/folder_kind.py +10 -0
- dart/generated/models/folder_update.py +152 -0
- dart/generated/models/folders_list_kind.py +10 -0
- dart/generated/models/form.py +147 -0
- dart/generated/models/form_create.py +141 -0
- dart/generated/models/form_field.py +144 -0
- dart/generated/models/form_field_create.py +129 -0
- dart/generated/models/form_field_update.py +132 -0
- dart/generated/models/form_update.py +142 -0
- dart/generated/models/github_integration.py +163 -0
- dart/generated/models/github_integration_tenant_extension_status.py +11 -0
- dart/generated/models/google_data.py +94 -0
- dart/generated/models/icon_kind.py +10 -0
- dart/generated/models/layout.py +167 -0
- dart/generated/models/layout_config.py +70 -0
- dart/generated/models/layout_create.py +130 -0
- dart/generated/models/layout_kind.py +11 -0
- dart/generated/models/layout_kind_config_map.py +56 -0
- dart/generated/models/layout_update.py +130 -0
- dart/generated/models/line_chart_adtl.py +72 -0
- dart/generated/models/models_response.py +671 -0
- dart/generated/models/notification.py +120 -0
- dart/generated/models/notification_update.py +100 -0
- dart/generated/models/notion_integration.py +90 -0
- dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
- dart/generated/models/number_chart_adtl.py +77 -0
- dart/generated/models/operation.py +874 -0
- dart/generated/models/operation_kind.py +12 -0
- dart/generated/models/operation_model_kind.py +36 -0
- dart/generated/models/option.py +118 -0
- dart/generated/models/option_create.py +105 -0
- dart/generated/models/option_update.py +107 -0
- dart/generated/models/paginated_attachment_list.py +122 -0
- dart/generated/models/paginated_comment_list.py +122 -0
- dart/generated/models/paginated_comment_reaction_list.py +122 -0
- dart/generated/models/paginated_dartboard_list.py +122 -0
- dart/generated/models/paginated_dashboard_list.py +122 -0
- dart/generated/models/paginated_doc_list.py +122 -0
- dart/generated/models/paginated_folder_list.py +122 -0
- dart/generated/models/paginated_form_field_list.py +122 -0
- dart/generated/models/paginated_form_list.py +122 -0
- dart/generated/models/paginated_layout_list.py +122 -0
- dart/generated/models/paginated_option_list.py +122 -0
- dart/generated/models/paginated_property_list.py +122 -0
- dart/generated/models/paginated_relationship_kind_list.py +122 -0
- dart/generated/models/paginated_relationship_list.py +122 -0
- dart/generated/models/paginated_space_list.py +122 -0
- dart/generated/models/paginated_status_list.py +122 -0
- dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
- dart/generated/models/paginated_task_kind_list.py +122 -0
- dart/generated/models/paginated_task_link_list.py +122 -0
- dart/generated/models/paginated_task_list.py +122 -0
- dart/generated/models/paginated_tenant_list.py +122 -0
- dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
- dart/generated/models/paginated_user_list.py +122 -0
- dart/generated/models/paginated_view_list.py +122 -0
- dart/generated/models/paginated_webhook_list.py +122 -0
- dart/generated/models/pie_chart_adtl.py +69 -0
- dart/generated/models/pie_chart_display_metric.py +9 -0
- dart/generated/models/priority.py +11 -0
- dart/generated/models/properties_list_kind.py +32 -0
- dart/generated/models/property_.py +153 -0
- dart/generated/models/property_create.py +137 -0
- dart/generated/models/property_kind.py +32 -0
- dart/generated/models/property_update.py +146 -0
- dart/generated/models/relationship.py +74 -0
- dart/generated/models/relationship_create.py +93 -0
- dart/generated/models/relationship_kind.py +123 -0
- dart/generated/models/relationship_kind_create.py +117 -0
- dart/generated/models/relationship_kind_kind.py +12 -0
- dart/generated/models/relationship_kind_update.py +119 -0
- dart/generated/models/report_kind.py +9 -0
- dart/generated/models/request_body.py +80 -0
- dart/generated/models/response_body.py +72 -0
- dart/generated/models/saml_config.py +77 -0
- dart/generated/models/saml_config_tenant_extension_status.py +9 -0
- dart/generated/models/slack_integration.py +90 -0
- dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
- dart/generated/models/sort.py +66 -0
- dart/generated/models/space.py +325 -0
- dart/generated/models/space_create.py +360 -0
- dart/generated/models/space_kind.py +10 -0
- dart/generated/models/space_update.py +361 -0
- dart/generated/models/sprint_mode.py +9 -0
- dart/generated/models/status.py +141 -0
- dart/generated/models/status_create.py +125 -0
- dart/generated/models/status_kind.py +12 -0
- dart/generated/models/status_update.py +135 -0
- dart/generated/models/statuses_list_kind.py +12 -0
- dart/generated/models/subscription.py +9 -0
- dart/generated/models/subtask_display_mode.py +10 -0
- dart/generated/models/summary_statistic_kind.py +14 -0
- dart/generated/models/table_chart_adtl.py +98 -0
- dart/generated/models/task.py +531 -0
- dart/generated/models/task_create.py +585 -0
- dart/generated/models/task_detail_mode.py +10 -0
- dart/generated/models/task_doc_relationship.py +96 -0
- dart/generated/models/task_doc_relationship_create.py +74 -0
- dart/generated/models/task_kind.py +149 -0
- dart/generated/models/task_kind_create.py +144 -0
- dart/generated/models/task_kind_kind.py +9 -0
- dart/generated/models/task_kind_update.py +153 -0
- dart/generated/models/task_kinds_list_kind.py +9 -0
- dart/generated/models/task_link.py +131 -0
- dart/generated/models/task_link_create.py +152 -0
- dart/generated/models/task_link_kind.py +19 -0
- dart/generated/models/task_link_update.py +155 -0
- dart/generated/models/task_notion_document.py +196 -0
- dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
- dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
- dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
- dart/generated/models/task_properties.py +43 -0
- dart/generated/models/task_source_type.py +31 -0
- dart/generated/models/task_update.py +585 -0
- dart/generated/models/tenant.py +378 -0
- dart/generated/models/tenant_update.py +157 -0
- dart/generated/models/theme.py +10 -0
- dart/generated/models/transaction.py +156 -0
- dart/generated/models/transaction_kind.py +74 -0
- dart/generated/models/transaction_response.py +96 -0
- dart/generated/models/user.py +245 -0
- dart/generated/models/user_dartboard_layout.py +66 -0
- dart/generated/models/user_dartboard_layout_create.py +74 -0
- dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
- dart/generated/models/user_role.py +12 -0
- dart/generated/models/user_status.py +12 -0
- dart/generated/models/user_update.py +210 -0
- dart/generated/models/validation_error_response.py +64 -0
- dart/generated/models/validation_error_response_items.py +43 -0
- dart/generated/models/view.py +215 -0
- dart/generated/models/view_create.py +213 -0
- dart/generated/models/view_kind.py +11 -0
- dart/generated/models/view_update.py +215 -0
- dart/generated/models/webhook.py +96 -0
- dart/generated/models/webhook_create.py +77 -0
- dart/generated/models/webhook_update.py +78 -0
- dart/generated/models/zapier_integration.py +66 -0
- dart/generated/py.typed +1 -0
- dart/generated/types.py +45 -0
- dart/order_manager.py +62 -0
- dart/webhook.py +21 -0
- dart_tools-0.6.11.dist-info/LICENSE +21 -0
- dart_tools-0.6.11.dist-info/METADATA +221 -0
- dart_tools-0.6.11.dist-info/RECORD +257 -0
- dart_tools-0.6.11.dist-info/WHEEL +5 -0
- dart_tools-0.6.11.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
- dart_tools-0.6.11.dist-info/entry_points.txt +2 -0
- dart_tools-0.6.11.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from typing import Any, Dict, List, Type, TypeVar, Union, cast
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
from dateutil.parser import isoparse
|
|
7
|
+
|
|
8
|
+
from ..models.brainstorm_state import BrainstormState
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="BrainstormUpdate")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class BrainstormUpdate:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
duid (str):
|
|
19
|
+
dartboard_duid (Union[Unset, str]):
|
|
20
|
+
subject (Union[Unset, str]):
|
|
21
|
+
ai (Union[Unset, bool]):
|
|
22
|
+
total_session_ms (Union[Unset, int]):
|
|
23
|
+
started_at (Union[Unset, datetime.datetime]):
|
|
24
|
+
state (Union[Unset, BrainstormState]): * `Running` - RUNNING
|
|
25
|
+
* `Paused` - PAUSED
|
|
26
|
+
* `Stopped` - STOPPED
|
|
27
|
+
after_start_ms (Union[Unset, int]):
|
|
28
|
+
created_tasks_duids (Union[Unset, List[str]]):
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
duid: str
|
|
32
|
+
dartboard_duid: Union[Unset, str] = UNSET
|
|
33
|
+
subject: Union[Unset, str] = UNSET
|
|
34
|
+
ai: Union[Unset, bool] = UNSET
|
|
35
|
+
total_session_ms: Union[Unset, int] = UNSET
|
|
36
|
+
started_at: Union[Unset, datetime.datetime] = UNSET
|
|
37
|
+
state: Union[Unset, BrainstormState] = UNSET
|
|
38
|
+
after_start_ms: Union[Unset, int] = UNSET
|
|
39
|
+
created_tasks_duids: Union[Unset, List[str]] = UNSET
|
|
40
|
+
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
41
|
+
|
|
42
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
43
|
+
duid = self.duid
|
|
44
|
+
|
|
45
|
+
dartboard_duid = self.dartboard_duid
|
|
46
|
+
|
|
47
|
+
subject = self.subject
|
|
48
|
+
|
|
49
|
+
ai = self.ai
|
|
50
|
+
|
|
51
|
+
total_session_ms = self.total_session_ms
|
|
52
|
+
|
|
53
|
+
started_at: Union[Unset, str] = UNSET
|
|
54
|
+
if not isinstance(self.started_at, Unset):
|
|
55
|
+
started_at = self.started_at.isoformat()
|
|
56
|
+
|
|
57
|
+
state: Union[Unset, str] = UNSET
|
|
58
|
+
if not isinstance(self.state, Unset):
|
|
59
|
+
state = self.state.value
|
|
60
|
+
|
|
61
|
+
after_start_ms = self.after_start_ms
|
|
62
|
+
|
|
63
|
+
created_tasks_duids: Union[Unset, List[str]] = UNSET
|
|
64
|
+
if not isinstance(self.created_tasks_duids, Unset):
|
|
65
|
+
created_tasks_duids = self.created_tasks_duids
|
|
66
|
+
|
|
67
|
+
field_dict: Dict[str, Any] = {}
|
|
68
|
+
field_dict.update(self.additional_properties)
|
|
69
|
+
field_dict.update(
|
|
70
|
+
{
|
|
71
|
+
"duid": duid,
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
if dartboard_duid is not UNSET:
|
|
75
|
+
field_dict["dartboardDuid"] = dartboard_duid
|
|
76
|
+
if subject is not UNSET:
|
|
77
|
+
field_dict["subject"] = subject
|
|
78
|
+
if ai is not UNSET:
|
|
79
|
+
field_dict["ai"] = ai
|
|
80
|
+
if total_session_ms is not UNSET:
|
|
81
|
+
field_dict["totalSessionMs"] = total_session_ms
|
|
82
|
+
if started_at is not UNSET:
|
|
83
|
+
field_dict["startedAt"] = started_at
|
|
84
|
+
if state is not UNSET:
|
|
85
|
+
field_dict["state"] = state
|
|
86
|
+
if after_start_ms is not UNSET:
|
|
87
|
+
field_dict["afterStartMs"] = after_start_ms
|
|
88
|
+
if created_tasks_duids is not UNSET:
|
|
89
|
+
field_dict["createdTasksDuids"] = created_tasks_duids
|
|
90
|
+
|
|
91
|
+
return field_dict
|
|
92
|
+
|
|
93
|
+
@classmethod
|
|
94
|
+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
|
|
95
|
+
d = src_dict.copy()
|
|
96
|
+
duid = d.pop("duid")
|
|
97
|
+
|
|
98
|
+
dartboard_duid = d.pop("dartboardDuid", UNSET)
|
|
99
|
+
|
|
100
|
+
subject = d.pop("subject", UNSET)
|
|
101
|
+
|
|
102
|
+
ai = d.pop("ai", UNSET)
|
|
103
|
+
|
|
104
|
+
total_session_ms = d.pop("totalSessionMs", UNSET)
|
|
105
|
+
|
|
106
|
+
_started_at = d.pop("startedAt", UNSET)
|
|
107
|
+
started_at: Union[Unset, datetime.datetime]
|
|
108
|
+
if isinstance(_started_at, Unset):
|
|
109
|
+
started_at = UNSET
|
|
110
|
+
else:
|
|
111
|
+
started_at = isoparse(_started_at)
|
|
112
|
+
|
|
113
|
+
_state = d.pop("state", UNSET)
|
|
114
|
+
state: Union[Unset, BrainstormState]
|
|
115
|
+
if isinstance(_state, Unset):
|
|
116
|
+
state = UNSET
|
|
117
|
+
else:
|
|
118
|
+
state = BrainstormState(_state)
|
|
119
|
+
|
|
120
|
+
after_start_ms = d.pop("afterStartMs", UNSET)
|
|
121
|
+
|
|
122
|
+
created_tasks_duids = cast(List[str], d.pop("createdTasksDuids", UNSET))
|
|
123
|
+
|
|
124
|
+
brainstorm_update = cls(
|
|
125
|
+
duid=duid,
|
|
126
|
+
dartboard_duid=dartboard_duid,
|
|
127
|
+
subject=subject,
|
|
128
|
+
ai=ai,
|
|
129
|
+
total_session_ms=total_session_ms,
|
|
130
|
+
started_at=started_at,
|
|
131
|
+
state=state,
|
|
132
|
+
after_start_ms=after_start_ms,
|
|
133
|
+
created_tasks_duids=created_tasks_duids,
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
brainstorm_update.additional_properties = d
|
|
137
|
+
return brainstorm_update
|
|
138
|
+
|
|
139
|
+
@property
|
|
140
|
+
def additional_keys(self) -> List[str]:
|
|
141
|
+
return list(self.additional_properties.keys())
|
|
142
|
+
|
|
143
|
+
def __getitem__(self, key: str) -> Any:
|
|
144
|
+
return self.additional_properties[key]
|
|
145
|
+
|
|
146
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
147
|
+
self.additional_properties[key] = value
|
|
148
|
+
|
|
149
|
+
def __delitem__(self, key: str) -> None:
|
|
150
|
+
del self.additional_properties[key]
|
|
151
|
+
|
|
152
|
+
def __contains__(self, key: str) -> bool:
|
|
153
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from typing import Any, Dict, List, Type, TypeVar, Union, cast
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
from dateutil.parser import isoparse
|
|
7
|
+
|
|
8
|
+
T = TypeVar("T", bound="BurnUpChartAdtl")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@_attrs_define
|
|
12
|
+
class BurnUpChartAdtl:
|
|
13
|
+
"""
|
|
14
|
+
Attributes:
|
|
15
|
+
start_date (Union[None, datetime.date]):
|
|
16
|
+
end_date (Union[None, datetime.date]):
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
start_date: Union[None, datetime.date]
|
|
20
|
+
end_date: Union[None, datetime.date]
|
|
21
|
+
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
22
|
+
|
|
23
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
24
|
+
start_date: Union[None, str]
|
|
25
|
+
if isinstance(self.start_date, datetime.date):
|
|
26
|
+
start_date = self.start_date.isoformat()
|
|
27
|
+
else:
|
|
28
|
+
start_date = self.start_date
|
|
29
|
+
|
|
30
|
+
end_date: Union[None, str]
|
|
31
|
+
if isinstance(self.end_date, datetime.date):
|
|
32
|
+
end_date = self.end_date.isoformat()
|
|
33
|
+
else:
|
|
34
|
+
end_date = self.end_date
|
|
35
|
+
|
|
36
|
+
field_dict: Dict[str, Any] = {}
|
|
37
|
+
field_dict.update(self.additional_properties)
|
|
38
|
+
field_dict.update(
|
|
39
|
+
{
|
|
40
|
+
"startDate": start_date,
|
|
41
|
+
"endDate": end_date,
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
return field_dict
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
|
|
49
|
+
d = src_dict.copy()
|
|
50
|
+
|
|
51
|
+
def _parse_start_date(data: object) -> Union[None, datetime.date]:
|
|
52
|
+
if data is None:
|
|
53
|
+
return data
|
|
54
|
+
try:
|
|
55
|
+
if not isinstance(data, str):
|
|
56
|
+
raise TypeError()
|
|
57
|
+
start_date_type_0 = isoparse(data).date()
|
|
58
|
+
|
|
59
|
+
return start_date_type_0
|
|
60
|
+
except: # noqa: E722
|
|
61
|
+
pass
|
|
62
|
+
return cast(Union[None, datetime.date], data)
|
|
63
|
+
|
|
64
|
+
start_date = _parse_start_date(d.pop("startDate"))
|
|
65
|
+
|
|
66
|
+
def _parse_end_date(data: object) -> Union[None, datetime.date]:
|
|
67
|
+
if data is None:
|
|
68
|
+
return data
|
|
69
|
+
try:
|
|
70
|
+
if not isinstance(data, str):
|
|
71
|
+
raise TypeError()
|
|
72
|
+
end_date_type_0 = isoparse(data).date()
|
|
73
|
+
|
|
74
|
+
return end_date_type_0
|
|
75
|
+
except: # noqa: E722
|
|
76
|
+
pass
|
|
77
|
+
return cast(Union[None, datetime.date], data)
|
|
78
|
+
|
|
79
|
+
end_date = _parse_end_date(d.pop("endDate"))
|
|
80
|
+
|
|
81
|
+
burn_up_chart_adtl = cls(
|
|
82
|
+
start_date=start_date,
|
|
83
|
+
end_date=end_date,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
burn_up_chart_adtl.additional_properties = d
|
|
87
|
+
return burn_up_chart_adtl
|
|
88
|
+
|
|
89
|
+
@property
|
|
90
|
+
def additional_keys(self) -> List[str]:
|
|
91
|
+
return list(self.additional_properties.keys())
|
|
92
|
+
|
|
93
|
+
def __getitem__(self, key: str) -> Any:
|
|
94
|
+
return self.additional_properties[key]
|
|
95
|
+
|
|
96
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
97
|
+
self.additional_properties[key] = value
|
|
98
|
+
|
|
99
|
+
def __delitem__(self, key: str) -> None:
|
|
100
|
+
del self.additional_properties[key]
|
|
101
|
+
|
|
102
|
+
def __contains__(self, key: str) -> bool:
|
|
103
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
|
|
2
|
+
|
|
3
|
+
from attrs import define as _attrs_define
|
|
4
|
+
from attrs import field as _attrs_field
|
|
5
|
+
|
|
6
|
+
from ..models.chart_type import ChartType
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from ..models.bar_chart_adtl import BarChartAdtl
|
|
10
|
+
from ..models.burn_up_chart_adtl import BurnUpChartAdtl
|
|
11
|
+
from ..models.line_chart_adtl import LineChartAdtl
|
|
12
|
+
from ..models.number_chart_adtl import NumberChartAdtl
|
|
13
|
+
from ..models.pie_chart_adtl import PieChartAdtl
|
|
14
|
+
from ..models.table_chart_adtl import TableChartAdtl
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
T = TypeVar("T", bound="Chart")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@_attrs_define
|
|
21
|
+
class Chart:
|
|
22
|
+
"""
|
|
23
|
+
Attributes:
|
|
24
|
+
duid (str):
|
|
25
|
+
type (ChartType): * `bar` - BAR
|
|
26
|
+
* `burn-up` - BURN_UP
|
|
27
|
+
* `line` - LINE
|
|
28
|
+
* `number` - NUMBER
|
|
29
|
+
* `pie` - PIE
|
|
30
|
+
* `table` - TABLE
|
|
31
|
+
* `text` - TEXT_BLOCK
|
|
32
|
+
title (str):
|
|
33
|
+
x (int):
|
|
34
|
+
y (int):
|
|
35
|
+
width (int):
|
|
36
|
+
height (int):
|
|
37
|
+
adtl (Union['BarChartAdtl', 'BurnUpChartAdtl', 'LineChartAdtl', 'NumberChartAdtl', 'PieChartAdtl',
|
|
38
|
+
'TableChartAdtl']):
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
duid: str
|
|
42
|
+
type: ChartType
|
|
43
|
+
title: str
|
|
44
|
+
x: int
|
|
45
|
+
y: int
|
|
46
|
+
width: int
|
|
47
|
+
height: int
|
|
48
|
+
adtl: Union["BarChartAdtl", "BurnUpChartAdtl", "LineChartAdtl", "NumberChartAdtl", "PieChartAdtl", "TableChartAdtl"]
|
|
49
|
+
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
50
|
+
|
|
51
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
52
|
+
from ..models.bar_chart_adtl import BarChartAdtl
|
|
53
|
+
from ..models.burn_up_chart_adtl import BurnUpChartAdtl
|
|
54
|
+
from ..models.line_chart_adtl import LineChartAdtl
|
|
55
|
+
from ..models.number_chart_adtl import NumberChartAdtl
|
|
56
|
+
from ..models.pie_chart_adtl import PieChartAdtl
|
|
57
|
+
|
|
58
|
+
duid = self.duid
|
|
59
|
+
|
|
60
|
+
type = self.type.value
|
|
61
|
+
|
|
62
|
+
title = self.title
|
|
63
|
+
|
|
64
|
+
x = self.x
|
|
65
|
+
|
|
66
|
+
y = self.y
|
|
67
|
+
|
|
68
|
+
width = self.width
|
|
69
|
+
|
|
70
|
+
height = self.height
|
|
71
|
+
|
|
72
|
+
adtl: Dict[str, Any]
|
|
73
|
+
if isinstance(self.adtl, BarChartAdtl):
|
|
74
|
+
adtl = self.adtl.to_dict()
|
|
75
|
+
elif isinstance(self.adtl, BurnUpChartAdtl):
|
|
76
|
+
adtl = self.adtl.to_dict()
|
|
77
|
+
elif isinstance(self.adtl, LineChartAdtl):
|
|
78
|
+
adtl = self.adtl.to_dict()
|
|
79
|
+
elif isinstance(self.adtl, NumberChartAdtl):
|
|
80
|
+
adtl = self.adtl.to_dict()
|
|
81
|
+
elif isinstance(self.adtl, PieChartAdtl):
|
|
82
|
+
adtl = self.adtl.to_dict()
|
|
83
|
+
else:
|
|
84
|
+
adtl = self.adtl.to_dict()
|
|
85
|
+
|
|
86
|
+
field_dict: Dict[str, Any] = {}
|
|
87
|
+
field_dict.update(self.additional_properties)
|
|
88
|
+
field_dict.update(
|
|
89
|
+
{
|
|
90
|
+
"duid": duid,
|
|
91
|
+
"type": type,
|
|
92
|
+
"title": title,
|
|
93
|
+
"x": x,
|
|
94
|
+
"y": y,
|
|
95
|
+
"width": width,
|
|
96
|
+
"height": height,
|
|
97
|
+
"adtl": adtl,
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
return field_dict
|
|
102
|
+
|
|
103
|
+
@classmethod
|
|
104
|
+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
|
|
105
|
+
from ..models.bar_chart_adtl import BarChartAdtl
|
|
106
|
+
from ..models.burn_up_chart_adtl import BurnUpChartAdtl
|
|
107
|
+
from ..models.line_chart_adtl import LineChartAdtl
|
|
108
|
+
from ..models.number_chart_adtl import NumberChartAdtl
|
|
109
|
+
from ..models.pie_chart_adtl import PieChartAdtl
|
|
110
|
+
from ..models.table_chart_adtl import TableChartAdtl
|
|
111
|
+
|
|
112
|
+
d = src_dict.copy()
|
|
113
|
+
duid = d.pop("duid")
|
|
114
|
+
|
|
115
|
+
type = ChartType(d.pop("type"))
|
|
116
|
+
|
|
117
|
+
title = d.pop("title")
|
|
118
|
+
|
|
119
|
+
x = d.pop("x")
|
|
120
|
+
|
|
121
|
+
y = d.pop("y")
|
|
122
|
+
|
|
123
|
+
width = d.pop("width")
|
|
124
|
+
|
|
125
|
+
height = d.pop("height")
|
|
126
|
+
|
|
127
|
+
def _parse_adtl(
|
|
128
|
+
data: object,
|
|
129
|
+
) -> Union[
|
|
130
|
+
"BarChartAdtl", "BurnUpChartAdtl", "LineChartAdtl", "NumberChartAdtl", "PieChartAdtl", "TableChartAdtl"
|
|
131
|
+
]:
|
|
132
|
+
try:
|
|
133
|
+
if not isinstance(data, dict):
|
|
134
|
+
raise TypeError()
|
|
135
|
+
componentsschemas_chart_adtl_type_0 = BarChartAdtl.from_dict(data)
|
|
136
|
+
|
|
137
|
+
return componentsschemas_chart_adtl_type_0
|
|
138
|
+
except: # noqa: E722
|
|
139
|
+
pass
|
|
140
|
+
try:
|
|
141
|
+
if not isinstance(data, dict):
|
|
142
|
+
raise TypeError()
|
|
143
|
+
componentsschemas_chart_adtl_type_1 = BurnUpChartAdtl.from_dict(data)
|
|
144
|
+
|
|
145
|
+
return componentsschemas_chart_adtl_type_1
|
|
146
|
+
except: # noqa: E722
|
|
147
|
+
pass
|
|
148
|
+
try:
|
|
149
|
+
if not isinstance(data, dict):
|
|
150
|
+
raise TypeError()
|
|
151
|
+
componentsschemas_chart_adtl_type_2 = LineChartAdtl.from_dict(data)
|
|
152
|
+
|
|
153
|
+
return componentsschemas_chart_adtl_type_2
|
|
154
|
+
except: # noqa: E722
|
|
155
|
+
pass
|
|
156
|
+
try:
|
|
157
|
+
if not isinstance(data, dict):
|
|
158
|
+
raise TypeError()
|
|
159
|
+
componentsschemas_chart_adtl_type_3 = NumberChartAdtl.from_dict(data)
|
|
160
|
+
|
|
161
|
+
return componentsschemas_chart_adtl_type_3
|
|
162
|
+
except: # noqa: E722
|
|
163
|
+
pass
|
|
164
|
+
try:
|
|
165
|
+
if not isinstance(data, dict):
|
|
166
|
+
raise TypeError()
|
|
167
|
+
componentsschemas_chart_adtl_type_4 = PieChartAdtl.from_dict(data)
|
|
168
|
+
|
|
169
|
+
return componentsschemas_chart_adtl_type_4
|
|
170
|
+
except: # noqa: E722
|
|
171
|
+
pass
|
|
172
|
+
if not isinstance(data, dict):
|
|
173
|
+
raise TypeError()
|
|
174
|
+
componentsschemas_chart_adtl_type_5 = TableChartAdtl.from_dict(data)
|
|
175
|
+
|
|
176
|
+
return componentsschemas_chart_adtl_type_5
|
|
177
|
+
|
|
178
|
+
adtl = _parse_adtl(d.pop("adtl"))
|
|
179
|
+
|
|
180
|
+
chart = cls(
|
|
181
|
+
duid=duid,
|
|
182
|
+
type=type,
|
|
183
|
+
title=title,
|
|
184
|
+
x=x,
|
|
185
|
+
y=y,
|
|
186
|
+
width=width,
|
|
187
|
+
height=height,
|
|
188
|
+
adtl=adtl,
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
chart.additional_properties = d
|
|
192
|
+
return chart
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
def additional_keys(self) -> List[str]:
|
|
196
|
+
return list(self.additional_properties.keys())
|
|
197
|
+
|
|
198
|
+
def __getitem__(self, key: str) -> Any:
|
|
199
|
+
return self.additional_properties[key]
|
|
200
|
+
|
|
201
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
202
|
+
self.additional_properties[key] = value
|
|
203
|
+
|
|
204
|
+
def __delitem__(self, key: str) -> None:
|
|
205
|
+
del self.additional_properties[key]
|
|
206
|
+
|
|
207
|
+
def __contains__(self, key: str) -> bool:
|
|
208
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
from dateutil.parser import isoparse
|
|
7
|
+
|
|
8
|
+
from ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..models.comment_reaction import CommentReaction
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="Comment")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class Comment:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
duid (str):
|
|
22
|
+
created_at (datetime.datetime):
|
|
23
|
+
updated_at (datetime.datetime):
|
|
24
|
+
task_duid (str):
|
|
25
|
+
root_duid (Union[None, str]):
|
|
26
|
+
authored_by_ai (bool):
|
|
27
|
+
author_duid (str):
|
|
28
|
+
text (Any):
|
|
29
|
+
published_at (Union[None, datetime.datetime]):
|
|
30
|
+
reactions (List['CommentReaction']):
|
|
31
|
+
is_draft (bool):
|
|
32
|
+
edited (bool):
|
|
33
|
+
updated_by_client_duid (Union[None, Unset, str]):
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
duid: str
|
|
37
|
+
created_at: datetime.datetime
|
|
38
|
+
updated_at: datetime.datetime
|
|
39
|
+
task_duid: str
|
|
40
|
+
root_duid: Union[None, str]
|
|
41
|
+
authored_by_ai: bool
|
|
42
|
+
author_duid: str
|
|
43
|
+
text: Any
|
|
44
|
+
published_at: Union[None, datetime.datetime]
|
|
45
|
+
reactions: List["CommentReaction"]
|
|
46
|
+
is_draft: bool
|
|
47
|
+
edited: bool
|
|
48
|
+
updated_by_client_duid: Union[None, Unset, str] = UNSET
|
|
49
|
+
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
50
|
+
|
|
51
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
52
|
+
duid = self.duid
|
|
53
|
+
|
|
54
|
+
created_at = self.created_at.isoformat()
|
|
55
|
+
|
|
56
|
+
updated_at = self.updated_at.isoformat()
|
|
57
|
+
|
|
58
|
+
task_duid = self.task_duid
|
|
59
|
+
|
|
60
|
+
root_duid: Union[None, str]
|
|
61
|
+
root_duid = self.root_duid
|
|
62
|
+
|
|
63
|
+
authored_by_ai = self.authored_by_ai
|
|
64
|
+
|
|
65
|
+
author_duid = self.author_duid
|
|
66
|
+
|
|
67
|
+
text = self.text
|
|
68
|
+
|
|
69
|
+
published_at: Union[None, str]
|
|
70
|
+
if isinstance(self.published_at, datetime.datetime):
|
|
71
|
+
published_at = self.published_at.isoformat()
|
|
72
|
+
else:
|
|
73
|
+
published_at = self.published_at
|
|
74
|
+
|
|
75
|
+
reactions = []
|
|
76
|
+
for reactions_item_data in self.reactions:
|
|
77
|
+
reactions_item = reactions_item_data.to_dict()
|
|
78
|
+
reactions.append(reactions_item)
|
|
79
|
+
|
|
80
|
+
is_draft = self.is_draft
|
|
81
|
+
|
|
82
|
+
edited = self.edited
|
|
83
|
+
|
|
84
|
+
updated_by_client_duid: Union[None, Unset, str]
|
|
85
|
+
if isinstance(self.updated_by_client_duid, Unset):
|
|
86
|
+
updated_by_client_duid = UNSET
|
|
87
|
+
else:
|
|
88
|
+
updated_by_client_duid = self.updated_by_client_duid
|
|
89
|
+
|
|
90
|
+
field_dict: Dict[str, Any] = {}
|
|
91
|
+
field_dict.update(self.additional_properties)
|
|
92
|
+
field_dict.update(
|
|
93
|
+
{
|
|
94
|
+
"duid": duid,
|
|
95
|
+
"createdAt": created_at,
|
|
96
|
+
"updatedAt": updated_at,
|
|
97
|
+
"taskDuid": task_duid,
|
|
98
|
+
"rootDuid": root_duid,
|
|
99
|
+
"authoredByAi": authored_by_ai,
|
|
100
|
+
"authorDuid": author_duid,
|
|
101
|
+
"text": text,
|
|
102
|
+
"publishedAt": published_at,
|
|
103
|
+
"reactions": reactions,
|
|
104
|
+
"isDraft": is_draft,
|
|
105
|
+
"edited": edited,
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
if updated_by_client_duid is not UNSET:
|
|
109
|
+
field_dict["updatedByClientDuid"] = updated_by_client_duid
|
|
110
|
+
|
|
111
|
+
return field_dict
|
|
112
|
+
|
|
113
|
+
@classmethod
|
|
114
|
+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
|
|
115
|
+
from ..models.comment_reaction import CommentReaction
|
|
116
|
+
|
|
117
|
+
d = src_dict.copy()
|
|
118
|
+
duid = d.pop("duid")
|
|
119
|
+
|
|
120
|
+
created_at = isoparse(d.pop("createdAt"))
|
|
121
|
+
|
|
122
|
+
updated_at = isoparse(d.pop("updatedAt"))
|
|
123
|
+
|
|
124
|
+
task_duid = d.pop("taskDuid")
|
|
125
|
+
|
|
126
|
+
def _parse_root_duid(data: object) -> Union[None, str]:
|
|
127
|
+
if data is None:
|
|
128
|
+
return data
|
|
129
|
+
return cast(Union[None, str], data)
|
|
130
|
+
|
|
131
|
+
root_duid = _parse_root_duid(d.pop("rootDuid"))
|
|
132
|
+
|
|
133
|
+
authored_by_ai = d.pop("authoredByAi")
|
|
134
|
+
|
|
135
|
+
author_duid = d.pop("authorDuid")
|
|
136
|
+
|
|
137
|
+
text = d.pop("text")
|
|
138
|
+
|
|
139
|
+
def _parse_published_at(data: object) -> Union[None, datetime.datetime]:
|
|
140
|
+
if data is None:
|
|
141
|
+
return data
|
|
142
|
+
try:
|
|
143
|
+
if not isinstance(data, str):
|
|
144
|
+
raise TypeError()
|
|
145
|
+
published_at_type_0 = isoparse(data)
|
|
146
|
+
|
|
147
|
+
return published_at_type_0
|
|
148
|
+
except: # noqa: E722
|
|
149
|
+
pass
|
|
150
|
+
return cast(Union[None, datetime.datetime], data)
|
|
151
|
+
|
|
152
|
+
published_at = _parse_published_at(d.pop("publishedAt"))
|
|
153
|
+
|
|
154
|
+
reactions = []
|
|
155
|
+
_reactions = d.pop("reactions")
|
|
156
|
+
for reactions_item_data in _reactions:
|
|
157
|
+
reactions_item = CommentReaction.from_dict(reactions_item_data)
|
|
158
|
+
|
|
159
|
+
reactions.append(reactions_item)
|
|
160
|
+
|
|
161
|
+
is_draft = d.pop("isDraft")
|
|
162
|
+
|
|
163
|
+
edited = d.pop("edited")
|
|
164
|
+
|
|
165
|
+
def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
|
|
166
|
+
if data is None:
|
|
167
|
+
return data
|
|
168
|
+
if isinstance(data, Unset):
|
|
169
|
+
return data
|
|
170
|
+
return cast(Union[None, Unset, str], data)
|
|
171
|
+
|
|
172
|
+
updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
|
|
173
|
+
|
|
174
|
+
comment = cls(
|
|
175
|
+
duid=duid,
|
|
176
|
+
created_at=created_at,
|
|
177
|
+
updated_at=updated_at,
|
|
178
|
+
task_duid=task_duid,
|
|
179
|
+
root_duid=root_duid,
|
|
180
|
+
authored_by_ai=authored_by_ai,
|
|
181
|
+
author_duid=author_duid,
|
|
182
|
+
text=text,
|
|
183
|
+
published_at=published_at,
|
|
184
|
+
reactions=reactions,
|
|
185
|
+
is_draft=is_draft,
|
|
186
|
+
edited=edited,
|
|
187
|
+
updated_by_client_duid=updated_by_client_duid,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
comment.additional_properties = d
|
|
191
|
+
return comment
|
|
192
|
+
|
|
193
|
+
@property
|
|
194
|
+
def additional_keys(self) -> List[str]:
|
|
195
|
+
return list(self.additional_properties.keys())
|
|
196
|
+
|
|
197
|
+
def __getitem__(self, key: str) -> Any:
|
|
198
|
+
return self.additional_properties[key]
|
|
199
|
+
|
|
200
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
201
|
+
self.additional_properties[key] = value
|
|
202
|
+
|
|
203
|
+
def __delitem__(self, key: str) -> None:
|
|
204
|
+
del self.additional_properties[key]
|
|
205
|
+
|
|
206
|
+
def __contains__(self, key: str) -> bool:
|
|
207
|
+
return key in self.additional_properties
|