anyscale 0.26.61__py3-none-any.whl → 0.26.62__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 (31) hide show
  1. anyscale/_private/docgen/models.md +2 -0
  2. anyscale/client/README.md +16 -3
  3. anyscale/client/openapi_client/__init__.py +9 -3
  4. anyscale/client/openapi_client/api/default_api.py +3215 -2399
  5. anyscale/client/openapi_client/models/__init__.py +9 -3
  6. anyscale/client/openapi_client/models/api_key_info.py +280 -0
  7. anyscale/client/openapi_client/models/api_key_parameters.py +29 -3
  8. anyscale/client/openapi_client/models/{aggregatedinstanceusagecsv_list_response.py → apikeyinfo_list_response.py} +15 -15
  9. anyscale/client/openapi_client/models/compute_node_type.py +29 -1
  10. anyscale/client/openapi_client/models/gpu_usage.py +236 -0
  11. anyscale/client/openapi_client/models/node_metrics.py +404 -0
  12. anyscale/client/openapi_client/models/node_metrics_response.py +123 -0
  13. anyscale/client/openapi_client/models/{cloud_hosting_type.py → nodemetricsresponse_response.py} +34 -13
  14. anyscale/client/openapi_client/models/revoke_api_keys_request.py +123 -0
  15. anyscale/client/openapi_client/models/revoke_api_keys_response.py +202 -0
  16. anyscale/client/openapi_client/models/revokeapikeysresponse_response.py +121 -0
  17. anyscale/client/openapi_client/models/worker_node_type.py +29 -1
  18. anyscale/compute_config/_private/compute_config_sdk.py +4 -0
  19. anyscale/compute_config/models.py +24 -0
  20. anyscale/sdk/anyscale_client/models/compute_node_type.py +29 -1
  21. anyscale/sdk/anyscale_client/models/worker_node_type.py +29 -1
  22. anyscale/version.py +1 -1
  23. anyscale/workspace/commands.py +23 -114
  24. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/METADATA +1 -1
  25. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/RECORD +30 -24
  26. anyscale/client/openapi_client/models/aggregated_instance_usage_csv.py +0 -889
  27. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/WHEEL +0 -0
  28. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/entry_points.txt +0 -0
  29. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/licenses/LICENSE +0 -0
  30. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/licenses/NOTICE +0 -0
  31. {anyscale-0.26.61.dist-info → anyscale-0.26.62.dist-info}/top_level.txt +0 -0
@@ -36,6 +36,7 @@ class WorkerNodeType(object):
36
36
  'name': 'str',
37
37
  'instance_type': 'str',
38
38
  'resources': 'Resources',
39
+ 'labels': 'dict(str, str)',
39
40
  'aws_advanced_configurations_json': 'object',
40
41
  'gcp_advanced_configurations_json': 'object',
41
42
  'advanced_configurations_json': 'object',
@@ -50,6 +51,7 @@ class WorkerNodeType(object):
50
51
  'name': 'name',
51
52
  'instance_type': 'instance_type',
52
53
  'resources': 'resources',
54
+ 'labels': 'labels',
53
55
  'aws_advanced_configurations_json': 'aws_advanced_configurations_json',
54
56
  'gcp_advanced_configurations_json': 'gcp_advanced_configurations_json',
55
57
  'advanced_configurations_json': 'advanced_configurations_json',
@@ -60,7 +62,7 @@ class WorkerNodeType(object):
60
62
  'fallback_to_ondemand': 'fallback_to_ondemand'
61
63
  }
62
64
 
63
- def __init__(self, name=None, instance_type=None, resources=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, min_workers=None, max_workers=None, use_spot=False, fallback_to_ondemand=False, local_vars_configuration=None): # noqa: E501
65
+ def __init__(self, name=None, instance_type=None, resources=None, labels=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, min_workers=None, max_workers=None, use_spot=False, fallback_to_ondemand=False, local_vars_configuration=None): # noqa: E501
64
66
  """WorkerNodeType - a model defined in OpenAPI""" # noqa: E501
65
67
  if local_vars_configuration is None:
66
68
  local_vars_configuration = Configuration()
@@ -69,6 +71,7 @@ class WorkerNodeType(object):
69
71
  self._name = None
70
72
  self._instance_type = None
71
73
  self._resources = None
74
+ self._labels = None
72
75
  self._aws_advanced_configurations_json = None
73
76
  self._gcp_advanced_configurations_json = None
74
77
  self._advanced_configurations_json = None
@@ -83,6 +86,8 @@ class WorkerNodeType(object):
83
86
  self.instance_type = instance_type
84
87
  if resources is not None:
85
88
  self.resources = resources
89
+ if labels is not None:
90
+ self.labels = labels
86
91
  if aws_advanced_configurations_json is not None:
87
92
  self.aws_advanced_configurations_json = aws_advanced_configurations_json
88
93
  if gcp_advanced_configurations_json is not None:
@@ -173,6 +178,29 @@ class WorkerNodeType(object):
173
178
 
174
179
  self._resources = resources
175
180
 
181
+ @property
182
+ def labels(self):
183
+ """Gets the labels of this WorkerNodeType. # noqa: E501
184
+
185
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
186
+
187
+ :return: The labels of this WorkerNodeType. # noqa: E501
188
+ :rtype: dict(str, str)
189
+ """
190
+ return self._labels
191
+
192
+ @labels.setter
193
+ def labels(self, labels):
194
+ """Sets the labels of this WorkerNodeType.
195
+
196
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
197
+
198
+ :param labels: The labels of this WorkerNodeType. # noqa: E501
199
+ :type: dict(str, str)
200
+ """
201
+
202
+ self._labels = labels
203
+
176
204
  @property
177
205
  def aws_advanced_configurations_json(self):
178
206
  """Gets the aws_advanced_configurations_json of this WorkerNodeType. # noqa: E501
@@ -84,6 +84,7 @@ class PrivateComputeConfigSDK(BaseSDK):
84
84
  resources=self._convert_resource_dict_to_api_model(config.resources)
85
85
  if config.resources is not None or schedulable_by_default
86
86
  else UNSCHEDULABLE_RESOURCES,
87
+ labels=config.labels,
87
88
  flags=flags or None,
88
89
  advanced_configurations_json=config.advanced_instance_config or None,
89
90
  )
@@ -110,6 +111,7 @@ class PrivateComputeConfigSDK(BaseSDK):
110
111
  name=config.name,
111
112
  instance_type=config.instance_type,
112
113
  resources=self._convert_resource_dict_to_api_model(config.resources),
114
+ labels=config.labels,
113
115
  min_workers=config.min_nodes,
114
116
  max_workers=config.max_nodes,
115
117
  use_spot=config.market_type
@@ -318,6 +320,7 @@ class PrivateComputeConfigSDK(BaseSDK):
318
320
  return HeadNodeConfig(
319
321
  instance_type=api_model.instance_type,
320
322
  resources=self._convert_api_model_to_resource_dict(api_model.resources),
323
+ labels=api_model.labels,
321
324
  advanced_instance_config=self._convert_api_model_to_advanced_instance_config(
322
325
  api_model,
323
326
  ),
@@ -365,6 +368,7 @@ class PrivateComputeConfigSDK(BaseSDK):
365
368
  resources=self._convert_api_model_to_resource_dict(
366
369
  api_model.resources
367
370
  ),
371
+ labels=api_model.labels,
368
372
  advanced_instance_config=self._convert_api_model_to_advanced_instance_config(
369
373
  api_model,
370
374
  ),
@@ -6,6 +6,7 @@ from anyscale._private.models import ModelBase, ModelEnum
6
6
 
7
7
 
8
8
  ResourceDict = Dict[str, float]
9
+ LabelDict = Dict[str, str]
9
10
  AdvancedInstanceConfigDict = Dict[str, Any]
10
11
 
11
12
 
@@ -30,6 +31,18 @@ def _validate_resource_dict(r: Optional[ResourceDict], *, field_name: str):
30
31
  )
31
32
 
32
33
 
34
+ def _validate_label_dict(labels: Optional[LabelDict]):
35
+ if labels is None:
36
+ return
37
+
38
+ # Convert any non-string keys/values to strings to ensure compatibility
39
+ for k, v in labels.items():
40
+ if not isinstance(k, str):
41
+ raise TypeError(f"'labels' keys must be strings, but got: {k}")
42
+ if not isinstance(v, str):
43
+ raise TypeError(f"'labels' values must be strings, but got: {v}")
44
+
45
+
33
46
  def _validate_advanced_instance_config_dict(c: Optional[AdvancedInstanceConfigDict]):
34
47
  if c is None:
35
48
  return
@@ -119,6 +132,17 @@ class _NodeConfig(ModelBase):
119
132
  def _validate_resources(self, resources: Optional[ResourceDict]):
120
133
  _validate_resource_dict(resources, field_name="resources")
121
134
 
135
+ labels: Optional[LabelDict] = field(
136
+ default=None,
137
+ repr=False,
138
+ metadata={
139
+ "docstring": "Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels."
140
+ },
141
+ )
142
+
143
+ def _validate_labels(self, labels: Optional[LabelDict]):
144
+ _validate_label_dict(labels)
145
+
122
146
  advanced_instance_config: Optional[AdvancedInstanceConfigDict] = field(
123
147
  default=None,
124
148
  repr=False,
@@ -36,6 +36,7 @@ class ComputeNodeType(object):
36
36
  'name': 'str',
37
37
  'instance_type': 'str',
38
38
  'resources': 'Resources',
39
+ 'labels': 'dict(str, str)',
39
40
  'aws_advanced_configurations_json': 'object',
40
41
  'gcp_advanced_configurations_json': 'object',
41
42
  'advanced_configurations_json': 'object',
@@ -46,13 +47,14 @@ class ComputeNodeType(object):
46
47
  'name': 'name',
47
48
  'instance_type': 'instance_type',
48
49
  'resources': 'resources',
50
+ 'labels': 'labels',
49
51
  'aws_advanced_configurations_json': 'aws_advanced_configurations_json',
50
52
  'gcp_advanced_configurations_json': 'gcp_advanced_configurations_json',
51
53
  'advanced_configurations_json': 'advanced_configurations_json',
52
54
  'flags': 'flags'
53
55
  }
54
56
 
55
- def __init__(self, name=None, instance_type=None, resources=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, local_vars_configuration=None): # noqa: E501
57
+ def __init__(self, name=None, instance_type=None, resources=None, labels=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, local_vars_configuration=None): # noqa: E501
56
58
  """ComputeNodeType - a model defined in OpenAPI""" # noqa: E501
57
59
  if local_vars_configuration is None:
58
60
  local_vars_configuration = Configuration()
@@ -61,6 +63,7 @@ class ComputeNodeType(object):
61
63
  self._name = None
62
64
  self._instance_type = None
63
65
  self._resources = None
66
+ self._labels = None
64
67
  self._aws_advanced_configurations_json = None
65
68
  self._gcp_advanced_configurations_json = None
66
69
  self._advanced_configurations_json = None
@@ -71,6 +74,8 @@ class ComputeNodeType(object):
71
74
  self.instance_type = instance_type
72
75
  if resources is not None:
73
76
  self.resources = resources
77
+ if labels is not None:
78
+ self.labels = labels
74
79
  if aws_advanced_configurations_json is not None:
75
80
  self.aws_advanced_configurations_json = aws_advanced_configurations_json
76
81
  if gcp_advanced_configurations_json is not None:
@@ -153,6 +158,29 @@ class ComputeNodeType(object):
153
158
 
154
159
  self._resources = resources
155
160
 
161
+ @property
162
+ def labels(self):
163
+ """Gets the labels of this ComputeNodeType. # noqa: E501
164
+
165
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
166
+
167
+ :return: The labels of this ComputeNodeType. # noqa: E501
168
+ :rtype: dict(str, str)
169
+ """
170
+ return self._labels
171
+
172
+ @labels.setter
173
+ def labels(self, labels):
174
+ """Sets the labels of this ComputeNodeType.
175
+
176
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
177
+
178
+ :param labels: The labels of this ComputeNodeType. # noqa: E501
179
+ :type: dict(str, str)
180
+ """
181
+
182
+ self._labels = labels
183
+
156
184
  @property
157
185
  def aws_advanced_configurations_json(self):
158
186
  """Gets the aws_advanced_configurations_json of this ComputeNodeType. # noqa: E501
@@ -36,6 +36,7 @@ class WorkerNodeType(object):
36
36
  'name': 'str',
37
37
  'instance_type': 'str',
38
38
  'resources': 'Resources',
39
+ 'labels': 'dict(str, str)',
39
40
  'aws_advanced_configurations_json': 'object',
40
41
  'gcp_advanced_configurations_json': 'object',
41
42
  'advanced_configurations_json': 'object',
@@ -50,6 +51,7 @@ class WorkerNodeType(object):
50
51
  'name': 'name',
51
52
  'instance_type': 'instance_type',
52
53
  'resources': 'resources',
54
+ 'labels': 'labels',
53
55
  'aws_advanced_configurations_json': 'aws_advanced_configurations_json',
54
56
  'gcp_advanced_configurations_json': 'gcp_advanced_configurations_json',
55
57
  'advanced_configurations_json': 'advanced_configurations_json',
@@ -60,7 +62,7 @@ class WorkerNodeType(object):
60
62
  'fallback_to_ondemand': 'fallback_to_ondemand'
61
63
  }
62
64
 
63
- def __init__(self, name=None, instance_type=None, resources=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, min_workers=None, max_workers=None, use_spot=False, fallback_to_ondemand=False, local_vars_configuration=None): # noqa: E501
65
+ def __init__(self, name=None, instance_type=None, resources=None, labels=None, aws_advanced_configurations_json=None, gcp_advanced_configurations_json=None, advanced_configurations_json=None, flags=None, min_workers=None, max_workers=None, use_spot=False, fallback_to_ondemand=False, local_vars_configuration=None): # noqa: E501
64
66
  """WorkerNodeType - a model defined in OpenAPI""" # noqa: E501
65
67
  if local_vars_configuration is None:
66
68
  local_vars_configuration = Configuration()
@@ -69,6 +71,7 @@ class WorkerNodeType(object):
69
71
  self._name = None
70
72
  self._instance_type = None
71
73
  self._resources = None
74
+ self._labels = None
72
75
  self._aws_advanced_configurations_json = None
73
76
  self._gcp_advanced_configurations_json = None
74
77
  self._advanced_configurations_json = None
@@ -83,6 +86,8 @@ class WorkerNodeType(object):
83
86
  self.instance_type = instance_type
84
87
  if resources is not None:
85
88
  self.resources = resources
89
+ if labels is not None:
90
+ self.labels = labels
86
91
  if aws_advanced_configurations_json is not None:
87
92
  self.aws_advanced_configurations_json = aws_advanced_configurations_json
88
93
  if gcp_advanced_configurations_json is not None:
@@ -173,6 +178,29 @@ class WorkerNodeType(object):
173
178
 
174
179
  self._resources = resources
175
180
 
181
+ @property
182
+ def labels(self):
183
+ """Gets the labels of this WorkerNodeType. # noqa: E501
184
+
185
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
186
+
187
+ :return: The labels of this WorkerNodeType. # noqa: E501
188
+ :rtype: dict(str, str)
189
+ """
190
+ return self._labels
191
+
192
+ @labels.setter
193
+ def labels(self, labels):
194
+ """Sets the labels of this WorkerNodeType.
195
+
196
+ Labels to associate the node with for scheduling purposes. Defaults to the list of Ray & Anyscale default labels. # noqa: E501
197
+
198
+ :param labels: The labels of this WorkerNodeType. # noqa: E501
199
+ :type: dict(str, str)
200
+ """
201
+
202
+ self._labels = labels
203
+
176
204
  @property
177
205
  def aws_advanced_configurations_json(self):
178
206
  """Gets the aws_advanced_configurations_json of this WorkerNodeType. # noqa: E501
anyscale/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.26.61"
1
+ __version__ = "0.26.62"
@@ -1,6 +1,6 @@
1
1
  from typing import Any, Dict, List, Optional, Tuple
2
2
 
3
- from anyscale._private.sdk import deprecated_sdk_command
3
+ from anyscale._private.sdk import sdk_command
4
4
  from anyscale.workspace._private.workspace_sdk import PrivateWorkspaceSDK
5
5
  from anyscale.workspace.models import (
6
6
  UpdateWorkspaceConfig,
@@ -28,26 +28,18 @@ _CREATE_ARG_DOCSTRINGS = {"config": "The config for defining the workspace."}
28
28
  _WAIT_TIMEOUT_SECONDS = 1800.0
29
29
 
30
30
 
31
- @deprecated_sdk_command(
31
+ @sdk_command(
32
32
  _WORKSPACE_SDK_SINGLETON_KEY,
33
33
  PrivateWorkspaceSDK,
34
34
  doc_py_example=_CREATE_EXAMPLE,
35
35
  arg_docstrings=_CREATE_ARG_DOCSTRINGS,
36
- removal_date="2025-10-01",
37
- deprecation_message="Legacy v1 workspaces are no longer supported",
38
- alternative="use anyscale.workspace_v2.create() instead",
39
36
  )
40
37
  def create(
41
38
  config: WorkspaceConfig, *, _private_sdk: Optional[PrivateWorkspaceSDK] = None
42
39
  ) -> str:
43
40
  """Create a workspace.
44
41
 
45
- DEPRECATED: This function will be removed on 2025-10-01.
46
- Use anyscale.workspace_v2.create instead.
47
- Legacy v1 workspaces are no longer supported.
48
-
49
- Returns:
50
- str: The id of the created workspace.
42
+ Returns the id of the created workspace.
51
43
  """
52
44
  return _private_sdk.create(config) # type: ignore
53
45
 
@@ -68,14 +60,11 @@ _START_ARG_DOCSTRINGS = {
68
60
  }
69
61
 
70
62
 
71
- @deprecated_sdk_command(
63
+ @sdk_command(
72
64
  _WORKSPACE_SDK_SINGLETON_KEY,
73
65
  PrivateWorkspaceSDK,
74
66
  doc_py_example=_START_EXAMPLE,
75
67
  arg_docstrings=_START_ARG_DOCSTRINGS,
76
- removal_date="2025-10-01",
77
- deprecation_message="Legacy v1 workspaces are no longer supported",
78
- alternative="use anyscale.workspace_v2.start() instead",
79
68
  )
80
69
  def start(
81
70
  *,
@@ -87,12 +76,7 @@ def start(
87
76
  ) -> str:
88
77
  """Start a workspace.
89
78
 
90
- DEPRECATED: This function will be removed on 2025-10-01.
91
- Use anyscale.workspace_v2.start instead.
92
- Legacy v1 workspaces are no longer supported.
93
-
94
- Returns:
95
- str: The id of the started workspace.
79
+ Returns the id of the started workspace.
96
80
  """
97
81
  return _private_sdk.start(name=name, id=id, cloud=cloud, project=project) # type: ignore
98
82
 
@@ -113,14 +97,11 @@ _TERMINATE_ARG_DOCSTRINGS = {
113
97
  }
114
98
 
115
99
 
116
- @deprecated_sdk_command(
100
+ @sdk_command(
117
101
  _WORKSPACE_SDK_SINGLETON_KEY,
118
102
  PrivateWorkspaceSDK,
119
103
  doc_py_example=_TERMINATE_EXAMPLE,
120
104
  arg_docstrings=_TERMINATE_ARG_DOCSTRINGS,
121
- removal_date="2025-10-01",
122
- deprecation_message="Legacy v1 workspaces are no longer supported",
123
- alternative="use anyscale.workspace_v2.terminate() instead",
124
105
  )
125
106
  def terminate(
126
107
  *,
@@ -132,12 +113,7 @@ def terminate(
132
113
  ) -> str:
133
114
  """Terminate a workspace.
134
115
 
135
- DEPRECATED: This function will be removed on 2025-10-01.
136
- Use anyscale.workspace_v2.terminate instead.
137
- Legacy v1 workspaces are no longer supported.
138
-
139
- Returns:
140
- str: The id of the terminated workspace.
116
+ Returns the id of the terminated workspace.
141
117
  """
142
118
  return _private_sdk.terminate(name=name, id=id, cloud=cloud, project=project) # type: ignore
143
119
 
@@ -158,14 +134,11 @@ _STATUS_ARG_DOCSTRINGS = {
158
134
  }
159
135
 
160
136
 
161
- @deprecated_sdk_command(
137
+ @sdk_command(
162
138
  _WORKSPACE_SDK_SINGLETON_KEY,
163
139
  PrivateWorkspaceSDK,
164
140
  doc_py_example=_STATUS_EXAMPLE,
165
141
  arg_docstrings=_STATUS_ARG_DOCSTRINGS,
166
- removal_date="2025-10-01",
167
- deprecation_message="Legacy v1 workspaces are no longer supported",
168
- alternative="use anyscale.workspace_v2.status() instead",
169
142
  )
170
143
  def status(
171
144
  *,
@@ -177,12 +150,7 @@ def status(
177
150
  ) -> str:
178
151
  """Get the status of a workspace.
179
152
 
180
- DEPRECATED: This function will be removed on 2025-10-01.
181
- Use anyscale.workspace_v2.status instead.
182
- Legacy v1 workspaces are no longer supported.
183
-
184
- Returns:
185
- WorkspaceState: The status of the workspace.
153
+ Returns the status of the workspace.
186
154
  """
187
155
  return _private_sdk.status(name=name, id=id, cloud=cloud, project=project) # type: ignore
188
156
 
@@ -205,14 +173,11 @@ _WAIT_ARG_DOCSTRINGS = {
205
173
  }
206
174
 
207
175
 
208
- @deprecated_sdk_command(
176
+ @sdk_command(
209
177
  _WORKSPACE_SDK_SINGLETON_KEY,
210
178
  PrivateWorkspaceSDK,
211
179
  doc_py_example=_WAIT_EXAMPLE,
212
180
  arg_docstrings=_WAIT_ARG_DOCSTRINGS,
213
- removal_date="2025-10-01",
214
- deprecation_message="Legacy v1 workspaces are no longer supported",
215
- alternative="use anyscale.workspace_v2.wait() instead",
216
181
  )
217
182
  def wait(
218
183
  *,
@@ -226,12 +191,7 @@ def wait(
226
191
  ) -> str:
227
192
  """Wait for a workspace to reach a terminal state.
228
193
 
229
- DEPRECATED: This function will be removed on 2025-10-01.
230
- Use anyscale.workspace_v2.wait instead.
231
- Legacy v1 workspaces are no longer supported.
232
-
233
- Returns:
234
- WorkspaceState: The status of the workspace.
194
+ Returns the status of the workspace.
235
195
  """
236
196
  return _private_sdk.wait( # type: ignore
237
197
  name=name,
@@ -264,14 +224,11 @@ _GENERATE_SSH_CONFIG_FILE_ARG_DOCSTRINGS = {
264
224
  }
265
225
 
266
226
 
267
- @deprecated_sdk_command(
227
+ @sdk_command(
268
228
  _WORKSPACE_SDK_SINGLETON_KEY,
269
229
  PrivateWorkspaceSDK,
270
230
  doc_py_example=_GENERATE_SSH_CONFIG_FILE_EXAMPLE,
271
231
  arg_docstrings=_GENERATE_SSH_CONFIG_FILE_ARG_DOCSTRINGS,
272
- removal_date="2025-10-01",
273
- deprecation_message="Legacy v1 workspaces are no longer supported",
274
- alternative="use anyscale.workspace_v2.generate_ssh_config_file() instead",
275
232
  )
276
233
  def generate_ssh_config_file(
277
234
  *,
@@ -284,12 +241,7 @@ def generate_ssh_config_file(
284
241
  ) -> Tuple[str, str]:
285
242
  """Generate an SSH config file for a workspace.
286
243
 
287
- DEPRECATED: This function will be removed on 2025-10-01.
288
- Use anyscale.workspace_v2.generate_ssh_config_file instead.
289
- Legacy v1 workspaces are no longer supported.
290
-
291
- Returns:
292
- Tuple[str, str]: The hostname and path to the generated config file.
244
+ Returns the hostname and path to the generated config file.
293
245
  """
294
246
  return _private_sdk.generate_ssh_config_file( # type: ignore
295
247
  name=name, id=id, cloud=cloud, project=project, ssh_config_path=ssh_config_path,
@@ -318,14 +270,11 @@ _RUN_COMMAND_ARG_DOCSTRINGS = {
318
270
  }
319
271
 
320
272
 
321
- @deprecated_sdk_command(
273
+ @sdk_command(
322
274
  _WORKSPACE_SDK_SINGLETON_KEY,
323
275
  PrivateWorkspaceSDK,
324
276
  doc_py_example=_RUN_COMMAND_EXAMPLE,
325
277
  arg_docstrings=_RUN_COMMAND_ARG_DOCSTRINGS,
326
- removal_date="2025-10-01",
327
- deprecation_message="Legacy v1 workspaces are no longer supported",
328
- alternative="use anyscale.workspace_v2.run_command() instead",
329
278
  )
330
279
  def run_command(
331
280
  *,
@@ -339,12 +288,7 @@ def run_command(
339
288
  ):
340
289
  """Run a command in a workspace.
341
290
 
342
- DEPRECATED: This function will be removed on 2025-10-01.
343
- Use anyscale.workspace_v2.run_command instead.
344
- Legacy v1 workspaces are no longer supported.
345
-
346
- Returns:
347
- subprocess.CompletedProcess: The result of the command execution.
291
+ Returns a subprocess.CompletedProcess object.
348
292
  """
349
293
  return _private_sdk.run_command( # type: ignore
350
294
  name=name, id=id, cloud=cloud, project=project, command=command, **kwargs,
@@ -370,14 +314,11 @@ _PULL_ARG_DOCSTRINGS = {
370
314
  }
371
315
 
372
316
 
373
- @deprecated_sdk_command(
317
+ @sdk_command(
374
318
  _WORKSPACE_SDK_SINGLETON_KEY,
375
319
  PrivateWorkspaceSDK,
376
320
  doc_py_example=_PULL_EXAMPLE,
377
321
  arg_docstrings=_PULL_ARG_DOCSTRINGS,
378
- removal_date="2025-10-01",
379
- deprecation_message="Legacy v1 workspaces are no longer supported",
380
- alternative="use anyscale.workspace_v2.pull() instead",
381
322
  )
382
323
  def pull(
383
324
  *,
@@ -393,12 +334,7 @@ def pull(
393
334
  ) -> None:
394
335
  """Pull a workspace to a local directory.
395
336
 
396
- DEPRECATED: This function will be removed on 2025-10-01.
397
- Use anyscale.workspace_v2.pull instead.
398
- Legacy v1 workspaces are no longer supported.
399
-
400
- Returns:
401
- str: The path to the pulled workspace.
337
+ Returns the path to the pulled workspace.
402
338
  """
403
339
  _private_sdk.pull( # type: ignore
404
340
  name=name,
@@ -433,14 +369,11 @@ _PUSH_ARG_DOCSTRINGS = {
433
369
  }
434
370
 
435
371
 
436
- @deprecated_sdk_command(
372
+ @sdk_command(
437
373
  _WORKSPACE_SDK_SINGLETON_KEY,
438
374
  PrivateWorkspaceSDK,
439
375
  doc_py_example=_PUSH_EXAMPLE,
440
376
  arg_docstrings=_PUSH_ARG_DOCSTRINGS,
441
- removal_date="2025-10-01",
442
- deprecation_message="Legacy v1 workspaces are no longer supported",
443
- alternative="use anyscale.workspace_v2.push() instead",
444
377
  )
445
378
  def push(
446
379
  *,
@@ -456,12 +389,7 @@ def push(
456
389
  ) -> None:
457
390
  """Push a local directory to a workspace.
458
391
 
459
- DEPRECATED: This function will be removed on 2025-10-01.
460
- Use anyscale.workspace_v2.push instead.
461
- Legacy v1 workspaces are no longer supported.
462
-
463
- Returns:
464
- str: The path to the pushed workspace.
392
+ Returns the path to the pushed workspace.
465
393
  """
466
394
  _private_sdk.push( # type: ignore
467
395
  name=name,
@@ -493,14 +421,11 @@ _UPDATE_ARG_DOCSTRINGS = {
493
421
  }
494
422
 
495
423
 
496
- @deprecated_sdk_command(
424
+ @sdk_command(
497
425
  _WORKSPACE_SDK_SINGLETON_KEY,
498
426
  PrivateWorkspaceSDK,
499
427
  doc_py_example=_UPDATE_EXAMPLE,
500
428
  arg_docstrings=_UPDATE_ARG_DOCSTRINGS,
501
- removal_date="2025-10-01",
502
- deprecation_message="Legacy v1 workspaces are no longer supported",
503
- alternative="use anyscale.workspace_v2.update() instead",
504
429
  )
505
430
  def update(
506
431
  *,
@@ -508,12 +433,7 @@ def update(
508
433
  config: UpdateWorkspaceConfig,
509
434
  _private_sdk: Optional[PrivateWorkspaceSDK] = None,
510
435
  ) -> None:
511
- """Update a workspace.
512
-
513
- DEPRECATED: This function will be removed on 2025-10-01.
514
- Use anyscale.workspace_v2.update instead.
515
- Legacy v1 workspaces are no longer supported.
516
- """
436
+ """Update a workspace."""
517
437
  _private_sdk.update( # type: ignore
518
438
  id=id, config=config,
519
439
  )
@@ -536,14 +456,11 @@ _GET_ARG_DOCSTRINGS = {
536
456
  }
537
457
 
538
458
 
539
- @deprecated_sdk_command(
459
+ @sdk_command(
540
460
  _WORKSPACE_SDK_SINGLETON_KEY,
541
461
  PrivateWorkspaceSDK,
542
462
  doc_py_example=_GET_EXAMPLE,
543
463
  arg_docstrings=_GET_ARG_DOCSTRINGS,
544
- removal_date="2025-10-01",
545
- deprecation_message="Legacy v1 workspaces are no longer supported",
546
- alternative="use anyscale.workspace_v2.get() instead",
547
464
  )
548
465
  def get(
549
466
  *,
@@ -553,13 +470,5 @@ def get(
553
470
  project: Optional[str] = None,
554
471
  _private_sdk: Optional[PrivateWorkspaceSDK] = None,
555
472
  ) -> Workspace:
556
- """Get a workspace.
557
-
558
- DEPRECATED: This function will be removed on 2025-10-01.
559
- Use anyscale.workspace_v2.get instead.
560
- Legacy v1 workspaces are no longer supported.
561
-
562
- Returns:
563
- Workspace: The workspace object.
564
- """
473
+ """Get a workspace."""
565
474
  return _private_sdk.get(name=name, id=id, cloud=cloud, project=project) # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anyscale
3
- Version: 0.26.61
3
+ Version: 0.26.62
4
4
  Summary: Command Line Interface for Anyscale
5
5
  Author: Anyscale Inc.
6
6
  License: AS License