anyscale 0.26.1__py3-none-any.whl → 0.26.2__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.
- anyscale/_private/anyscale_client/anyscale_client.py +13 -1
- anyscale/_private/anyscale_client/common.py +1 -1
- anyscale/_private/docgen/models.md +2 -2
- anyscale/client/README.md +10 -0
- anyscale/client/openapi_client/__init__.py +9 -0
- anyscale/client/openapi_client/api/default_api.py +112 -0
- anyscale/client/openapi_client/models/__init__.py +9 -0
- anyscale/client/openapi_client/models/actor_status.py +100 -0
- anyscale/client/openapi_client/models/baseimagesenum.py +59 -1
- anyscale/client/openapi_client/models/job_details.py +173 -0
- anyscale/client/openapi_client/models/resource_alert_event_type.py +2 -1
- anyscale/client/openapi_client/models/run_attempt_status.py +103 -0
- anyscale/client/openapi_client/models/run_status.py +106 -0
- anyscale/client/openapi_client/models/supportedbaseimagesenum.py +59 -1
- anyscale/client/openapi_client/models/train_resources.py +121 -0
- anyscale/client/openapi_client/models/train_run.py +387 -0
- anyscale/client/openapi_client/models/train_run_attempt.py +308 -0
- anyscale/client/openapi_client/models/train_worker.py +363 -0
- anyscale/client/openapi_client/models/trainrun_list_response.py +147 -0
- anyscale/sdk/anyscale_client/models/baseimagesenum.py +59 -1
- anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +59 -1
- anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
- anyscale/version.py +1 -1
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/METADATA +1 -1
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/RECORD +30 -21
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/LICENSE +0 -0
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/NOTICE +0 -0
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/WHEEL +0 -0
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/entry_points.txt +0 -0
- {anyscale-0.26.1.dist-info → anyscale-0.26.2.dist-info}/top_level.txt +0 -0
anyscale/client/README.md
CHANGED
@@ -291,6 +291,7 @@ Class | Method | HTTP request | Description
|
|
291
291
|
*DefaultApi* | [**get_templatized_cluster_environments_api_v2_application_templates_templatized_get**](docs/DefaultApi.md#get_templatized_cluster_environments_api_v2_application_templates_templatized_get) | **GET** /api/v2/application_templates/templatized/ | Get Templatized Cluster Environments
|
292
292
|
*DefaultApi* | [**get_templatized_compute_configs_api_v2_compute_templates_templatized_cloud_id_get**](docs/DefaultApi.md#get_templatized_compute_configs_api_v2_compute_templates_templatized_cloud_id_get) | **GET** /api/v2/compute_templates/templatized/{cloud_id} | Get Templatized Compute Configs
|
293
293
|
*DefaultApi* | [**get_total_usage_api_v2_aggregated_instance_usage_get**](docs/DefaultApi.md#get_total_usage_api_v2_aggregated_instance_usage_get) | **GET** /api/v2/aggregated_instance_usage/ | Get Total Usage
|
294
|
+
*DefaultApi* | [**get_train_runs_api_v2_train_runs_get**](docs/DefaultApi.md#get_train_runs_api_v2_train_runs_get) | **GET** /api/v2/train_runs/ | Get Train Runs
|
294
295
|
*DefaultApi* | [**get_user_info_api_v2_userinfo_get**](docs/DefaultApi.md#get_user_info_api_v2_userinfo_get) | **GET** /api/v2/userinfo/ | Get User Info
|
295
296
|
*DefaultApi* | [**get_workspace_api_v2_experimental_workspaces_workspace_id_get**](docs/DefaultApi.md#get_workspace_api_v2_experimental_workspaces_workspace_id_get) | **GET** /api/v2/experimental_workspaces/{workspace_id} | Get Workspace
|
296
297
|
*DefaultApi* | [**get_workspace_dataplane_artifacts_api_v2_experimental_workspaces_workspace_id_dataplane_artifacts_get**](docs/DefaultApi.md#get_workspace_dataplane_artifacts_api_v2_experimental_workspaces_workspace_id_dataplane_artifacts_get) | **GET** /api/v2/experimental_workspaces/{workspace_id}/dataplane_artifacts | Get Workspace Dataplane Artifacts
|
@@ -437,6 +438,7 @@ Class | Method | HTTP request | Description
|
|
437
438
|
- [AWSCredentials](docs/AWSCredentials.md)
|
438
439
|
- [AWSMemoryDBClusterConfig](docs/AWSMemoryDBClusterConfig.md)
|
439
440
|
- [AccessConfig](docs/AccessConfig.md)
|
441
|
+
- [ActorStatus](docs/ActorStatus.md)
|
440
442
|
- [AdminCreateUser](docs/AdminCreateUser.md)
|
441
443
|
- [AdminCreatedUser](docs/AdminCreatedUser.md)
|
442
444
|
- [AdmincreateduserListResponse](docs/AdmincreateduserListResponse.md)
|
@@ -765,6 +767,7 @@ Class | Method | HTTP request | Description
|
|
765
767
|
- [InvoiceStatus](docs/InvoiceStatus.md)
|
766
768
|
- [InvoicesQuery](docs/InvoicesQuery.md)
|
767
769
|
- [JobAccess](docs/JobAccess.md)
|
770
|
+
- [JobDetails](docs/JobDetails.md)
|
768
771
|
- [JobQueue](docs/JobQueue.md)
|
769
772
|
- [JobQueueConfig](docs/JobQueueConfig.md)
|
770
773
|
- [JobQueueExecutionMode](docs/JobQueueExecutionMode.md)
|
@@ -937,6 +940,8 @@ Class | Method | HTTP request | Description
|
|
937
940
|
- [Resources](docs/Resources.md)
|
938
941
|
- [RollbackServiceModel](docs/RollbackServiceModel.md)
|
939
942
|
- [RolloutStrategy](docs/RolloutStrategy.md)
|
943
|
+
- [RunAttemptStatus](docs/RunAttemptStatus.md)
|
944
|
+
- [RunStatus](docs/RunStatus.md)
|
940
945
|
- [S3DownloadLocation](docs/S3DownloadLocation.md)
|
941
946
|
- [SSOLoginInfo](docs/SSOLoginInfo.md)
|
942
947
|
- [SUPPORTEDBASEIMAGESENUM](docs/SUPPORTEDBASEIMAGESENUM.md)
|
@@ -1022,6 +1027,11 @@ Class | Method | HTTP request | Description
|
|
1022
1027
|
- [TimestampedlogsoutputResponse](docs/TimestampedlogsoutputResponse.md)
|
1023
1028
|
- [Tool](docs/Tool.md)
|
1024
1029
|
- [TracingConfig](docs/TracingConfig.md)
|
1030
|
+
- [TrainResources](docs/TrainResources.md)
|
1031
|
+
- [TrainRun](docs/TrainRun.md)
|
1032
|
+
- [TrainRunAttempt](docs/TrainRunAttempt.md)
|
1033
|
+
- [TrainWorker](docs/TrainWorker.md)
|
1034
|
+
- [TrainrunListResponse](docs/TrainrunListResponse.md)
|
1025
1035
|
- [TryLoginEmailResponse](docs/TryLoginEmailResponse.md)
|
1026
1036
|
- [TryloginemailresponseResponse](docs/TryloginemailresponseResponse.md)
|
1027
1037
|
- [UXInstance](docs/UXInstance.md)
|
@@ -31,6 +31,7 @@ from openapi_client.exceptions import ApiException
|
|
31
31
|
from openapi_client.models.aws_credentials import AWSCredentials
|
32
32
|
from openapi_client.models.aws_memory_db_cluster_config import AWSMemoryDBClusterConfig
|
33
33
|
from openapi_client.models.access_config import AccessConfig
|
34
|
+
from openapi_client.models.actor_status import ActorStatus
|
34
35
|
from openapi_client.models.admin_create_user import AdminCreateUser
|
35
36
|
from openapi_client.models.admin_created_user import AdminCreatedUser
|
36
37
|
from openapi_client.models.admincreateduser_list_response import AdmincreateduserListResponse
|
@@ -359,6 +360,7 @@ from openapi_client.models.invoice_list_response import InvoiceListResponse
|
|
359
360
|
from openapi_client.models.invoice_status import InvoiceStatus
|
360
361
|
from openapi_client.models.invoices_query import InvoicesQuery
|
361
362
|
from openapi_client.models.job_access import JobAccess
|
363
|
+
from openapi_client.models.job_details import JobDetails
|
362
364
|
from openapi_client.models.job_queue import JobQueue
|
363
365
|
from openapi_client.models.job_queue_config import JobQueueConfig
|
364
366
|
from openapi_client.models.job_queue_execution_mode import JobQueueExecutionMode
|
@@ -531,6 +533,8 @@ from openapi_client.models.resourcequota_response import ResourcequotaResponse
|
|
531
533
|
from openapi_client.models.resources import Resources
|
532
534
|
from openapi_client.models.rollback_service_model import RollbackServiceModel
|
533
535
|
from openapi_client.models.rollout_strategy import RolloutStrategy
|
536
|
+
from openapi_client.models.run_attempt_status import RunAttemptStatus
|
537
|
+
from openapi_client.models.run_status import RunStatus
|
534
538
|
from openapi_client.models.s3_download_location import S3DownloadLocation
|
535
539
|
from openapi_client.models.sso_login_info import SSOLoginInfo
|
536
540
|
from openapi_client.models.supportedbaseimagesenum import SUPPORTEDBASEIMAGESENUM
|
@@ -616,6 +620,11 @@ from openapi_client.models.timestamped_logs_output import TimestampedLogsOutput
|
|
616
620
|
from openapi_client.models.timestampedlogsoutput_response import TimestampedlogsoutputResponse
|
617
621
|
from openapi_client.models.tool import Tool
|
618
622
|
from openapi_client.models.tracing_config import TracingConfig
|
623
|
+
from openapi_client.models.train_resources import TrainResources
|
624
|
+
from openapi_client.models.train_run import TrainRun
|
625
|
+
from openapi_client.models.train_run_attempt import TrainRunAttempt
|
626
|
+
from openapi_client.models.train_worker import TrainWorker
|
627
|
+
from openapi_client.models.trainrun_list_response import TrainrunListResponse
|
619
628
|
from openapi_client.models.try_login_email_response import TryLoginEmailResponse
|
620
629
|
from openapi_client.models.tryloginemailresponse_response import TryloginemailresponseResponse
|
621
630
|
from openapi_client.models.ux_instance import UXInstance
|
@@ -25399,6 +25399,118 @@ class DefaultApi(object):
|
|
25399
25399
|
_request_timeout=local_var_params.get('_request_timeout'),
|
25400
25400
|
collection_formats=collection_formats)
|
25401
25401
|
|
25402
|
+
def get_train_runs_api_v2_train_runs_get(self, cluster_id, **kwargs): # noqa: E501
|
25403
|
+
"""Get Train Runs # noqa: E501
|
25404
|
+
|
25405
|
+
This method makes a synchronous HTTP request by default. To make an
|
25406
|
+
asynchronous HTTP request, please pass async_req=True
|
25407
|
+
>>> thread = api.get_train_runs_api_v2_train_runs_get(cluster_id, async_req=True)
|
25408
|
+
>>> result = thread.get()
|
25409
|
+
|
25410
|
+
:param async_req bool: execute request asynchronously
|
25411
|
+
:param str cluster_id: (required)
|
25412
|
+
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
25413
|
+
be returned without reading/decoding response
|
25414
|
+
data. Default is True.
|
25415
|
+
:param _request_timeout: timeout setting for this request. If one
|
25416
|
+
number provided, it will be total request
|
25417
|
+
timeout. It can also be a pair (tuple) of
|
25418
|
+
(connection, read) timeouts.
|
25419
|
+
:return: TrainrunListResponse
|
25420
|
+
If the method is called asynchronously,
|
25421
|
+
returns the request thread.
|
25422
|
+
"""
|
25423
|
+
kwargs['_return_http_data_only'] = True
|
25424
|
+
return self.get_train_runs_api_v2_train_runs_get_with_http_info(cluster_id, **kwargs) # noqa: E501
|
25425
|
+
|
25426
|
+
def get_train_runs_api_v2_train_runs_get_with_http_info(self, cluster_id, **kwargs): # noqa: E501
|
25427
|
+
"""Get Train Runs # noqa: E501
|
25428
|
+
|
25429
|
+
This method makes a synchronous HTTP request by default. To make an
|
25430
|
+
asynchronous HTTP request, please pass async_req=True
|
25431
|
+
>>> thread = api.get_train_runs_api_v2_train_runs_get_with_http_info(cluster_id, async_req=True)
|
25432
|
+
>>> result = thread.get()
|
25433
|
+
|
25434
|
+
:param async_req bool: execute request asynchronously
|
25435
|
+
:param str cluster_id: (required)
|
25436
|
+
:param _return_http_data_only: response data without head status code
|
25437
|
+
and headers
|
25438
|
+
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
25439
|
+
be returned without reading/decoding response
|
25440
|
+
data. Default is True.
|
25441
|
+
:param _request_timeout: timeout setting for this request. If one
|
25442
|
+
number provided, it will be total request
|
25443
|
+
timeout. It can also be a pair (tuple) of
|
25444
|
+
(connection, read) timeouts.
|
25445
|
+
:return: tuple(TrainrunListResponse, status_code(int), headers(HTTPHeaderDict))
|
25446
|
+
If the method is called asynchronously,
|
25447
|
+
returns the request thread.
|
25448
|
+
"""
|
25449
|
+
|
25450
|
+
local_var_params = locals()
|
25451
|
+
|
25452
|
+
all_params = [
|
25453
|
+
'cluster_id'
|
25454
|
+
]
|
25455
|
+
all_params.extend(
|
25456
|
+
[
|
25457
|
+
'async_req',
|
25458
|
+
'_return_http_data_only',
|
25459
|
+
'_preload_content',
|
25460
|
+
'_request_timeout'
|
25461
|
+
]
|
25462
|
+
)
|
25463
|
+
|
25464
|
+
for key, val in six.iteritems(local_var_params['kwargs']):
|
25465
|
+
if key not in all_params:
|
25466
|
+
raise ApiTypeError(
|
25467
|
+
"Got an unexpected keyword argument '%s'"
|
25468
|
+
" to method get_train_runs_api_v2_train_runs_get" % key
|
25469
|
+
)
|
25470
|
+
local_var_params[key] = val
|
25471
|
+
del local_var_params['kwargs']
|
25472
|
+
# verify the required parameter 'cluster_id' is set
|
25473
|
+
if self.api_client.client_side_validation and ('cluster_id' not in local_var_params or # noqa: E501
|
25474
|
+
local_var_params['cluster_id'] is None): # noqa: E501
|
25475
|
+
raise ApiValueError("Missing the required parameter `cluster_id` when calling `get_train_runs_api_v2_train_runs_get`") # noqa: E501
|
25476
|
+
|
25477
|
+
collection_formats = {}
|
25478
|
+
|
25479
|
+
path_params = {}
|
25480
|
+
|
25481
|
+
query_params = []
|
25482
|
+
if 'cluster_id' in local_var_params and local_var_params['cluster_id'] is not None: # noqa: E501
|
25483
|
+
query_params.append(('cluster_id', local_var_params['cluster_id'])) # noqa: E501
|
25484
|
+
|
25485
|
+
header_params = {}
|
25486
|
+
|
25487
|
+
form_params = []
|
25488
|
+
local_var_files = {}
|
25489
|
+
|
25490
|
+
body_params = None
|
25491
|
+
# HTTP header `Accept`
|
25492
|
+
header_params['Accept'] = self.api_client.select_header_accept(
|
25493
|
+
['application/json']) # noqa: E501
|
25494
|
+
|
25495
|
+
# Authentication setting
|
25496
|
+
auth_settings = [] # noqa: E501
|
25497
|
+
|
25498
|
+
return self.api_client.call_api(
|
25499
|
+
'/api/v2/train_runs/', 'GET',
|
25500
|
+
path_params,
|
25501
|
+
query_params,
|
25502
|
+
header_params,
|
25503
|
+
body=body_params,
|
25504
|
+
post_params=form_params,
|
25505
|
+
files=local_var_files,
|
25506
|
+
response_type='TrainrunListResponse', # noqa: E501
|
25507
|
+
auth_settings=auth_settings,
|
25508
|
+
async_req=local_var_params.get('async_req'),
|
25509
|
+
_return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
|
25510
|
+
_preload_content=local_var_params.get('_preload_content', True),
|
25511
|
+
_request_timeout=local_var_params.get('_request_timeout'),
|
25512
|
+
collection_formats=collection_formats)
|
25513
|
+
|
25402
25514
|
def get_user_info_api_v2_userinfo_get(self, **kwargs): # noqa: E501
|
25403
25515
|
"""Get User Info # noqa: E501
|
25404
25516
|
|
@@ -17,6 +17,7 @@ from __future__ import absolute_import
|
|
17
17
|
from openapi_client.models.aws_credentials import AWSCredentials
|
18
18
|
from openapi_client.models.aws_memory_db_cluster_config import AWSMemoryDBClusterConfig
|
19
19
|
from openapi_client.models.access_config import AccessConfig
|
20
|
+
from openapi_client.models.actor_status import ActorStatus
|
20
21
|
from openapi_client.models.admin_create_user import AdminCreateUser
|
21
22
|
from openapi_client.models.admin_created_user import AdminCreatedUser
|
22
23
|
from openapi_client.models.admincreateduser_list_response import AdmincreateduserListResponse
|
@@ -345,6 +346,7 @@ from openapi_client.models.invoice_list_response import InvoiceListResponse
|
|
345
346
|
from openapi_client.models.invoice_status import InvoiceStatus
|
346
347
|
from openapi_client.models.invoices_query import InvoicesQuery
|
347
348
|
from openapi_client.models.job_access import JobAccess
|
349
|
+
from openapi_client.models.job_details import JobDetails
|
348
350
|
from openapi_client.models.job_queue import JobQueue
|
349
351
|
from openapi_client.models.job_queue_config import JobQueueConfig
|
350
352
|
from openapi_client.models.job_queue_execution_mode import JobQueueExecutionMode
|
@@ -517,6 +519,8 @@ from openapi_client.models.resourcequota_response import ResourcequotaResponse
|
|
517
519
|
from openapi_client.models.resources import Resources
|
518
520
|
from openapi_client.models.rollback_service_model import RollbackServiceModel
|
519
521
|
from openapi_client.models.rollout_strategy import RolloutStrategy
|
522
|
+
from openapi_client.models.run_attempt_status import RunAttemptStatus
|
523
|
+
from openapi_client.models.run_status import RunStatus
|
520
524
|
from openapi_client.models.s3_download_location import S3DownloadLocation
|
521
525
|
from openapi_client.models.sso_login_info import SSOLoginInfo
|
522
526
|
from openapi_client.models.supportedbaseimagesenum import SUPPORTEDBASEIMAGESENUM
|
@@ -602,6 +606,11 @@ from openapi_client.models.timestamped_logs_output import TimestampedLogsOutput
|
|
602
606
|
from openapi_client.models.timestampedlogsoutput_response import TimestampedlogsoutputResponse
|
603
607
|
from openapi_client.models.tool import Tool
|
604
608
|
from openapi_client.models.tracing_config import TracingConfig
|
609
|
+
from openapi_client.models.train_resources import TrainResources
|
610
|
+
from openapi_client.models.train_run import TrainRun
|
611
|
+
from openapi_client.models.train_run_attempt import TrainRunAttempt
|
612
|
+
from openapi_client.models.train_worker import TrainWorker
|
613
|
+
from openapi_client.models.trainrun_list_response import TrainrunListResponse
|
605
614
|
from openapi_client.models.try_login_email_response import TryLoginEmailResponse
|
606
615
|
from openapi_client.models.tryloginemailresponse_response import TryloginemailresponseResponse
|
607
616
|
from openapi_client.models.ux_instance import UXInstance
|
@@ -0,0 +1,100 @@
|
|
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 ActorStatus(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
|
+
ALIVE = "ALIVE"
|
32
|
+
DEAD = "DEAD"
|
33
|
+
|
34
|
+
allowable_values = [ALIVE, DEAD] # noqa: E501
|
35
|
+
|
36
|
+
"""
|
37
|
+
Attributes:
|
38
|
+
openapi_types (dict): The key is attribute name
|
39
|
+
and the value is attribute type.
|
40
|
+
attribute_map (dict): The key is attribute name
|
41
|
+
and the value is json key in definition.
|
42
|
+
"""
|
43
|
+
openapi_types = {
|
44
|
+
}
|
45
|
+
|
46
|
+
attribute_map = {
|
47
|
+
}
|
48
|
+
|
49
|
+
def __init__(self, local_vars_configuration=None): # noqa: E501
|
50
|
+
"""ActorStatus - a model defined in OpenAPI""" # noqa: E501
|
51
|
+
if local_vars_configuration is None:
|
52
|
+
local_vars_configuration = Configuration()
|
53
|
+
self.local_vars_configuration = local_vars_configuration
|
54
|
+
self.discriminator = None
|
55
|
+
|
56
|
+
def to_dict(self):
|
57
|
+
"""Returns the model properties as a dict"""
|
58
|
+
result = {}
|
59
|
+
|
60
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
61
|
+
value = getattr(self, attr)
|
62
|
+
if isinstance(value, list):
|
63
|
+
result[attr] = list(map(
|
64
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
65
|
+
value
|
66
|
+
))
|
67
|
+
elif hasattr(value, "to_dict"):
|
68
|
+
result[attr] = value.to_dict()
|
69
|
+
elif isinstance(value, dict):
|
70
|
+
result[attr] = dict(map(
|
71
|
+
lambda item: (item[0], item[1].to_dict())
|
72
|
+
if hasattr(item[1], "to_dict") else item,
|
73
|
+
value.items()
|
74
|
+
))
|
75
|
+
else:
|
76
|
+
result[attr] = value
|
77
|
+
|
78
|
+
return result
|
79
|
+
|
80
|
+
def to_str(self):
|
81
|
+
"""Returns the string representation of the model"""
|
82
|
+
return pprint.pformat(self.to_dict())
|
83
|
+
|
84
|
+
def __repr__(self):
|
85
|
+
"""For `print` and `pprint`"""
|
86
|
+
return self.to_str()
|
87
|
+
|
88
|
+
def __eq__(self, other):
|
89
|
+
"""Returns true if both objects are equal"""
|
90
|
+
if not isinstance(other, ActorStatus):
|
91
|
+
return False
|
92
|
+
|
93
|
+
return self.to_dict() == other.to_dict()
|
94
|
+
|
95
|
+
def __ne__(self, other):
|
96
|
+
"""Returns true if both objects are not equal"""
|
97
|
+
if not isinstance(other, ActorStatus):
|
98
|
+
return True
|
99
|
+
|
100
|
+
return self.to_dict() != other.to_dict()
|