anyscale 0.26.20__py3-none-any.whl → 0.26.22__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 (34) hide show
  1. anyscale/_private/anyscale_client/anyscale_client.py +103 -43
  2. anyscale/_private/anyscale_client/common.py +37 -7
  3. anyscale/_private/anyscale_client/fake_anyscale_client.py +98 -27
  4. anyscale/_private/models/model_base.py +95 -0
  5. anyscale/_private/workload/workload_sdk.py +3 -1
  6. anyscale/aggregated_instance_usage/models.py +4 -4
  7. anyscale/client/README.md +1 -9
  8. anyscale/client/openapi_client/__init__.py +0 -3
  9. anyscale/client/openapi_client/api/default_api.py +151 -715
  10. anyscale/client/openapi_client/models/__init__.py +0 -3
  11. anyscale/commands/cloud_commands.py +15 -4
  12. anyscale/commands/command_examples.py +4 -0
  13. anyscale/commands/list_util.py +107 -0
  14. anyscale/commands/service_commands.py +267 -31
  15. anyscale/commands/util.py +5 -4
  16. anyscale/controllers/cloud_controller.py +358 -49
  17. anyscale/controllers/service_controller.py +7 -86
  18. anyscale/service/__init__.py +53 -3
  19. anyscale/service/_private/service_sdk.py +177 -41
  20. anyscale/service/commands.py +78 -1
  21. anyscale/service/models.py +65 -0
  22. anyscale/util.py +35 -1
  23. anyscale/utils/gcp_utils.py +20 -4
  24. anyscale/version.py +1 -1
  25. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/METADATA +1 -1
  26. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/RECORD +31 -33
  27. anyscale/client/openapi_client/models/organization_public_identifier.py +0 -121
  28. anyscale/client/openapi_client/models/organization_response.py +0 -121
  29. anyscale/client/openapi_client/models/organizationpublicidentifier_response.py +0 -121
  30. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/LICENSE +0 -0
  31. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/NOTICE +0 -0
  32. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/WHEEL +0 -0
  33. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/entry_points.txt +0 -0
  34. {anyscale-0.26.20.dist-info → anyscale-0.26.22.dist-info}/top_level.txt +0 -0
anyscale/util.py CHANGED
@@ -37,7 +37,10 @@ from anyscale.authenticate import get_auth_api_client
37
37
  from anyscale.aws_iam_policies import ANYSCALE_IAM_POLICIES, AnyscaleIAMPolicy
38
38
  from anyscale.cli_logger import BlockLogger, CloudSetupLogger
39
39
  from anyscale.client.openapi_client.api.default_api import DefaultApi as ProductApi
40
- from anyscale.client.openapi_client.models import AWSMemoryDBClusterConfig
40
+ from anyscale.client.openapi_client.models import (
41
+ AWSMemoryDBClusterConfig,
42
+ ServiceEventCurrentState,
43
+ )
41
44
  from anyscale.client.openapi_client.models.cloud_analytics_event_cloud_resource import (
42
45
  CloudAnalyticsEventCloudResource,
43
46
  )
@@ -127,6 +130,15 @@ MEMORY_DB_RESOURCE = """ MemoryDBSubnetGroup:
127
130
  GCP_DEPLOYMENT_MANAGER_TIMEOUT_SECONDS_LONG = 600 # 10 minutes
128
131
 
129
132
 
133
+ class AnyscaleJSONEncoder(json.JSONEncoder):
134
+ """Custom JSON encoder for Anyscale models, handling datetime objects."""
135
+
136
+ def default(self, obj):
137
+ if isinstance(obj, datetime.datetime):
138
+ return obj.isoformat()
139
+ return json.JSONEncoder.default(self, obj)
140
+
141
+
130
142
  def confirm(msg: str, yes: bool) -> Optional[bool]:
131
143
  return None if yes else click.confirm(msg, abort=True)
132
144
 
@@ -623,6 +635,28 @@ def validate_non_negative_arg(ctx, param, value): # noqa: ARG001
623
635
  return value
624
636
 
625
637
 
638
+ def validate_service_state_filter(
639
+ ctx, param, value: Tuple[str, ...] # noqa: ARG001
640
+ ) -> List[str]:
641
+ """Validate ServiceEventCurrentState values."""
642
+ if not value:
643
+ return []
644
+
645
+ allowable_values_upper = {
646
+ s.upper() for s in ServiceEventCurrentState.allowable_values
647
+ }
648
+ allowed_values_str = ", ".join(ServiceEventCurrentState.allowable_values)
649
+
650
+ for state_str in value:
651
+ state_upper = state_str.upper()
652
+ if state_upper not in allowable_values_upper:
653
+ raise click.ClickException(
654
+ f"'{state_str}' is not a valid value for {param.opts[0]}. Allowed values: {allowed_values_str}"
655
+ )
656
+
657
+ return [s.upper() for s in value]
658
+
659
+
626
660
  def _update_external_ids_for_policy(
627
661
  original_policy: Dict[str, Any], new_external_id: str
628
662
  ):
@@ -248,10 +248,26 @@ def get_gcp_filestore_config(
248
248
  filestore_instance_id: str,
249
249
  logger: CloudSetupLogger,
250
250
  ):
251
- client = factory.filestore_v1.CloudFilestoreManagerClient()
252
251
  instance_name = "projects/{}/locations/{}/instances/{}".format(
253
252
  project_id, filestore_location, filestore_instance_id
254
253
  )
254
+ return get_gcp_filestore_config_from_full_name(
255
+ factory=factory, vpc_name=vpc_name, instance_name=instance_name, logger=logger,
256
+ )
257
+
258
+
259
+ def get_gcp_filestore_config_from_full_name(
260
+ factory: GoogleCloudClientFactory,
261
+ vpc_name: str,
262
+ instance_name: str,
263
+ logger: CloudSetupLogger,
264
+ ):
265
+ if not re.search("projects/.+/locations/.+/instances/.+", instance_name):
266
+ raise ValueError(
267
+ "Please provide the full filestore instance name. Example: projects/<project number>/locations/<location>/instances/<instance id>"
268
+ )
269
+
270
+ client = factory.filestore_v1.CloudFilestoreManagerClient()
255
271
  try:
256
272
  file_store = client.get_instance(name=instance_name)
257
273
  except NotFound as e:
@@ -260,7 +276,7 @@ def get_gcp_filestore_config(
260
276
  CloudSetupError.RESOURCE_NOT_FOUND,
261
277
  )
262
278
  raise ClickException(
263
- f"Could not find Filestore with id {filestore_instance_id} in project {project_id}. Please validate that you're using the correct GCP project and that the resource values are correct. Error details: {e}"
279
+ f"Could not find Filestore with id {instance_name}. Please validate that you're using the correct GCP project and that the resource values are correct. Error details: {e}"
264
280
  )
265
281
  root_dir = file_store.file_shares[0].name
266
282
  for v in file_store.networks:
@@ -271,7 +287,7 @@ def get_gcp_filestore_config(
271
287
  break
272
288
  else:
273
289
  logger.error(
274
- f"Filestore {filestore_instance_id} is not connected to {vpc_name}, but to {[v.network for v in file_store.networks]}. "
290
+ f"Filestore {instance_name} is not connected to {vpc_name}, but to {[v.network for v in file_store.networks]}. "
275
291
  f"This cannot be edited on an existing Filestore instance. Please recreate the filestore and connect it to {vpc_name}."
276
292
  )
277
293
  logger.log_resource_error(
@@ -279,7 +295,7 @@ def get_gcp_filestore_config(
279
295
  CloudSetupError.FILESTORE_NOT_CONNECTED_TO_VPC,
280
296
  )
281
297
  raise ClickException(
282
- f"Filestore {filestore_instance_id} is not connected to {vpc_name}."
298
+ f"Filestore {instance_name} is not connected to {vpc_name}."
283
299
  )
284
300
  return GCPFileStoreConfig(
285
301
  instance_name=instance_name, root_dir=root_dir, mount_target_ip=mount_target_ip,
anyscale/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.26.20"
1
+ __version__ = "0.26.22"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anyscale
3
- Version: 0.26.20
3
+ Version: 0.26.22
4
4
  Summary: Command Line Interface for Anyscale
5
5
  Author: Anyscale Inc.
6
6
  License: AS License
@@ -26,14 +26,14 @@ anyscale/project_utils.py,sha256=SBwkD5B10ku2kkmp6y-Cr5RL7xf52b9zELP35kfg2PE,176
26
26
  anyscale/scripts.py,sha256=2LWIBxPHRhFG8m0La7xJXM2xKOQIG3SvlQobS4op2b0,5624
27
27
  anyscale/snapshot.py,sha256=UGJT5C1s_4xmQxjWODK5DFpGxHRBX5jOCdSCqXESH8E,1685
28
28
  anyscale/tables.py,sha256=TV4F2uLnwehvbkAfaP7iuLlT2wLIo6ORH2LVdRGXW5g,2840
29
- anyscale/util.py,sha256=hDV4_eopdMOoVpdHmhDmxNiK-dlaAbSXLva4BM_PJFE,40825
30
- anyscale/version.py,sha256=X-hsRM2xjw6Bok6MI9VCbiKquoyDN6ZzXOXlauQNluQ,24
29
+ anyscale/util.py,sha256=14AHIhl4c4hKAW4gLZIvy5w56-zDjcPmrdWqazsvnHU,41860
30
+ anyscale/version.py,sha256=TzFsFLuSSx5Ek_9DZNRJoL6Ff3sZxQYRzL9DkMtHXBA,24
31
31
  anyscale/workspace_utils.py,sha256=OViE88CnIF5ruVxd3kazQ0Mf2BxqtMq6wx-XQ5A2cp8,1204
32
32
  anyscale/_private/anyscale_client/README.md,sha256=gk8obk7kqg6VWoUHcqDMwJULh35tYKEZFC0UF_dixGA,718
33
33
  anyscale/_private/anyscale_client/__init__.py,sha256=807Blx3RHQeS8BmKZcsOQQ4dYoKlCnpm6Bdsif2CrHg,337
34
- anyscale/_private/anyscale_client/anyscale_client.py,sha256=hxfWEGboSvh4O0-FqeyetolOqHwVEd9CClu8L2eKuTg,80768
35
- anyscale/_private/anyscale_client/common.py,sha256=92mgcResQSXDIWTT-UrRWSMJ-cf7QccEg91JlZyxObw,24433
36
- anyscale/_private/anyscale_client/fake_anyscale_client.py,sha256=pwaGUs88ANkt0D22bfq3hRFyXynMpwZgQ2wloT1Y3xY,53950
34
+ anyscale/_private/anyscale_client/anyscale_client.py,sha256=puf4cWCTttMQgdGBgK_BNh2-0P8JSjfW8mFDdnEgb2c,82799
35
+ anyscale/_private/anyscale_client/common.py,sha256=kKIFhGUrIpx4whqyP43K-XdjtP0FFCdp151rSTOYtiM,25416
36
+ anyscale/_private/anyscale_client/fake_anyscale_client.py,sha256=54jDPs2ZkLIP1A-69i-gI6bvEgB5mgYbZav18jxWEzw,57041
37
37
  anyscale/_private/docgen/README.md,sha256=z0tj8Jy0KmxWJBQMHKyzXGX_cYYgI8m5DCD6KCMU8oI,762
38
38
  anyscale/_private/docgen/__main__.py,sha256=rAKbkAjIyOps76XCrzqsxPdPTU4ANvEbeF3IG4VvVQE,26058
39
39
  anyscale/_private/docgen/api.md,sha256=4SbFnIzpQYcH-aBs0cu15BsVxiNxxnY8-Zb5Dqh4Oxw,30971
@@ -42,7 +42,7 @@ anyscale/_private/docgen/generator_legacy.py,sha256=pss_6ONF55XhARrKGcREDmg0J5pl
42
42
  anyscale/_private/docgen/models.md,sha256=z36cd7YqYr85Wx73bAKmNeLnhOvLUmm53ur66fWFsYo,297657
43
43
  anyscale/_private/models/__init__.py,sha256=ZrkdHhJZNeCYiogsHc_po8m7vaVdxEjkNGixNeYdlgs,125
44
44
  anyscale/_private/models/image_uri.py,sha256=CMzHc-MNTBsBXvX0G73bjkiznCbm95DYQusgXJ8drm8,3971
45
- anyscale/_private/models/model_base.py,sha256=11aJdjev8DRYoJtwVDrxJILkeoHyQirqOL4tclhD80s,8236
45
+ anyscale/_private/models/model_base.py,sha256=GJLA4JC0yHT554ctMYS_1es-YoTHQH9oqRHr28vV4R0,11354
46
46
  anyscale/_private/sdk/__init__.py,sha256=RXnjesqFtpABFW9oJ5ihXnkFEeKrHWwctUiHHB5jtuc,3657
47
47
  anyscale/_private/sdk/base_sdk.py,sha256=DMkiRA97DsShKtdUxncNbh9mduWGhpNn2CmmPaFcEwI,868
48
48
  anyscale/_private/sdk/timer.py,sha256=NK6rlmjW4NT6qOuxLo65FJ_wN1q23vNBaYDIt7WhSSU,1334
@@ -50,10 +50,10 @@ anyscale/_private/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
50
50
  anyscale/_private/utils/progress_util.py,sha256=7gOI91b8tKsS5dEtbhoenzvsl8408rvw6fhK90DgIXg,2303
51
51
  anyscale/_private/workload/__init__.py,sha256=_wOZsawqp5NZV9He502e2gFSM66hjqxhxNZTqxnrMws,134
52
52
  anyscale/_private/workload/workload_config.py,sha256=uo_x2tM1bAO3CsahKbUSOReauFeJ-t-IKVujhO6KU6I,8603
53
- anyscale/_private/workload/workload_sdk.py,sha256=wk0OuxEK-1ahGD6sLa7xm2MAYzkEK1z-N5qpwUit2oU,13367
53
+ anyscale/_private/workload/workload_sdk.py,sha256=B4dWapNp8w8gWS1BFtFkmVR_y7k8aElFUZ_DMe0-5qY,13425
54
54
  anyscale/aggregated_instance_usage/__init__.py,sha256=mOreJrOZ87NAF3GD2ZEJ48sSwkUDKcTOPa9_DsRBZY8,1290
55
55
  anyscale/aggregated_instance_usage/commands.py,sha256=VonXROdszXPk4fUBADwMoUDxtYSenNO3XyyoHUQdYf0,1337
56
- anyscale/aggregated_instance_usage/models.py,sha256=i78vrTZMoGevvN-89k4Q3W0-agu6TXZdwEtGsokG4L4,2855
56
+ anyscale/aggregated_instance_usage/models.py,sha256=600C2wssovjQkj1KQwzpK-jzXRAzDTxOGcZd_qD9wQ0,2871
57
57
  anyscale/aggregated_instance_usage/_private/aggregated_instance_usage_sdk.py,sha256=mBwpsE5n8NAQ9xAVGtDk-uHSU5UZbZ-DBYfPd_72uFc,1038
58
58
  anyscale/anyscale_halo/LICENSE,sha256=R2t7cIDZ6-VroHO5M_FWET8adqmdI-PGv0AnhyvCo4A,1069
59
59
  anyscale/anyscale_halo/README.md,sha256=ikBBg6631PCMv-HxdIZvIKHmVUxsn3xbFb2GdxXuCtc,41
@@ -105,7 +105,7 @@ anyscale/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
105
105
  anyscale/background/job_runner.py,sha256=LTuv9JOahyv6C9i7DLQAONgQF6--FfYZEmJrKy-sUG8,2687
106
106
  anyscale/client/.gitignore,sha256=JZyvYEtT2DCSK9V5Joi6lQofhMik4PXiJRCWsg7SvqI,807
107
107
  anyscale/client/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
108
- anyscale/client/README.md,sha256=O6_GbEec3kK3nCmsT-1Ty38DgE9nPb0T3bz_4D9Jli0,114934
108
+ anyscale/client/README.md,sha256=DHgy_HZaOYpXRq5mdXeY1gQXrJfa5hl7PtfQVecc81E,113583
109
109
  anyscale/client/git_push.sh,sha256=EDCZOTTiLxbtPHmiU63qC99rGH67B7dhdPZdNUKivF0,1827
110
110
  anyscale/client/requirements.txt,sha256=dkVKYUStC5h_g_87SH7pRdhXCj7ySozAJMGAFEzGgFc,126
111
111
  anyscale/client/setup.cfg,sha256=l7bdKSIedeBhhoDtupsBwx1xPrlBf2yYeTH7a8kMga4,28
@@ -113,14 +113,14 @@ anyscale/client/setup.py,sha256=tSxqw1kAL1B9adnrnOarjnQfSbwGmnTr_kg8ZXhlm5A,1109
113
113
  anyscale/client/test-requirements.txt,sha256=sTjmDTj5W9fh1ZAeo8UT2EBdeGDBNttj_PHiPBXg1D4,111
114
114
  anyscale/client/tox.ini,sha256=M6L3UmvAdvU65LsoAF-Oi7oRjwZlCJZn8I7ofdXn5Ok,156
115
115
  anyscale/client/.openapi-generator/VERSION,sha256=J0RzX-4u4jfin1kviKtmncjUePyjHm2kyvmkobOrt_E,5
116
- anyscale/client/openapi_client/__init__.py,sha256=AKLyqFCcA44mxSUjUSdOHqquGfpo43GW2FMFviIe8FA,50599
116
+ anyscale/client/openapi_client/__init__.py,sha256=KjpX2QTgjefH9f9j1YF4bGhAMKM4IAB_5bOqNYVkrg0,50319
117
117
  anyscale/client/openapi_client/api_client.py,sha256=d8Un6j2Ny2vlS2qBXPVFj6_ql0k36DFahpWt_28TfCk,25563
118
118
  anyscale/client/openapi_client/configuration.py,sha256=Dd5XrlHwv-wxnf0C35PG_-HBQoY3Yaz6hKrmkZz-m0E,12363
119
119
  anyscale/client/openapi_client/exceptions.py,sha256=3egwsXQG2j_vARbqgBxUO1xSltAhpfiHTYVP7VXTvU0,3792
120
120
  anyscale/client/openapi_client/rest.py,sha256=Ehj37v7GHW6SXV067Hze5HE42ayKaGi6a6ZlkR7u3Lg,12501
121
121
  anyscale/client/openapi_client/api/__init__.py,sha256=i8u7BI2xX1GrXTL3hN0pKpYIlnT-D_uDxH2ElOfYG1I,141
122
- anyscale/client/openapi_client/api/default_api.py,sha256=ZOm9tOfaM1-Vc_a1hiX-1jgPxbctMEwnffPzZDxEhK8,1851354
123
- anyscale/client/openapi_client/models/__init__.py,sha256=EHfT0wokrwW-FbVSjXo-AM7vxP4O9DHUvqIttEonh0s,50109
122
+ anyscale/client/openapi_client/api/default_api.py,sha256=SJzNSzwoKHjSNZI7Mtz-eBX8X9-B8tsYUotFUmvkwH0,1824751
123
+ anyscale/client/openapi_client/models/__init__.py,sha256=RWJEccUSdsZM9QRtU0uH4_qPyGz66DQu5PHlNbyKQVU,49829
124
124
  anyscale/client/openapi_client/models/access_config.py,sha256=b2mA0qtuTA5PFbp6C61Jc_T2zUMaojM1v32IhZo0MfY,3648
125
125
  anyscale/client/openapi_client/models/actor_status.py,sha256=6xyX_aIqURj2raBdY9DmBxsdDACFrqqYvElGiM6YG2E,2813
126
126
  anyscale/client/openapi_client/models/admin_create_user.py,sha256=9DPr8D0lKgoEZ3Z2kGsAd8L7ocFCiP6woOGLVs8SRb8,7251
@@ -513,8 +513,6 @@ anyscale/client/openapi_client/models/organization_marketing_questions.py,sha256
513
513
  anyscale/client/openapi_client/models/organization_permission_level.py,sha256=Sy1xIvsy9fzjby9nDPRY-h17ApP6w0dAJihsX8GfNR8,2901
514
514
  anyscale/client/openapi_client/models/organization_project_collaborator.py,sha256=ehPJ8ooHDgWsczYpEvcKCjA4PXZJJNMfRy7QouO1TRc,5549
515
515
  anyscale/client/openapi_client/models/organization_project_collaborator_value.py,sha256=GjJOuK3YJxT4Zo1x8Qtx8vNSVrd1-TNoP0pq5rK_7zQ,4940
516
- anyscale/client/openapi_client/models/organization_public_identifier.py,sha256=Q4IbV0dAICW8FsAz6H34Ew_sX3HNF7ZCj_-4x0t-atg,3818
517
- anyscale/client/openapi_client/models/organization_response.py,sha256=MkKCkhv3di4eQjMrx_Ejhb5nCUt47ob8GPMrZEDVba4,3550
518
516
  anyscale/client/openapi_client/models/organization_summary.py,sha256=ZPgla-b8Nd3TMkV8YvQ4cBnIM9IFDgDImu78Z3Q_uCo,7076
519
517
  anyscale/client/openapi_client/models/organization_usage_alert.py,sha256=Uy-lvb3Dbt0xodA-FtNZ6wkbZT4PVkUgjP2XvioY_ko,6761
520
518
  anyscale/client/openapi_client/models/organization_usage_alert_severity.py,sha256=PwbYUpLVgcZzvao-t4MyH6r7wfiIoMaqsxbMkpakoWE,2898
@@ -525,7 +523,6 @@ anyscale/client/openapi_client/models/organizationinvitation_list_response.py,sh
525
523
  anyscale/client/openapi_client/models/organizationinvitation_response.py,sha256=I1XZtYWD9cqHSpKE1iObaN8Nyu_r4cGrmEQrg4Rt5qA,3660
526
524
  anyscale/client/openapi_client/models/organizationinvitationbase_response.py,sha256=AGaWU4PB23BsBWjUKbAhSSqp0e5Q2shzwrzac3JhwPM,3704
527
525
  anyscale/client/openapi_client/models/organizationprojectcollaborator_list_response.py,sha256=KMsgUJv21jbhJ8o3WxNKdy0au447f3cGcGEmzmdzGbM,4662
528
- anyscale/client/openapi_client/models/organizationpublicidentifier_response.py,sha256=35Hz_zc13R7QKUDQQ-5yZGCNTkdQ6O-mYNFKwcmS3P0,3726
529
526
  anyscale/client/openapi_client/models/organizationusagealert_list_response.py,sha256=AojOBFsB3Edd8H1ZusnfBGhX5oGc162k_q4XZFEigHY,4527
530
527
  anyscale/client/openapi_client/models/page_query.py,sha256=dw5HgH5gVYi2OcLW3Kg0Zt5mf0GWq-Qv-RW83FANLeM,4585
531
528
  anyscale/client/openapi_client/models/pause_schedule.py,sha256=ru7_OzH7oDw5y2h1o5QNfKW8TXbkF1h-NDwccbUDRd0,3661
@@ -733,11 +730,11 @@ anyscale/cloud/_private/cloud_sdk.py,sha256=xCoAVomOfo75YWZzHMm9TDeL8UUx79Gn1DeE
733
730
  anyscale/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
734
731
  anyscale/commands/aggregated_instance_usage_commands.py,sha256=TRP1X3hdIWbKg9V20VtazlDXsYAeV--M0DH3-Z5tnj4,2293
735
732
  anyscale/commands/auth_commands.py,sha256=X1g6Yu9kqgPb4HLODlZTYEk8G5AVLeyizPIgagWx-p0,1026
736
- anyscale/commands/cloud_commands.py,sha256=80NOTU4V2_ApOyTJaFEtm0TPwFa6tqocC1m34jL0JeQ,43628
733
+ anyscale/commands/cloud_commands.py,sha256=kN6BOfCLRPV-fyPyZQ1V-GPqQzrOgsD8zatNQ1NzjlE,43916
737
734
  anyscale/commands/cloud_commands_util.py,sha256=d-6TSZ_syrGkZ3Fc1uRX6jG4dqYMebNkBNpYLojOJFg,247
738
735
  anyscale/commands/cluster_commands.py,sha256=taNcffyFfqJ1MgOQd0cz9kzRXWFTdp-wfLPM4l_2tBc,13487
739
736
  anyscale/commands/cluster_env_commands.py,sha256=KNWylyE8Ew1sDi7yu2Tp4RLcRu2_KJJJIzVGRyPflJo,3899
740
- anyscale/commands/command_examples.py,sha256=NPUvnaHregPYQz8jFEFM-0RtU86OL5b49gDP6yOnJuA,26356
737
+ anyscale/commands/command_examples.py,sha256=NpKuuQBgmZ9sYO6zYHW1EP4Q7dhgk8ES61EmWK8JSNE,26448
741
738
  anyscale/commands/compute_config_commands.py,sha256=vdyrtMcdP8eeK32p_Y6zF-qps6_SyzprhbjRZ9p18tQ,7828
742
739
  anyscale/commands/config_commands.py,sha256=p55uM6WrhfbFoRXC9hNAV-8c5ANghw7tBUYwaQDAtjE,7195
743
740
  anyscale/commands/exec_commands.py,sha256=cMOP1u6xQbl81h69Jug3y73XnNSwpbM6XC1X57SIp4c,465
@@ -746,6 +743,7 @@ anyscale/commands/image_commands.py,sha256=M5UIxeBx40tZWzOJ51dtmB3rjj4VUmxNeK0rW
746
743
  anyscale/commands/job_commands.py,sha256=_U3imBldpwXv-Y-7gWZp3dzt9okpQzACC414H2mPbRg,25113
747
744
  anyscale/commands/job_queue_commands.py,sha256=eq80XfHJpajBY9sBfdFqQRiuZfcHJGTYFm7eX_gESUQ,4953
748
745
  anyscale/commands/list_commands.py,sha256=rcDn-Qh3z99zE9oD7RPPa80-y0ml90W4UbGiYMw4aQo,2710
746
+ anyscale/commands/list_util.py,sha256=tDKC6jQ7XtOVUe2KfHYkF2yRCbGw2fmAHtdmPgchWv8,3717
749
747
  anyscale/commands/login_commands.py,sha256=0pIjpRC3Mw86WjDubJ5v2FHINke-Tk3JvGal_aiQMG0,3477
750
748
  anyscale/commands/logs_commands.py,sha256=OgOwBsEbhcGH-STQ9MOJy8sQBYcZYmd31wzHzVPUo0g,9495
751
749
  anyscale/commands/machine_commands.py,sha256=73rgz9aTIOBYcWX8zH-OYlUx3UuhODHtl1RnKtBdU1E,3641
@@ -756,10 +754,10 @@ anyscale/commands/project_commands.py,sha256=xVm-W5kKzgfbQjAiHSRhnyMIlYgGji1TUfY
756
754
  anyscale/commands/resource_quota_commands.py,sha256=J6r8b6Bo1wMys5pYWieD6F-VsC2OpQZGVLaNFlvAKmI,8536
757
755
  anyscale/commands/schedule_commands.py,sha256=mdwelVght3HnN5YPjtG4Spn0KiEDWmg-UosfaDkQPKE,14485
758
756
  anyscale/commands/service_account_commands.py,sha256=u45N2akHsZxyu5LK03FGEEnZh4dTt4B2Be-dXgbSg3U,3977
759
- anyscale/commands/service_commands.py,sha256=XpBU7vz4b4rHnBnD367nRC_bYhoF6a6YvSTFpyyIrVo,26470
757
+ anyscale/commands/service_commands.py,sha256=M-GRQMbnM5TxNAJZ4194-AfuE8TBs-hl5Y820At6eJk,33271
760
758
  anyscale/commands/session_commands_hidden.py,sha256=APEypnUB1yV2Rr6wdSFWy1vQbAnn-lOn0rU2enF5JdM,6200
761
759
  anyscale/commands/user_commands.py,sha256=C-i1dGpdhboywN_2XgPS2BekKx2y6LZq8c8gvS0S-tY,1259
762
- anyscale/commands/util.py,sha256=h34d1OUOjcC_QMUGc8th-sAp7xDGs4l7YeYmJx82BKk,5106
760
+ anyscale/commands/util.py,sha256=N8gkVv9LBr5QypBGm2e_Pw2F2e_tiiR4YNLmn8CtsK0,5124
763
761
  anyscale/commands/workspace_commands.py,sha256=RjK8rPlIPoReZBb7RPB6z9aFp7gSmnsxDge8d3uj9t8,15768
764
762
  anyscale/commands/workspace_commands_v2.py,sha256=N4vpb54xq_4wrCwsYQrjrjNxYwYvOE3gbP0pmrfYmEE,27964
765
763
  anyscale/commands/anyscale_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -780,7 +778,7 @@ anyscale/connect_utils/start_interactive_session.py,sha256=DbuIK2wuWofmbwJ9MLbsb
780
778
  anyscale/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
781
779
  anyscale/controllers/auth_controller.py,sha256=hDY2sPvUP8pvh8PnlDYH5rCHjQes2v3b_KBVjMbrzeE,5127
782
780
  anyscale/controllers/base_controller.py,sha256=1QFJoScFUV7YTzpKarhwPOc1SvI-xqX3TZmwxKonW6I,1998
783
- anyscale/controllers/cloud_controller.py,sha256=kTYiI7iMWttvlskz2FctmX_8ojY8TBb-Ta6vJgB4pXc,164817
781
+ anyscale/controllers/cloud_controller.py,sha256=KV-kuft6dVIC1cvI6amAIe5RGVBO_SWakNljcm6yVGc,176887
784
782
  anyscale/controllers/cloud_functional_verification_controller.py,sha256=bmRmHS89Pr4m9CxCRLCHiB1FeMOTplnxzo-LdX_uFVQ,33400
785
783
  anyscale/controllers/cluster_controller.py,sha256=Sb5wVjrjpycg5iqmENAVtZ4iy9Kr6kM97_ck-KH85LM,28745
786
784
  anyscale/controllers/cluster_env_controller.py,sha256=JalGzcmnFtMHefYL5U6ijMY3nX6W6BsMEfZSMtgBvtU,8048
@@ -795,7 +793,7 @@ anyscale/controllers/machine_controller.py,sha256=WauNi7Spzt2TFZrIN4PwULzgJZBVDF
795
793
  anyscale/controllers/machine_pool_controller.py,sha256=zRWDJgnkusLfOKtaOB2c3FSE70e2SaZS0iGwO39Rar8,3574
796
794
  anyscale/controllers/project_controller.py,sha256=wAWIRGljy_oQYH7x4ERJxqtbW5z1Vgu9wVN9ifq_vaY,10904
797
795
  anyscale/controllers/schedule_controller.py,sha256=4yLsWfRVqAFAkSV-eUnvLHw1732SUY7oWsgjeJrhhL8,11910
798
- anyscale/controllers/service_controller.py,sha256=a3mrYb_1c7YZh_3RcjT11Q3Rx9mSQ-OYtEg1bG37iiI,17041
796
+ anyscale/controllers/service_controller.py,sha256=mj6epC7KmWB5KG9FGa0j8X-I-UMxiExqGsi80SvHmcM,14467
799
797
  anyscale/controllers/workspace_controller.py,sha256=LNjLMxQ29vBvYiVVLUWVl3AXTHlRU4Ohao0EgiD4ofI,8449
800
798
  anyscale/controllers/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
801
799
  anyscale/controllers/llm/models_controller.py,sha256=IXI9-1LpUPMSuPEChBcZCEagvJHh52R3djfyk5JY1xU,5690
@@ -1037,10 +1035,10 @@ anyscale/sdk/anyscale_client/models/user_service_access_types.py,sha256=3gW1L_VT
1037
1035
  anyscale/sdk/anyscale_client/models/ux_instance.py,sha256=F2F2cxAJ5GElRgHcrxpB7GEpvhM-PJa3qpBBYmhwlUQ,15935
1038
1036
  anyscale/sdk/anyscale_client/models/validation_error.py,sha256=h5Cope8JNSDE3Fpr1TfjcnuJPThF0dd_uawvltOqPt0,4901
1039
1037
  anyscale/sdk/anyscale_client/models/worker_node_type.py,sha256=bI3sPVPA4t4axjdbj7pNlPkKPJDDkOnMgiN7B_o3IZI,15046
1040
- anyscale/service/__init__.py,sha256=xhx3Nn5KFM7AAuEtEnpg2YMAufBkdpF1UcHahVYZyts,6233
1041
- anyscale/service/commands.py,sha256=DLymFztl_YVOmsPrPafw84odEds2B4kW91xA881W3P0,11685
1042
- anyscale/service/models.py,sha256=-e-V1RKZ34ZXPzEBkvq4vfrvum33E_JTTu6uxmDA1Ak,24038
1043
- anyscale/service/_private/service_sdk.py,sha256=5UtvG4PujdvQUVPYlrHj4KE50d8a4JrcB5ro5IWbpZE,29479
1038
+ anyscale/service/__init__.py,sha256=aH9NjJgnIXErG0uRvhjDxv0RHi0vLTQdlzAGZBUQJwU,7911
1039
+ anyscale/service/commands.py,sha256=kbWkHP3hFo0dtz0AgTkG6koqcvd35rzpmAvLZjKY25M,14232
1040
+ anyscale/service/models.py,sha256=In9Nn6xYWSpKwjYaMe1zyRWs1gU-g9J-tNt74BQh0js,25985
1041
+ anyscale/service/_private/service_sdk.py,sha256=MxN-owkUAKnnX--6xrmPkE3gLHWECWxDZVNFWtCVz6k,34286
1044
1042
  anyscale/service_account/__init__.py,sha256=jV1OFo_ZTxU3vuPztO1300TuoMz-Ocudm6_84ZtjPQ4,2764
1045
1043
  anyscale/service_account/commands.py,sha256=pkJjZwK8aRKFFVfE5swMTJrm9CTnPcNJETEFdMkPiic,3680
1046
1044
  anyscale/service_account/models.py,sha256=MhY-Fo5AZQ68brqtolTUMW3WQDrkNyL1udtNg70sNAU,2189
@@ -1081,7 +1079,7 @@ anyscale/utils/deprecation_util.py,sha256=2i1SNQIziOZXO24IuBZZUEi4ild1bqk0gfZWl2
1081
1079
  anyscale/utils/entity_arg_utils.py,sha256=HdrFNVgpPqnpv10jVOGg49bmoGy92N306u2JIy0hmqI,1061
1082
1080
  anyscale/utils/env_utils.py,sha256=QPPxwkAzIWYasZIg7apDCGwcdbQLT7qCYr9pwfNTOX0,390
1083
1081
  anyscale/utils/gcp_managed_setup_utils.py,sha256=RL-HtfdXC-VOqIAc_TAmDXWRSqZW7myiYbGrHGquGpA,31114
1084
- anyscale/utils/gcp_utils.py,sha256=3hY8--pXv-dRbsopudHhzEywBBYxyodoHRNZmpJLTT0,12967
1082
+ anyscale/utils/gcp_utils.py,sha256=SQyiDfzOK-VUVXmWPBccAxDsfQwHQrZlxcFaEpjVjWs,13485
1085
1083
  anyscale/utils/logs_utils.py,sha256=cv4ERDLKwlTzwOsndDX6jW-PNQJO2V1yDSZRW9u71sE,4812
1086
1084
  anyscale/utils/name_utils.py,sha256=MT_krOWbdVZk8v5kCy8NXIpS4yRwn5sAy8OWLAJg6Kc,949
1087
1085
  anyscale/utils/network_verification.py,sha256=jtaJhb-9xwEWKuiP7s3MKOPosAIKqYSVUQSxVoQsUR0,4951
@@ -1106,10 +1104,10 @@ anyscale/workspace/__init__.py,sha256=Innbm5ZhCyADEVBiYSo_vbpKwUNcMzVSAfxIGKOYe6
1106
1104
  anyscale/workspace/commands.py,sha256=b1sqNseoPj-1VXznqQOLe0V_a663bOTvJX-TaOMJa1Y,14590
1107
1105
  anyscale/workspace/models.py,sha256=Ey67KqxdslS51yK7xetbRaFjE8sURAArpf-F38r3cUU,9760
1108
1106
  anyscale/workspace/_private/workspace_sdk.py,sha256=2CMeYfJt0UtIFCocDn1ukw1iI5esKHdopLe6duEs-qE,27599
1109
- anyscale-0.26.20.dist-info/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
1110
- anyscale-0.26.20.dist-info/METADATA,sha256=xclosJZ8AIElbWJuQzprTvYnOWI-eZ40_H14Sd66h1s,3160
1111
- anyscale-0.26.20.dist-info/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
1112
- anyscale-0.26.20.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1113
- anyscale-0.26.20.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
1114
- anyscale-0.26.20.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
1115
- anyscale-0.26.20.dist-info/RECORD,,
1107
+ anyscale-0.26.22.dist-info/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
1108
+ anyscale-0.26.22.dist-info/METADATA,sha256=_b2gRKDjDbmKiNJ3lTaTBGbqF9O8Md8XNhX9isq768Q,3160
1109
+ anyscale-0.26.22.dist-info/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
1110
+ anyscale-0.26.22.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1111
+ anyscale-0.26.22.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
1112
+ anyscale-0.26.22.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
1113
+ anyscale-0.26.22.dist-info/RECORD,,
@@ -1,121 +0,0 @@
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 OrganizationPublicIdentifier(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
- 'public_identifier': 'str'
37
- }
38
-
39
- attribute_map = {
40
- 'public_identifier': 'public_identifier'
41
- }
42
-
43
- def __init__(self, public_identifier=None, local_vars_configuration=None): # noqa: E501
44
- """OrganizationPublicIdentifier - a model defined in OpenAPI""" # noqa: E501
45
- if local_vars_configuration is None:
46
- local_vars_configuration = Configuration()
47
- self.local_vars_configuration = local_vars_configuration
48
-
49
- self._public_identifier = None
50
- self.discriminator = None
51
-
52
- self.public_identifier = public_identifier
53
-
54
- @property
55
- def public_identifier(self):
56
- """Gets the public_identifier of this OrganizationPublicIdentifier. # noqa: E501
57
-
58
-
59
- :return: The public_identifier of this OrganizationPublicIdentifier. # noqa: E501
60
- :rtype: str
61
- """
62
- return self._public_identifier
63
-
64
- @public_identifier.setter
65
- def public_identifier(self, public_identifier):
66
- """Sets the public_identifier of this OrganizationPublicIdentifier.
67
-
68
-
69
- :param public_identifier: The public_identifier of this OrganizationPublicIdentifier. # noqa: E501
70
- :type: str
71
- """
72
- if self.local_vars_configuration.client_side_validation and public_identifier is None: # noqa: E501
73
- raise ValueError("Invalid value for `public_identifier`, must not be `None`") # noqa: E501
74
-
75
- self._public_identifier = public_identifier
76
-
77
- def to_dict(self):
78
- """Returns the model properties as a dict"""
79
- result = {}
80
-
81
- for attr, _ in six.iteritems(self.openapi_types):
82
- value = getattr(self, attr)
83
- if isinstance(value, list):
84
- result[attr] = list(map(
85
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
86
- value
87
- ))
88
- elif hasattr(value, "to_dict"):
89
- result[attr] = value.to_dict()
90
- elif isinstance(value, dict):
91
- result[attr] = dict(map(
92
- lambda item: (item[0], item[1].to_dict())
93
- if hasattr(item[1], "to_dict") else item,
94
- value.items()
95
- ))
96
- else:
97
- result[attr] = value
98
-
99
- return result
100
-
101
- def to_str(self):
102
- """Returns the string representation of the model"""
103
- return pprint.pformat(self.to_dict())
104
-
105
- def __repr__(self):
106
- """For `print` and `pprint`"""
107
- return self.to_str()
108
-
109
- def __eq__(self, other):
110
- """Returns true if both objects are equal"""
111
- if not isinstance(other, OrganizationPublicIdentifier):
112
- return False
113
-
114
- return self.to_dict() == other.to_dict()
115
-
116
- def __ne__(self, other):
117
- """Returns true if both objects are not equal"""
118
- if not isinstance(other, OrganizationPublicIdentifier):
119
- return True
120
-
121
- return self.to_dict() != other.to_dict()
@@ -1,121 +0,0 @@
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 OrganizationResponse(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
- 'result': 'Organization'
37
- }
38
-
39
- attribute_map = {
40
- 'result': 'result'
41
- }
42
-
43
- def __init__(self, result=None, local_vars_configuration=None): # noqa: E501
44
- """OrganizationResponse - a model defined in OpenAPI""" # noqa: E501
45
- if local_vars_configuration is None:
46
- local_vars_configuration = Configuration()
47
- self.local_vars_configuration = local_vars_configuration
48
-
49
- self._result = None
50
- self.discriminator = None
51
-
52
- self.result = result
53
-
54
- @property
55
- def result(self):
56
- """Gets the result of this OrganizationResponse. # noqa: E501
57
-
58
-
59
- :return: The result of this OrganizationResponse. # noqa: E501
60
- :rtype: Organization
61
- """
62
- return self._result
63
-
64
- @result.setter
65
- def result(self, result):
66
- """Sets the result of this OrganizationResponse.
67
-
68
-
69
- :param result: The result of this OrganizationResponse. # noqa: E501
70
- :type: Organization
71
- """
72
- if self.local_vars_configuration.client_side_validation and result is None: # noqa: E501
73
- raise ValueError("Invalid value for `result`, must not be `None`") # noqa: E501
74
-
75
- self._result = result
76
-
77
- def to_dict(self):
78
- """Returns the model properties as a dict"""
79
- result = {}
80
-
81
- for attr, _ in six.iteritems(self.openapi_types):
82
- value = getattr(self, attr)
83
- if isinstance(value, list):
84
- result[attr] = list(map(
85
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
86
- value
87
- ))
88
- elif hasattr(value, "to_dict"):
89
- result[attr] = value.to_dict()
90
- elif isinstance(value, dict):
91
- result[attr] = dict(map(
92
- lambda item: (item[0], item[1].to_dict())
93
- if hasattr(item[1], "to_dict") else item,
94
- value.items()
95
- ))
96
- else:
97
- result[attr] = value
98
-
99
- return result
100
-
101
- def to_str(self):
102
- """Returns the string representation of the model"""
103
- return pprint.pformat(self.to_dict())
104
-
105
- def __repr__(self):
106
- """For `print` and `pprint`"""
107
- return self.to_str()
108
-
109
- def __eq__(self, other):
110
- """Returns true if both objects are equal"""
111
- if not isinstance(other, OrganizationResponse):
112
- return False
113
-
114
- return self.to_dict() == other.to_dict()
115
-
116
- def __ne__(self, other):
117
- """Returns true if both objects are not equal"""
118
- if not isinstance(other, OrganizationResponse):
119
- return True
120
-
121
- return self.to_dict() != other.to_dict()