anyscale 0.26.12__py3-none-any.whl → 0.26.14__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. anyscale/_private/docgen/__main__.py +0 -3
  2. anyscale/_private/docgen/api.md +0 -14
  3. anyscale/_private/docgen/models.md +2 -47
  4. anyscale/client/README.md +24 -7
  5. anyscale/client/openapi_client/__init__.py +18 -5
  6. anyscale/client/openapi_client/api/default_api.py +746 -282
  7. anyscale/client/openapi_client/models/__init__.py +18 -5
  8. anyscale/client/openapi_client/models/baseimagesenum.py +23 -4
  9. anyscale/client/openapi_client/models/dataset_dag.py +229 -0
  10. anyscale/client/openapi_client/models/dataset_dag_response.py +121 -0
  11. anyscale/client/openapi_client/models/{operator_metric_id.py → operator_branch.py} +26 -26
  12. anyscale/{sdk/anyscale_client/models/runtimeenvironment_response.py → client/openapi_client/models/operator_id.py} +24 -24
  13. anyscale/client/openapi_client/models/operator_metrics.py +3 -30
  14. anyscale/client/openapi_client/models/organization_marketing_questions.py +15 -41
  15. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +14 -14
  16. anyscale/client/openapi_client/models/task_exception_group_aggregate.py +148 -0
  17. anyscale/client/openapi_client/models/task_function_name_group_aggregate.py +175 -0
  18. anyscale/client/openapi_client/models/task_grouped_aggregate_metrics.py +337 -0
  19. anyscale/client/openapi_client/models/task_job_group_aggregate.py +148 -0
  20. anyscale/client/openapi_client/models/task_state.py +103 -0
  21. anyscale/client/openapi_client/models/task_summary.py +256 -0
  22. anyscale/client/openapi_client/models/task_table_config.py +250 -0
  23. anyscale/client/openapi_client/models/task_table_response.py +174 -0
  24. anyscale/client/openapi_client/models/task_table_row.py +491 -0
  25. anyscale/client/openapi_client/models/{cluster_size.py → task_type.py} +7 -10
  26. anyscale/client/openapi_client/models/taskexceptiongroupaggregate_list_response.py +147 -0
  27. anyscale/client/openapi_client/models/taskfunctionnamegroupaggregate_list_response.py +147 -0
  28. anyscale/client/openapi_client/models/{decoratedruntimeenv_list_response.py → taskjobgroupaggregate_list_response.py} +15 -15
  29. anyscale/client/openapi_client/models/{decoratedruntimeenv_response.py → tasksummary_response.py} +11 -11
  30. anyscale/commands/command_examples.py +22 -0
  31. anyscale/sdk/anyscale_client/__init__.py +0 -3
  32. anyscale/sdk/anyscale_client/api/default_api.py +0 -232
  33. anyscale/sdk/anyscale_client/models/__init__.py +0 -3
  34. anyscale/sdk/anyscale_client/models/baseimagesenum.py +23 -4
  35. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +14 -14
  36. anyscale/version.py +1 -1
  37. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/METADATA +1 -1
  38. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/RECORD +43 -33
  39. anyscale/client/openapi_client/models/decorated_runtime_env.py +0 -488
  40. anyscale/sdk/anyscale_client/models/create_session.py +0 -432
  41. anyscale/sdk/anyscale_client/models/runtime_environment.py +0 -406
  42. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/LICENSE +0 -0
  43. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/NOTICE +0 -0
  44. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/WHEEL +0 -0
  45. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/entry_points.txt +0 -0
  46. {anyscale-0.26.12.dist-info → anyscale-0.26.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,103 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class TaskState(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ allowed enum values
30
+ """
31
+ PENDING_DEPENDENCIES = "PENDING_DEPENDENCIES"
32
+ PENDING_SCHEDULE = "PENDING_SCHEDULE"
33
+ RUNNING = "RUNNING"
34
+ FINISHED = "FINISHED"
35
+ FAILED = "FAILED"
36
+
37
+ allowable_values = [PENDING_DEPENDENCIES, PENDING_SCHEDULE, RUNNING, FINISHED, FAILED] # noqa: E501
38
+
39
+ """
40
+ Attributes:
41
+ openapi_types (dict): The key is attribute name
42
+ and the value is attribute type.
43
+ attribute_map (dict): The key is attribute name
44
+ and the value is json key in definition.
45
+ """
46
+ openapi_types = {
47
+ }
48
+
49
+ attribute_map = {
50
+ }
51
+
52
+ def __init__(self, local_vars_configuration=None): # noqa: E501
53
+ """TaskState - a model defined in OpenAPI""" # noqa: E501
54
+ if local_vars_configuration is None:
55
+ local_vars_configuration = Configuration()
56
+ self.local_vars_configuration = local_vars_configuration
57
+ self.discriminator = None
58
+
59
+ def to_dict(self):
60
+ """Returns the model properties as a dict"""
61
+ result = {}
62
+
63
+ for attr, _ in six.iteritems(self.openapi_types):
64
+ value = getattr(self, attr)
65
+ if isinstance(value, list):
66
+ result[attr] = list(map(
67
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
68
+ value
69
+ ))
70
+ elif hasattr(value, "to_dict"):
71
+ result[attr] = value.to_dict()
72
+ elif isinstance(value, dict):
73
+ result[attr] = dict(map(
74
+ lambda item: (item[0], item[1].to_dict())
75
+ if hasattr(item[1], "to_dict") else item,
76
+ value.items()
77
+ ))
78
+ else:
79
+ result[attr] = value
80
+
81
+ return result
82
+
83
+ def to_str(self):
84
+ """Returns the string representation of the model"""
85
+ return pprint.pformat(self.to_dict())
86
+
87
+ def __repr__(self):
88
+ """For `print` and `pprint`"""
89
+ return self.to_str()
90
+
91
+ def __eq__(self, other):
92
+ """Returns true if both objects are equal"""
93
+ if not isinstance(other, TaskState):
94
+ return False
95
+
96
+ return self.to_dict() == other.to_dict()
97
+
98
+ def __ne__(self, other):
99
+ """Returns true if both objects are not equal"""
100
+ if not isinstance(other, TaskState):
101
+ return True
102
+
103
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,256 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class TaskSummary(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ Attributes:
30
+ openapi_types (dict): The key is attribute name
31
+ and the value is attribute type.
32
+ attribute_map (dict): The key is attribute name
33
+ and the value is json key in definition.
34
+ """
35
+ openapi_types = {
36
+ 'num_total_tasks': 'int',
37
+ 'num_finished_tasks': 'int',
38
+ 'num_failed_tasks': 'int',
39
+ 'num_running_tasks': 'int',
40
+ 'num_pending_dependencies_tasks': 'int',
41
+ 'num_pending_schedule_tasks': 'int'
42
+ }
43
+
44
+ attribute_map = {
45
+ 'num_total_tasks': 'num_total_tasks',
46
+ 'num_finished_tasks': 'num_finished_tasks',
47
+ 'num_failed_tasks': 'num_failed_tasks',
48
+ 'num_running_tasks': 'num_running_tasks',
49
+ 'num_pending_dependencies_tasks': 'num_pending_dependencies_tasks',
50
+ 'num_pending_schedule_tasks': 'num_pending_schedule_tasks'
51
+ }
52
+
53
+ def __init__(self, num_total_tasks=None, num_finished_tasks=None, num_failed_tasks=None, num_running_tasks=None, num_pending_dependencies_tasks=None, num_pending_schedule_tasks=None, local_vars_configuration=None): # noqa: E501
54
+ """TaskSummary - a model defined in OpenAPI""" # noqa: E501
55
+ if local_vars_configuration is None:
56
+ local_vars_configuration = Configuration()
57
+ self.local_vars_configuration = local_vars_configuration
58
+
59
+ self._num_total_tasks = None
60
+ self._num_finished_tasks = None
61
+ self._num_failed_tasks = None
62
+ self._num_running_tasks = None
63
+ self._num_pending_dependencies_tasks = None
64
+ self._num_pending_schedule_tasks = None
65
+ self.discriminator = None
66
+
67
+ self.num_total_tasks = num_total_tasks
68
+ self.num_finished_tasks = num_finished_tasks
69
+ self.num_failed_tasks = num_failed_tasks
70
+ self.num_running_tasks = num_running_tasks
71
+ self.num_pending_dependencies_tasks = num_pending_dependencies_tasks
72
+ self.num_pending_schedule_tasks = num_pending_schedule_tasks
73
+
74
+ @property
75
+ def num_total_tasks(self):
76
+ """Gets the num_total_tasks of this TaskSummary. # noqa: E501
77
+
78
+
79
+ :return: The num_total_tasks of this TaskSummary. # noqa: E501
80
+ :rtype: int
81
+ """
82
+ return self._num_total_tasks
83
+
84
+ @num_total_tasks.setter
85
+ def num_total_tasks(self, num_total_tasks):
86
+ """Sets the num_total_tasks of this TaskSummary.
87
+
88
+
89
+ :param num_total_tasks: The num_total_tasks of this TaskSummary. # noqa: E501
90
+ :type: int
91
+ """
92
+ if self.local_vars_configuration.client_side_validation and num_total_tasks is None: # noqa: E501
93
+ raise ValueError("Invalid value for `num_total_tasks`, must not be `None`") # noqa: E501
94
+
95
+ self._num_total_tasks = num_total_tasks
96
+
97
+ @property
98
+ def num_finished_tasks(self):
99
+ """Gets the num_finished_tasks of this TaskSummary. # noqa: E501
100
+
101
+
102
+ :return: The num_finished_tasks of this TaskSummary. # noqa: E501
103
+ :rtype: int
104
+ """
105
+ return self._num_finished_tasks
106
+
107
+ @num_finished_tasks.setter
108
+ def num_finished_tasks(self, num_finished_tasks):
109
+ """Sets the num_finished_tasks of this TaskSummary.
110
+
111
+
112
+ :param num_finished_tasks: The num_finished_tasks of this TaskSummary. # noqa: E501
113
+ :type: int
114
+ """
115
+ if self.local_vars_configuration.client_side_validation and num_finished_tasks is None: # noqa: E501
116
+ raise ValueError("Invalid value for `num_finished_tasks`, must not be `None`") # noqa: E501
117
+
118
+ self._num_finished_tasks = num_finished_tasks
119
+
120
+ @property
121
+ def num_failed_tasks(self):
122
+ """Gets the num_failed_tasks of this TaskSummary. # noqa: E501
123
+
124
+
125
+ :return: The num_failed_tasks of this TaskSummary. # noqa: E501
126
+ :rtype: int
127
+ """
128
+ return self._num_failed_tasks
129
+
130
+ @num_failed_tasks.setter
131
+ def num_failed_tasks(self, num_failed_tasks):
132
+ """Sets the num_failed_tasks of this TaskSummary.
133
+
134
+
135
+ :param num_failed_tasks: The num_failed_tasks of this TaskSummary. # noqa: E501
136
+ :type: int
137
+ """
138
+ if self.local_vars_configuration.client_side_validation and num_failed_tasks is None: # noqa: E501
139
+ raise ValueError("Invalid value for `num_failed_tasks`, must not be `None`") # noqa: E501
140
+
141
+ self._num_failed_tasks = num_failed_tasks
142
+
143
+ @property
144
+ def num_running_tasks(self):
145
+ """Gets the num_running_tasks of this TaskSummary. # noqa: E501
146
+
147
+
148
+ :return: The num_running_tasks of this TaskSummary. # noqa: E501
149
+ :rtype: int
150
+ """
151
+ return self._num_running_tasks
152
+
153
+ @num_running_tasks.setter
154
+ def num_running_tasks(self, num_running_tasks):
155
+ """Sets the num_running_tasks of this TaskSummary.
156
+
157
+
158
+ :param num_running_tasks: The num_running_tasks of this TaskSummary. # noqa: E501
159
+ :type: int
160
+ """
161
+ if self.local_vars_configuration.client_side_validation and num_running_tasks is None: # noqa: E501
162
+ raise ValueError("Invalid value for `num_running_tasks`, must not be `None`") # noqa: E501
163
+
164
+ self._num_running_tasks = num_running_tasks
165
+
166
+ @property
167
+ def num_pending_dependencies_tasks(self):
168
+ """Gets the num_pending_dependencies_tasks of this TaskSummary. # noqa: E501
169
+
170
+
171
+ :return: The num_pending_dependencies_tasks of this TaskSummary. # noqa: E501
172
+ :rtype: int
173
+ """
174
+ return self._num_pending_dependencies_tasks
175
+
176
+ @num_pending_dependencies_tasks.setter
177
+ def num_pending_dependencies_tasks(self, num_pending_dependencies_tasks):
178
+ """Sets the num_pending_dependencies_tasks of this TaskSummary.
179
+
180
+
181
+ :param num_pending_dependencies_tasks: The num_pending_dependencies_tasks of this TaskSummary. # noqa: E501
182
+ :type: int
183
+ """
184
+ if self.local_vars_configuration.client_side_validation and num_pending_dependencies_tasks is None: # noqa: E501
185
+ raise ValueError("Invalid value for `num_pending_dependencies_tasks`, must not be `None`") # noqa: E501
186
+
187
+ self._num_pending_dependencies_tasks = num_pending_dependencies_tasks
188
+
189
+ @property
190
+ def num_pending_schedule_tasks(self):
191
+ """Gets the num_pending_schedule_tasks of this TaskSummary. # noqa: E501
192
+
193
+
194
+ :return: The num_pending_schedule_tasks of this TaskSummary. # noqa: E501
195
+ :rtype: int
196
+ """
197
+ return self._num_pending_schedule_tasks
198
+
199
+ @num_pending_schedule_tasks.setter
200
+ def num_pending_schedule_tasks(self, num_pending_schedule_tasks):
201
+ """Sets the num_pending_schedule_tasks of this TaskSummary.
202
+
203
+
204
+ :param num_pending_schedule_tasks: The num_pending_schedule_tasks of this TaskSummary. # noqa: E501
205
+ :type: int
206
+ """
207
+ if self.local_vars_configuration.client_side_validation and num_pending_schedule_tasks is None: # noqa: E501
208
+ raise ValueError("Invalid value for `num_pending_schedule_tasks`, must not be `None`") # noqa: E501
209
+
210
+ self._num_pending_schedule_tasks = num_pending_schedule_tasks
211
+
212
+ def to_dict(self):
213
+ """Returns the model properties as a dict"""
214
+ result = {}
215
+
216
+ for attr, _ in six.iteritems(self.openapi_types):
217
+ value = getattr(self, attr)
218
+ if isinstance(value, list):
219
+ result[attr] = list(map(
220
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
221
+ value
222
+ ))
223
+ elif hasattr(value, "to_dict"):
224
+ result[attr] = value.to_dict()
225
+ elif isinstance(value, dict):
226
+ result[attr] = dict(map(
227
+ lambda item: (item[0], item[1].to_dict())
228
+ if hasattr(item[1], "to_dict") else item,
229
+ value.items()
230
+ ))
231
+ else:
232
+ result[attr] = value
233
+
234
+ return result
235
+
236
+ def to_str(self):
237
+ """Returns the string representation of the model"""
238
+ return pprint.pformat(self.to_dict())
239
+
240
+ def __repr__(self):
241
+ """For `print` and `pprint`"""
242
+ return self.to_str()
243
+
244
+ def __eq__(self, other):
245
+ """Returns true if both objects are equal"""
246
+ if not isinstance(other, TaskSummary):
247
+ return False
248
+
249
+ return self.to_dict() == other.to_dict()
250
+
251
+ def __ne__(self, other):
252
+ """Returns true if both objects are not equal"""
253
+ if not isinstance(other, TaskSummary):
254
+ return True
255
+
256
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,250 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class TaskTableConfig(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ Attributes:
30
+ openapi_types (dict): The key is attribute name
31
+ and the value is attribute type.
32
+ attribute_map (dict): The key is attribute name
33
+ and the value is json key in definition.
34
+ """
35
+ openapi_types = {
36
+ 'task_id': 'str',
37
+ 'function_name': 'str',
38
+ 'current_state': 'list[TaskState]',
39
+ 'text': 'str',
40
+ 'job_id': 'str',
41
+ 'exception_type': 'str'
42
+ }
43
+
44
+ attribute_map = {
45
+ 'task_id': 'task_id',
46
+ 'function_name': 'function_name',
47
+ 'current_state': 'current_state',
48
+ 'text': 'text',
49
+ 'job_id': 'job_id',
50
+ 'exception_type': 'exception_type'
51
+ }
52
+
53
+ def __init__(self, task_id=None, function_name=None, current_state=None, text=None, job_id=None, exception_type=None, local_vars_configuration=None): # noqa: E501
54
+ """TaskTableConfig - a model defined in OpenAPI""" # noqa: E501
55
+ if local_vars_configuration is None:
56
+ local_vars_configuration = Configuration()
57
+ self.local_vars_configuration = local_vars_configuration
58
+
59
+ self._task_id = None
60
+ self._function_name = None
61
+ self._current_state = None
62
+ self._text = None
63
+ self._job_id = None
64
+ self._exception_type = None
65
+ self.discriminator = None
66
+
67
+ if task_id is not None:
68
+ self.task_id = task_id
69
+ if function_name is not None:
70
+ self.function_name = function_name
71
+ if current_state is not None:
72
+ self.current_state = current_state
73
+ if text is not None:
74
+ self.text = text
75
+ if job_id is not None:
76
+ self.job_id = job_id
77
+ if exception_type is not None:
78
+ self.exception_type = exception_type
79
+
80
+ @property
81
+ def task_id(self):
82
+ """Gets the task_id of this TaskTableConfig. # noqa: E501
83
+
84
+
85
+ :return: The task_id of this TaskTableConfig. # noqa: E501
86
+ :rtype: str
87
+ """
88
+ return self._task_id
89
+
90
+ @task_id.setter
91
+ def task_id(self, task_id):
92
+ """Sets the task_id of this TaskTableConfig.
93
+
94
+
95
+ :param task_id: The task_id of this TaskTableConfig. # noqa: E501
96
+ :type: str
97
+ """
98
+
99
+ self._task_id = task_id
100
+
101
+ @property
102
+ def function_name(self):
103
+ """Gets the function_name of this TaskTableConfig. # noqa: E501
104
+
105
+
106
+ :return: The function_name of this TaskTableConfig. # noqa: E501
107
+ :rtype: str
108
+ """
109
+ return self._function_name
110
+
111
+ @function_name.setter
112
+ def function_name(self, function_name):
113
+ """Sets the function_name of this TaskTableConfig.
114
+
115
+
116
+ :param function_name: The function_name of this TaskTableConfig. # noqa: E501
117
+ :type: str
118
+ """
119
+
120
+ self._function_name = function_name
121
+
122
+ @property
123
+ def current_state(self):
124
+ """Gets the current_state of this TaskTableConfig. # noqa: E501
125
+
126
+
127
+ :return: The current_state of this TaskTableConfig. # noqa: E501
128
+ :rtype: list[TaskState]
129
+ """
130
+ return self._current_state
131
+
132
+ @current_state.setter
133
+ def current_state(self, current_state):
134
+ """Sets the current_state of this TaskTableConfig.
135
+
136
+
137
+ :param current_state: The current_state of this TaskTableConfig. # noqa: E501
138
+ :type: list[TaskState]
139
+ """
140
+
141
+ self._current_state = current_state
142
+
143
+ @property
144
+ def text(self):
145
+ """Gets the text of this TaskTableConfig. # noqa: E501
146
+
147
+
148
+ :return: The text of this TaskTableConfig. # noqa: E501
149
+ :rtype: str
150
+ """
151
+ return self._text
152
+
153
+ @text.setter
154
+ def text(self, text):
155
+ """Sets the text of this TaskTableConfig.
156
+
157
+
158
+ :param text: The text of this TaskTableConfig. # noqa: E501
159
+ :type: str
160
+ """
161
+
162
+ self._text = text
163
+
164
+ @property
165
+ def job_id(self):
166
+ """Gets the job_id of this TaskTableConfig. # noqa: E501
167
+
168
+
169
+ :return: The job_id of this TaskTableConfig. # noqa: E501
170
+ :rtype: str
171
+ """
172
+ return self._job_id
173
+
174
+ @job_id.setter
175
+ def job_id(self, job_id):
176
+ """Sets the job_id of this TaskTableConfig.
177
+
178
+
179
+ :param job_id: The job_id of this TaskTableConfig. # noqa: E501
180
+ :type: str
181
+ """
182
+
183
+ self._job_id = job_id
184
+
185
+ @property
186
+ def exception_type(self):
187
+ """Gets the exception_type of this TaskTableConfig. # noqa: E501
188
+
189
+
190
+ :return: The exception_type of this TaskTableConfig. # noqa: E501
191
+ :rtype: str
192
+ """
193
+ return self._exception_type
194
+
195
+ @exception_type.setter
196
+ def exception_type(self, exception_type):
197
+ """Sets the exception_type of this TaskTableConfig.
198
+
199
+
200
+ :param exception_type: The exception_type of this TaskTableConfig. # noqa: E501
201
+ :type: str
202
+ """
203
+
204
+ self._exception_type = exception_type
205
+
206
+ def to_dict(self):
207
+ """Returns the model properties as a dict"""
208
+ result = {}
209
+
210
+ for attr, _ in six.iteritems(self.openapi_types):
211
+ value = getattr(self, attr)
212
+ if isinstance(value, list):
213
+ result[attr] = list(map(
214
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
215
+ value
216
+ ))
217
+ elif hasattr(value, "to_dict"):
218
+ result[attr] = value.to_dict()
219
+ elif isinstance(value, dict):
220
+ result[attr] = dict(map(
221
+ lambda item: (item[0], item[1].to_dict())
222
+ if hasattr(item[1], "to_dict") else item,
223
+ value.items()
224
+ ))
225
+ else:
226
+ result[attr] = value
227
+
228
+ return result
229
+
230
+ def to_str(self):
231
+ """Returns the string representation of the model"""
232
+ return pprint.pformat(self.to_dict())
233
+
234
+ def __repr__(self):
235
+ """For `print` and `pprint`"""
236
+ return self.to_str()
237
+
238
+ def __eq__(self, other):
239
+ """Returns true if both objects are equal"""
240
+ if not isinstance(other, TaskTableConfig):
241
+ return False
242
+
243
+ return self.to_dict() == other.to_dict()
244
+
245
+ def __ne__(self, other):
246
+ """Returns true if both objects are not equal"""
247
+ if not isinstance(other, TaskTableConfig):
248
+ return True
249
+
250
+ return self.to_dict() != other.to_dict()