dart-tools 0.7.2__tar.gz → 0.7.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.
- {dart_tools-0.7.2 → dart_tools-0.7.3}/LICENSE +1 -1
- {dart_tools-0.7.2/dart_tools.egg-info → dart_tools-0.7.3}/PKG-INFO +7 -7
- dart_tools-0.7.3/dart/generated/api/__init__.py +9 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/dartboard/retrieve_dartboard.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/delete_doc.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/retrieve_doc.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/update_doc.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/folder/retrieve_folder.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/delete_task.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/retrieve_task.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/update_task.py +3 -1
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/view/retrieve_view.py +3 -1
- dart_tools-0.7.3/dart/generated/models/__init__.py +107 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/concise_task.py +68 -7
- dart_tools-0.7.3/dart/generated/models/custom_properties.py +131 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/task.py +68 -7
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/task_create.py +66 -15
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/task_update.py +66 -15
- dart_tools-0.7.3/dart/generated/models/user_space_configuration.py +418 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_checkbox_type_def.py +74 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_dates_type_def.py +82 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_multiselect_type_def.py +82 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_number_type_def.py +86 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_number_type_def_custom_property_number_format_type_def.py +10 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_select_type_def.py +82 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_status_type_def.py +74 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_text_type_def.py +74 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_time_tracking_type_def.py +74 -0
- dart_tools-0.7.3/dart/generated/models/user_space_configuration_custom_property_user_type_def.py +82 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3/dart_tools.egg-info}/PKG-INFO +7 -7
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart_tools.egg-info/SOURCES.txt +11 -1
- dart_tools-0.7.3/dart_tools.egg-info/requires.txt +5 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/pyproject.toml +10 -10
- dart_tools-0.7.2/dart/generated/api/__init__.py +0 -16
- dart_tools-0.7.2/dart/generated/models/__init__.py +0 -65
- dart_tools-0.7.2/dart/generated/models/user_space_configuration.py +0 -176
- dart_tools-0.7.2/dart/generated/py.typed +0 -1
- dart_tools-0.7.2/dart_tools.egg-info/requires.txt +0 -5
- {dart_tools-0.7.2 → dart_tools-0.7.3}/README.md +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/dart.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/exception.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/comment/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/comment/create_comment.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/config/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/config/get_config.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/dartboard/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/create_doc.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/doc/list_docs.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/folder/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/create_task.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/task/list_tasks.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/api/view/__init__.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/client.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/errors.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/comment.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/comment_create.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/concise_doc.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/dartboard.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/doc.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/doc_create.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/doc_update.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/folder.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/list_docs_o_item.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/paginated_concise_doc_list.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/paginated_concise_task_list.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/priority.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/user.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/view.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_comment.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_comment_create.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_dartboard.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_doc.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_doc_create.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_doc_update.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_folder.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_task.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_task_create.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_task_update.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/models/wrapped_view.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/generated/types.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/old.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/order_manager.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart/webhook.py +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart_tools.egg-info/dependency_links.txt +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart_tools.egg-info/entry_points.txt +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/dart_tools.egg-info/top_level.txt +0 -0
- {dart_tools-0.7.2 → dart_tools-0.7.3}/setup.cfg +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dart-tools
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: The Dart CLI and Python Library
|
|
5
5
|
Author-email: Dart <software@itsdart.com>
|
|
6
6
|
License: MIT License
|
|
7
7
|
|
|
8
|
-
Copyright (c)
|
|
8
|
+
Copyright (c) 2025 Dart
|
|
9
9
|
|
|
10
10
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
11
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -54,11 +54,11 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
54
54
|
Requires-Python: >=3.9
|
|
55
55
|
Description-Content-Type: text/markdown
|
|
56
56
|
License-File: LICENSE
|
|
57
|
-
Requires-Dist: attrs
|
|
58
|
-
Requires-Dist: dateparser
|
|
59
|
-
Requires-Dist: httpx
|
|
60
|
-
Requires-Dist: pick
|
|
61
|
-
Requires-Dist: platformdirs
|
|
57
|
+
Requires-Dist: attrs>=25.3
|
|
58
|
+
Requires-Dist: dateparser>=1.2
|
|
59
|
+
Requires-Dist: httpx>=0.28
|
|
60
|
+
Requires-Dist: pick>=2.4
|
|
61
|
+
Requires-Dist: platformdirs>=4.3
|
|
62
62
|
Dynamic: license-file
|
|
63
63
|
|
|
64
64
|
<div align="center">
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""Contains methods for accessing the API"""
|
|
2
|
+
|
|
3
|
+
from .comment import create_comment
|
|
4
|
+
from .config import get_config
|
|
5
|
+
from .dartboard import retrieve_dartboard
|
|
6
|
+
from .doc import create_doc, delete_doc, list_docs, retrieve_doc, update_doc
|
|
7
|
+
from .folder import retrieve_folder
|
|
8
|
+
from .task import create_task, delete_task, list_tasks, retrieve_task, update_task
|
|
9
|
+
from .view import retrieve_view
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"""Contains all the data models used in inputs/outputs"""
|
|
2
|
+
|
|
3
|
+
from .comment import Comment
|
|
4
|
+
from .comment_create import CommentCreate
|
|
5
|
+
from .concise_doc import ConciseDoc
|
|
6
|
+
from .concise_task import ConciseTask
|
|
7
|
+
from .custom_properties import CustomProperties
|
|
8
|
+
from .dartboard import Dartboard
|
|
9
|
+
from .doc import Doc
|
|
10
|
+
from .doc_create import DocCreate
|
|
11
|
+
from .doc_update import DocUpdate
|
|
12
|
+
from .folder import Folder
|
|
13
|
+
from .list_docs_o_item import ListDocsOItem
|
|
14
|
+
from .paginated_concise_doc_list import PaginatedConciseDocList
|
|
15
|
+
from .paginated_concise_task_list import PaginatedConciseTaskList
|
|
16
|
+
from .priority import Priority
|
|
17
|
+
from .task import Task
|
|
18
|
+
from .task_create import TaskCreate
|
|
19
|
+
from .task_update import TaskUpdate
|
|
20
|
+
from .user import User
|
|
21
|
+
from .user_space_configuration import UserSpaceConfiguration
|
|
22
|
+
from .user_space_configuration_custom_property_checkbox_type_def import (
|
|
23
|
+
UserSpaceConfigurationCustomPropertyCheckboxTypeDef,
|
|
24
|
+
)
|
|
25
|
+
from .user_space_configuration_custom_property_dates_type_def import (
|
|
26
|
+
UserSpaceConfigurationCustomPropertyDatesTypeDef,
|
|
27
|
+
)
|
|
28
|
+
from .user_space_configuration_custom_property_multiselect_type_def import (
|
|
29
|
+
UserSpaceConfigurationCustomPropertyMultiselectTypeDef,
|
|
30
|
+
)
|
|
31
|
+
from .user_space_configuration_custom_property_number_type_def import (
|
|
32
|
+
UserSpaceConfigurationCustomPropertyNumberTypeDef,
|
|
33
|
+
)
|
|
34
|
+
from .user_space_configuration_custom_property_number_type_def_custom_property_number_format_type_def import (
|
|
35
|
+
UserSpaceConfigurationCustomPropertyNumberTypeDefCustomPropertyNumberFormatTypeDef,
|
|
36
|
+
)
|
|
37
|
+
from .user_space_configuration_custom_property_select_type_def import (
|
|
38
|
+
UserSpaceConfigurationCustomPropertySelectTypeDef,
|
|
39
|
+
)
|
|
40
|
+
from .user_space_configuration_custom_property_status_type_def import (
|
|
41
|
+
UserSpaceConfigurationCustomPropertyStatusTypeDef,
|
|
42
|
+
)
|
|
43
|
+
from .user_space_configuration_custom_property_text_type_def import (
|
|
44
|
+
UserSpaceConfigurationCustomPropertyTextTypeDef,
|
|
45
|
+
)
|
|
46
|
+
from .user_space_configuration_custom_property_time_tracking_type_def import (
|
|
47
|
+
UserSpaceConfigurationCustomPropertyTimeTrackingTypeDef,
|
|
48
|
+
)
|
|
49
|
+
from .user_space_configuration_custom_property_user_type_def import (
|
|
50
|
+
UserSpaceConfigurationCustomPropertyUserTypeDef,
|
|
51
|
+
)
|
|
52
|
+
from .view import View
|
|
53
|
+
from .wrapped_comment import WrappedComment
|
|
54
|
+
from .wrapped_comment_create import WrappedCommentCreate
|
|
55
|
+
from .wrapped_dartboard import WrappedDartboard
|
|
56
|
+
from .wrapped_doc import WrappedDoc
|
|
57
|
+
from .wrapped_doc_create import WrappedDocCreate
|
|
58
|
+
from .wrapped_doc_update import WrappedDocUpdate
|
|
59
|
+
from .wrapped_folder import WrappedFolder
|
|
60
|
+
from .wrapped_task import WrappedTask
|
|
61
|
+
from .wrapped_task_create import WrappedTaskCreate
|
|
62
|
+
from .wrapped_task_update import WrappedTaskUpdate
|
|
63
|
+
from .wrapped_view import WrappedView
|
|
64
|
+
|
|
65
|
+
__all__ = (
|
|
66
|
+
"Comment",
|
|
67
|
+
"CommentCreate",
|
|
68
|
+
"ConciseDoc",
|
|
69
|
+
"ConciseTask",
|
|
70
|
+
"CustomProperties",
|
|
71
|
+
"Dartboard",
|
|
72
|
+
"Doc",
|
|
73
|
+
"DocCreate",
|
|
74
|
+
"DocUpdate",
|
|
75
|
+
"Folder",
|
|
76
|
+
"ListDocsOItem",
|
|
77
|
+
"PaginatedConciseDocList",
|
|
78
|
+
"PaginatedConciseTaskList",
|
|
79
|
+
"Priority",
|
|
80
|
+
"Task",
|
|
81
|
+
"TaskCreate",
|
|
82
|
+
"TaskUpdate",
|
|
83
|
+
"User",
|
|
84
|
+
"UserSpaceConfiguration",
|
|
85
|
+
"UserSpaceConfigurationCustomPropertyCheckboxTypeDef",
|
|
86
|
+
"UserSpaceConfigurationCustomPropertyDatesTypeDef",
|
|
87
|
+
"UserSpaceConfigurationCustomPropertyMultiselectTypeDef",
|
|
88
|
+
"UserSpaceConfigurationCustomPropertyNumberTypeDef",
|
|
89
|
+
"UserSpaceConfigurationCustomPropertyNumberTypeDefCustomPropertyNumberFormatTypeDef",
|
|
90
|
+
"UserSpaceConfigurationCustomPropertySelectTypeDef",
|
|
91
|
+
"UserSpaceConfigurationCustomPropertyStatusTypeDef",
|
|
92
|
+
"UserSpaceConfigurationCustomPropertyTextTypeDef",
|
|
93
|
+
"UserSpaceConfigurationCustomPropertyTimeTrackingTypeDef",
|
|
94
|
+
"UserSpaceConfigurationCustomPropertyUserTypeDef",
|
|
95
|
+
"View",
|
|
96
|
+
"WrappedComment",
|
|
97
|
+
"WrappedCommentCreate",
|
|
98
|
+
"WrappedDartboard",
|
|
99
|
+
"WrappedDoc",
|
|
100
|
+
"WrappedDocCreate",
|
|
101
|
+
"WrappedDocUpdate",
|
|
102
|
+
"WrappedFolder",
|
|
103
|
+
"WrappedTask",
|
|
104
|
+
"WrappedTaskCreate",
|
|
105
|
+
"WrappedTaskUpdate",
|
|
106
|
+
"WrappedView",
|
|
107
|
+
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from typing import Any, TypeVar, Union, cast
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
3
3
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
@@ -7,6 +7,10 @@ from attrs import field as _attrs_field
|
|
|
7
7
|
from ..models.priority import Priority
|
|
8
8
|
from ..types import UNSET, Unset
|
|
9
9
|
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..models.custom_properties import CustomProperties
|
|
12
|
+
|
|
13
|
+
|
|
10
14
|
T = TypeVar("T", bound="ConciseTask")
|
|
11
15
|
|
|
12
16
|
|
|
@@ -22,8 +26,8 @@ class ConciseTask:
|
|
|
22
26
|
dartboard (str): The full title of the dartboard, which is a project or list of tasks.
|
|
23
27
|
type_ (str): The title of the type of the task.
|
|
24
28
|
status (str): The status from the list of available statuses.
|
|
25
|
-
assignees (Union[Unset, list[str]]): The names or emails of the users that the task is assigned to. Either
|
|
26
|
-
or assignee must be included, depending on whether the workspaces allows multiple assignees or not.
|
|
29
|
+
assignees (Union[None, Unset, list[str]]): The names or emails of the users that the task is assigned to. Either
|
|
30
|
+
this or assignee must be included, depending on whether the workspaces allows multiple assignees or not.
|
|
27
31
|
assignee (Union[None, Unset, str]): The name or email of the user that the task is assigned to. Either this or
|
|
28
32
|
assignees must be included, depending on whether the workspaces allows multiple assignees or not.
|
|
29
33
|
tags (Union[Unset, list[str]]): Any tags that should be applied to the task, which can be used to filter and
|
|
@@ -39,6 +43,8 @@ class ConciseTask:
|
|
|
39
43
|
is used to determine how long the task will take to complete.
|
|
40
44
|
time_tracking (Union[Unset, str]): The time tracking, which is a string that indicates the amount of time spent
|
|
41
45
|
on the task in hh:mm:ss format (or an empty string if no time has been tracked).
|
|
46
|
+
custom_properties (Union['CustomProperties', None, Unset]): The custom properties, which is a dict of custom
|
|
47
|
+
properties that are associated with the task.
|
|
42
48
|
"""
|
|
43
49
|
|
|
44
50
|
id: str
|
|
@@ -48,7 +54,7 @@ class ConciseTask:
|
|
|
48
54
|
dartboard: str
|
|
49
55
|
type_: str
|
|
50
56
|
status: str
|
|
51
|
-
assignees: Union[Unset, list[str]] = UNSET
|
|
57
|
+
assignees: Union[None, Unset, list[str]] = UNSET
|
|
52
58
|
assignee: Union[None, Unset, str] = UNSET
|
|
53
59
|
tags: Union[Unset, list[str]] = UNSET
|
|
54
60
|
priority: Union[None, Priority, Unset] = UNSET
|
|
@@ -56,9 +62,12 @@ class ConciseTask:
|
|
|
56
62
|
due_at: Union[None, Unset, str] = UNSET
|
|
57
63
|
size: Union[None, Unset, int, str] = UNSET
|
|
58
64
|
time_tracking: Union[Unset, str] = UNSET
|
|
65
|
+
custom_properties: Union["CustomProperties", None, Unset] = UNSET
|
|
59
66
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
60
67
|
|
|
61
68
|
def to_dict(self) -> dict[str, Any]:
|
|
69
|
+
from ..models.custom_properties import CustomProperties
|
|
70
|
+
|
|
62
71
|
id = self.id
|
|
63
72
|
|
|
64
73
|
html_url = self.html_url
|
|
@@ -74,8 +83,13 @@ class ConciseTask:
|
|
|
74
83
|
|
|
75
84
|
status = self.status
|
|
76
85
|
|
|
77
|
-
assignees: Union[Unset, list[str]]
|
|
78
|
-
if
|
|
86
|
+
assignees: Union[None, Unset, list[str]]
|
|
87
|
+
if isinstance(self.assignees, Unset):
|
|
88
|
+
assignees = UNSET
|
|
89
|
+
elif isinstance(self.assignees, list):
|
|
90
|
+
assignees = self.assignees
|
|
91
|
+
|
|
92
|
+
else:
|
|
79
93
|
assignees = self.assignees
|
|
80
94
|
|
|
81
95
|
assignee: Union[None, Unset, str]
|
|
@@ -116,6 +130,14 @@ class ConciseTask:
|
|
|
116
130
|
|
|
117
131
|
time_tracking = self.time_tracking
|
|
118
132
|
|
|
133
|
+
custom_properties: Union[None, Unset, dict[str, Any]]
|
|
134
|
+
if isinstance(self.custom_properties, Unset):
|
|
135
|
+
custom_properties = UNSET
|
|
136
|
+
elif isinstance(self.custom_properties, CustomProperties):
|
|
137
|
+
custom_properties = self.custom_properties.to_dict()
|
|
138
|
+
else:
|
|
139
|
+
custom_properties = self.custom_properties
|
|
140
|
+
|
|
119
141
|
field_dict: dict[str, Any] = {}
|
|
120
142
|
field_dict.update(self.additional_properties)
|
|
121
143
|
field_dict.update(
|
|
@@ -145,11 +167,15 @@ class ConciseTask:
|
|
|
145
167
|
field_dict["size"] = size
|
|
146
168
|
if time_tracking is not UNSET:
|
|
147
169
|
field_dict["timeTracking"] = time_tracking
|
|
170
|
+
if custom_properties is not UNSET:
|
|
171
|
+
field_dict["customProperties"] = custom_properties
|
|
148
172
|
|
|
149
173
|
return field_dict
|
|
150
174
|
|
|
151
175
|
@classmethod
|
|
152
176
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
177
|
+
from ..models.custom_properties import CustomProperties
|
|
178
|
+
|
|
153
179
|
d = dict(src_dict)
|
|
154
180
|
id = d.pop("id")
|
|
155
181
|
|
|
@@ -170,7 +196,22 @@ class ConciseTask:
|
|
|
170
196
|
|
|
171
197
|
status = d.pop("status")
|
|
172
198
|
|
|
173
|
-
|
|
199
|
+
def _parse_assignees(data: object) -> Union[None, Unset, list[str]]:
|
|
200
|
+
if data is None:
|
|
201
|
+
return data
|
|
202
|
+
if isinstance(data, Unset):
|
|
203
|
+
return data
|
|
204
|
+
try:
|
|
205
|
+
if not isinstance(data, list):
|
|
206
|
+
raise TypeError()
|
|
207
|
+
assignees_type_0 = cast(list[str], data)
|
|
208
|
+
|
|
209
|
+
return assignees_type_0
|
|
210
|
+
except: # noqa: E722
|
|
211
|
+
pass
|
|
212
|
+
return cast(Union[None, Unset, list[str]], data)
|
|
213
|
+
|
|
214
|
+
assignees = _parse_assignees(d.pop("assignees", UNSET))
|
|
174
215
|
|
|
175
216
|
def _parse_assignee(data: object) -> Union[None, Unset, str]:
|
|
176
217
|
if data is None:
|
|
@@ -229,6 +270,25 @@ class ConciseTask:
|
|
|
229
270
|
|
|
230
271
|
time_tracking = d.pop("timeTracking", UNSET)
|
|
231
272
|
|
|
273
|
+
def _parse_custom_properties(
|
|
274
|
+
data: object,
|
|
275
|
+
) -> Union["CustomProperties", None, Unset]:
|
|
276
|
+
if data is None:
|
|
277
|
+
return data
|
|
278
|
+
if isinstance(data, Unset):
|
|
279
|
+
return data
|
|
280
|
+
try:
|
|
281
|
+
if not isinstance(data, dict):
|
|
282
|
+
raise TypeError()
|
|
283
|
+
custom_properties_type_0 = CustomProperties.from_dict(data)
|
|
284
|
+
|
|
285
|
+
return custom_properties_type_0
|
|
286
|
+
except: # noqa: E722
|
|
287
|
+
pass
|
|
288
|
+
return cast(Union["CustomProperties", None, Unset], data)
|
|
289
|
+
|
|
290
|
+
custom_properties = _parse_custom_properties(d.pop("customProperties", UNSET))
|
|
291
|
+
|
|
232
292
|
concise_task = cls(
|
|
233
293
|
id=id,
|
|
234
294
|
html_url=html_url,
|
|
@@ -245,6 +305,7 @@ class ConciseTask:
|
|
|
245
305
|
due_at=due_at,
|
|
246
306
|
size=size,
|
|
247
307
|
time_tracking=time_tracking,
|
|
308
|
+
custom_properties=custom_properties,
|
|
248
309
|
)
|
|
249
310
|
|
|
250
311
|
concise_task.additional_properties = d
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar, Union, cast
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="CustomProperties")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class CustomProperties:
|
|
12
|
+
"""
|
|
13
|
+
Example:
|
|
14
|
+
{'customCheckboxProperty': True, 'customDatesProperty': '2025-05-10', 'customDatesPropertyWithRange':
|
|
15
|
+
['2025-05-01', '2025-05-30'], 'customMultiselectProperty': ['frontend', 'bug'],
|
|
16
|
+
'customNumberPropertyWithIntegerFormat': 5, 'customNumberPropertyWithPercentageFormat': 75,
|
|
17
|
+
'customNumberPropertyWithDollarsFormat': 1500.5, 'customSelectProperty': 'In Progress', 'customStatusProperty':
|
|
18
|
+
'Blocked', 'customTextProperty': 'This task requires additional review from the design team',
|
|
19
|
+
'customUserProperty': 'john.doe@example.com', 'customMultipleUserProperty': ['john.doe@example.com', 'Alice
|
|
20
|
+
Smith']}
|
|
21
|
+
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
additional_properties: dict[str, Union[None, bool, float, list[Union[None, str]], list[str], str]] = _attrs_field(
|
|
25
|
+
init=False, factory=dict
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
def to_dict(self) -> dict[str, Any]:
|
|
29
|
+
field_dict: dict[str, Any] = {}
|
|
30
|
+
for prop_name, prop in self.additional_properties.items():
|
|
31
|
+
if isinstance(prop, list):
|
|
32
|
+
field_dict[prop_name] = []
|
|
33
|
+
for additional_property_type_1_type_0_item_data in prop:
|
|
34
|
+
additional_property_type_1_type_0_item: Union[None, str]
|
|
35
|
+
additional_property_type_1_type_0_item = additional_property_type_1_type_0_item_data
|
|
36
|
+
field_dict[prop_name].append(additional_property_type_1_type_0_item)
|
|
37
|
+
|
|
38
|
+
elif isinstance(prop, list):
|
|
39
|
+
field_dict[prop_name] = prop
|
|
40
|
+
|
|
41
|
+
elif isinstance(prop, list):
|
|
42
|
+
field_dict[prop_name] = prop
|
|
43
|
+
|
|
44
|
+
else:
|
|
45
|
+
field_dict[prop_name] = prop
|
|
46
|
+
|
|
47
|
+
return field_dict
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
51
|
+
d = dict(src_dict)
|
|
52
|
+
custom_properties = cls()
|
|
53
|
+
|
|
54
|
+
additional_properties = {}
|
|
55
|
+
for prop_name, prop_dict in d.items():
|
|
56
|
+
|
|
57
|
+
def _parse_additional_property(
|
|
58
|
+
data: object,
|
|
59
|
+
) -> Union[None, bool, float, list[Union[None, str]], list[str], str]:
|
|
60
|
+
if data is None:
|
|
61
|
+
return data
|
|
62
|
+
try:
|
|
63
|
+
if not isinstance(data, list):
|
|
64
|
+
raise TypeError()
|
|
65
|
+
additional_property_type_1_type_0 = []
|
|
66
|
+
_additional_property_type_1_type_0 = data
|
|
67
|
+
for additional_property_type_1_type_0_item_data in _additional_property_type_1_type_0:
|
|
68
|
+
|
|
69
|
+
def _parse_additional_property_type_1_type_0_item(
|
|
70
|
+
data: object,
|
|
71
|
+
) -> Union[None, str]:
|
|
72
|
+
if data is None:
|
|
73
|
+
return data
|
|
74
|
+
return cast(Union[None, str], data)
|
|
75
|
+
|
|
76
|
+
additional_property_type_1_type_0_item = _parse_additional_property_type_1_type_0_item(
|
|
77
|
+
additional_property_type_1_type_0_item_data
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
additional_property_type_1_type_0.append(additional_property_type_1_type_0_item)
|
|
81
|
+
|
|
82
|
+
return additional_property_type_1_type_0
|
|
83
|
+
except: # noqa: E722
|
|
84
|
+
pass
|
|
85
|
+
try:
|
|
86
|
+
if not isinstance(data, list):
|
|
87
|
+
raise TypeError()
|
|
88
|
+
additional_property_type_3 = cast(list[str], data)
|
|
89
|
+
|
|
90
|
+
return additional_property_type_3
|
|
91
|
+
except: # noqa: E722
|
|
92
|
+
pass
|
|
93
|
+
try:
|
|
94
|
+
if not isinstance(data, list):
|
|
95
|
+
raise TypeError()
|
|
96
|
+
additional_property_type_9 = cast(list[str], data)
|
|
97
|
+
|
|
98
|
+
return additional_property_type_9
|
|
99
|
+
except: # noqa: E722
|
|
100
|
+
pass
|
|
101
|
+
return cast(
|
|
102
|
+
Union[None, bool, float, list[Union[None, str]], list[str], str],
|
|
103
|
+
data,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
additional_property = _parse_additional_property(prop_dict)
|
|
107
|
+
|
|
108
|
+
additional_properties[prop_name] = additional_property
|
|
109
|
+
|
|
110
|
+
custom_properties.additional_properties = additional_properties
|
|
111
|
+
return custom_properties
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def additional_keys(self) -> list[str]:
|
|
115
|
+
return list(self.additional_properties.keys())
|
|
116
|
+
|
|
117
|
+
def __getitem__(self, key: str) -> Union[None, bool, float, list[Union[None, str]], list[str], str]:
|
|
118
|
+
return self.additional_properties[key]
|
|
119
|
+
|
|
120
|
+
def __setitem__(
|
|
121
|
+
self,
|
|
122
|
+
key: str,
|
|
123
|
+
value: Union[None, bool, float, list[Union[None, str]], list[str], str],
|
|
124
|
+
) -> None:
|
|
125
|
+
self.additional_properties[key] = value
|
|
126
|
+
|
|
127
|
+
def __delitem__(self, key: str) -> None:
|
|
128
|
+
del self.additional_properties[key]
|
|
129
|
+
|
|
130
|
+
def __contains__(self, key: str) -> bool:
|
|
131
|
+
return key in self.additional_properties
|