anyscale 0.26.15__py3-none-any.whl → 0.26.17__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 (66) hide show
  1. anyscale/_private/anyscale_client/anyscale_client.py +4 -2
  2. anyscale/_private/anyscale_client/common.py +6 -4
  3. anyscale/_private/anyscale_client/fake_anyscale_client.py +15 -6
  4. anyscale/_private/docgen/__main__.py +4 -4
  5. anyscale/_private/docgen/generator.py +2 -2
  6. anyscale/_private/sdk/__init__.py +2 -2
  7. anyscale/_private/workload/workload_sdk.py +6 -4
  8. anyscale/aggregated_instance_usage/commands.py +6 -2
  9. anyscale/anyscale-cloud-setup-gcp.yaml +2 -0
  10. anyscale/client/README.md +11 -6
  11. anyscale/client/openapi_client/__init__.py +8 -4
  12. anyscale/client/openapi_client/api/default_api.py +402 -270
  13. anyscale/client/openapi_client/models/__init__.py +8 -4
  14. anyscale/client/openapi_client/models/alert_type.py +11 -2
  15. anyscale/client/openapi_client/models/create_job_queue_requests.py +3 -32
  16. anyscale/client/openapi_client/models/i_know_response.py +174 -0
  17. anyscale/client/openapi_client/models/i_know_time_series_event.py +148 -0
  18. anyscale/client/openapi_client/models/job_report.py +199 -0
  19. anyscale/client/openapi_client/models/job_with_report.py +254 -0
  20. anyscale/client/openapi_client/models/jobwithreport_list_response.py +147 -0
  21. anyscale/client/openapi_client/models/{product_autoscaler_flag.py → list_ray_sessions_response.py} +22 -23
  22. anyscale/client/openapi_client/models/{productautoscalerflag_response.py → listraysessionsresponse_response.py} +11 -11
  23. anyscale/client/openapi_client/models/metric.py +133 -3
  24. anyscale/client/openapi_client/models/ray_session.py +121 -0
  25. anyscale/cloud/__init__.py +2 -2
  26. anyscale/cloud/_private/cloud_sdk.py +2 -2
  27. anyscale/cloud/commands.py +9 -6
  28. anyscale/cloud_utils.py +5 -4
  29. anyscale/cluster_compute.py +2 -2
  30. anyscale/cluster_env.py +2 -0
  31. anyscale/commands/cloud_commands.py +43 -0
  32. anyscale/commands/login_commands.py +24 -3
  33. anyscale/commands/schedule_commands.py +2 -1
  34. anyscale/compute_config/commands.py +15 -7
  35. anyscale/controllers/cloud_controller.py +151 -8
  36. anyscale/controllers/cluster_controller.py +1 -0
  37. anyscale/controllers/job_controller.py +1 -1
  38. anyscale/controllers/service_controller.py +1 -0
  39. anyscale/image/commands.py +6 -6
  40. anyscale/job/_private/job_sdk.py +22 -24
  41. anyscale/job/commands.py +12 -12
  42. anyscale/organization_invitation/commands.py +11 -7
  43. anyscale/project/__init__.py +2 -2
  44. anyscale/project/_private/project_sdk.py +2 -2
  45. anyscale/project/commands.py +3 -3
  46. anyscale/project_utils.py +1 -1
  47. anyscale/resource_quota/commands.py +18 -10
  48. anyscale/schedule/commands.py +12 -8
  49. anyscale/sdk/anyscale_client/sdk.py +1 -0
  50. anyscale/service/commands.py +17 -17
  51. anyscale/service_account/commands.py +12 -10
  52. anyscale/user/commands.py +5 -3
  53. anyscale/utils/gcp_utils.py +25 -9
  54. anyscale/version.py +1 -1
  55. anyscale/workspace/__init__.py +1 -1
  56. anyscale/workspace/_private/workspace_sdk.py +5 -3
  57. anyscale/workspace/commands.py +26 -24
  58. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/METADATA +1 -1
  59. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/RECORD +64 -60
  60. anyscale/client/openapi_client/models/aviary_model_config_v2.py +0 -358
  61. anyscale/client/openapi_client/models/finish_ft_job_request_v2.py +0 -183
  62. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/LICENSE +0 -0
  63. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/NOTICE +0 -0
  64. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/WHEEL +0 -0
  65. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/entry_points.txt +0 -0
  66. {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/top_level.txt +0 -0
@@ -36,12 +36,14 @@ _APPLY_ARG_DOCSTRINGS = {"config": "The config options defining the schedule."}
36
36
  doc_py_example=_APPLY_EXAMPLE,
37
37
  arg_docstrings=_APPLY_ARG_DOCSTRINGS,
38
38
  )
39
- def apply(config: ScheduleConfig, *, _sdk: PrivateScheduleSDK) -> str:
39
+ def apply(
40
+ config: ScheduleConfig, *, _private_sdk: Optional[PrivateScheduleSDK] = None
41
+ ) -> str:
40
42
  """Apply or update a schedule.
41
43
 
42
44
  Returns the id of the schedule.
43
45
  """
44
- return _sdk.apply(config)
46
+ return _private_sdk.apply(config) # type: ignore
45
47
 
46
48
 
47
49
  _SET_STATE_EXAMPLE = """
@@ -76,13 +78,15 @@ def set_state(
76
78
  cloud: Optional[str] = None,
77
79
  project: Optional[str] = None,
78
80
  state: ScheduleState,
79
- _sdk: PrivateScheduleSDK
81
+ _private_sdk: Optional[PrivateScheduleSDK] = None
80
82
  ) -> str:
81
83
  """Set the state of a schedule.
82
84
 
83
85
  Returns the id of the schedule.
84
86
  """
85
- return _sdk.set_state(id=id, name=name, cloud=cloud, project=project, state=state,)
87
+ return _private_sdk.set_state( # type: ignore
88
+ id=id, name=name, cloud=cloud, project=project, state=state,
89
+ )
86
90
 
87
91
 
88
92
  _STATUS_EXAMPLE = """
@@ -110,11 +114,11 @@ def status(
110
114
  name: Optional[str] = None,
111
115
  cloud: Optional[str] = None,
112
116
  project: Optional[str] = None,
113
- _sdk: PrivateScheduleSDK
117
+ _private_sdk: Optional[PrivateScheduleSDK] = None
114
118
  ) -> ScheduleStatus:
115
119
  """Return the status of the schedule.
116
120
  """
117
- return _sdk.status(id=id, name=name, cloud=cloud, project=project)
121
+ return _private_sdk.status(id=id, name=name, cloud=cloud, project=project) # type: ignore
118
122
 
119
123
 
120
124
  _TRIGGER_EXAMPLE = """
@@ -142,8 +146,8 @@ def trigger(
142
146
  name: Optional[str] = None,
143
147
  cloud: Optional[str] = None,
144
148
  project: Optional[str] = None,
145
- _sdk: PrivateScheduleSDK
149
+ _private_sdk: Optional[PrivateScheduleSDK] = None
146
150
  ) -> str:
147
151
  """Trigger the execution of the schedule.
148
152
  """
149
- return _sdk.trigger(id=id, name=name, cloud=cloud, project=project)
153
+ return _private_sdk.trigger(id=id, name=name, cloud=cloud, project=project) # type: ignore
@@ -477,6 +477,7 @@ class AnyscaleSDK(DefaultApi): # type: ignore
477
477
  create_cluster_environment, poll_rate_seconds, timeout_seconds
478
478
  )
479
479
 
480
+ assert cluster_environment_build is not None
480
481
  return self.launch_cluster(
481
482
  project_id,
482
483
  cluster_name,
@@ -48,7 +48,7 @@ def deploy(
48
48
  in_place: bool = False,
49
49
  canary_percent: Optional[int] = None,
50
50
  max_surge_percent: Optional[int] = None,
51
- _sdk: PrivateServiceSDK,
51
+ _private_sdk: Optional[PrivateServiceSDK] = None,
52
52
  ) -> str:
53
53
  """Deploy a service.
54
54
 
@@ -58,7 +58,7 @@ def deploy(
58
58
 
59
59
  Returns the id of the deployed service.
60
60
  """
61
- return _sdk.deploy(
61
+ return _private_sdk.deploy( # type: ignore
62
62
  config,
63
63
  in_place=in_place,
64
64
  canary_percent=canary_percent,
@@ -92,7 +92,7 @@ def rollback(
92
92
  cloud: Optional[str] = None,
93
93
  project: Optional[str] = None,
94
94
  max_surge_percent: Optional[int] = None,
95
- _sdk: PrivateServiceSDK,
95
+ _private_sdk: Optional[PrivateServiceSDK] = None,
96
96
  ) -> str:
97
97
  """Rollback to the primary version of the service.
98
98
 
@@ -103,7 +103,7 @@ def rollback(
103
103
 
104
104
  Returns the id of the rolled back service.
105
105
  """
106
- return _sdk.rollback(
106
+ return _private_sdk.rollback( # type: ignore
107
107
  name=name, cloud=cloud, project=project, max_surge_percent=max_surge_percent
108
108
  )
109
109
 
@@ -132,7 +132,7 @@ def terminate(
132
132
  *,
133
133
  cloud: Optional[str] = None,
134
134
  project: Optional[str] = None,
135
- _sdk: PrivateServiceSDK,
135
+ _private_sdk: Optional[PrivateServiceSDK] = None,
136
136
  ) -> str:
137
137
  """Terminate a service.
138
138
 
@@ -140,7 +140,7 @@ def terminate(
140
140
 
141
141
  Returns the id of the terminated service.
142
142
  """
143
- return _sdk.terminate(name=name, cloud=cloud, project=project)
143
+ return _private_sdk.terminate(name=name, cloud=cloud, project=project) # type: ignore
144
144
 
145
145
 
146
146
  _ARCHIVE_EXAMPLE = """
@@ -169,7 +169,7 @@ def archive(
169
169
  *,
170
170
  cloud: Optional[str] = None,
171
171
  project: Optional[str] = None,
172
- _sdk: PrivateServiceSDK,
172
+ _private_sdk: Optional[PrivateServiceSDK] = None,
173
173
  ) -> str:
174
174
  """Archive a service.
175
175
 
@@ -177,7 +177,7 @@ def archive(
177
177
 
178
178
  Returns the ID of the archived service.
179
179
  """
180
- return _sdk.archive(id=id, name=name, cloud=cloud, project=project)
180
+ return _private_sdk.archive(id=id, name=name, cloud=cloud, project=project) # type: ignore
181
181
 
182
182
 
183
183
  _DELETE_EXAMPLE = """
@@ -206,7 +206,7 @@ def delete(
206
206
  *,
207
207
  cloud: Optional[str] = None,
208
208
  project: Optional[str] = None,
209
- _sdk: PrivateServiceSDK,
209
+ _private_sdk: Optional[PrivateServiceSDK] = None,
210
210
  ) -> str:
211
211
  """Delete a service.
212
212
 
@@ -214,7 +214,7 @@ def delete(
214
214
 
215
215
  Returns the ID of the deleted service.
216
216
  """
217
- return _sdk.delete(id=id, name=name, cloud=cloud, project=project)
217
+ return _private_sdk.delete(id=id, name=name, cloud=cloud, project=project) # type: ignore
218
218
 
219
219
 
220
220
  _STATUS_EXAMPLE = """
@@ -242,10 +242,10 @@ def status(
242
242
  *,
243
243
  cloud: Optional[str] = None,
244
244
  project: Optional[str] = None,
245
- _sdk: PrivateServiceSDK,
245
+ _private_sdk: Optional[PrivateServiceSDK] = None,
246
246
  ) -> ServiceStatus:
247
247
  """Get the status of a service."""
248
- return _sdk.status(name=name, cloud=cloud, project=project)
248
+ return _private_sdk.status(name=name, cloud=cloud, project=project) # type: ignore
249
249
 
250
250
 
251
251
  _WAIT_EXAMPLE = """
@@ -277,18 +277,18 @@ def wait(
277
277
  project: Optional[str] = None,
278
278
  state: Union[str, ServiceState] = ServiceState.RUNNING,
279
279
  timeout_s: float = 600,
280
- _sdk: PrivateServiceSDK,
280
+ _private_sdk: Optional[PrivateServiceSDK] = None,
281
281
  _interval_s: float = 5,
282
282
  ):
283
283
  """Wait for a service to reach a target state."""
284
- _sdk.wait(
284
+ _private_sdk.wait( # type: ignore
285
285
  name=name,
286
286
  cloud=cloud,
287
287
  project=project,
288
288
  state=ServiceState(state),
289
289
  timeout_s=timeout_s,
290
290
  interval_s=_interval_s,
291
- )
291
+ ) # type: ignore
292
292
 
293
293
 
294
294
  _CONTROLLER_LOGS_EXAMPLE = """
@@ -322,10 +322,10 @@ def _controller_logs(
322
322
  canary: bool = False,
323
323
  mode: Union[str, ServiceLogMode] = ServiceLogMode.TAIL,
324
324
  max_lines: int = 1000,
325
- _sdk: PrivateServiceSDK,
325
+ _private_sdk: Optional[PrivateServiceSDK] = None,
326
326
  ):
327
327
  """Wait for a service to reach a target state."""
328
- return _sdk.controller_logs(
328
+ return _private_sdk.controller_logs( # type: ignore
329
329
  name,
330
330
  cloud=cloud,
331
331
  project=project,
@@ -77,10 +77,12 @@ _ROTATE_API_KEYS_DOCSTRINGS = {
77
77
  doc_py_example=_CREATE_EXAMPLE,
78
78
  arg_docstrings=_CREATE_DOCSTRINGS,
79
79
  )
80
- def create(name: str, *, _sdk: PrivateServiceAccountSDK) -> str:
80
+ def create(
81
+ name: str, *, _private_sdk: Optional[PrivateServiceAccountSDK] = None
82
+ ) -> str:
81
83
  """Create a service account and return the API key.
82
84
  """
83
- return _sdk.create(name)
85
+ return _private_sdk.create(name) # type: ignore
84
86
 
85
87
 
86
88
  @sdk_command(
@@ -93,11 +95,11 @@ def create_api_key(
93
95
  email: Optional[str] = None,
94
96
  name: Optional[str] = None,
95
97
  *,
96
- _sdk: PrivateServiceAccountSDK
98
+ _private_sdk: Optional[PrivateServiceAccountSDK] = None
97
99
  ) -> str:
98
100
  """Create an API key for the service account and return the API key.
99
101
  """
100
- return _sdk.create_api_key(email, name)
102
+ return _private_sdk.create_api_key(email, name) # type: ignore
101
103
 
102
104
 
103
105
  @sdk_command(
@@ -107,10 +109,10 @@ def create_api_key(
107
109
  arg_docstrings=_LIST_DOCSTRINGS,
108
110
  )
109
111
  def list( # noqa: A001
110
- max_items: int = 20, *, _sdk: PrivateServiceAccountSDK
112
+ max_items: int = 20, *, _private_sdk: Optional[PrivateServiceAccountSDK] = None
111
113
  ) -> List[ServiceAccount]:
112
114
  """List service accounts. """
113
- return _sdk.list(max_items)
115
+ return _private_sdk.list(max_items) # type: ignore
114
116
 
115
117
 
116
118
  @sdk_command(
@@ -123,11 +125,11 @@ def delete(
123
125
  email: Optional[str] = None,
124
126
  name: Optional[str] = None,
125
127
  *,
126
- _sdk: PrivateServiceAccountSDK
128
+ _private_sdk: Optional[PrivateServiceAccountSDK] = None
127
129
  ):
128
130
  """Delete a service account.
129
131
  """
130
- return _sdk.delete(email, name)
132
+ return _private_sdk.delete(email, name) # type: ignore
131
133
 
132
134
 
133
135
  @sdk_command(
@@ -140,8 +142,8 @@ def rotate_api_keys(
140
142
  email: Optional[str] = None,
141
143
  name: Optional[str] = None,
142
144
  *,
143
- _sdk: PrivateServiceAccountSDK
145
+ _private_sdk: Optional[PrivateServiceAccountSDK] = None
144
146
  ) -> str:
145
147
  """Rotate all api keys of a service account and return the new API key.
146
148
  """
147
- return _sdk.rotate_api_keys(email, name)
149
+ return _private_sdk.rotate_api_keys(email, name) # type: ignore
anyscale/user/commands.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import List
1
+ from typing import List, Optional
2
2
 
3
3
  from anyscale._private.sdk import sdk_command
4
4
  from anyscale.user._private.user_sdk import PrivateUserSDK
@@ -35,8 +35,10 @@ _ADMIN_BATCH_CREATE_ARG_DOCSTRINGS = {
35
35
  arg_docstrings=_ADMIN_BATCH_CREATE_ARG_DOCSTRINGS,
36
36
  )
37
37
  def admin_batch_create(
38
- admin_create_users: List[AdminCreateUser], *, _sdk: PrivateUserSDK
38
+ admin_create_users: List[AdminCreateUser],
39
+ *,
40
+ _private_sdk: Optional[PrivateUserSDK] = None
39
41
  ) -> List[AdminCreatedUser]:
40
42
  """Batch create, as an admin, users without email verification.
41
43
  """
42
- return _sdk.admin_batch_create(admin_create_users)
44
+ return _private_sdk.admin_batch_create(admin_create_users) # type: ignore
@@ -41,15 +41,31 @@ GCP_REQUIRED_APIS = [
41
41
  ]
42
42
 
43
43
  GCP_RESOURCE_DICT: Dict[str, CloudAnalyticsEventCloudResource] = {
44
- "VPC": CloudAnalyticsEventCloudResource.GCP_VPC,
45
- "Subnet": CloudAnalyticsEventCloudResource.GCP_SUBNET,
46
- "Project": CloudAnalyticsEventCloudResource.GCP_PROJECT,
47
- "Anyscale Access Service Account": CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT,
48
- "Dataplane Service Account": CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT,
49
- "Firewall Policy": CloudAnalyticsEventCloudResource.GCP_FIREWALL_POLICY,
50
- "Filestore": CloudAnalyticsEventCloudResource.GCP_FILESTORE,
51
- "Google Cloud Storage Bucket": CloudAnalyticsEventCloudResource.GCP_STORAGE_BUCKET,
52
- "Memorystore": CloudAnalyticsEventCloudResource.GCP_MEMORYSTORE,
44
+ "VPC": CloudAnalyticsEventCloudResource(CloudAnalyticsEventCloudResource.GCP_VPC),
45
+ "Subnet": CloudAnalyticsEventCloudResource(
46
+ CloudAnalyticsEventCloudResource.GCP_SUBNET
47
+ ),
48
+ "Project": CloudAnalyticsEventCloudResource(
49
+ CloudAnalyticsEventCloudResource.GCP_PROJECT
50
+ ),
51
+ "Anyscale Access Service Account": CloudAnalyticsEventCloudResource(
52
+ CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT
53
+ ),
54
+ "Dataplane Service Account": CloudAnalyticsEventCloudResource(
55
+ CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT
56
+ ),
57
+ "Firewall Policy": CloudAnalyticsEventCloudResource(
58
+ CloudAnalyticsEventCloudResource.GCP_FIREWALL_POLICY
59
+ ),
60
+ "Filestore": CloudAnalyticsEventCloudResource(
61
+ CloudAnalyticsEventCloudResource.GCP_FILESTORE
62
+ ),
63
+ "Google Cloud Storage Bucket": CloudAnalyticsEventCloudResource(
64
+ CloudAnalyticsEventCloudResource.GCP_STORAGE_BUCKET
65
+ ),
66
+ "Memorystore": CloudAnalyticsEventCloudResource(
67
+ CloudAnalyticsEventCloudResource.GCP_MEMORYSTORE
68
+ ),
53
69
  }
54
70
 
55
71
 
anyscale/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.26.15"
1
+ __version__ = "0.26.17"
@@ -253,7 +253,7 @@ class WorkspaceSDK:
253
253
  doc_py_example=_UPDATE_EXAMPLE, arg_docstrings=_UPDATE_ARG_DOCSTRINGS,
254
254
  )
255
255
  def update( # noqa: F811
256
- self, *, id: str = None, config: UpdateWorkspaceConfig # noqa: A002
256
+ self, *, id: Optional[str] = None, config: UpdateWorkspaceConfig # noqa: A002
257
257
  ):
258
258
  """Update a workspace."""
259
259
  self._private_sdk.update(
@@ -292,7 +292,7 @@ class PrivateWorkspaceSDK(WorkloadSDK):
292
292
  f"Workspace '{workspace_id_or_name}' did not reach target state {state} within {timeout_s}s. Last seen state: {curr_state}."
293
293
  )
294
294
 
295
- def _get_workspace_status(self, workspace_id: str) -> WorkspaceState:
295
+ def _get_workspace_status(self, workspace_id: Optional[str]) -> WorkspaceState:
296
296
 
297
297
  cluster = self.client.get_workspace_cluster(workspace_id)
298
298
  if not cluster:
@@ -564,7 +564,9 @@ class PrivateWorkspaceSDK(WorkloadSDK):
564
564
  delete=delete,
565
565
  )
566
566
 
567
- def update(self, *, id: str, config: UpdateWorkspaceConfig) -> str: # noqa: A002
567
+ def update(
568
+ self, *, id: Optional[str], config: UpdateWorkspaceConfig # noqa: A002
569
+ ) -> str:
568
570
  workspace = self.client.get_workspace(id=id) # type: ignore
569
571
 
570
572
  if not workspace:
@@ -642,7 +644,7 @@ class PrivateWorkspaceSDK(WorkloadSDK):
642
644
  )
643
645
  self._logger.info(f"Applied environment variables to workspace id: {id}")
644
646
 
645
- return id
647
+ return id # type: ignore
646
648
 
647
649
  def _convert_cluster_state_to_workspace_state(
648
650
  self, state: SessionState
@@ -34,12 +34,14 @@ _WAIT_TIMEOUT_SECONDS = 1800.0
34
34
  doc_py_example=_CREATE_EXAMPLE,
35
35
  arg_docstrings=_CREATE_ARG_DOCSTRINGS,
36
36
  )
37
- def create(config: WorkspaceConfig, *, _sdk: PrivateWorkspaceSDK) -> str:
37
+ def create(
38
+ config: WorkspaceConfig, *, _private_sdk: Optional[PrivateWorkspaceSDK] = None
39
+ ) -> str:
38
40
  """Create a workspace.
39
41
 
40
42
  Returns the id of the created workspace.
41
43
  """
42
- return _sdk.create(config)
44
+ return _private_sdk.create(config) # type: ignore
43
45
 
44
46
 
45
47
  _START_EXAMPLE = """
@@ -70,13 +72,13 @@ def start(
70
72
  id: Optional[str] = None, # noqa: A002
71
73
  cloud: Optional[str] = None,
72
74
  project: Optional[str] = None,
73
- _sdk: PrivateWorkspaceSDK,
75
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
74
76
  ) -> str:
75
77
  """Start a workspace.
76
78
 
77
79
  Returns the id of the started workspace.
78
80
  """
79
- return _sdk.start(name=name, id=id, cloud=cloud, project=project)
81
+ return _private_sdk.start(name=name, id=id, cloud=cloud, project=project) # type: ignore
80
82
 
81
83
 
82
84
  _TERMINATE_EXAMPLE = """
@@ -107,13 +109,13 @@ def terminate(
107
109
  id: Optional[str] = None, # noqa: A002
108
110
  cloud: Optional[str] = None,
109
111
  project: Optional[str] = None,
110
- _sdk: PrivateWorkspaceSDK,
112
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
111
113
  ) -> str:
112
114
  """Terminate a workspace.
113
115
 
114
116
  Returns the id of the terminated workspace.
115
117
  """
116
- return _sdk.terminate(name=name, id=id, cloud=cloud, project=project)
118
+ return _private_sdk.terminate(name=name, id=id, cloud=cloud, project=project) # type: ignore
117
119
 
118
120
 
119
121
  _STATUS_EXAMPLE = """
@@ -144,13 +146,13 @@ def status(
144
146
  id: Optional[str] = None, # noqa: A002
145
147
  cloud: Optional[str] = None,
146
148
  project: Optional[str] = None,
147
- _sdk: PrivateWorkspaceSDK,
149
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
148
150
  ) -> str:
149
151
  """Get the status of a workspace.
150
152
 
151
153
  Returns the status of the workspace.
152
154
  """
153
- return _sdk.status(name=name, id=id, cloud=cloud, project=project)
155
+ return _private_sdk.status(name=name, id=id, cloud=cloud, project=project) # type: ignore
154
156
 
155
157
 
156
158
  _WAIT_EXAMPLE = """
@@ -185,13 +187,13 @@ def wait(
185
187
  project: Optional[str] = None,
186
188
  timeout_s: float = _WAIT_TIMEOUT_SECONDS,
187
189
  state: str = WorkspaceState.RUNNING,
188
- _sdk: PrivateWorkspaceSDK,
190
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
189
191
  ) -> str:
190
192
  """Wait for a workspace to reach a terminal state.
191
193
 
192
194
  Returns the status of the workspace.
193
195
  """
194
- return _sdk.wait(
196
+ return _private_sdk.wait( # type: ignore
195
197
  name=name,
196
198
  id=id,
197
199
  cloud=cloud,
@@ -235,13 +237,13 @@ def generate_ssh_config_file(
235
237
  cloud: Optional[str] = None,
236
238
  project: Optional[str] = None,
237
239
  ssh_config_path: Optional[str] = None,
238
- _sdk: PrivateWorkspaceSDK,
240
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
239
241
  ) -> Tuple[str, str]:
240
242
  """Generate an SSH config file for a workspace.
241
243
 
242
244
  Returns the hostname and path to the generated config file.
243
245
  """
244
- return _sdk.generate_ssh_config_file(
246
+ return _private_sdk.generate_ssh_config_file( # type: ignore
245
247
  name=name, id=id, cloud=cloud, project=project, ssh_config_path=ssh_config_path,
246
248
  )
247
249
 
@@ -281,14 +283,14 @@ def run_command(
281
283
  cloud: Optional[str] = None,
282
284
  project: Optional[str] = None,
283
285
  command: str,
284
- _sdk: PrivateWorkspaceSDK,
286
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
285
287
  **kwargs: Dict[str, Any],
286
288
  ):
287
289
  """Run a command in a workspace.
288
290
 
289
291
  Returns a subprocess.CompletedProcess object.
290
292
  """
291
- return _sdk.run_command(
293
+ return _private_sdk.run_command( # type: ignore
292
294
  name=name, id=id, cloud=cloud, project=project, command=command, **kwargs,
293
295
  )
294
296
 
@@ -328,13 +330,13 @@ def pull(
328
330
  pull_git_state: bool = False,
329
331
  rsync_args: Optional[List[str]] = None,
330
332
  delete: bool = False,
331
- _sdk: PrivateWorkspaceSDK,
333
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
332
334
  ) -> None:
333
335
  """Pull a workspace to a local directory.
334
336
 
335
337
  Returns the path to the pulled workspace.
336
338
  """
337
- _sdk.pull(
339
+ _private_sdk.pull( # type: ignore
338
340
  name=name,
339
341
  id=id,
340
342
  cloud=cloud,
@@ -383,13 +385,13 @@ def push(
383
385
  push_git_state: bool = False,
384
386
  rsync_args: Optional[List[str]] = None,
385
387
  delete: bool = False,
386
- _sdk: PrivateWorkspaceSDK,
388
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
387
389
  ) -> None:
388
390
  """Push a local directory to a workspace.
389
391
 
390
392
  Returns the path to the pushed workspace.
391
393
  """
392
- _sdk.push(
394
+ _private_sdk.push( # type: ignore
393
395
  name=name,
394
396
  id=id,
395
397
  cloud=cloud,
@@ -427,13 +429,13 @@ _UPDATE_ARG_DOCSTRINGS = {
427
429
  )
428
430
  def update(
429
431
  *,
430
- id: str = None, # noqa: A002
432
+ id: Optional[str] = None, # noqa: A002
431
433
  config: UpdateWorkspaceConfig,
432
- _sdk: PrivateWorkspaceSDK,
434
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
433
435
  ) -> None:
434
436
  """Update a workspace."""
435
- _sdk.update(
436
- id=id, config=config, # type: ignore
437
+ _private_sdk.update( # type: ignore
438
+ id=id, config=config,
437
439
  )
438
440
 
439
441
 
@@ -466,7 +468,7 @@ def get(
466
468
  id: Optional[str] = None, # noqa: A002
467
469
  cloud: Optional[str] = None,
468
470
  project: Optional[str] = None,
469
- _sdk: PrivateWorkspaceSDK,
471
+ _private_sdk: Optional[PrivateWorkspaceSDK] = None,
470
472
  ) -> Workspace:
471
473
  """Get a workspace."""
472
- return _sdk.get(name=name, id=id, cloud=cloud, project=project)
474
+ return _private_sdk.get(name=name, id=id, cloud=cloud, project=project) # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anyscale
3
- Version: 0.26.15
3
+ Version: 0.26.17
4
4
  Summary: Command Line Interface for Anyscale
5
5
  Author: Anyscale Inc.
6
6
  License: AS License