anyscale 0.26.35__py3-none-any.whl → 0.26.36__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.
@@ -990,6 +990,7 @@ Name | Type | Description | Notes
990
990
  **cluster_environment_build_id** | **str** | The id of the cluster environment build that will be used to create cluster associated with the queue. | [optional] [default to null]
991
991
  **max_concurrency** | **int** | Max number of jobs to be run concurrently. Defaults to 1, ie running no more than 1 job at a time. | [optional] [default to 1]
992
992
  **idle_timeout_sec** | **int** | Max period of time queue will be accepting new jobs, before being sealed off and its associated cluster being shutdown | [default to null]
993
+ **auto_termination_threshold_job_count** | **int** | Maximum number of jobs the cluster can run before it becomes eligible for termination. | [optional] [default to null]
993
994
 
994
995
  ## JobRunType
995
996
 
anyscale/client/README.md CHANGED
@@ -338,6 +338,7 @@ Class | Method | HTTP request | Description
338
338
  *DefaultApi* | [**terminate_system_cluster_api_v2_system_workload_cloud_id_terminate_post**](docs/DefaultApi.md#terminate_system_cluster_api_v2_system_workload_cloud_id_terminate_post) | **POST** /api/v2/system_workload/{cloud_id}/terminate | Terminate System Cluster
339
339
  *DefaultApi* | [**test_saml_acs_api_v2_organizations_organization_id_test_saml_acs_post**](docs/DefaultApi.md#test_saml_acs_api_v2_organizations_organization_id_test_saml_acs_post) | **POST** /api/v2/organizations/{organization_id}/test_saml_acs | Test Saml Acs
340
340
  *DefaultApi* | [**toggle_instance_usage_budget_is_enabled_api_v2_instance_usage_budgets_instance_usage_budget_id_toggle_is_enabled_post**](docs/DefaultApi.md#toggle_instance_usage_budget_is_enabled_api_v2_instance_usage_budgets_instance_usage_budget_id_toggle_is_enabled_post) | **POST** /api/v2/instance_usage_budgets/{instance_usage_budget_id}/toggle_is_enabled | Toggle Instance Usage Budget Is Enabled
341
+ *DefaultApi* | [**toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put**](docs/DefaultApi.md#toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put) | **PUT** /api/v2/clouds/{cloud_id}/toggle_public_cloud | Toggle Public Cloud
341
342
  *DefaultApi* | [**trigger_cron_job_api_v2_experimental_cron_jobs_cron_job_id_trigger_post**](docs/DefaultApi.md#trigger_cron_job_api_v2_experimental_cron_jobs_cron_job_id_trigger_post) | **POST** /api/v2/experimental_cron_jobs/{cron_job_id}/trigger | Trigger Cron Job
342
343
  *DefaultApi* | [**try_claim_cloud_api_v2_aioa_cloud_waitlist_claim_cloud_post**](docs/DefaultApi.md#try_claim_cloud_api_v2_aioa_cloud_waitlist_claim_cloud_post) | **POST** /api/v2/aioa_cloud_waitlist/claim_cloud | Try Claim Cloud
343
344
  *DefaultApi* | [**try_login_api_v2_users_try_login_post**](docs/DefaultApi.md#try_login_api_v2_users_try_login_post) | **POST** /api/v2/users/try-login | Try Login
@@ -556,6 +557,7 @@ Class | Method | HTTP request | Description
556
557
  - [CreditType](docs/CreditType.md)
557
558
  - [CreditsV2](docs/CreditsV2.md)
558
559
  - [CustomerAlertStatus](docs/CustomerAlertStatus.md)
560
+ - [DashboardPanel](docs/DashboardPanel.md)
559
561
  - [DataplaneServices](docs/DataplaneServices.md)
560
562
  - [Dataset](docs/Dataset.md)
561
563
  - [DatasetDag](docs/DatasetDag.md)
@@ -215,6 +215,7 @@ from openapi_client.models.credit_record_credit_v2 import CreditRecordCreditV2
215
215
  from openapi_client.models.credit_type import CreditType
216
216
  from openapi_client.models.credits_v2 import CreditsV2
217
217
  from openapi_client.models.customer_alert_status import CustomerAlertStatus
218
+ from openapi_client.models.dashboard_panel import DashboardPanel
218
219
  from openapi_client.models.dataplane_services import DataplaneServices
219
220
  from openapi_client.models.dataset import Dataset
220
221
  from openapi_client.models.dataset_dag import DatasetDag
@@ -31864,6 +31864,118 @@ class DefaultApi(object):
31864
31864
  _request_timeout=local_var_params.get('_request_timeout'),
31865
31865
  collection_formats=collection_formats)
31866
31866
 
31867
+ def toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put(self, cloud_id, **kwargs): # noqa: E501
31868
+ """Toggle Public Cloud # noqa: E501
31869
+
31870
+ This method makes a synchronous HTTP request by default. To make an
31871
+ asynchronous HTTP request, please pass async_req=True
31872
+ >>> thread = api.toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put(cloud_id, async_req=True)
31873
+ >>> result = thread.get()
31874
+
31875
+ :param async_req bool: execute request asynchronously
31876
+ :param str cloud_id: (required)
31877
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
31878
+ be returned without reading/decoding response
31879
+ data. Default is True.
31880
+ :param _request_timeout: timeout setting for this request. If one
31881
+ number provided, it will be total request
31882
+ timeout. It can also be a pair (tuple) of
31883
+ (connection, read) timeouts.
31884
+ :return: object
31885
+ If the method is called asynchronously,
31886
+ returns the request thread.
31887
+ """
31888
+ kwargs['_return_http_data_only'] = True
31889
+ return self.toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put_with_http_info(cloud_id, **kwargs) # noqa: E501
31890
+
31891
+ def toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put_with_http_info(self, cloud_id, **kwargs): # noqa: E501
31892
+ """Toggle Public Cloud # noqa: E501
31893
+
31894
+ This method makes a synchronous HTTP request by default. To make an
31895
+ asynchronous HTTP request, please pass async_req=True
31896
+ >>> thread = api.toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put_with_http_info(cloud_id, async_req=True)
31897
+ >>> result = thread.get()
31898
+
31899
+ :param async_req bool: execute request asynchronously
31900
+ :param str cloud_id: (required)
31901
+ :param _return_http_data_only: response data without head status code
31902
+ and headers
31903
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
31904
+ be returned without reading/decoding response
31905
+ data. Default is True.
31906
+ :param _request_timeout: timeout setting for this request. If one
31907
+ number provided, it will be total request
31908
+ timeout. It can also be a pair (tuple) of
31909
+ (connection, read) timeouts.
31910
+ :return: tuple(object, status_code(int), headers(HTTPHeaderDict))
31911
+ If the method is called asynchronously,
31912
+ returns the request thread.
31913
+ """
31914
+
31915
+ local_var_params = locals()
31916
+
31917
+ all_params = [
31918
+ 'cloud_id'
31919
+ ]
31920
+ all_params.extend(
31921
+ [
31922
+ 'async_req',
31923
+ '_return_http_data_only',
31924
+ '_preload_content',
31925
+ '_request_timeout'
31926
+ ]
31927
+ )
31928
+
31929
+ for key, val in six.iteritems(local_var_params['kwargs']):
31930
+ if key not in all_params:
31931
+ raise ApiTypeError(
31932
+ "Got an unexpected keyword argument '%s'"
31933
+ " to method toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put" % key
31934
+ )
31935
+ local_var_params[key] = val
31936
+ del local_var_params['kwargs']
31937
+ # verify the required parameter 'cloud_id' is set
31938
+ if self.api_client.client_side_validation and ('cloud_id' not in local_var_params or # noqa: E501
31939
+ local_var_params['cloud_id'] is None): # noqa: E501
31940
+ raise ApiValueError("Missing the required parameter `cloud_id` when calling `toggle_public_cloud_api_v2_clouds_cloud_id_toggle_public_cloud_put`") # noqa: E501
31941
+
31942
+ collection_formats = {}
31943
+
31944
+ path_params = {}
31945
+ if 'cloud_id' in local_var_params:
31946
+ path_params['cloud_id'] = local_var_params['cloud_id'] # noqa: E501
31947
+
31948
+ query_params = []
31949
+
31950
+ header_params = {}
31951
+
31952
+ form_params = []
31953
+ local_var_files = {}
31954
+
31955
+ body_params = None
31956
+ # HTTP header `Accept`
31957
+ header_params['Accept'] = self.api_client.select_header_accept(
31958
+ ['application/json']) # noqa: E501
31959
+
31960
+ # Authentication setting
31961
+ auth_settings = [] # noqa: E501
31962
+
31963
+ return self.api_client.call_api(
31964
+ '/api/v2/clouds/{cloud_id}/toggle_public_cloud', 'PUT',
31965
+ path_params,
31966
+ query_params,
31967
+ header_params,
31968
+ body=body_params,
31969
+ post_params=form_params,
31970
+ files=local_var_files,
31971
+ response_type='object', # noqa: E501
31972
+ auth_settings=auth_settings,
31973
+ async_req=local_var_params.get('async_req'),
31974
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
31975
+ _preload_content=local_var_params.get('_preload_content', True),
31976
+ _request_timeout=local_var_params.get('_request_timeout'),
31977
+ collection_formats=collection_formats)
31978
+
31867
31979
  def trigger_cron_job_api_v2_experimental_cron_jobs_cron_job_id_trigger_post(self, cron_job_id, **kwargs): # noqa: E501
31868
31980
  """Trigger Cron Job # noqa: E501
31869
31981
 
@@ -201,6 +201,7 @@ from openapi_client.models.credit_record_credit_v2 import CreditRecordCreditV2
201
201
  from openapi_client.models.credit_type import CreditType
202
202
  from openapi_client.models.credits_v2 import CreditsV2
203
203
  from openapi_client.models.customer_alert_status import CustomerAlertStatus
204
+ from openapi_client.models.dashboard_panel import DashboardPanel
204
205
  from openapi_client.models.dataplane_services import DataplaneServices
205
206
  from openapi_client.models.dataset import Dataset
206
207
  from openapi_client.models.dataset_dag import DatasetDag
@@ -39,6 +39,7 @@ class CreateJobQueueRequests(object):
39
39
  'cluster_environment_build_id': 'str',
40
40
  'max_concurrency': 'int',
41
41
  'idle_timeout_sec': 'int',
42
+ 'auto_termination_threshold_job_count': 'int',
42
43
  'project_id': 'str'
43
44
  }
44
45
 
@@ -49,10 +50,11 @@ class CreateJobQueueRequests(object):
49
50
  'cluster_environment_build_id': 'cluster_environment_build_id',
50
51
  'max_concurrency': 'max_concurrency',
51
52
  'idle_timeout_sec': 'idle_timeout_sec',
53
+ 'auto_termination_threshold_job_count': 'auto_termination_threshold_job_count',
52
54
  'project_id': 'project_id'
53
55
  }
54
56
 
55
- def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, project_id=None, local_vars_configuration=None): # noqa: E501
57
+ def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, auto_termination_threshold_job_count=None, project_id=None, local_vars_configuration=None): # noqa: E501
56
58
  """CreateJobQueueRequests - a model defined in OpenAPI""" # noqa: E501
57
59
  if local_vars_configuration is None:
58
60
  local_vars_configuration = Configuration()
@@ -64,6 +66,7 @@ class CreateJobQueueRequests(object):
64
66
  self._cluster_environment_build_id = None
65
67
  self._max_concurrency = None
66
68
  self._idle_timeout_sec = None
69
+ self._auto_termination_threshold_job_count = None
67
70
  self._project_id = None
68
71
  self.discriminator = None
69
72
 
@@ -76,6 +79,8 @@ class CreateJobQueueRequests(object):
76
79
  if max_concurrency is not None:
77
80
  self.max_concurrency = max_concurrency
78
81
  self.idle_timeout_sec = idle_timeout_sec
82
+ if auto_termination_threshold_job_count is not None:
83
+ self.auto_termination_threshold_job_count = auto_termination_threshold_job_count
79
84
  self.project_id = project_id
80
85
 
81
86
  @property
@@ -222,6 +227,29 @@ class CreateJobQueueRequests(object):
222
227
 
223
228
  self._idle_timeout_sec = idle_timeout_sec
224
229
 
230
+ @property
231
+ def auto_termination_threshold_job_count(self):
232
+ """Gets the auto_termination_threshold_job_count of this CreateJobQueueRequests. # noqa: E501
233
+
234
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
235
+
236
+ :return: The auto_termination_threshold_job_count of this CreateJobQueueRequests. # noqa: E501
237
+ :rtype: int
238
+ """
239
+ return self._auto_termination_threshold_job_count
240
+
241
+ @auto_termination_threshold_job_count.setter
242
+ def auto_termination_threshold_job_count(self, auto_termination_threshold_job_count):
243
+ """Sets the auto_termination_threshold_job_count of this CreateJobQueueRequests.
244
+
245
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
246
+
247
+ :param auto_termination_threshold_job_count: The auto_termination_threshold_job_count of this CreateJobQueueRequests. # noqa: E501
248
+ :type: int
249
+ """
250
+
251
+ self._auto_termination_threshold_job_count = auto_termination_threshold_job_count
252
+
225
253
  @property
226
254
  def project_id(self):
227
255
  """Gets the project_id of this CreateJobQueueRequests. # noqa: E501
@@ -0,0 +1,148 @@
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 DashboardPanel(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
+ 'id': 'str',
37
+ 'title': 'str'
38
+ }
39
+
40
+ attribute_map = {
41
+ 'id': 'id',
42
+ 'title': 'title'
43
+ }
44
+
45
+ def __init__(self, id=None, title=None, local_vars_configuration=None): # noqa: E501
46
+ """DashboardPanel - a model defined in OpenAPI""" # noqa: E501
47
+ if local_vars_configuration is None:
48
+ local_vars_configuration = Configuration()
49
+ self.local_vars_configuration = local_vars_configuration
50
+
51
+ self._id = None
52
+ self._title = None
53
+ self.discriminator = None
54
+
55
+ self.id = id
56
+ self.title = title
57
+
58
+ @property
59
+ def id(self):
60
+ """Gets the id of this DashboardPanel. # noqa: E501
61
+
62
+
63
+ :return: The id of this DashboardPanel. # noqa: E501
64
+ :rtype: str
65
+ """
66
+ return self._id
67
+
68
+ @id.setter
69
+ def id(self, id):
70
+ """Sets the id of this DashboardPanel.
71
+
72
+
73
+ :param id: The id of this DashboardPanel. # noqa: E501
74
+ :type: str
75
+ """
76
+ if self.local_vars_configuration.client_side_validation and id is None: # noqa: E501
77
+ raise ValueError("Invalid value for `id`, must not be `None`") # noqa: E501
78
+
79
+ self._id = id
80
+
81
+ @property
82
+ def title(self):
83
+ """Gets the title of this DashboardPanel. # noqa: E501
84
+
85
+
86
+ :return: The title of this DashboardPanel. # noqa: E501
87
+ :rtype: str
88
+ """
89
+ return self._title
90
+
91
+ @title.setter
92
+ def title(self, title):
93
+ """Sets the title of this DashboardPanel.
94
+
95
+
96
+ :param title: The title of this DashboardPanel. # noqa: E501
97
+ :type: str
98
+ """
99
+ if self.local_vars_configuration.client_side_validation and title is None: # noqa: E501
100
+ raise ValueError("Invalid value for `title`, must not be `None`") # noqa: E501
101
+
102
+ self._title = title
103
+
104
+ def to_dict(self):
105
+ """Returns the model properties as a dict"""
106
+ result = {}
107
+
108
+ for attr, _ in six.iteritems(self.openapi_types):
109
+ value = getattr(self, attr)
110
+ if isinstance(value, list):
111
+ result[attr] = list(map(
112
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
113
+ value
114
+ ))
115
+ elif hasattr(value, "to_dict"):
116
+ result[attr] = value.to_dict()
117
+ elif isinstance(value, dict):
118
+ result[attr] = dict(map(
119
+ lambda item: (item[0], item[1].to_dict())
120
+ if hasattr(item[1], "to_dict") else item,
121
+ value.items()
122
+ ))
123
+ else:
124
+ result[attr] = value
125
+
126
+ return result
127
+
128
+ def to_str(self):
129
+ """Returns the string representation of the model"""
130
+ return pprint.pformat(self.to_dict())
131
+
132
+ def __repr__(self):
133
+ """For `print` and `pprint`"""
134
+ return self.to_str()
135
+
136
+ def __eq__(self, other):
137
+ """Returns true if both objects are equal"""
138
+ if not isinstance(other, DashboardPanel):
139
+ return False
140
+
141
+ return self.to_dict() == other.to_dict()
142
+
143
+ def __ne__(self, other):
144
+ """Returns true if both objects are not equal"""
145
+ if not isinstance(other, DashboardPanel):
146
+ return True
147
+
148
+ return self.to_dict() != other.to_dict()
@@ -38,7 +38,8 @@ class JobQueueSpec(object):
38
38
  'compute_config_id': 'str',
39
39
  'cluster_environment_build_id': 'str',
40
40
  'max_concurrency': 'int',
41
- 'idle_timeout_sec': 'int'
41
+ 'idle_timeout_sec': 'int',
42
+ 'auto_termination_threshold_job_count': 'int'
42
43
  }
43
44
 
44
45
  attribute_map = {
@@ -47,10 +48,11 @@ class JobQueueSpec(object):
47
48
  'compute_config_id': 'compute_config_id',
48
49
  'cluster_environment_build_id': 'cluster_environment_build_id',
49
50
  'max_concurrency': 'max_concurrency',
50
- 'idle_timeout_sec': 'idle_timeout_sec'
51
+ 'idle_timeout_sec': 'idle_timeout_sec',
52
+ 'auto_termination_threshold_job_count': 'auto_termination_threshold_job_count'
51
53
  }
52
54
 
53
- def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, local_vars_configuration=None): # noqa: E501
55
+ def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, auto_termination_threshold_job_count=None, local_vars_configuration=None): # noqa: E501
54
56
  """JobQueueSpec - a model defined in OpenAPI""" # noqa: E501
55
57
  if local_vars_configuration is None:
56
58
  local_vars_configuration = Configuration()
@@ -62,6 +64,7 @@ class JobQueueSpec(object):
62
64
  self._cluster_environment_build_id = None
63
65
  self._max_concurrency = None
64
66
  self._idle_timeout_sec = None
67
+ self._auto_termination_threshold_job_count = None
65
68
  self.discriminator = None
66
69
 
67
70
  if job_queue_name is not None:
@@ -75,6 +78,8 @@ class JobQueueSpec(object):
75
78
  if max_concurrency is not None:
76
79
  self.max_concurrency = max_concurrency
77
80
  self.idle_timeout_sec = idle_timeout_sec
81
+ if auto_termination_threshold_job_count is not None:
82
+ self.auto_termination_threshold_job_count = auto_termination_threshold_job_count
78
83
 
79
84
  @property
80
85
  def job_queue_name(self):
@@ -216,6 +221,29 @@ class JobQueueSpec(object):
216
221
 
217
222
  self._idle_timeout_sec = idle_timeout_sec
218
223
 
224
+ @property
225
+ def auto_termination_threshold_job_count(self):
226
+ """Gets the auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
227
+
228
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
229
+
230
+ :return: The auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
231
+ :rtype: int
232
+ """
233
+ return self._auto_termination_threshold_job_count
234
+
235
+ @auto_termination_threshold_job_count.setter
236
+ def auto_termination_threshold_job_count(self, auto_termination_threshold_job_count):
237
+ """Sets the auto_termination_threshold_job_count of this JobQueueSpec.
238
+
239
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
240
+
241
+ :param auto_termination_threshold_job_count: The auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
242
+ :type: int
243
+ """
244
+
245
+ self._auto_termination_threshold_job_count = auto_termination_threshold_job_count
246
+
219
247
  def to_dict(self):
220
248
  """Returns the model properties as a dict"""
221
249
  result = {}
@@ -45,7 +45,9 @@ class TrainRun(object):
45
45
  'total_attempts': 'int',
46
46
  'job_details': 'JobDetails',
47
47
  'session_name': 'str',
48
- 'controller_log_id': 'str'
48
+ 'controller_log_id': 'str',
49
+ 'train_run_panels': 'list[DashboardPanel]',
50
+ 'train_worker_panels': 'list[DashboardPanel]'
49
51
  }
50
52
 
51
53
  attribute_map = {
@@ -61,10 +63,12 @@ class TrainRun(object):
61
63
  'total_attempts': 'total_attempts',
62
64
  'job_details': 'job_details',
63
65
  'session_name': 'session_name',
64
- 'controller_log_id': 'controller_log_id'
66
+ 'controller_log_id': 'controller_log_id',
67
+ 'train_run_panels': 'train_run_panels',
68
+ 'train_worker_panels': 'train_worker_panels'
65
69
  }
66
70
 
67
- def __init__(self, id=None, name=None, job_id=None, controller_actor_id=None, status=None, status_detail=None, start_time_ms=None, end_time_ms=None, attempts=None, total_attempts=None, job_details=None, session_name=None, controller_log_id=None, local_vars_configuration=None): # noqa: E501
71
+ def __init__(self, id=None, name=None, job_id=None, controller_actor_id=None, status=None, status_detail=None, start_time_ms=None, end_time_ms=None, attempts=None, total_attempts=None, job_details=None, session_name=None, controller_log_id=None, train_run_panels=None, train_worker_panels=None, local_vars_configuration=None): # noqa: E501
68
72
  """TrainRun - a model defined in OpenAPI""" # noqa: E501
69
73
  if local_vars_configuration is None:
70
74
  local_vars_configuration = Configuration()
@@ -83,6 +87,8 @@ class TrainRun(object):
83
87
  self._job_details = None
84
88
  self._session_name = None
85
89
  self._controller_log_id = None
90
+ self._train_run_panels = None
91
+ self._train_worker_panels = None
86
92
  self.discriminator = None
87
93
 
88
94
  self.id = id
@@ -103,6 +109,10 @@ class TrainRun(object):
103
109
  self.session_name = session_name
104
110
  if controller_log_id is not None:
105
111
  self.controller_log_id = controller_log_id
112
+ if train_run_panels is not None:
113
+ self.train_run_panels = train_run_panels
114
+ if train_worker_panels is not None:
115
+ self.train_worker_panels = train_worker_panels
106
116
 
107
117
  @property
108
118
  def id(self):
@@ -393,6 +403,48 @@ class TrainRun(object):
393
403
 
394
404
  self._controller_log_id = controller_log_id
395
405
 
406
+ @property
407
+ def train_run_panels(self):
408
+ """Gets the train_run_panels of this TrainRun. # noqa: E501
409
+
410
+
411
+ :return: The train_run_panels of this TrainRun. # noqa: E501
412
+ :rtype: list[DashboardPanel]
413
+ """
414
+ return self._train_run_panels
415
+
416
+ @train_run_panels.setter
417
+ def train_run_panels(self, train_run_panels):
418
+ """Sets the train_run_panels of this TrainRun.
419
+
420
+
421
+ :param train_run_panels: The train_run_panels of this TrainRun. # noqa: E501
422
+ :type: list[DashboardPanel]
423
+ """
424
+
425
+ self._train_run_panels = train_run_panels
426
+
427
+ @property
428
+ def train_worker_panels(self):
429
+ """Gets the train_worker_panels of this TrainRun. # noqa: E501
430
+
431
+
432
+ :return: The train_worker_panels of this TrainRun. # noqa: E501
433
+ :rtype: list[DashboardPanel]
434
+ """
435
+ return self._train_worker_panels
436
+
437
+ @train_worker_panels.setter
438
+ def train_worker_panels(self, train_worker_panels):
439
+ """Sets the train_worker_panels of this TrainRun.
440
+
441
+
442
+ :param train_worker_panels: The train_worker_panels of this TrainRun. # noqa: E501
443
+ :type: list[DashboardPanel]
444
+ """
445
+
446
+ self._train_worker_panels = train_worker_panels
447
+
396
448
  def to_dict(self):
397
449
  """Returns the model properties as a dict"""
398
450
  result = {}
@@ -190,6 +190,7 @@ class PrivateJobSDK(WorkloadSDK):
190
190
  compute_config_id=compute_config_id,
191
191
  max_concurrency=provided_job_queue_spec.max_concurrency,
192
192
  idle_timeout_sec=provided_job_queue_spec.idle_timeout_s,
193
+ auto_termination_threshold_job_count=provided_job_queue_spec.auto_termination_threshold_job_count,
193
194
  )
194
195
 
195
196
  job_queue_config = CreateJobQueueConfig(
anyscale/job/models.py CHANGED
@@ -133,6 +133,26 @@ job_queue_spec:
133
133
  f"'max_concurrency' must be an int (it is {type(max_concurrency)})."
134
134
  )
135
135
 
136
+ auto_termination_threshold_job_count: Optional[int] = field(
137
+ default=None,
138
+ metadata={
139
+ "docstring": "Maximum number of jobs the cluster can run before it "
140
+ "becomes eligible for termination"
141
+ },
142
+ )
143
+
144
+ def _validate_auto_termination_threshold_job_count(
145
+ self, auto_termination_threshold_job_count: Optional[int]
146
+ ):
147
+ if auto_termination_threshold_job_count is None:
148
+ return
149
+ if not isinstance(auto_termination_threshold_job_count, int):
150
+ raise TypeError(
151
+ f"'auto_termination_threshold_job_count' must be an int (it is {type(auto_termination_threshold_job_count)})."
152
+ )
153
+ if auto_termination_threshold_job_count <= 0:
154
+ raise ValueError("'auto_termination_threshold_job_count' should be > 0")
155
+
136
156
 
137
157
  @dataclass(frozen=True)
138
158
  class JobQueueConfig(ModelBase):
@@ -38,7 +38,8 @@ class JobQueueSpec(object):
38
38
  'compute_config_id': 'str',
39
39
  'cluster_environment_build_id': 'str',
40
40
  'max_concurrency': 'int',
41
- 'idle_timeout_sec': 'int'
41
+ 'idle_timeout_sec': 'int',
42
+ 'auto_termination_threshold_job_count': 'int'
42
43
  }
43
44
 
44
45
  attribute_map = {
@@ -47,10 +48,11 @@ class JobQueueSpec(object):
47
48
  'compute_config_id': 'compute_config_id',
48
49
  'cluster_environment_build_id': 'cluster_environment_build_id',
49
50
  'max_concurrency': 'max_concurrency',
50
- 'idle_timeout_sec': 'idle_timeout_sec'
51
+ 'idle_timeout_sec': 'idle_timeout_sec',
52
+ 'auto_termination_threshold_job_count': 'auto_termination_threshold_job_count'
51
53
  }
52
54
 
53
- def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, local_vars_configuration=None): # noqa: E501
55
+ def __init__(self, job_queue_name=None, execution_mode=None, compute_config_id=None, cluster_environment_build_id=None, max_concurrency=1, idle_timeout_sec=None, auto_termination_threshold_job_count=None, local_vars_configuration=None): # noqa: E501
54
56
  """JobQueueSpec - a model defined in OpenAPI""" # noqa: E501
55
57
  if local_vars_configuration is None:
56
58
  local_vars_configuration = Configuration()
@@ -62,6 +64,7 @@ class JobQueueSpec(object):
62
64
  self._cluster_environment_build_id = None
63
65
  self._max_concurrency = None
64
66
  self._idle_timeout_sec = None
67
+ self._auto_termination_threshold_job_count = None
65
68
  self.discriminator = None
66
69
 
67
70
  if job_queue_name is not None:
@@ -75,6 +78,8 @@ class JobQueueSpec(object):
75
78
  if max_concurrency is not None:
76
79
  self.max_concurrency = max_concurrency
77
80
  self.idle_timeout_sec = idle_timeout_sec
81
+ if auto_termination_threshold_job_count is not None:
82
+ self.auto_termination_threshold_job_count = auto_termination_threshold_job_count
78
83
 
79
84
  @property
80
85
  def job_queue_name(self):
@@ -216,6 +221,29 @@ class JobQueueSpec(object):
216
221
 
217
222
  self._idle_timeout_sec = idle_timeout_sec
218
223
 
224
+ @property
225
+ def auto_termination_threshold_job_count(self):
226
+ """Gets the auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
227
+
228
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
229
+
230
+ :return: The auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
231
+ :rtype: int
232
+ """
233
+ return self._auto_termination_threshold_job_count
234
+
235
+ @auto_termination_threshold_job_count.setter
236
+ def auto_termination_threshold_job_count(self, auto_termination_threshold_job_count):
237
+ """Sets the auto_termination_threshold_job_count of this JobQueueSpec.
238
+
239
+ Maximum number of jobs the cluster can run before it becomes eligible for termination. # noqa: E501
240
+
241
+ :param auto_termination_threshold_job_count: The auto_termination_threshold_job_count of this JobQueueSpec. # noqa: E501
242
+ :type: int
243
+ """
244
+
245
+ self._auto_termination_threshold_job_count = auto_termination_threshold_job_count
246
+
219
247
  def to_dict(self):
220
248
  """Returns the model properties as a dict"""
221
249
  result = {}
anyscale/telemetry.py CHANGED
@@ -326,27 +326,31 @@ def _emit_telemetry(body: CLIUsagePayload) -> None:
326
326
  try:
327
327
  logger.debug(json.dumps(body.to_dict(), indent=2))
328
328
 
329
+ traceparent = get_traceparent()
330
+
329
331
  def _worker():
330
332
  try:
331
- # Lazy imports to avoid circular deps
332
333
  from anyscale.authenticate import get_auth_api_client
333
- from anyscale.client.openapi_client.api.default_api import DefaultApi
334
334
 
335
- auth_block = get_auth_api_client()
336
- api = DefaultApi(api_client=auth_block.anyscale_api_client)
335
+ if traceparent:
336
+ _trace_id_var.set(body.trace_id)
337
+
338
+ api = get_auth_api_client().api_client
337
339
  api.receive_cli_usage_api_v2_cli_usage_post(
338
340
  cli_usage_payload=body, _request_timeout=2
339
341
  )
340
- except Exception: # noqa: BLE001
342
+
343
+ logger.debug("[TELEMETRY] POST completed successfully")
344
+ except Exception as e: # noqa: BLE001
345
+ logger.debug(f"[TELEMETRY] POST failed: {e}")
341
346
  # Best-effort only - never crash the CLI
342
- pass
343
347
 
344
348
  thread = threading.Thread(target=_worker, daemon=False)
345
349
  thread.start()
346
350
  thread.join(timeout=3)
347
- except Exception: # noqa: BLE001
351
+ except Exception as e: # noqa: BLE001
352
+ logger.error(f"[TELEMETRY] Failed to emit: {e}")
348
353
  # Telemetry should never crash the CLI
349
- pass
350
354
 
351
355
 
352
356
  # ─── Click Patch ─────────────────────────────────────────────────────────────
anyscale/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.26.35"
1
+ __version__ = "0.26.36"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anyscale
3
- Version: 0.26.35
3
+ Version: 0.26.36
4
4
  Summary: Command Line Interface for Anyscale
5
5
  Author: Anyscale Inc.
6
6
  License: AS License
@@ -26,9 +26,9 @@ anyscale/project_utils.py,sha256=SBwkD5B10ku2kkmp6y-Cr5RL7xf52b9zELP35kfg2PE,176
26
26
  anyscale/scripts.py,sha256=dG_JgWuq8TrM4XLRCCXhccka41qn95qbEgt0GG_1x5M,5678
27
27
  anyscale/snapshot.py,sha256=UGJT5C1s_4xmQxjWODK5DFpGxHRBX5jOCdSCqXESH8E,1685
28
28
  anyscale/tables.py,sha256=TV4F2uLnwehvbkAfaP7iuLlT2wLIo6ORH2LVdRGXW5g,2840
29
- anyscale/telemetry.py,sha256=oBXHheSC475SrSXELO821UNR5rTZnWDd9S86bROvnFo,15146
29
+ anyscale/telemetry.py,sha256=wklWABN8wtq8Cq3ptPFEeQQC9xjKP5ytxybCuWAvNI0,15229
30
30
  anyscale/util.py,sha256=14AHIhl4c4hKAW4gLZIvy5w56-zDjcPmrdWqazsvnHU,41860
31
- anyscale/version.py,sha256=iv9MFgKZyCsotKfigvuIPJUVAwda3gBtyWM0mJi0OkU,24
31
+ anyscale/version.py,sha256=qX2YoSFGy9o99C9_SIrB1j0-8rpMHjxGXRWc7HEDHM4,24
32
32
  anyscale/workspace_utils.py,sha256=OViE88CnIF5ruVxd3kazQ0Mf2BxqtMq6wx-XQ5A2cp8,1204
33
33
  anyscale/_private/anyscale_client/README.md,sha256=gk8obk7kqg6VWoUHcqDMwJULh35tYKEZFC0UF_dixGA,718
34
34
  anyscale/_private/anyscale_client/__init__.py,sha256=807Blx3RHQeS8BmKZcsOQQ4dYoKlCnpm6Bdsif2CrHg,337
@@ -40,7 +40,7 @@ anyscale/_private/docgen/__main__.py,sha256=rVYAjasr4c-wIaCmETsZRiYaEos0KvLsjVz4
40
40
  anyscale/_private/docgen/api.md,sha256=VKW293yubbeUG17A38wYuaONKDL5XICMguyfZ2xkIyY,27495
41
41
  anyscale/_private/docgen/generator.py,sha256=jAOaprAeU659glRDBATAkAQeYC1nDU14jgdobcILS1s,21737
42
42
  anyscale/_private/docgen/generator_legacy.py,sha256=pss_6ONF55XhARrKGcREDmg0J5plWact6USgb5Tr5mM,3002
43
- anyscale/_private/docgen/models.md,sha256=ytJO9v9mSchns0RKkYW9dUi6E6SZDEYlsW-g7D4braI,295714
43
+ anyscale/_private/docgen/models.md,sha256=TZ_tjmhJUYimjeV78OXH-zTzfEwOA3NE5yMjVBO7yB4,295885
44
44
  anyscale/_private/models/__init__.py,sha256=ZrkdHhJZNeCYiogsHc_po8m7vaVdxEjkNGixNeYdlgs,125
45
45
  anyscale/_private/models/image_uri.py,sha256=CMzHc-MNTBsBXvX0G73bjkiznCbm95DYQusgXJ8drm8,3971
46
46
  anyscale/_private/models/model_base.py,sha256=GJLA4JC0yHT554ctMYS_1es-YoTHQH9oqRHr28vV4R0,11354
@@ -106,7 +106,7 @@ anyscale/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
106
106
  anyscale/background/job_runner.py,sha256=LTuv9JOahyv6C9i7DLQAONgQF6--FfYZEmJrKy-sUG8,2687
107
107
  anyscale/client/.gitignore,sha256=JZyvYEtT2DCSK9V5Joi6lQofhMik4PXiJRCWsg7SvqI,807
108
108
  anyscale/client/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
109
- anyscale/client/README.md,sha256=ZUj3BmjrHpPwpng-YWAizSId1t_9GmFOpsUNz55vRDg,110603
109
+ anyscale/client/README.md,sha256=YxposNbmVkw00WhZBNbvT6JOu09MIvZbz4g4vN0yIkI,110900
110
110
  anyscale/client/git_push.sh,sha256=EDCZOTTiLxbtPHmiU63qC99rGH67B7dhdPZdNUKivF0,1827
111
111
  anyscale/client/requirements.txt,sha256=dkVKYUStC5h_g_87SH7pRdhXCj7ySozAJMGAFEzGgFc,126
112
112
  anyscale/client/setup.cfg,sha256=l7bdKSIedeBhhoDtupsBwx1xPrlBf2yYeTH7a8kMga4,28
@@ -114,14 +114,14 @@ anyscale/client/setup.py,sha256=tSxqw1kAL1B9adnrnOarjnQfSbwGmnTr_kg8ZXhlm5A,1109
114
114
  anyscale/client/test-requirements.txt,sha256=sTjmDTj5W9fh1ZAeo8UT2EBdeGDBNttj_PHiPBXg1D4,111
115
115
  anyscale/client/tox.ini,sha256=M6L3UmvAdvU65LsoAF-Oi7oRjwZlCJZn8I7ofdXn5Ok,156
116
116
  anyscale/client/.openapi-generator/VERSION,sha256=J0RzX-4u4jfin1kviKtmncjUePyjHm2kyvmkobOrt_E,5
117
- anyscale/client/openapi_client/__init__.py,sha256=Dh-Gh0iACP_VQL6Oc6pexvIaglXIa-0xkPIHD5VuKwI,50097
117
+ anyscale/client/openapi_client/__init__.py,sha256=6HirUawZcEJ1I7_z-11yxTOkuPxiN7UXR2nYtsaQ7P0,50162
118
118
  anyscale/client/openapi_client/api_client.py,sha256=d8Un6j2Ny2vlS2qBXPVFj6_ql0k36DFahpWt_28TfCk,25563
119
119
  anyscale/client/openapi_client/configuration.py,sha256=Dd5XrlHwv-wxnf0C35PG_-HBQoY3Yaz6hKrmkZz-m0E,12363
120
120
  anyscale/client/openapi_client/exceptions.py,sha256=3egwsXQG2j_vARbqgBxUO1xSltAhpfiHTYVP7VXTvU0,3792
121
121
  anyscale/client/openapi_client/rest.py,sha256=Ehj37v7GHW6SXV067Hze5HE42ayKaGi6a6ZlkR7u3Lg,12501
122
122
  anyscale/client/openapi_client/api/__init__.py,sha256=i8u7BI2xX1GrXTL3hN0pKpYIlnT-D_uDxH2ElOfYG1I,141
123
- anyscale/client/openapi_client/api/default_api.py,sha256=122YkBACCk_skpp9mMh8dM1JNKRwSVjoIYyG1qK4ZBU,1771418
124
- anyscale/client/openapi_client/models/__init__.py,sha256=PKjuETkLIt2yDSu0loG7Ibc5XJKOxz4zDIqxAEOUPZQ,49607
123
+ anyscale/client/openapi_client/api/default_api.py,sha256=v6-qY7Whmm9OZtAxtghPKhFZ66nxAZ0VcKXxA6k-TUc,1776637
124
+ anyscale/client/openapi_client/models/__init__.py,sha256=Ax4GnQuBALzMDQ7ZvIU2bH5a5j_4NrO4nViXHrvEZYU,49672
125
125
  anyscale/client/openapi_client/models/access_config.py,sha256=b2mA0qtuTA5PFbp6C61Jc_T2zUMaojM1v32IhZo0MfY,3648
126
126
  anyscale/client/openapi_client/models/actor_status.py,sha256=6xyX_aIqURj2raBdY9DmBxsdDACFrqqYvElGiM6YG2E,2813
127
127
  anyscale/client/openapi_client/models/admin_create_user.py,sha256=9DPr8D0lKgoEZ3Z2kGsAd8L7ocFCiP6woOGLVs8SRb8,7251
@@ -278,7 +278,7 @@ anyscale/client/openapi_client/models/create_experimental_workspace.py,sha256=Bx
278
278
  anyscale/client/openapi_client/models/create_instance_usage_budget.py,sha256=54uVdd4kFTbjVMEzxWP6A3vApzraMGYW5-NaVqpzp3o,8142
279
279
  anyscale/client/openapi_client/models/create_internal_production_job.py,sha256=ORm33kIVat8_L93jQwZ8xK-GDL2bnFmcJh1aF8L9Tng,8333
280
280
  anyscale/client/openapi_client/models/create_job_queue_config.py,sha256=UGjwSG2WAM8pKE4ye8CtsxYBpehg0MURNnj_z-UPqRo,7659
281
- anyscale/client/openapi_client/models/create_job_queue_requests.py,sha256=KGRYVa5ZDcVpgu-csDXn4_FlZHH_vqs3fCzqVP9Udlw,11247
281
+ anyscale/client/openapi_client/models/create_job_queue_requests.py,sha256=hLaynmiZKlczxSHIrDonzs1G_XBLDlACEPoXQzwjaJI,12722
282
282
  anyscale/client/openapi_client/models/create_machine_pool_request.py,sha256=Dx2kePNzklHqhCHNjFf8kl1S_Qnk3IlqSGedyr_8pPo,5309
283
283
  anyscale/client/openapi_client/models/create_machine_pool_response.py,sha256=B-HfMFIGLSi0eVilAXYEX6dWFIunT_-4a2SWi75mCSE,3827
284
284
  anyscale/client/openapi_client/models/create_machine_request.py,sha256=Jc7J8_9smmiki5hZey0nTqYFbR4VlcpWzZX3xHaj3hM,4724
@@ -309,6 +309,7 @@ anyscale/client/openapi_client/models/credit_record_credit_v2.py,sha256=hpavQ67a
309
309
  anyscale/client/openapi_client/models/credit_type.py,sha256=9xx435374f9njhOra03kdQRse8nNBUoqMo7W7L5oRRU,2818
310
310
  anyscale/client/openapi_client/models/credits_v2.py,sha256=ZpWqxRL40C1yNdVXfZ3TWnYY3nXmRDe7FCaxaKJYpkU,12801
311
311
  anyscale/client/openapi_client/models/customer_alert_status.py,sha256=hcvEKv0QHAy-98ENvrud0FfIVHK5Lu6GOC8QDBRfCrU,2890
312
+ anyscale/client/openapi_client/models/dashboard_panel.py,sha256=8Fy4WD7yyWwzqiUd4IdAJX2viWbE59Z13HcKMCJICX8,4151
312
313
  anyscale/client/openapi_client/models/dataplane_services.py,sha256=iPEKAk7R83srccjR0l25YY2pntdf_6IfID-dhDA9v_4,2918
313
314
  anyscale/client/openapi_client/models/dataset.py,sha256=Gok0vAOXDEj2A3vZwbGxNnH-2Ajxu9pRGWZvfQ0usSQ,12062
314
315
  anyscale/client/openapi_client/models/dataset_dag.py,sha256=_8wixt-pAWipBz8MQ20Cs5zb3whNJZK0xRPYQa9HUaM,6680
@@ -429,7 +430,7 @@ anyscale/client/openapi_client/models/job_queue_config.py,sha256=gW1_u_bKHoVqJrf
429
430
  anyscale/client/openapi_client/models/job_queue_execution_mode.py,sha256=5G2g8z_OmVzClUCfyNmKduHRJ0RsgXuliIBw5iXHoKI,2886
430
431
  anyscale/client/openapi_client/models/job_queue_sort_directive.py,sha256=Hoz5fBMpG6rCZrjHYqZi91Lszs9MPlrIcyOhTHfuP8s,4568
431
432
  anyscale/client/openapi_client/models/job_queue_sort_field.py,sha256=mb2yTPHGCbX3ENE3bsQNd0C4v0nU0Qt949sunZCJuDA,3137
432
- anyscale/client/openapi_client/models/job_queue_spec.py,sha256=7s4kjatMjuFtYJd8trZVW1lEsQ3SdOFsVbppZfdOAvA,9693
433
+ anyscale/client/openapi_client/models/job_queue_spec.py,sha256=hwWK7qr5wE_95ugaBPBgc3nj1R0CYeCpV80kOaWHUyk,11128
433
434
  anyscale/client/openapi_client/models/job_queue_state.py,sha256=5Ejli6rOUioLQj5EbABn02xPSwsBMgiFa3FW2WbCrp4,2830
434
435
  anyscale/client/openapi_client/models/job_queues_query.py,sha256=guOukU90OuMoMIousA8ZnXghSwk1VcLL2cwPgiyiFII,8784
435
436
  anyscale/client/openapi_client/models/job_report.py,sha256=B1TFEjlPQ46J8BCDFSr7g7PHh5nkxNRMRKxrMwZm8dQ,5982
@@ -655,7 +656,7 @@ anyscale/client/openapi_client/models/text_query.py,sha256=aMcKF6nRme1J1jYKhvqUI
655
656
  anyscale/client/openapi_client/models/tool.py,sha256=VdvWL_MW4EQGShmmjOL0OpD_oCBaU4EUofUxdzGSlwg,2977
656
657
  anyscale/client/openapi_client/models/tracing_config.py,sha256=UdOdwgPRrXQyFNDgnsBKtFyBHYx9Z7nrctNJX-H8VTM,6293
657
658
  anyscale/client/openapi_client/models/train_resources.py,sha256=cUsgnqj5rRVhos7lsU02zFE7RUBJuXv07-g8nta19_k,3577
658
- anyscale/client/openapi_client/models/train_run.py,sha256=A70NSRZPebEgvnoRPEo69eWv6-WcxF4sXV67yzqON78,13000
659
+ anyscale/client/openapi_client/models/train_run.py,sha256=T0259hqT6K7tqKcaXbV0Kl5ArjA92yCC9qH88ojjhVI,14764
659
660
  anyscale/client/openapi_client/models/train_run_attempt.py,sha256=s8_rIdNLl4ofLaP2oBoDhQKOEPedlaU1qlxGm4wKcMM,9353
660
661
  anyscale/client/openapi_client/models/train_worker.py,sha256=fRqsp61gZj7EJNPw0Cxz12Qg9dgISLrxsVbFPiaZ4kQ,11237
661
662
  anyscale/client/openapi_client/models/trainrun_list_response.py,sha256=OjmJOsglUhoqv2lhocx-DloJY9bk30ZYGNK0ObcorkY,4317
@@ -806,8 +807,8 @@ anyscale/image/models.py,sha256=xEaZfrMydtkdr-7zYlI-2d9Su2I7al7TgBulwG_plnI,1812
806
807
  anyscale/image/_private/image_sdk.py,sha256=c6ONvbcq1bUP0YbfIMw8QLRFfVbCiiTwULQAniotd04,7311
807
808
  anyscale/job/__init__.py,sha256=_5Nb3a11F4oAHXirTgx5vDdgpVzJ62FdGFmADxxvcPE,5051
808
809
  anyscale/job/commands.py,sha256=je0WDrd3mxt3iuoGqKvE_2TuMWsffXXM_IQ5SRjUKnU,8524
809
- anyscale/job/models.py,sha256=w2qqm69ccCf9Y6Hwe5cLszqn3asS19s24t4akuZPsUM,17922
810
- anyscale/job/_private/job_sdk.py,sha256=S7fjg5HmUFcyTUF_HwL-6rkkG580iZ3hBKUEDNjWNBw,19004
810
+ anyscale/job/models.py,sha256=b2f5PyGhrqYv96kY6g24SqZa-4W1AUZQMrUV0vCrOws,18759
811
+ anyscale/job/_private/job_sdk.py,sha256=v1el8C1kcGEiCCvoPVpnPbmYiRPr43rVHFmvlUrnob8,19119
811
812
  anyscale/job_queue/__init__.py,sha256=4KhAj-JkzqJdz1AbUoO8sQ4weWISBYaMPe6uRj7-5SA,3194
812
813
  anyscale/job_queue/commands.py,sha256=pVgX6MG15zlUFgz6lUvAFqTSYY7gAZ5cFmDJY3QRTx0,3948
813
814
  anyscale/job_queue/models.py,sha256=gl98WWvvdUlCWaSpLyUHggzNmUr49ti39itB37mznM0,10538
@@ -936,7 +937,7 @@ anyscale/sdk/anyscale_client/models/job.py,sha256=KsRd1VZKoQFkDQUIg6KbgsY8BDfihx
936
937
  anyscale/sdk/anyscale_client/models/job_list_response.py,sha256=Gjq6dTkUpLAM5py4J9YeFoLEhsuZu-adgjGMlWrfsT0,4240
937
938
  anyscale/sdk/anyscale_client/models/job_queue_config.py,sha256=RynWP84SvtCy49CmrdLKoQDhcX1KQAPSGJlfA7e16yM,3699
938
939
  anyscale/sdk/anyscale_client/models/job_queue_execution_mode.py,sha256=lBtOKQFM_P-WnlTdRCq1eqvm-yJztEk0xds85lIgBck,2884
939
- anyscale/sdk/anyscale_client/models/job_queue_spec.py,sha256=6rfyCkyYCsLFIaq8m-fyJvvJm5g00C8ozdDjZgQ2EXY,9691
940
+ anyscale/sdk/anyscale_client/models/job_queue_spec.py,sha256=VWKygjbEHvzGndJ0Z-jQ1MrELVk5MKbfCTrkoWVVwoo,11126
940
941
  anyscale/sdk/anyscale_client/models/job_run_type.py,sha256=t2_LBY7PntZi5_zTEh4_JGH2eyjalGre4RVPG5d6qdc,2888
941
942
  anyscale/sdk/anyscale_client/models/job_status.py,sha256=gUFnvO3SJDTIsfculUWjlcrqDnBgL7zLqp15qyafW6k,2992
942
943
  anyscale/sdk/anyscale_client/models/jobs_query.py,sha256=QC-cZsymG4Hc7CE6atosIsLkuQ9BujtuxtjPTLjVyGY,15582
@@ -1085,10 +1086,10 @@ anyscale/workspace/__init__.py,sha256=Innbm5ZhCyADEVBiYSo_vbpKwUNcMzVSAfxIGKOYe6
1085
1086
  anyscale/workspace/commands.py,sha256=b1sqNseoPj-1VXznqQOLe0V_a663bOTvJX-TaOMJa1Y,14590
1086
1087
  anyscale/workspace/models.py,sha256=HBvM9ybOdJjqQeViQ30C36gdKT_AwH_JHPoL-DTkESo,9841
1087
1088
  anyscale/workspace/_private/workspace_sdk.py,sha256=2CMeYfJt0UtIFCocDn1ukw1iI5esKHdopLe6duEs-qE,27599
1088
- anyscale-0.26.35.dist-info/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
1089
- anyscale-0.26.35.dist-info/METADATA,sha256=THNxANb6Z-lLOdZoORFsqrn2_UxTIR6wespa2y1lIVg,3269
1090
- anyscale-0.26.35.dist-info/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
1091
- anyscale-0.26.35.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1092
- anyscale-0.26.35.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
1093
- anyscale-0.26.35.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
1094
- anyscale-0.26.35.dist-info/RECORD,,
1089
+ anyscale-0.26.36.dist-info/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
1090
+ anyscale-0.26.36.dist-info/METADATA,sha256=mX2lPKiwxGF22Ek-ZBL4Vx-SMp7YBjjUPLql4d23BWw,3269
1091
+ anyscale-0.26.36.dist-info/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
1092
+ anyscale-0.26.36.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1093
+ anyscale-0.26.36.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
1094
+ anyscale-0.26.36.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
1095
+ anyscale-0.26.36.dist-info/RECORD,,