anyscale 0.25.1__py3-none-any.whl → 0.25.3__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 (50) hide show
  1. anyscale/__init__.py +10 -0
  2. anyscale/_private/anyscale_client/anyscale_client.py +40 -9
  3. anyscale/_private/anyscale_client/common.py +37 -3
  4. anyscale/_private/anyscale_client/fake_anyscale_client.py +80 -6
  5. anyscale/_private/docgen/__main__.py +9 -2
  6. anyscale/_private/docgen/api.md +13 -0
  7. anyscale/_private/docgen/models.md +3 -3
  8. anyscale/_private/workload/workload_config.py +20 -6
  9. anyscale/client/README.md +6 -0
  10. anyscale/client/openapi_client/__init__.py +3 -0
  11. anyscale/client/openapi_client/api/default_api.py +391 -2
  12. anyscale/client/openapi_client/models/__init__.py +3 -0
  13. anyscale/client/openapi_client/models/baseimagesenum.py +43 -1
  14. anyscale/client/openapi_client/models/cluster_event_source.py +105 -0
  15. anyscale/client/openapi_client/models/clusterevent_list_response.py +147 -0
  16. anyscale/client/openapi_client/models/jobs_sort_field.py +1 -2
  17. anyscale/client/openapi_client/models/sessions_sort_field.py +1 -2
  18. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +43 -1
  19. anyscale/client/openapi_client/models/update_cloud_collaborator.py +121 -0
  20. anyscale/commands/cloud_commands.py +49 -12
  21. anyscale/commands/command_examples.py +4 -0
  22. anyscale/commands/service_account_commands.py +65 -8
  23. anyscale/commands/service_commands.py +60 -0
  24. anyscale/controllers/cloud_controller.py +58 -25
  25. anyscale/controllers/cluster_controller.py +1 -9
  26. anyscale/controllers/job_controller.py +0 -3
  27. anyscale/resource_quota/_private/resource_quota_sdk.py +15 -6
  28. anyscale/sdk/anyscale_client/api/default_api.py +119 -0
  29. anyscale/sdk/anyscale_client/models/baseimagesenum.py +43 -1
  30. anyscale/sdk/anyscale_client/models/jobs_sort_field.py +1 -2
  31. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +43 -1
  32. anyscale/service/__init__.py +21 -0
  33. anyscale/service/_private/service_sdk.py +13 -0
  34. anyscale/service/commands.py +35 -0
  35. anyscale/service_account/__init__.py +88 -0
  36. anyscale/service_account/_private/service_account_sdk.py +101 -0
  37. anyscale/service_account/commands.py +147 -0
  38. anyscale/service_account/models.py +66 -0
  39. anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
  40. anyscale/shared_anyscale_utils/utils/id_gen.py +2 -0
  41. anyscale/util.py +8 -0
  42. anyscale/version.py +1 -1
  43. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/METADATA +1 -1
  44. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/RECORD +49 -43
  45. anyscale/controllers/service_account_controller.py +0 -168
  46. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/LICENSE +0 -0
  47. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/NOTICE +0 -0
  48. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/WHEEL +0 -0
  49. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/entry_points.txt +0 -0
  50. {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/top_level.txt +0 -0
@@ -192,6 +192,12 @@ class SUPPORTEDBASEIMAGESENUM(object):
192
192
  RAY_ML_2_40_0_PY311_GPU = "anyscale/ray-ml:2.40.0-py311-gpu"
193
193
  RAY_ML_2_40_0_PY39_CPU = "anyscale/ray-ml:2.40.0-py39-cpu"
194
194
  RAY_ML_2_40_0_PY39_GPU = "anyscale/ray-ml:2.40.0-py39-gpu"
195
+ RAY_ML_2_41_0_PY310_CPU = "anyscale/ray-ml:2.41.0-py310-cpu"
196
+ RAY_ML_2_41_0_PY310_GPU = "anyscale/ray-ml:2.41.0-py310-gpu"
197
+ RAY_ML_2_41_0_PY311_CPU = "anyscale/ray-ml:2.41.0-py311-cpu"
198
+ RAY_ML_2_41_0_PY311_GPU = "anyscale/ray-ml:2.41.0-py311-gpu"
199
+ RAY_ML_2_41_0_PY39_CPU = "anyscale/ray-ml:2.41.0-py39-cpu"
200
+ RAY_ML_2_41_0_PY39_GPU = "anyscale/ray-ml:2.41.0-py39-gpu"
195
201
  RAY_ML_2_5_0_PY310_CPU = "anyscale/ray-ml:2.5.0-py310-cpu"
196
202
  RAY_ML_2_5_0_PY310_GPU = "anyscale/ray-ml:2.5.0-py310-gpu"
197
203
  RAY_ML_2_5_0_PY37_CPU = "anyscale/ray-ml:2.5.0-py37-cpu"
@@ -1084,6 +1090,42 @@ class SUPPORTEDBASEIMAGESENUM(object):
1084
1090
  RAY_2_40_0_SLIM_PY39_CU118 = "anyscale/ray:2.40.0-slim-py39-cu118"
1085
1091
  RAY_2_40_0_SLIM_PY39_CU121 = "anyscale/ray:2.40.0-slim-py39-cu121"
1086
1092
  RAY_2_40_0_SLIM_PY39_CU123 = "anyscale/ray:2.40.0-slim-py39-cu123"
1093
+ RAY_2_41_0_PY310 = "anyscale/ray:2.41.0-py310"
1094
+ RAY_2_41_0_PY310_CU117 = "anyscale/ray:2.41.0-py310-cu117"
1095
+ RAY_2_41_0_PY310_CU118 = "anyscale/ray:2.41.0-py310-cu118"
1096
+ RAY_2_41_0_PY310_CU121 = "anyscale/ray:2.41.0-py310-cu121"
1097
+ RAY_2_41_0_PY310_CU123 = "anyscale/ray:2.41.0-py310-cu123"
1098
+ RAY_2_41_0_PY311 = "anyscale/ray:2.41.0-py311"
1099
+ RAY_2_41_0_PY311_CU117 = "anyscale/ray:2.41.0-py311-cu117"
1100
+ RAY_2_41_0_PY311_CU118 = "anyscale/ray:2.41.0-py311-cu118"
1101
+ RAY_2_41_0_PY311_CU121 = "anyscale/ray:2.41.0-py311-cu121"
1102
+ RAY_2_41_0_PY311_CU123 = "anyscale/ray:2.41.0-py311-cu123"
1103
+ RAY_2_41_0_PY312 = "anyscale/ray:2.41.0-py312"
1104
+ RAY_2_41_0_PY312_CU117 = "anyscale/ray:2.41.0-py312-cu117"
1105
+ RAY_2_41_0_PY312_CU118 = "anyscale/ray:2.41.0-py312-cu118"
1106
+ RAY_2_41_0_PY312_CU121 = "anyscale/ray:2.41.0-py312-cu121"
1107
+ RAY_2_41_0_PY312_CU123 = "anyscale/ray:2.41.0-py312-cu123"
1108
+ RAY_2_41_0_PY39 = "anyscale/ray:2.41.0-py39"
1109
+ RAY_2_41_0_PY39_CU117 = "anyscale/ray:2.41.0-py39-cu117"
1110
+ RAY_2_41_0_PY39_CU118 = "anyscale/ray:2.41.0-py39-cu118"
1111
+ RAY_2_41_0_PY39_CU121 = "anyscale/ray:2.41.0-py39-cu121"
1112
+ RAY_2_41_0_PY39_CU123 = "anyscale/ray:2.41.0-py39-cu123"
1113
+ RAY_2_41_0_SLIM_PY310 = "anyscale/ray:2.41.0-slim-py310"
1114
+ RAY_2_41_0_SLIM_PY310_CU118 = "anyscale/ray:2.41.0-slim-py310-cu118"
1115
+ RAY_2_41_0_SLIM_PY310_CU121 = "anyscale/ray:2.41.0-slim-py310-cu121"
1116
+ RAY_2_41_0_SLIM_PY310_CU123 = "anyscale/ray:2.41.0-slim-py310-cu123"
1117
+ RAY_2_41_0_SLIM_PY311 = "anyscale/ray:2.41.0-slim-py311"
1118
+ RAY_2_41_0_SLIM_PY311_CU118 = "anyscale/ray:2.41.0-slim-py311-cu118"
1119
+ RAY_2_41_0_SLIM_PY311_CU121 = "anyscale/ray:2.41.0-slim-py311-cu121"
1120
+ RAY_2_41_0_SLIM_PY311_CU123 = "anyscale/ray:2.41.0-slim-py311-cu123"
1121
+ RAY_2_41_0_SLIM_PY312 = "anyscale/ray:2.41.0-slim-py312"
1122
+ RAY_2_41_0_SLIM_PY312_CU118 = "anyscale/ray:2.41.0-slim-py312-cu118"
1123
+ RAY_2_41_0_SLIM_PY312_CU121 = "anyscale/ray:2.41.0-slim-py312-cu121"
1124
+ RAY_2_41_0_SLIM_PY312_CU123 = "anyscale/ray:2.41.0-slim-py312-cu123"
1125
+ RAY_2_41_0_SLIM_PY39 = "anyscale/ray:2.41.0-slim-py39"
1126
+ RAY_2_41_0_SLIM_PY39_CU118 = "anyscale/ray:2.41.0-slim-py39-cu118"
1127
+ RAY_2_41_0_SLIM_PY39_CU121 = "anyscale/ray:2.41.0-slim-py39-cu121"
1128
+ RAY_2_41_0_SLIM_PY39_CU123 = "anyscale/ray:2.41.0-slim-py39-cu123"
1087
1129
  RAY_2_5_0_PY310 = "anyscale/ray:2.5.0-py310"
1088
1130
  RAY_2_5_0_PY310_CU101 = "anyscale/ray:2.5.0-py310-cu101"
1089
1131
  RAY_2_5_0_PY310_CU102 = "anyscale/ray:2.5.0-py310-cu102"
@@ -1501,7 +1543,7 @@ class SUPPORTEDBASEIMAGESENUM(object):
1501
1543
  RAY_NIGHTLY_PY39_CU121 = "anyscale/ray:nightly-py39-cu121"
1502
1544
  RAY_NIGHTLY_PY39_CU123 = "anyscale/ray:nightly-py39-cu123"
1503
1545
 
1504
- allowable_values = [RAY_ML_2_0_0_PY37_CPU, RAY_ML_2_0_0_PY37_GPU, RAY_ML_2_0_0_PY38_CPU, RAY_ML_2_0_0_PY38_GPU, RAY_ML_2_0_1_PY37_CPU, RAY_ML_2_0_1_PY37_GPU, RAY_ML_2_0_1_PY38_CPU, RAY_ML_2_0_1_PY38_GPU, RAY_ML_2_1_0_PY37_CPU, RAY_ML_2_1_0_PY37_GPU, RAY_ML_2_1_0_PY38_CPU, RAY_ML_2_1_0_PY38_GPU, RAY_ML_2_10_0_PY310_CPU, RAY_ML_2_10_0_PY310_GPU, RAY_ML_2_10_0_PY38_CPU, RAY_ML_2_10_0_PY38_GPU, RAY_ML_2_10_0_PY39_CPU, RAY_ML_2_10_0_PY39_GPU, RAY_ML_2_11_0_PY310_CPU, RAY_ML_2_11_0_PY310_GPU, RAY_ML_2_11_0_PY311_CPU, RAY_ML_2_11_0_PY311_GPU, RAY_ML_2_11_0_PY39_CPU, RAY_ML_2_11_0_PY39_GPU, RAY_ML_2_12_0_PY310_CPU, RAY_ML_2_12_0_PY310_GPU, RAY_ML_2_12_0_PY311_CPU, RAY_ML_2_12_0_PY311_GPU, RAY_ML_2_12_0_PY39_CPU, RAY_ML_2_12_0_PY39_GPU, RAY_ML_2_2_0_PY310_CPU, RAY_ML_2_2_0_PY310_GPU, RAY_ML_2_2_0_PY37_CPU, RAY_ML_2_2_0_PY37_GPU, RAY_ML_2_2_0_PY38_CPU, RAY_ML_2_2_0_PY38_GPU, RAY_ML_2_2_0_PY39_CPU, RAY_ML_2_2_0_PY39_GPU, RAY_ML_2_20_0_PY310_CPU, RAY_ML_2_20_0_PY310_GPU, RAY_ML_2_20_0_PY311_CPU, RAY_ML_2_20_0_PY311_GPU, RAY_ML_2_20_0_PY39_CPU, RAY_ML_2_20_0_PY39_GPU, RAY_ML_2_21_0_PY310_CPU, RAY_ML_2_21_0_PY310_GPU, RAY_ML_2_21_0_PY311_CPU, RAY_ML_2_21_0_PY311_GPU, RAY_ML_2_21_0_PY39_CPU, RAY_ML_2_21_0_PY39_GPU, RAY_ML_2_22_0_PY310_CPU, RAY_ML_2_22_0_PY310_GPU, RAY_ML_2_22_0_PY311_CPU, RAY_ML_2_22_0_PY311_GPU, RAY_ML_2_22_0_PY39_CPU, RAY_ML_2_22_0_PY39_GPU, RAY_ML_2_23_0_PY310_CPU, RAY_ML_2_23_0_PY310_GPU, RAY_ML_2_23_0_PY311_CPU, RAY_ML_2_23_0_PY311_GPU, RAY_ML_2_23_0_PY39_CPU, RAY_ML_2_23_0_PY39_GPU, RAY_ML_2_24_0_PY310_CPU, RAY_ML_2_24_0_PY310_GPU, RAY_ML_2_24_0_PY311_CPU, RAY_ML_2_24_0_PY311_GPU, RAY_ML_2_24_0_PY39_CPU, RAY_ML_2_24_0_PY39_GPU, RAY_ML_2_3_0_PY310_CPU, RAY_ML_2_3_0_PY310_GPU, RAY_ML_2_3_0_PY37_CPU, RAY_ML_2_3_0_PY37_GPU, RAY_ML_2_3_0_PY38_CPU, RAY_ML_2_3_0_PY38_GPU, RAY_ML_2_3_0_PY39_CPU, RAY_ML_2_3_0_PY39_GPU, RAY_ML_2_3_1_PY310_CPU, RAY_ML_2_3_1_PY310_GPU, RAY_ML_2_3_1_PY37_CPU, RAY_ML_2_3_1_PY37_GPU, RAY_ML_2_3_1_PY38_CPU, RAY_ML_2_3_1_PY38_GPU, RAY_ML_2_3_1_PY39_CPU, RAY_ML_2_3_1_PY39_GPU, RAY_ML_2_30_0_PY310_CPU, RAY_ML_2_30_0_PY310_GPU, RAY_ML_2_30_0_PY311_CPU, RAY_ML_2_30_0_PY311_GPU, RAY_ML_2_30_0_PY39_CPU, RAY_ML_2_30_0_PY39_GPU, RAY_ML_2_31_0_PY310_CPU, RAY_ML_2_31_0_PY310_GPU, RAY_ML_2_31_0_PY311_CPU, RAY_ML_2_31_0_PY311_GPU, RAY_ML_2_31_0_PY39_CPU, RAY_ML_2_31_0_PY39_GPU, RAY_ML_2_32_0_PY310_CPU, RAY_ML_2_32_0_PY310_GPU, RAY_ML_2_32_0_PY311_CPU, RAY_ML_2_32_0_PY311_GPU, RAY_ML_2_32_0_PY39_CPU, RAY_ML_2_32_0_PY39_GPU, RAY_ML_2_33_0_PY310_CPU, RAY_ML_2_33_0_PY310_GPU, RAY_ML_2_33_0_PY311_CPU, RAY_ML_2_33_0_PY311_GPU, RAY_ML_2_33_0_PY39_CPU, RAY_ML_2_33_0_PY39_GPU, RAY_ML_2_34_0_PY310_CPU, RAY_ML_2_34_0_PY310_GPU, RAY_ML_2_34_0_PY311_CPU, RAY_ML_2_34_0_PY311_GPU, RAY_ML_2_34_0_PY39_CPU, RAY_ML_2_34_0_PY39_GPU, RAY_ML_2_35_0_PY310_CPU, RAY_ML_2_35_0_PY310_GPU, RAY_ML_2_35_0_PY311_CPU, RAY_ML_2_35_0_PY311_GPU, RAY_ML_2_35_0_PY39_CPU, RAY_ML_2_35_0_PY39_GPU, RAY_ML_2_36_0_PY310_CPU, RAY_ML_2_36_0_PY310_GPU, RAY_ML_2_36_0_PY311_CPU, RAY_ML_2_36_0_PY311_GPU, RAY_ML_2_36_0_PY39_CPU, RAY_ML_2_36_0_PY39_GPU, RAY_ML_2_36_1_PY310_CPU, RAY_ML_2_36_1_PY310_GPU, RAY_ML_2_36_1_PY311_CPU, RAY_ML_2_36_1_PY311_GPU, RAY_ML_2_36_1_PY39_CPU, RAY_ML_2_36_1_PY39_GPU, RAY_ML_2_37_0_PY310_CPU, RAY_ML_2_37_0_PY310_GPU, RAY_ML_2_37_0_PY311_CPU, RAY_ML_2_37_0_PY311_GPU, RAY_ML_2_37_0_PY39_CPU, RAY_ML_2_37_0_PY39_GPU, RAY_ML_2_38_0_PY310_CPU, RAY_ML_2_38_0_PY310_GPU, RAY_ML_2_38_0_PY311_CPU, RAY_ML_2_38_0_PY311_GPU, RAY_ML_2_38_0_PY39_CPU, RAY_ML_2_38_0_PY39_GPU, RAY_ML_2_39_0_PY310_CPU, RAY_ML_2_39_0_PY310_GPU, RAY_ML_2_39_0_PY311_CPU, RAY_ML_2_39_0_PY311_GPU, RAY_ML_2_39_0_PY39_CPU, RAY_ML_2_39_0_PY39_GPU, RAY_ML_2_4_0_PY310_CPU, RAY_ML_2_4_0_PY310_GPU, RAY_ML_2_4_0_PY37_CPU, RAY_ML_2_4_0_PY37_GPU, RAY_ML_2_4_0_PY38_CPU, RAY_ML_2_4_0_PY38_GPU, RAY_ML_2_4_0_PY39_CPU, RAY_ML_2_4_0_PY39_GPU, RAY_ML_2_40_0_PY310_CPU, RAY_ML_2_40_0_PY310_GPU, RAY_ML_2_40_0_PY311_CPU, RAY_ML_2_40_0_PY311_GPU, RAY_ML_2_40_0_PY39_CPU, RAY_ML_2_40_0_PY39_GPU, RAY_ML_2_5_0_PY310_CPU, RAY_ML_2_5_0_PY310_GPU, RAY_ML_2_5_0_PY37_CPU, RAY_ML_2_5_0_PY37_GPU, RAY_ML_2_5_0_PY38_CPU, RAY_ML_2_5_0_PY38_GPU, RAY_ML_2_5_0_PY39_CPU, RAY_ML_2_5_0_PY39_GPU, RAY_ML_2_5_1_PY310_CPU, RAY_ML_2_5_1_PY310_GPU, RAY_ML_2_5_1_PY37_CPU, RAY_ML_2_5_1_PY37_GPU, RAY_ML_2_5_1_PY38_CPU, RAY_ML_2_5_1_PY38_GPU, RAY_ML_2_5_1_PY39_CPU, RAY_ML_2_5_1_PY39_GPU, RAY_ML_2_6_0_PY310_CPU, RAY_ML_2_6_0_PY310_GPU, RAY_ML_2_6_0_PY38_CPU, RAY_ML_2_6_0_PY38_GPU, RAY_ML_2_6_0_PY39_CPU, RAY_ML_2_6_0_PY39_GPU, RAY_ML_2_6_1_PY310_CPU, RAY_ML_2_6_1_PY310_GPU, RAY_ML_2_6_1_PY38_CPU, RAY_ML_2_6_1_PY38_GPU, RAY_ML_2_6_1_PY39_CPU, RAY_ML_2_6_1_PY39_GPU, RAY_ML_2_6_2_PY310_CPU, RAY_ML_2_6_2_PY310_GPU, RAY_ML_2_6_2_PY38_CPU, RAY_ML_2_6_2_PY38_GPU, RAY_ML_2_6_2_PY39_CPU, RAY_ML_2_6_2_PY39_GPU, RAY_ML_2_6_3_PY310_CPU, RAY_ML_2_6_3_PY310_GPU, RAY_ML_2_6_3_PY38_CPU, RAY_ML_2_6_3_PY38_GPU, RAY_ML_2_6_3_PY39_CPU, RAY_ML_2_6_3_PY39_GPU, RAY_ML_2_7_0OPTIMIZED_PY310_CPU, RAY_ML_2_7_0OPTIMIZED_PY310_GPU, RAY_ML_2_7_0OPTIMIZED_PY38_CPU, RAY_ML_2_7_0OPTIMIZED_PY38_GPU, RAY_ML_2_7_0OPTIMIZED_PY39_CPU, RAY_ML_2_7_0OPTIMIZED_PY39_GPU, RAY_ML_2_7_1OPTIMIZED_PY310_CPU, RAY_ML_2_7_1OPTIMIZED_PY310_GPU, RAY_ML_2_7_1OPTIMIZED_PY38_CPU, RAY_ML_2_7_1OPTIMIZED_PY38_GPU, RAY_ML_2_7_1OPTIMIZED_PY39_CPU, RAY_ML_2_7_1OPTIMIZED_PY39_GPU, RAY_ML_2_7_2OPTIMIZED_PY310_CPU, RAY_ML_2_7_2OPTIMIZED_PY310_GPU, RAY_ML_2_7_2OPTIMIZED_PY38_CPU, RAY_ML_2_7_2OPTIMIZED_PY38_GPU, RAY_ML_2_7_2OPTIMIZED_PY39_CPU, RAY_ML_2_7_2OPTIMIZED_PY39_GPU, RAY_ML_2_8_0_PY310_CPU, RAY_ML_2_8_0_PY310_GPU, RAY_ML_2_8_0_PY38_CPU, RAY_ML_2_8_0_PY38_GPU, RAY_ML_2_8_0_PY39_CPU, RAY_ML_2_8_0_PY39_GPU, RAY_ML_2_8_1_PY310_CPU, RAY_ML_2_8_1_PY310_GPU, RAY_ML_2_8_1_PY38_CPU, RAY_ML_2_8_1_PY38_GPU, RAY_ML_2_8_1_PY39_CPU, RAY_ML_2_8_1_PY39_GPU, RAY_ML_2_9_0_PY310_CPU, RAY_ML_2_9_0_PY310_GPU, RAY_ML_2_9_0_PY38_CPU, RAY_ML_2_9_0_PY38_GPU, RAY_ML_2_9_0_PY39_CPU, RAY_ML_2_9_0_PY39_GPU, RAY_ML_2_9_1_PY310_CPU, RAY_ML_2_9_1_PY310_GPU, RAY_ML_2_9_1_PY38_CPU, RAY_ML_2_9_1_PY38_GPU, RAY_ML_2_9_1_PY39_CPU, RAY_ML_2_9_1_PY39_GPU, RAY_ML_2_9_2_PY310_CPU, RAY_ML_2_9_2_PY310_GPU, RAY_ML_2_9_2_PY38_CPU, RAY_ML_2_9_2_PY38_GPU, RAY_ML_2_9_2_PY39_CPU, RAY_ML_2_9_2_PY39_GPU, RAY_ML_2_9_3_PY310_CPU, RAY_ML_2_9_3_PY310_GPU, RAY_ML_2_9_3_PY38_CPU, RAY_ML_2_9_3_PY38_GPU, RAY_ML_2_9_3_PY39_CPU, RAY_ML_2_9_3_PY39_GPU, RAY_ML_NIGHTLY_PY310_GPU, RAY_ML_NIGHTLY_PY311_GPU, RAY_ML_NIGHTLY_PY312_GPU, RAY_ML_NIGHTLY_PY37_GPU, RAY_ML_NIGHTLY_PY38_GPU, RAY_ML_NIGHTLY_PY39_GPU, RAY_2_0_0_PY310, RAY_2_0_0_PY37, RAY_2_0_0_PY37_CU101, RAY_2_0_0_PY37_CU102, RAY_2_0_0_PY37_CU110, RAY_2_0_0_PY37_CU111, RAY_2_0_0_PY37_CU112, RAY_2_0_0_PY37_CU113, RAY_2_0_0_PY38, RAY_2_0_0_PY38_CU101, RAY_2_0_0_PY38_CU102, RAY_2_0_0_PY38_CU110, RAY_2_0_0_PY38_CU111, RAY_2_0_0_PY38_CU112, RAY_2_0_0_PY38_CU113, RAY_2_0_0_PY39, RAY_2_0_0_PY39_CU101, RAY_2_0_0_PY39_CU102, RAY_2_0_0_PY39_CU110, RAY_2_0_0_PY39_CU111, RAY_2_0_0_PY39_CU112, RAY_2_0_0_PY39_CU113, RAY_2_0_1_PY310, RAY_2_0_1_PY37, RAY_2_0_1_PY37_CU101, RAY_2_0_1_PY37_CU102, RAY_2_0_1_PY37_CU110, RAY_2_0_1_PY37_CU111, RAY_2_0_1_PY37_CU112, RAY_2_0_1_PY37_CU113, RAY_2_0_1_PY37_CU116, RAY_2_0_1_PY38, RAY_2_0_1_PY38_CU101, RAY_2_0_1_PY38_CU102, RAY_2_0_1_PY38_CU110, RAY_2_0_1_PY38_CU111, RAY_2_0_1_PY38_CU112, RAY_2_0_1_PY38_CU113, RAY_2_0_1_PY38_CU116, RAY_2_0_1_PY39, RAY_2_0_1_PY39_CU101, RAY_2_0_1_PY39_CU102, RAY_2_0_1_PY39_CU110, RAY_2_0_1_PY39_CU111, RAY_2_0_1_PY39_CU112, RAY_2_0_1_PY39_CU113, RAY_2_0_1_PY39_CU116, RAY_2_1_0_PY310, RAY_2_1_0_PY310_CU101, RAY_2_1_0_PY310_CU102, RAY_2_1_0_PY310_CU110, RAY_2_1_0_PY310_CU111, RAY_2_1_0_PY310_CU112, RAY_2_1_0_PY310_CU113, RAY_2_1_0_PY310_CU116, RAY_2_1_0_PY37, RAY_2_1_0_PY37_CU101, RAY_2_1_0_PY37_CU102, RAY_2_1_0_PY37_CU110, RAY_2_1_0_PY37_CU111, RAY_2_1_0_PY37_CU112, RAY_2_1_0_PY37_CU113, RAY_2_1_0_PY37_CU116, RAY_2_1_0_PY38, RAY_2_1_0_PY38_CU101, RAY_2_1_0_PY38_CU102, RAY_2_1_0_PY38_CU110, RAY_2_1_0_PY38_CU111, RAY_2_1_0_PY38_CU112, RAY_2_1_0_PY38_CU113, RAY_2_1_0_PY38_CU116, RAY_2_1_0_PY39, RAY_2_1_0_PY39_CU101, RAY_2_1_0_PY39_CU102, RAY_2_1_0_PY39_CU110, RAY_2_1_0_PY39_CU111, RAY_2_1_0_PY39_CU112, RAY_2_1_0_PY39_CU113, RAY_2_1_0_PY39_CU116, RAY_2_10_0_PY310, RAY_2_10_0_PY310_CU115, RAY_2_10_0_PY310_CU116, RAY_2_10_0_PY310_CU117, RAY_2_10_0_PY310_CU118, RAY_2_10_0_PY310_CU121, RAY_2_10_0_PY311, RAY_2_10_0_PY311_CU115, RAY_2_10_0_PY311_CU116, RAY_2_10_0_PY311_CU117, RAY_2_10_0_PY311_CU118, RAY_2_10_0_PY311_CU121, RAY_2_10_0_PY38, RAY_2_10_0_PY38_CU115, RAY_2_10_0_PY38_CU116, RAY_2_10_0_PY38_CU117, RAY_2_10_0_PY38_CU118, RAY_2_10_0_PY38_CU121, RAY_2_10_0_PY39, RAY_2_10_0_PY39_CU115, RAY_2_10_0_PY39_CU116, RAY_2_10_0_PY39_CU117, RAY_2_10_0_PY39_CU118, RAY_2_10_0_PY39_CU121, RAY_2_11_0_PY310, RAY_2_11_0_PY310_CU115, RAY_2_11_0_PY310_CU116, RAY_2_11_0_PY310_CU117, RAY_2_11_0_PY310_CU118, RAY_2_11_0_PY310_CU121, RAY_2_11_0_PY311, RAY_2_11_0_PY311_CU115, RAY_2_11_0_PY311_CU116, RAY_2_11_0_PY311_CU117, RAY_2_11_0_PY311_CU118, RAY_2_11_0_PY311_CU121, RAY_2_11_0_PY39, RAY_2_11_0_PY39_CU115, RAY_2_11_0_PY39_CU116, RAY_2_11_0_PY39_CU117, RAY_2_11_0_PY39_CU118, RAY_2_11_0_PY39_CU121, RAY_2_12_0_PY310, RAY_2_12_0_PY310_CU115, RAY_2_12_0_PY310_CU116, RAY_2_12_0_PY310_CU117, RAY_2_12_0_PY310_CU118, RAY_2_12_0_PY310_CU121, RAY_2_12_0_PY311, RAY_2_12_0_PY311_CU115, RAY_2_12_0_PY311_CU116, RAY_2_12_0_PY311_CU117, RAY_2_12_0_PY311_CU118, RAY_2_12_0_PY311_CU121, RAY_2_12_0_PY39, RAY_2_12_0_PY39_CU115, RAY_2_12_0_PY39_CU116, RAY_2_12_0_PY39_CU117, RAY_2_12_0_PY39_CU118, RAY_2_12_0_PY39_CU121, RAY_2_2_0_PY310, RAY_2_2_0_PY310_CU101, RAY_2_2_0_PY310_CU102, RAY_2_2_0_PY310_CU110, RAY_2_2_0_PY310_CU111, RAY_2_2_0_PY310_CU112, RAY_2_2_0_PY310_CU113, RAY_2_2_0_PY310_CU116, RAY_2_2_0_PY37, RAY_2_2_0_PY37_CU101, RAY_2_2_0_PY37_CU102, RAY_2_2_0_PY37_CU110, RAY_2_2_0_PY37_CU111, RAY_2_2_0_PY37_CU112, RAY_2_2_0_PY37_CU113, RAY_2_2_0_PY37_CU116, RAY_2_2_0_PY38, RAY_2_2_0_PY38_CU101, RAY_2_2_0_PY38_CU102, RAY_2_2_0_PY38_CU110, RAY_2_2_0_PY38_CU111, RAY_2_2_0_PY38_CU112, RAY_2_2_0_PY38_CU113, RAY_2_2_0_PY38_CU116, RAY_2_2_0_PY39, RAY_2_2_0_PY39_CU101, RAY_2_2_0_PY39_CU102, RAY_2_2_0_PY39_CU110, RAY_2_2_0_PY39_CU111, RAY_2_2_0_PY39_CU112, RAY_2_2_0_PY39_CU113, RAY_2_2_0_PY39_CU116, RAY_2_20_0_PY310, RAY_2_20_0_PY310_CU115, RAY_2_20_0_PY310_CU116, RAY_2_20_0_PY310_CU117, RAY_2_20_0_PY310_CU118, RAY_2_20_0_PY310_CU121, RAY_2_20_0_PY311, RAY_2_20_0_PY311_CU115, RAY_2_20_0_PY311_CU116, RAY_2_20_0_PY311_CU117, RAY_2_20_0_PY311_CU118, RAY_2_20_0_PY311_CU121, RAY_2_20_0_PY39, RAY_2_20_0_PY39_CU115, RAY_2_20_0_PY39_CU116, RAY_2_20_0_PY39_CU117, RAY_2_20_0_PY39_CU118, RAY_2_20_0_PY39_CU121, RAY_2_21_0_PY310, RAY_2_21_0_PY310_CU115, RAY_2_21_0_PY310_CU116, RAY_2_21_0_PY310_CU117, RAY_2_21_0_PY310_CU118, RAY_2_21_0_PY310_CU121, RAY_2_21_0_PY311, RAY_2_21_0_PY311_CU115, RAY_2_21_0_PY311_CU116, RAY_2_21_0_PY311_CU117, RAY_2_21_0_PY311_CU118, RAY_2_21_0_PY311_CU121, RAY_2_21_0_PY39, RAY_2_21_0_PY39_CU115, RAY_2_21_0_PY39_CU116, RAY_2_21_0_PY39_CU117, RAY_2_21_0_PY39_CU118, RAY_2_21_0_PY39_CU121, RAY_2_21_0_SLIM_PY310, RAY_2_21_0_SLIM_PY310_CU118, RAY_2_21_0_SLIM_PY310_CU121, RAY_2_21_0_SLIM_PY311, RAY_2_21_0_SLIM_PY311_CU118, RAY_2_21_0_SLIM_PY311_CU121, RAY_2_21_0_SLIM_PY39, RAY_2_21_0_SLIM_PY39_CU118, RAY_2_21_0_SLIM_PY39_CU121, RAY_2_22_0_PY310, RAY_2_22_0_PY310_CU115, RAY_2_22_0_PY310_CU116, RAY_2_22_0_PY310_CU117, RAY_2_22_0_PY310_CU118, RAY_2_22_0_PY310_CU121, RAY_2_22_0_PY311, RAY_2_22_0_PY311_CU115, RAY_2_22_0_PY311_CU116, RAY_2_22_0_PY311_CU117, RAY_2_22_0_PY311_CU118, RAY_2_22_0_PY311_CU121, RAY_2_22_0_PY39, RAY_2_22_0_PY39_CU115, RAY_2_22_0_PY39_CU116, RAY_2_22_0_PY39_CU117, RAY_2_22_0_PY39_CU118, RAY_2_22_0_PY39_CU121, RAY_2_22_0_SLIM_PY310, RAY_2_22_0_SLIM_PY310_CU118, RAY_2_22_0_SLIM_PY310_CU121, RAY_2_22_0_SLIM_PY311, RAY_2_22_0_SLIM_PY311_CU118, RAY_2_22_0_SLIM_PY311_CU121, RAY_2_22_0_SLIM_PY39, RAY_2_22_0_SLIM_PY39_CU118, RAY_2_22_0_SLIM_PY39_CU121, RAY_2_23_0_PY310, RAY_2_23_0_PY310_CU115, RAY_2_23_0_PY310_CU116, RAY_2_23_0_PY310_CU117, RAY_2_23_0_PY310_CU118, RAY_2_23_0_PY310_CU121, RAY_2_23_0_PY311, RAY_2_23_0_PY311_CU115, RAY_2_23_0_PY311_CU116, RAY_2_23_0_PY311_CU117, RAY_2_23_0_PY311_CU118, RAY_2_23_0_PY311_CU121, RAY_2_23_0_PY39, RAY_2_23_0_PY39_CU115, RAY_2_23_0_PY39_CU116, RAY_2_23_0_PY39_CU117, RAY_2_23_0_PY39_CU118, RAY_2_23_0_PY39_CU121, RAY_2_23_0_SLIM_PY310, RAY_2_23_0_SLIM_PY310_CU118, RAY_2_23_0_SLIM_PY310_CU121, RAY_2_23_0_SLIM_PY311, RAY_2_23_0_SLIM_PY311_CU118, RAY_2_23_0_SLIM_PY311_CU121, RAY_2_23_0_SLIM_PY39, RAY_2_23_0_SLIM_PY39_CU118, RAY_2_23_0_SLIM_PY39_CU121, RAY_2_24_0_PY310, RAY_2_24_0_PY310_CU115, RAY_2_24_0_PY310_CU116, RAY_2_24_0_PY310_CU117, RAY_2_24_0_PY310_CU118, RAY_2_24_0_PY310_CU121, RAY_2_24_0_PY311, RAY_2_24_0_PY311_CU115, RAY_2_24_0_PY311_CU116, RAY_2_24_0_PY311_CU117, RAY_2_24_0_PY311_CU118, RAY_2_24_0_PY311_CU121, RAY_2_24_0_PY39, RAY_2_24_0_PY39_CU115, RAY_2_24_0_PY39_CU116, RAY_2_24_0_PY39_CU117, RAY_2_24_0_PY39_CU118, RAY_2_24_0_PY39_CU121, RAY_2_24_0_SLIM_PY310, RAY_2_24_0_SLIM_PY310_CU118, RAY_2_24_0_SLIM_PY310_CU121, RAY_2_24_0_SLIM_PY311, RAY_2_24_0_SLIM_PY311_CU118, RAY_2_24_0_SLIM_PY311_CU121, RAY_2_24_0_SLIM_PY39, RAY_2_24_0_SLIM_PY39_CU118, RAY_2_24_0_SLIM_PY39_CU121, RAY_2_3_0_PY310, RAY_2_3_0_PY310_CU101, RAY_2_3_0_PY310_CU102, RAY_2_3_0_PY310_CU110, RAY_2_3_0_PY310_CU111, RAY_2_3_0_PY310_CU112, RAY_2_3_0_PY310_CU113, RAY_2_3_0_PY310_CU116, RAY_2_3_0_PY310_CU118, RAY_2_3_0_PY37, RAY_2_3_0_PY37_CU101, RAY_2_3_0_PY37_CU102, RAY_2_3_0_PY37_CU110, RAY_2_3_0_PY37_CU111, RAY_2_3_0_PY37_CU112, RAY_2_3_0_PY37_CU113, RAY_2_3_0_PY37_CU116, RAY_2_3_0_PY37_CU118, RAY_2_3_0_PY38, RAY_2_3_0_PY38_CU101, RAY_2_3_0_PY38_CU102, RAY_2_3_0_PY38_CU110, RAY_2_3_0_PY38_CU111, RAY_2_3_0_PY38_CU112, RAY_2_3_0_PY38_CU113, RAY_2_3_0_PY38_CU116, RAY_2_3_0_PY38_CU118, RAY_2_3_0_PY39, RAY_2_3_0_PY39_CU101, RAY_2_3_0_PY39_CU102, RAY_2_3_0_PY39_CU110, RAY_2_3_0_PY39_CU111, RAY_2_3_0_PY39_CU112, RAY_2_3_0_PY39_CU113, RAY_2_3_0_PY39_CU116, RAY_2_3_0_PY39_CU118, RAY_2_3_1_PY310, RAY_2_3_1_PY310_CU101, RAY_2_3_1_PY310_CU102, RAY_2_3_1_PY310_CU110, RAY_2_3_1_PY310_CU111, RAY_2_3_1_PY310_CU112, RAY_2_3_1_PY310_CU113, RAY_2_3_1_PY310_CU116, RAY_2_3_1_PY310_CU118, RAY_2_3_1_PY37, RAY_2_3_1_PY37_CU101, RAY_2_3_1_PY37_CU102, RAY_2_3_1_PY37_CU110, RAY_2_3_1_PY37_CU111, RAY_2_3_1_PY37_CU112, RAY_2_3_1_PY37_CU113, RAY_2_3_1_PY37_CU116, RAY_2_3_1_PY37_CU118, RAY_2_3_1_PY38, RAY_2_3_1_PY38_CU101, RAY_2_3_1_PY38_CU102, RAY_2_3_1_PY38_CU110, RAY_2_3_1_PY38_CU111, RAY_2_3_1_PY38_CU112, RAY_2_3_1_PY38_CU113, RAY_2_3_1_PY38_CU116, RAY_2_3_1_PY38_CU118, RAY_2_3_1_PY39, RAY_2_3_1_PY39_CU101, RAY_2_3_1_PY39_CU102, RAY_2_3_1_PY39_CU110, RAY_2_3_1_PY39_CU111, RAY_2_3_1_PY39_CU112, RAY_2_3_1_PY39_CU113, RAY_2_3_1_PY39_CU116, RAY_2_3_1_PY39_CU118, RAY_2_30_0_PY310, RAY_2_30_0_PY310_CU117, RAY_2_30_0_PY310_CU118, RAY_2_30_0_PY310_CU121, RAY_2_30_0_PY310_CU123, RAY_2_30_0_PY311, RAY_2_30_0_PY311_CU117, RAY_2_30_0_PY311_CU118, RAY_2_30_0_PY311_CU121, RAY_2_30_0_PY311_CU123, RAY_2_30_0_PY39, RAY_2_30_0_PY39_CU117, RAY_2_30_0_PY39_CU118, RAY_2_30_0_PY39_CU121, RAY_2_30_0_PY39_CU123, RAY_2_30_0_SLIM_PY310, RAY_2_30_0_SLIM_PY310_CU118, RAY_2_30_0_SLIM_PY310_CU121, RAY_2_30_0_SLIM_PY310_CU123, RAY_2_30_0_SLIM_PY311, RAY_2_30_0_SLIM_PY311_CU118, RAY_2_30_0_SLIM_PY311_CU121, RAY_2_30_0_SLIM_PY311_CU123, RAY_2_30_0_SLIM_PY39, RAY_2_30_0_SLIM_PY39_CU118, RAY_2_30_0_SLIM_PY39_CU121, RAY_2_30_0_SLIM_PY39_CU123, RAY_2_31_0_PY310, RAY_2_31_0_PY310_CU117, RAY_2_31_0_PY310_CU118, RAY_2_31_0_PY310_CU121, RAY_2_31_0_PY310_CU123, RAY_2_31_0_PY311, RAY_2_31_0_PY311_CU117, RAY_2_31_0_PY311_CU118, RAY_2_31_0_PY311_CU121, RAY_2_31_0_PY311_CU123, RAY_2_31_0_PY39, RAY_2_31_0_PY39_CU117, RAY_2_31_0_PY39_CU118, RAY_2_31_0_PY39_CU121, RAY_2_31_0_PY39_CU123, RAY_2_31_0_SLIM_PY310, RAY_2_31_0_SLIM_PY310_CU118, RAY_2_31_0_SLIM_PY310_CU121, RAY_2_31_0_SLIM_PY310_CU123, RAY_2_31_0_SLIM_PY311, RAY_2_31_0_SLIM_PY311_CU118, RAY_2_31_0_SLIM_PY311_CU121, RAY_2_31_0_SLIM_PY311_CU123, RAY_2_31_0_SLIM_PY39, RAY_2_31_0_SLIM_PY39_CU118, RAY_2_31_0_SLIM_PY39_CU121, RAY_2_31_0_SLIM_PY39_CU123, RAY_2_32_0_PY310, RAY_2_32_0_PY310_CU117, RAY_2_32_0_PY310_CU118, RAY_2_32_0_PY310_CU121, RAY_2_32_0_PY310_CU123, RAY_2_32_0_PY311, RAY_2_32_0_PY311_CU117, RAY_2_32_0_PY311_CU118, RAY_2_32_0_PY311_CU121, RAY_2_32_0_PY311_CU123, RAY_2_32_0_PY39, RAY_2_32_0_PY39_CU117, RAY_2_32_0_PY39_CU118, RAY_2_32_0_PY39_CU121, RAY_2_32_0_PY39_CU123, RAY_2_32_0_SLIM_PY310, RAY_2_32_0_SLIM_PY310_CU118, RAY_2_32_0_SLIM_PY310_CU121, RAY_2_32_0_SLIM_PY310_CU123, RAY_2_32_0_SLIM_PY311, RAY_2_32_0_SLIM_PY311_CU118, RAY_2_32_0_SLIM_PY311_CU121, RAY_2_32_0_SLIM_PY311_CU123, RAY_2_32_0_SLIM_PY39, RAY_2_32_0_SLIM_PY39_CU118, RAY_2_32_0_SLIM_PY39_CU121, RAY_2_32_0_SLIM_PY39_CU123, RAY_2_33_0_PY310, RAY_2_33_0_PY310_CU117, RAY_2_33_0_PY310_CU118, RAY_2_33_0_PY310_CU121, RAY_2_33_0_PY310_CU123, RAY_2_33_0_PY311, RAY_2_33_0_PY311_CU117, RAY_2_33_0_PY311_CU118, RAY_2_33_0_PY311_CU121, RAY_2_33_0_PY311_CU123, RAY_2_33_0_PY39, RAY_2_33_0_PY39_CU117, RAY_2_33_0_PY39_CU118, RAY_2_33_0_PY39_CU121, RAY_2_33_0_PY39_CU123, RAY_2_33_0_SLIM_PY310, RAY_2_33_0_SLIM_PY310_CU118, RAY_2_33_0_SLIM_PY310_CU121, RAY_2_33_0_SLIM_PY310_CU123, RAY_2_33_0_SLIM_PY311, RAY_2_33_0_SLIM_PY311_CU118, RAY_2_33_0_SLIM_PY311_CU121, RAY_2_33_0_SLIM_PY311_CU123, RAY_2_33_0_SLIM_PY39, RAY_2_33_0_SLIM_PY39_CU118, RAY_2_33_0_SLIM_PY39_CU121, RAY_2_33_0_SLIM_PY39_CU123, RAY_2_34_0_PY310, RAY_2_34_0_PY310_CU117, RAY_2_34_0_PY310_CU118, RAY_2_34_0_PY310_CU121, RAY_2_34_0_PY310_CU123, RAY_2_34_0_PY311, RAY_2_34_0_PY311_CU117, RAY_2_34_0_PY311_CU118, RAY_2_34_0_PY311_CU121, RAY_2_34_0_PY311_CU123, RAY_2_34_0_PY39, RAY_2_34_0_PY39_CU117, RAY_2_34_0_PY39_CU118, RAY_2_34_0_PY39_CU121, RAY_2_34_0_PY39_CU123, RAY_2_34_0_SLIM_PY310, RAY_2_34_0_SLIM_PY310_CU118, RAY_2_34_0_SLIM_PY310_CU121, RAY_2_34_0_SLIM_PY310_CU123, RAY_2_34_0_SLIM_PY311, RAY_2_34_0_SLIM_PY311_CU118, RAY_2_34_0_SLIM_PY311_CU121, RAY_2_34_0_SLIM_PY311_CU123, RAY_2_34_0_SLIM_PY39, RAY_2_34_0_SLIM_PY39_CU118, RAY_2_34_0_SLIM_PY39_CU121, RAY_2_34_0_SLIM_PY39_CU123, RAY_2_35_0_PY310, RAY_2_35_0_PY310_CU117, RAY_2_35_0_PY310_CU118, RAY_2_35_0_PY310_CU121, RAY_2_35_0_PY310_CU123, RAY_2_35_0_PY311, RAY_2_35_0_PY311_CU117, RAY_2_35_0_PY311_CU118, RAY_2_35_0_PY311_CU121, RAY_2_35_0_PY311_CU123, RAY_2_35_0_PY312, RAY_2_35_0_PY312_CU117, RAY_2_35_0_PY312_CU118, RAY_2_35_0_PY312_CU121, RAY_2_35_0_PY312_CU123, RAY_2_35_0_PY39, RAY_2_35_0_PY39_CU117, RAY_2_35_0_PY39_CU118, RAY_2_35_0_PY39_CU121, RAY_2_35_0_PY39_CU123, RAY_2_35_0_SLIM_PY310, RAY_2_35_0_SLIM_PY310_CU118, RAY_2_35_0_SLIM_PY310_CU121, RAY_2_35_0_SLIM_PY310_CU123, RAY_2_35_0_SLIM_PY311, RAY_2_35_0_SLIM_PY311_CU118, RAY_2_35_0_SLIM_PY311_CU121, RAY_2_35_0_SLIM_PY311_CU123, RAY_2_35_0_SLIM_PY312, RAY_2_35_0_SLIM_PY312_CU118, RAY_2_35_0_SLIM_PY312_CU121, RAY_2_35_0_SLIM_PY312_CU123, RAY_2_35_0_SLIM_PY39, RAY_2_35_0_SLIM_PY39_CU118, RAY_2_35_0_SLIM_PY39_CU121, RAY_2_35_0_SLIM_PY39_CU123, RAY_2_36_0_PY310, RAY_2_36_0_PY310_CU117, RAY_2_36_0_PY310_CU118, RAY_2_36_0_PY310_CU121, RAY_2_36_0_PY310_CU123, RAY_2_36_0_PY311, RAY_2_36_0_PY311_CU117, RAY_2_36_0_PY311_CU118, RAY_2_36_0_PY311_CU121, RAY_2_36_0_PY311_CU123, RAY_2_36_0_PY312, RAY_2_36_0_PY312_CU117, RAY_2_36_0_PY312_CU118, RAY_2_36_0_PY312_CU121, RAY_2_36_0_PY312_CU123, RAY_2_36_0_PY39, RAY_2_36_0_PY39_CU117, RAY_2_36_0_PY39_CU118, RAY_2_36_0_PY39_CU121, RAY_2_36_0_PY39_CU123, RAY_2_36_0_SLIM_PY310, RAY_2_36_0_SLIM_PY310_CU118, RAY_2_36_0_SLIM_PY310_CU121, RAY_2_36_0_SLIM_PY310_CU123, RAY_2_36_0_SLIM_PY311, RAY_2_36_0_SLIM_PY311_CU118, RAY_2_36_0_SLIM_PY311_CU121, RAY_2_36_0_SLIM_PY311_CU123, RAY_2_36_0_SLIM_PY312, RAY_2_36_0_SLIM_PY312_CU118, RAY_2_36_0_SLIM_PY312_CU121, RAY_2_36_0_SLIM_PY312_CU123, RAY_2_36_0_SLIM_PY39, RAY_2_36_0_SLIM_PY39_CU118, RAY_2_36_0_SLIM_PY39_CU121, RAY_2_36_0_SLIM_PY39_CU123, RAY_2_36_1_PY310, RAY_2_36_1_PY310_CU117, RAY_2_36_1_PY310_CU118, RAY_2_36_1_PY310_CU121, RAY_2_36_1_PY310_CU123, RAY_2_36_1_PY311, RAY_2_36_1_PY311_CU117, RAY_2_36_1_PY311_CU118, RAY_2_36_1_PY311_CU121, RAY_2_36_1_PY311_CU123, RAY_2_36_1_PY312, RAY_2_36_1_PY312_CU117, RAY_2_36_1_PY312_CU118, RAY_2_36_1_PY312_CU121, RAY_2_36_1_PY312_CU123, RAY_2_36_1_PY39, RAY_2_36_1_PY39_CU117, RAY_2_36_1_PY39_CU118, RAY_2_36_1_PY39_CU121, RAY_2_36_1_PY39_CU123, RAY_2_36_1_SLIM_PY310, RAY_2_36_1_SLIM_PY310_CU118, RAY_2_36_1_SLIM_PY310_CU121, RAY_2_36_1_SLIM_PY310_CU123, RAY_2_36_1_SLIM_PY311, RAY_2_36_1_SLIM_PY311_CU118, RAY_2_36_1_SLIM_PY311_CU121, RAY_2_36_1_SLIM_PY311_CU123, RAY_2_36_1_SLIM_PY312, RAY_2_36_1_SLIM_PY312_CU118, RAY_2_36_1_SLIM_PY312_CU121, RAY_2_36_1_SLIM_PY312_CU123, RAY_2_36_1_SLIM_PY39, RAY_2_36_1_SLIM_PY39_CU118, RAY_2_36_1_SLIM_PY39_CU121, RAY_2_36_1_SLIM_PY39_CU123, RAY_2_37_0_PY310, RAY_2_37_0_PY310_CU117, RAY_2_37_0_PY310_CU118, RAY_2_37_0_PY310_CU121, RAY_2_37_0_PY310_CU123, RAY_2_37_0_PY311, RAY_2_37_0_PY311_CU117, RAY_2_37_0_PY311_CU118, RAY_2_37_0_PY311_CU121, RAY_2_37_0_PY311_CU123, RAY_2_37_0_PY312, RAY_2_37_0_PY312_CU117, RAY_2_37_0_PY312_CU118, RAY_2_37_0_PY312_CU121, RAY_2_37_0_PY312_CU123, RAY_2_37_0_PY39, RAY_2_37_0_PY39_CU117, RAY_2_37_0_PY39_CU118, RAY_2_37_0_PY39_CU121, RAY_2_37_0_PY39_CU123, RAY_2_37_0_SLIM_PY310, RAY_2_37_0_SLIM_PY310_CU118, RAY_2_37_0_SLIM_PY310_CU121, RAY_2_37_0_SLIM_PY310_CU123, RAY_2_37_0_SLIM_PY311, RAY_2_37_0_SLIM_PY311_CU118, RAY_2_37_0_SLIM_PY311_CU121, RAY_2_37_0_SLIM_PY311_CU123, RAY_2_37_0_SLIM_PY312, RAY_2_37_0_SLIM_PY312_CU118, RAY_2_37_0_SLIM_PY312_CU121, RAY_2_37_0_SLIM_PY312_CU123, RAY_2_37_0_SLIM_PY39, RAY_2_37_0_SLIM_PY39_CU118, RAY_2_37_0_SLIM_PY39_CU121, RAY_2_37_0_SLIM_PY39_CU123, RAY_2_38_0_PY310, RAY_2_38_0_PY310_CU117, RAY_2_38_0_PY310_CU118, RAY_2_38_0_PY310_CU121, RAY_2_38_0_PY310_CU123, RAY_2_38_0_PY311, RAY_2_38_0_PY311_CU117, RAY_2_38_0_PY311_CU118, RAY_2_38_0_PY311_CU121, RAY_2_38_0_PY311_CU123, RAY_2_38_0_PY312, RAY_2_38_0_PY312_CU117, RAY_2_38_0_PY312_CU118, RAY_2_38_0_PY312_CU121, RAY_2_38_0_PY312_CU123, RAY_2_38_0_PY39, RAY_2_38_0_PY39_CU117, RAY_2_38_0_PY39_CU118, RAY_2_38_0_PY39_CU121, RAY_2_38_0_PY39_CU123, RAY_2_38_0_SLIM_PY310, RAY_2_38_0_SLIM_PY310_CU118, RAY_2_38_0_SLIM_PY310_CU121, RAY_2_38_0_SLIM_PY310_CU123, RAY_2_38_0_SLIM_PY311, RAY_2_38_0_SLIM_PY311_CU118, RAY_2_38_0_SLIM_PY311_CU121, RAY_2_38_0_SLIM_PY311_CU123, RAY_2_38_0_SLIM_PY312, RAY_2_38_0_SLIM_PY312_CU118, RAY_2_38_0_SLIM_PY312_CU121, RAY_2_38_0_SLIM_PY312_CU123, RAY_2_38_0_SLIM_PY39, RAY_2_38_0_SLIM_PY39_CU118, RAY_2_38_0_SLIM_PY39_CU121, RAY_2_38_0_SLIM_PY39_CU123, RAY_2_39_0_PY310, RAY_2_39_0_PY310_CU117, RAY_2_39_0_PY310_CU118, RAY_2_39_0_PY310_CU121, RAY_2_39_0_PY310_CU123, RAY_2_39_0_PY311, RAY_2_39_0_PY311_CU117, RAY_2_39_0_PY311_CU118, RAY_2_39_0_PY311_CU121, RAY_2_39_0_PY311_CU123, RAY_2_39_0_PY312, RAY_2_39_0_PY312_CU117, RAY_2_39_0_PY312_CU118, RAY_2_39_0_PY312_CU121, RAY_2_39_0_PY312_CU123, RAY_2_39_0_PY39, RAY_2_39_0_PY39_CU117, RAY_2_39_0_PY39_CU118, RAY_2_39_0_PY39_CU121, RAY_2_39_0_PY39_CU123, RAY_2_39_0_SLIM_PY310, RAY_2_39_0_SLIM_PY310_CU118, RAY_2_39_0_SLIM_PY310_CU121, RAY_2_39_0_SLIM_PY310_CU123, RAY_2_39_0_SLIM_PY311, RAY_2_39_0_SLIM_PY311_CU118, RAY_2_39_0_SLIM_PY311_CU121, RAY_2_39_0_SLIM_PY311_CU123, RAY_2_39_0_SLIM_PY312, RAY_2_39_0_SLIM_PY312_CU118, RAY_2_39_0_SLIM_PY312_CU121, RAY_2_39_0_SLIM_PY312_CU123, RAY_2_39_0_SLIM_PY39, RAY_2_39_0_SLIM_PY39_CU118, RAY_2_39_0_SLIM_PY39_CU121, RAY_2_39_0_SLIM_PY39_CU123, RAY_2_4_0_PY310, RAY_2_4_0_PY310_CU101, RAY_2_4_0_PY310_CU102, RAY_2_4_0_PY310_CU110, RAY_2_4_0_PY310_CU111, RAY_2_4_0_PY310_CU112, RAY_2_4_0_PY310_CU113, RAY_2_4_0_PY310_CU116, RAY_2_4_0_PY310_CU118, RAY_2_4_0_PY37, RAY_2_4_0_PY37_CU101, RAY_2_4_0_PY37_CU102, RAY_2_4_0_PY37_CU110, RAY_2_4_0_PY37_CU111, RAY_2_4_0_PY37_CU112, RAY_2_4_0_PY37_CU113, RAY_2_4_0_PY37_CU116, RAY_2_4_0_PY37_CU118, RAY_2_4_0_PY38, RAY_2_4_0_PY38_CU101, RAY_2_4_0_PY38_CU102, RAY_2_4_0_PY38_CU110, RAY_2_4_0_PY38_CU111, RAY_2_4_0_PY38_CU112, RAY_2_4_0_PY38_CU113, RAY_2_4_0_PY38_CU116, RAY_2_4_0_PY38_CU118, RAY_2_4_0_PY39, RAY_2_4_0_PY39_CU101, RAY_2_4_0_PY39_CU102, RAY_2_4_0_PY39_CU110, RAY_2_4_0_PY39_CU111, RAY_2_4_0_PY39_CU112, RAY_2_4_0_PY39_CU113, RAY_2_4_0_PY39_CU116, RAY_2_4_0_PY39_CU118, RAY_2_40_0_PY310, RAY_2_40_0_PY310_CU117, RAY_2_40_0_PY310_CU118, RAY_2_40_0_PY310_CU121, RAY_2_40_0_PY310_CU123, RAY_2_40_0_PY311, RAY_2_40_0_PY311_CU117, RAY_2_40_0_PY311_CU118, RAY_2_40_0_PY311_CU121, RAY_2_40_0_PY311_CU123, RAY_2_40_0_PY312, RAY_2_40_0_PY312_CU117, RAY_2_40_0_PY312_CU118, RAY_2_40_0_PY312_CU121, RAY_2_40_0_PY312_CU123, RAY_2_40_0_PY39, RAY_2_40_0_PY39_CU117, RAY_2_40_0_PY39_CU118, RAY_2_40_0_PY39_CU121, RAY_2_40_0_PY39_CU123, RAY_2_40_0_SLIM_PY310, RAY_2_40_0_SLIM_PY310_CU118, RAY_2_40_0_SLIM_PY310_CU121, RAY_2_40_0_SLIM_PY310_CU123, RAY_2_40_0_SLIM_PY311, RAY_2_40_0_SLIM_PY311_CU118, RAY_2_40_0_SLIM_PY311_CU121, RAY_2_40_0_SLIM_PY311_CU123, RAY_2_40_0_SLIM_PY312, RAY_2_40_0_SLIM_PY312_CU118, RAY_2_40_0_SLIM_PY312_CU121, RAY_2_40_0_SLIM_PY312_CU123, RAY_2_40_0_SLIM_PY39, RAY_2_40_0_SLIM_PY39_CU118, RAY_2_40_0_SLIM_PY39_CU121, RAY_2_40_0_SLIM_PY39_CU123, RAY_2_5_0_PY310, RAY_2_5_0_PY310_CU101, RAY_2_5_0_PY310_CU102, RAY_2_5_0_PY310_CU110, RAY_2_5_0_PY310_CU111, RAY_2_5_0_PY310_CU112, RAY_2_5_0_PY310_CU113, RAY_2_5_0_PY310_CU116, RAY_2_5_0_PY310_CU118, RAY_2_5_0_PY37, RAY_2_5_0_PY37_CU101, RAY_2_5_0_PY37_CU102, RAY_2_5_0_PY37_CU110, RAY_2_5_0_PY37_CU111, RAY_2_5_0_PY37_CU112, RAY_2_5_0_PY37_CU113, RAY_2_5_0_PY37_CU116, RAY_2_5_0_PY37_CU118, RAY_2_5_0_PY38, RAY_2_5_0_PY38_CU101, RAY_2_5_0_PY38_CU102, RAY_2_5_0_PY38_CU110, RAY_2_5_0_PY38_CU111, RAY_2_5_0_PY38_CU112, RAY_2_5_0_PY38_CU113, RAY_2_5_0_PY38_CU116, RAY_2_5_0_PY38_CU118, RAY_2_5_0_PY39, RAY_2_5_0_PY39_CU101, RAY_2_5_0_PY39_CU102, RAY_2_5_0_PY39_CU110, RAY_2_5_0_PY39_CU111, RAY_2_5_0_PY39_CU112, RAY_2_5_0_PY39_CU113, RAY_2_5_0_PY39_CU116, RAY_2_5_0_PY39_CU118, RAY_2_5_1_PY310, RAY_2_5_1_PY310_CU101, RAY_2_5_1_PY310_CU102, RAY_2_5_1_PY310_CU110, RAY_2_5_1_PY310_CU111, RAY_2_5_1_PY310_CU112, RAY_2_5_1_PY310_CU113, RAY_2_5_1_PY310_CU116, RAY_2_5_1_PY310_CU118, RAY_2_5_1_PY37, RAY_2_5_1_PY37_CU101, RAY_2_5_1_PY37_CU102, RAY_2_5_1_PY37_CU110, RAY_2_5_1_PY37_CU111, RAY_2_5_1_PY37_CU112, RAY_2_5_1_PY37_CU113, RAY_2_5_1_PY37_CU116, RAY_2_5_1_PY37_CU118, RAY_2_5_1_PY38, RAY_2_5_1_PY38_CU101, RAY_2_5_1_PY38_CU102, RAY_2_5_1_PY38_CU110, RAY_2_5_1_PY38_CU111, RAY_2_5_1_PY38_CU112, RAY_2_5_1_PY38_CU113, RAY_2_5_1_PY38_CU116, RAY_2_5_1_PY38_CU118, RAY_2_5_1_PY39, RAY_2_5_1_PY39_CU101, RAY_2_5_1_PY39_CU102, RAY_2_5_1_PY39_CU110, RAY_2_5_1_PY39_CU111, RAY_2_5_1_PY39_CU112, RAY_2_5_1_PY39_CU113, RAY_2_5_1_PY39_CU116, RAY_2_5_1_PY39_CU118, RAY_2_6_0_PY310, RAY_2_6_0_PY310_CU115, RAY_2_6_0_PY310_CU116, RAY_2_6_0_PY310_CU117, RAY_2_6_0_PY310_CU118, RAY_2_6_0_PY37, RAY_2_6_0_PY37_CU115, RAY_2_6_0_PY37_CU116, RAY_2_6_0_PY37_CU117, RAY_2_6_0_PY37_CU118, RAY_2_6_0_PY38, RAY_2_6_0_PY38_CU115, RAY_2_6_0_PY38_CU116, RAY_2_6_0_PY38_CU117, RAY_2_6_0_PY38_CU118, RAY_2_6_0_PY39, RAY_2_6_0_PY39_CU115, RAY_2_6_0_PY39_CU116, RAY_2_6_0_PY39_CU117, RAY_2_6_0_PY39_CU118, RAY_2_6_1_PY310, RAY_2_6_1_PY310_CU115, RAY_2_6_1_PY310_CU116, RAY_2_6_1_PY310_CU117, RAY_2_6_1_PY310_CU118, RAY_2_6_1_PY37, RAY_2_6_1_PY37_CU115, RAY_2_6_1_PY37_CU116, RAY_2_6_1_PY37_CU117, RAY_2_6_1_PY37_CU118, RAY_2_6_1_PY38, RAY_2_6_1_PY38_CU115, RAY_2_6_1_PY38_CU116, RAY_2_6_1_PY38_CU117, RAY_2_6_1_PY38_CU118, RAY_2_6_1_PY39, RAY_2_6_1_PY39_CU115, RAY_2_6_1_PY39_CU116, RAY_2_6_1_PY39_CU117, RAY_2_6_1_PY39_CU118, RAY_2_6_2_PY310, RAY_2_6_2_PY310_CU115, RAY_2_6_2_PY310_CU116, RAY_2_6_2_PY310_CU117, RAY_2_6_2_PY310_CU118, RAY_2_6_2_PY37, RAY_2_6_2_PY37_CU115, RAY_2_6_2_PY37_CU116, RAY_2_6_2_PY37_CU117, RAY_2_6_2_PY37_CU118, RAY_2_6_2_PY38, RAY_2_6_2_PY38_CU115, RAY_2_6_2_PY38_CU116, RAY_2_6_2_PY38_CU117, RAY_2_6_2_PY38_CU118, RAY_2_6_2_PY39, RAY_2_6_2_PY39_CU115, RAY_2_6_2_PY39_CU116, RAY_2_6_2_PY39_CU117, RAY_2_6_2_PY39_CU118, RAY_2_6_3_PY310, RAY_2_6_3_PY310_CU115, RAY_2_6_3_PY310_CU116, RAY_2_6_3_PY310_CU117, RAY_2_6_3_PY310_CU118, RAY_2_6_3_PY37, RAY_2_6_3_PY37_CU115, RAY_2_6_3_PY37_CU116, RAY_2_6_3_PY37_CU117, RAY_2_6_3_PY37_CU118, RAY_2_6_3_PY38, RAY_2_6_3_PY38_CU115, RAY_2_6_3_PY38_CU116, RAY_2_6_3_PY38_CU117, RAY_2_6_3_PY38_CU118, RAY_2_6_3_PY39, RAY_2_6_3_PY39_CU115, RAY_2_6_3_PY39_CU116, RAY_2_6_3_PY39_CU117, RAY_2_6_3_PY39_CU118, RAY_2_7_0OPTIMIZED_PY310, RAY_2_7_0OPTIMIZED_PY310_CU115, RAY_2_7_0OPTIMIZED_PY310_CU116, RAY_2_7_0OPTIMIZED_PY310_CU117, RAY_2_7_0OPTIMIZED_PY310_CU118, RAY_2_7_0OPTIMIZED_PY310_CU121, RAY_2_7_0OPTIMIZED_PY311, RAY_2_7_0OPTIMIZED_PY311_CU115, RAY_2_7_0OPTIMIZED_PY311_CU116, RAY_2_7_0OPTIMIZED_PY311_CU117, RAY_2_7_0OPTIMIZED_PY311_CU118, RAY_2_7_0OPTIMIZED_PY311_CU121, RAY_2_7_0OPTIMIZED_PY37, RAY_2_7_0OPTIMIZED_PY37_CU115, RAY_2_7_0OPTIMIZED_PY37_CU116, RAY_2_7_0OPTIMIZED_PY37_CU117, RAY_2_7_0OPTIMIZED_PY37_CU118, RAY_2_7_0OPTIMIZED_PY37_CU121, RAY_2_7_0OPTIMIZED_PY38, RAY_2_7_0OPTIMIZED_PY38_CU115, RAY_2_7_0OPTIMIZED_PY38_CU116, RAY_2_7_0OPTIMIZED_PY38_CU117, RAY_2_7_0OPTIMIZED_PY38_CU118, RAY_2_7_0OPTIMIZED_PY38_CU121, RAY_2_7_0OPTIMIZED_PY39, RAY_2_7_0OPTIMIZED_PY39_CU115, RAY_2_7_0OPTIMIZED_PY39_CU116, RAY_2_7_0OPTIMIZED_PY39_CU117, RAY_2_7_0OPTIMIZED_PY39_CU118, RAY_2_7_0OPTIMIZED_PY39_CU121, RAY_2_7_1OPTIMIZED_PY310, RAY_2_7_1OPTIMIZED_PY310_CU115, RAY_2_7_1OPTIMIZED_PY310_CU116, RAY_2_7_1OPTIMIZED_PY310_CU117, RAY_2_7_1OPTIMIZED_PY310_CU118, RAY_2_7_1OPTIMIZED_PY310_CU121, RAY_2_7_1OPTIMIZED_PY311, RAY_2_7_1OPTIMIZED_PY311_CU115, RAY_2_7_1OPTIMIZED_PY311_CU116, RAY_2_7_1OPTIMIZED_PY311_CU117, RAY_2_7_1OPTIMIZED_PY311_CU118, RAY_2_7_1OPTIMIZED_PY311_CU121, RAY_2_7_1OPTIMIZED_PY37, RAY_2_7_1OPTIMIZED_PY37_CU115, RAY_2_7_1OPTIMIZED_PY37_CU116, RAY_2_7_1OPTIMIZED_PY37_CU117, RAY_2_7_1OPTIMIZED_PY37_CU118, RAY_2_7_1OPTIMIZED_PY37_CU121, RAY_2_7_1OPTIMIZED_PY38, RAY_2_7_1OPTIMIZED_PY38_CU115, RAY_2_7_1OPTIMIZED_PY38_CU116, RAY_2_7_1OPTIMIZED_PY38_CU117, RAY_2_7_1OPTIMIZED_PY38_CU118, RAY_2_7_1OPTIMIZED_PY38_CU121, RAY_2_7_1OPTIMIZED_PY39, RAY_2_7_1OPTIMIZED_PY39_CU115, RAY_2_7_1OPTIMIZED_PY39_CU116, RAY_2_7_1OPTIMIZED_PY39_CU117, RAY_2_7_1OPTIMIZED_PY39_CU118, RAY_2_7_1OPTIMIZED_PY39_CU121, RAY_2_7_2OPTIMIZED_PY310, RAY_2_7_2OPTIMIZED_PY310_CU115, RAY_2_7_2OPTIMIZED_PY310_CU116, RAY_2_7_2OPTIMIZED_PY310_CU117, RAY_2_7_2OPTIMIZED_PY310_CU118, RAY_2_7_2OPTIMIZED_PY310_CU121, RAY_2_7_2OPTIMIZED_PY311, RAY_2_7_2OPTIMIZED_PY311_CU115, RAY_2_7_2OPTIMIZED_PY311_CU116, RAY_2_7_2OPTIMIZED_PY311_CU117, RAY_2_7_2OPTIMIZED_PY311_CU118, RAY_2_7_2OPTIMIZED_PY311_CU121, RAY_2_7_2OPTIMIZED_PY37, RAY_2_7_2OPTIMIZED_PY37_CU115, RAY_2_7_2OPTIMIZED_PY37_CU116, RAY_2_7_2OPTIMIZED_PY37_CU117, RAY_2_7_2OPTIMIZED_PY37_CU118, RAY_2_7_2OPTIMIZED_PY37_CU121, RAY_2_7_2OPTIMIZED_PY38, RAY_2_7_2OPTIMIZED_PY38_CU115, RAY_2_7_2OPTIMIZED_PY38_CU116, RAY_2_7_2OPTIMIZED_PY38_CU117, RAY_2_7_2OPTIMIZED_PY38_CU118, RAY_2_7_2OPTIMIZED_PY38_CU121, RAY_2_7_2OPTIMIZED_PY39, RAY_2_7_2OPTIMIZED_PY39_CU115, RAY_2_7_2OPTIMIZED_PY39_CU116, RAY_2_7_2OPTIMIZED_PY39_CU117, RAY_2_7_2OPTIMIZED_PY39_CU118, RAY_2_7_2OPTIMIZED_PY39_CU121, RAY_2_8_0_PY310, RAY_2_8_0_PY310_CU115, RAY_2_8_0_PY310_CU116, RAY_2_8_0_PY310_CU117, RAY_2_8_0_PY310_CU118, RAY_2_8_0_PY310_CU121, RAY_2_8_0_PY311, RAY_2_8_0_PY311_CU115, RAY_2_8_0_PY311_CU116, RAY_2_8_0_PY311_CU117, RAY_2_8_0_PY311_CU118, RAY_2_8_0_PY311_CU121, RAY_2_8_0_PY38, RAY_2_8_0_PY38_CU115, RAY_2_8_0_PY38_CU116, RAY_2_8_0_PY38_CU117, RAY_2_8_0_PY38_CU118, RAY_2_8_0_PY38_CU121, RAY_2_8_0_PY39, RAY_2_8_0_PY39_CU115, RAY_2_8_0_PY39_CU116, RAY_2_8_0_PY39_CU117, RAY_2_8_0_PY39_CU118, RAY_2_8_0_PY39_CU121, RAY_2_8_1_PY310, RAY_2_8_1_PY310_CU115, RAY_2_8_1_PY310_CU116, RAY_2_8_1_PY310_CU117, RAY_2_8_1_PY310_CU118, RAY_2_8_1_PY310_CU121, RAY_2_8_1_PY311, RAY_2_8_1_PY311_CU115, RAY_2_8_1_PY311_CU116, RAY_2_8_1_PY311_CU117, RAY_2_8_1_PY311_CU118, RAY_2_8_1_PY311_CU121, RAY_2_8_1_PY38, RAY_2_8_1_PY38_CU115, RAY_2_8_1_PY38_CU116, RAY_2_8_1_PY38_CU117, RAY_2_8_1_PY38_CU118, RAY_2_8_1_PY38_CU121, RAY_2_8_1_PY39, RAY_2_8_1_PY39_CU115, RAY_2_8_1_PY39_CU116, RAY_2_8_1_PY39_CU117, RAY_2_8_1_PY39_CU118, RAY_2_8_1_PY39_CU121, RAY_2_9_0_PY310, RAY_2_9_0_PY310_CU115, RAY_2_9_0_PY310_CU116, RAY_2_9_0_PY310_CU117, RAY_2_9_0_PY310_CU118, RAY_2_9_0_PY310_CU121, RAY_2_9_0_PY311, RAY_2_9_0_PY311_CU115, RAY_2_9_0_PY311_CU116, RAY_2_9_0_PY311_CU117, RAY_2_9_0_PY311_CU118, RAY_2_9_0_PY311_CU121, RAY_2_9_0_PY38, RAY_2_9_0_PY38_CU115, RAY_2_9_0_PY38_CU116, RAY_2_9_0_PY38_CU117, RAY_2_9_0_PY38_CU118, RAY_2_9_0_PY38_CU121, RAY_2_9_0_PY39, RAY_2_9_0_PY39_CU115, RAY_2_9_0_PY39_CU116, RAY_2_9_0_PY39_CU117, RAY_2_9_0_PY39_CU118, RAY_2_9_0_PY39_CU121, RAY_2_9_1_PY310, RAY_2_9_1_PY310_CU115, RAY_2_9_1_PY310_CU116, RAY_2_9_1_PY310_CU117, RAY_2_9_1_PY310_CU118, RAY_2_9_1_PY310_CU121, RAY_2_9_1_PY311, RAY_2_9_1_PY311_CU115, RAY_2_9_1_PY311_CU116, RAY_2_9_1_PY311_CU117, RAY_2_9_1_PY311_CU118, RAY_2_9_1_PY311_CU121, RAY_2_9_1_PY38, RAY_2_9_1_PY38_CU115, RAY_2_9_1_PY38_CU116, RAY_2_9_1_PY38_CU117, RAY_2_9_1_PY38_CU118, RAY_2_9_1_PY38_CU121, RAY_2_9_1_PY39, RAY_2_9_1_PY39_CU115, RAY_2_9_1_PY39_CU116, RAY_2_9_1_PY39_CU117, RAY_2_9_1_PY39_CU118, RAY_2_9_1_PY39_CU121, RAY_2_9_2_PY310, RAY_2_9_2_PY310_CU115, RAY_2_9_2_PY310_CU116, RAY_2_9_2_PY310_CU117, RAY_2_9_2_PY310_CU118, RAY_2_9_2_PY310_CU121, RAY_2_9_2_PY311, RAY_2_9_2_PY311_CU115, RAY_2_9_2_PY311_CU116, RAY_2_9_2_PY311_CU117, RAY_2_9_2_PY311_CU118, RAY_2_9_2_PY311_CU121, RAY_2_9_2_PY38, RAY_2_9_2_PY38_CU115, RAY_2_9_2_PY38_CU116, RAY_2_9_2_PY38_CU117, RAY_2_9_2_PY38_CU118, RAY_2_9_2_PY38_CU121, RAY_2_9_2_PY39, RAY_2_9_2_PY39_CU115, RAY_2_9_2_PY39_CU116, RAY_2_9_2_PY39_CU117, RAY_2_9_2_PY39_CU118, RAY_2_9_2_PY39_CU121, RAY_2_9_3_PY310, RAY_2_9_3_PY310_CU115, RAY_2_9_3_PY310_CU116, RAY_2_9_3_PY310_CU117, RAY_2_9_3_PY310_CU118, RAY_2_9_3_PY310_CU121, RAY_2_9_3_PY311, RAY_2_9_3_PY311_CU115, RAY_2_9_3_PY311_CU116, RAY_2_9_3_PY311_CU117, RAY_2_9_3_PY311_CU118, RAY_2_9_3_PY311_CU121, RAY_2_9_3_PY38, RAY_2_9_3_PY38_CU115, RAY_2_9_3_PY38_CU116, RAY_2_9_3_PY38_CU117, RAY_2_9_3_PY38_CU118, RAY_2_9_3_PY38_CU121, RAY_2_9_3_PY39, RAY_2_9_3_PY39_CU115, RAY_2_9_3_PY39_CU116, RAY_2_9_3_PY39_CU117, RAY_2_9_3_PY39_CU118, RAY_2_9_3_PY39_CU121, RAY_NIGHTLY_PY310, RAY_NIGHTLY_PY310_CU117, RAY_NIGHTLY_PY310_CU118, RAY_NIGHTLY_PY310_CU121, RAY_NIGHTLY_PY310_CU123, RAY_NIGHTLY_PY311, RAY_NIGHTLY_PY311_CU117, RAY_NIGHTLY_PY311_CU118, RAY_NIGHTLY_PY311_CU121, RAY_NIGHTLY_PY311_CU123, RAY_NIGHTLY_PY312, RAY_NIGHTLY_PY312_CU117, RAY_NIGHTLY_PY312_CU118, RAY_NIGHTLY_PY312_CU121, RAY_NIGHTLY_PY312_CU123, RAY_NIGHTLY_PY37, RAY_NIGHTLY_PY37_CU117, RAY_NIGHTLY_PY37_CU118, RAY_NIGHTLY_PY37_CU121, RAY_NIGHTLY_PY37_CU123, RAY_NIGHTLY_PY38, RAY_NIGHTLY_PY38_CU117, RAY_NIGHTLY_PY38_CU118, RAY_NIGHTLY_PY38_CU121, RAY_NIGHTLY_PY38_CU123, RAY_NIGHTLY_PY39, RAY_NIGHTLY_PY39_CU117, RAY_NIGHTLY_PY39_CU118, RAY_NIGHTLY_PY39_CU121, RAY_NIGHTLY_PY39_CU123] # noqa: E501
1546
+ allowable_values = [RAY_ML_2_0_0_PY37_CPU, RAY_ML_2_0_0_PY37_GPU, RAY_ML_2_0_0_PY38_CPU, RAY_ML_2_0_0_PY38_GPU, RAY_ML_2_0_1_PY37_CPU, RAY_ML_2_0_1_PY37_GPU, RAY_ML_2_0_1_PY38_CPU, RAY_ML_2_0_1_PY38_GPU, RAY_ML_2_1_0_PY37_CPU, RAY_ML_2_1_0_PY37_GPU, RAY_ML_2_1_0_PY38_CPU, RAY_ML_2_1_0_PY38_GPU, RAY_ML_2_10_0_PY310_CPU, RAY_ML_2_10_0_PY310_GPU, RAY_ML_2_10_0_PY38_CPU, RAY_ML_2_10_0_PY38_GPU, RAY_ML_2_10_0_PY39_CPU, RAY_ML_2_10_0_PY39_GPU, RAY_ML_2_11_0_PY310_CPU, RAY_ML_2_11_0_PY310_GPU, RAY_ML_2_11_0_PY311_CPU, RAY_ML_2_11_0_PY311_GPU, RAY_ML_2_11_0_PY39_CPU, RAY_ML_2_11_0_PY39_GPU, RAY_ML_2_12_0_PY310_CPU, RAY_ML_2_12_0_PY310_GPU, RAY_ML_2_12_0_PY311_CPU, RAY_ML_2_12_0_PY311_GPU, RAY_ML_2_12_0_PY39_CPU, RAY_ML_2_12_0_PY39_GPU, RAY_ML_2_2_0_PY310_CPU, RAY_ML_2_2_0_PY310_GPU, RAY_ML_2_2_0_PY37_CPU, RAY_ML_2_2_0_PY37_GPU, RAY_ML_2_2_0_PY38_CPU, RAY_ML_2_2_0_PY38_GPU, RAY_ML_2_2_0_PY39_CPU, RAY_ML_2_2_0_PY39_GPU, RAY_ML_2_20_0_PY310_CPU, RAY_ML_2_20_0_PY310_GPU, RAY_ML_2_20_0_PY311_CPU, RAY_ML_2_20_0_PY311_GPU, RAY_ML_2_20_0_PY39_CPU, RAY_ML_2_20_0_PY39_GPU, RAY_ML_2_21_0_PY310_CPU, RAY_ML_2_21_0_PY310_GPU, RAY_ML_2_21_0_PY311_CPU, RAY_ML_2_21_0_PY311_GPU, RAY_ML_2_21_0_PY39_CPU, RAY_ML_2_21_0_PY39_GPU, RAY_ML_2_22_0_PY310_CPU, RAY_ML_2_22_0_PY310_GPU, RAY_ML_2_22_0_PY311_CPU, RAY_ML_2_22_0_PY311_GPU, RAY_ML_2_22_0_PY39_CPU, RAY_ML_2_22_0_PY39_GPU, RAY_ML_2_23_0_PY310_CPU, RAY_ML_2_23_0_PY310_GPU, RAY_ML_2_23_0_PY311_CPU, RAY_ML_2_23_0_PY311_GPU, RAY_ML_2_23_0_PY39_CPU, RAY_ML_2_23_0_PY39_GPU, RAY_ML_2_24_0_PY310_CPU, RAY_ML_2_24_0_PY310_GPU, RAY_ML_2_24_0_PY311_CPU, RAY_ML_2_24_0_PY311_GPU, RAY_ML_2_24_0_PY39_CPU, RAY_ML_2_24_0_PY39_GPU, RAY_ML_2_3_0_PY310_CPU, RAY_ML_2_3_0_PY310_GPU, RAY_ML_2_3_0_PY37_CPU, RAY_ML_2_3_0_PY37_GPU, RAY_ML_2_3_0_PY38_CPU, RAY_ML_2_3_0_PY38_GPU, RAY_ML_2_3_0_PY39_CPU, RAY_ML_2_3_0_PY39_GPU, RAY_ML_2_3_1_PY310_CPU, RAY_ML_2_3_1_PY310_GPU, RAY_ML_2_3_1_PY37_CPU, RAY_ML_2_3_1_PY37_GPU, RAY_ML_2_3_1_PY38_CPU, RAY_ML_2_3_1_PY38_GPU, RAY_ML_2_3_1_PY39_CPU, RAY_ML_2_3_1_PY39_GPU, RAY_ML_2_30_0_PY310_CPU, RAY_ML_2_30_0_PY310_GPU, RAY_ML_2_30_0_PY311_CPU, RAY_ML_2_30_0_PY311_GPU, RAY_ML_2_30_0_PY39_CPU, RAY_ML_2_30_0_PY39_GPU, RAY_ML_2_31_0_PY310_CPU, RAY_ML_2_31_0_PY310_GPU, RAY_ML_2_31_0_PY311_CPU, RAY_ML_2_31_0_PY311_GPU, RAY_ML_2_31_0_PY39_CPU, RAY_ML_2_31_0_PY39_GPU, RAY_ML_2_32_0_PY310_CPU, RAY_ML_2_32_0_PY310_GPU, RAY_ML_2_32_0_PY311_CPU, RAY_ML_2_32_0_PY311_GPU, RAY_ML_2_32_0_PY39_CPU, RAY_ML_2_32_0_PY39_GPU, RAY_ML_2_33_0_PY310_CPU, RAY_ML_2_33_0_PY310_GPU, RAY_ML_2_33_0_PY311_CPU, RAY_ML_2_33_0_PY311_GPU, RAY_ML_2_33_0_PY39_CPU, RAY_ML_2_33_0_PY39_GPU, RAY_ML_2_34_0_PY310_CPU, RAY_ML_2_34_0_PY310_GPU, RAY_ML_2_34_0_PY311_CPU, RAY_ML_2_34_0_PY311_GPU, RAY_ML_2_34_0_PY39_CPU, RAY_ML_2_34_0_PY39_GPU, RAY_ML_2_35_0_PY310_CPU, RAY_ML_2_35_0_PY310_GPU, RAY_ML_2_35_0_PY311_CPU, RAY_ML_2_35_0_PY311_GPU, RAY_ML_2_35_0_PY39_CPU, RAY_ML_2_35_0_PY39_GPU, RAY_ML_2_36_0_PY310_CPU, RAY_ML_2_36_0_PY310_GPU, RAY_ML_2_36_0_PY311_CPU, RAY_ML_2_36_0_PY311_GPU, RAY_ML_2_36_0_PY39_CPU, RAY_ML_2_36_0_PY39_GPU, RAY_ML_2_36_1_PY310_CPU, RAY_ML_2_36_1_PY310_GPU, RAY_ML_2_36_1_PY311_CPU, RAY_ML_2_36_1_PY311_GPU, RAY_ML_2_36_1_PY39_CPU, RAY_ML_2_36_1_PY39_GPU, RAY_ML_2_37_0_PY310_CPU, RAY_ML_2_37_0_PY310_GPU, RAY_ML_2_37_0_PY311_CPU, RAY_ML_2_37_0_PY311_GPU, RAY_ML_2_37_0_PY39_CPU, RAY_ML_2_37_0_PY39_GPU, RAY_ML_2_38_0_PY310_CPU, RAY_ML_2_38_0_PY310_GPU, RAY_ML_2_38_0_PY311_CPU, RAY_ML_2_38_0_PY311_GPU, RAY_ML_2_38_0_PY39_CPU, RAY_ML_2_38_0_PY39_GPU, RAY_ML_2_39_0_PY310_CPU, RAY_ML_2_39_0_PY310_GPU, RAY_ML_2_39_0_PY311_CPU, RAY_ML_2_39_0_PY311_GPU, RAY_ML_2_39_0_PY39_CPU, RAY_ML_2_39_0_PY39_GPU, RAY_ML_2_4_0_PY310_CPU, RAY_ML_2_4_0_PY310_GPU, RAY_ML_2_4_0_PY37_CPU, RAY_ML_2_4_0_PY37_GPU, RAY_ML_2_4_0_PY38_CPU, RAY_ML_2_4_0_PY38_GPU, RAY_ML_2_4_0_PY39_CPU, RAY_ML_2_4_0_PY39_GPU, RAY_ML_2_40_0_PY310_CPU, RAY_ML_2_40_0_PY310_GPU, RAY_ML_2_40_0_PY311_CPU, RAY_ML_2_40_0_PY311_GPU, RAY_ML_2_40_0_PY39_CPU, RAY_ML_2_40_0_PY39_GPU, RAY_ML_2_41_0_PY310_CPU, RAY_ML_2_41_0_PY310_GPU, RAY_ML_2_41_0_PY311_CPU, RAY_ML_2_41_0_PY311_GPU, RAY_ML_2_41_0_PY39_CPU, RAY_ML_2_41_0_PY39_GPU, RAY_ML_2_5_0_PY310_CPU, RAY_ML_2_5_0_PY310_GPU, RAY_ML_2_5_0_PY37_CPU, RAY_ML_2_5_0_PY37_GPU, RAY_ML_2_5_0_PY38_CPU, RAY_ML_2_5_0_PY38_GPU, RAY_ML_2_5_0_PY39_CPU, RAY_ML_2_5_0_PY39_GPU, RAY_ML_2_5_1_PY310_CPU, RAY_ML_2_5_1_PY310_GPU, RAY_ML_2_5_1_PY37_CPU, RAY_ML_2_5_1_PY37_GPU, RAY_ML_2_5_1_PY38_CPU, RAY_ML_2_5_1_PY38_GPU, RAY_ML_2_5_1_PY39_CPU, RAY_ML_2_5_1_PY39_GPU, RAY_ML_2_6_0_PY310_CPU, RAY_ML_2_6_0_PY310_GPU, RAY_ML_2_6_0_PY38_CPU, RAY_ML_2_6_0_PY38_GPU, RAY_ML_2_6_0_PY39_CPU, RAY_ML_2_6_0_PY39_GPU, RAY_ML_2_6_1_PY310_CPU, RAY_ML_2_6_1_PY310_GPU, RAY_ML_2_6_1_PY38_CPU, RAY_ML_2_6_1_PY38_GPU, RAY_ML_2_6_1_PY39_CPU, RAY_ML_2_6_1_PY39_GPU, RAY_ML_2_6_2_PY310_CPU, RAY_ML_2_6_2_PY310_GPU, RAY_ML_2_6_2_PY38_CPU, RAY_ML_2_6_2_PY38_GPU, RAY_ML_2_6_2_PY39_CPU, RAY_ML_2_6_2_PY39_GPU, RAY_ML_2_6_3_PY310_CPU, RAY_ML_2_6_3_PY310_GPU, RAY_ML_2_6_3_PY38_CPU, RAY_ML_2_6_3_PY38_GPU, RAY_ML_2_6_3_PY39_CPU, RAY_ML_2_6_3_PY39_GPU, RAY_ML_2_7_0OPTIMIZED_PY310_CPU, RAY_ML_2_7_0OPTIMIZED_PY310_GPU, RAY_ML_2_7_0OPTIMIZED_PY38_CPU, RAY_ML_2_7_0OPTIMIZED_PY38_GPU, RAY_ML_2_7_0OPTIMIZED_PY39_CPU, RAY_ML_2_7_0OPTIMIZED_PY39_GPU, RAY_ML_2_7_1OPTIMIZED_PY310_CPU, RAY_ML_2_7_1OPTIMIZED_PY310_GPU, RAY_ML_2_7_1OPTIMIZED_PY38_CPU, RAY_ML_2_7_1OPTIMIZED_PY38_GPU, RAY_ML_2_7_1OPTIMIZED_PY39_CPU, RAY_ML_2_7_1OPTIMIZED_PY39_GPU, RAY_ML_2_7_2OPTIMIZED_PY310_CPU, RAY_ML_2_7_2OPTIMIZED_PY310_GPU, RAY_ML_2_7_2OPTIMIZED_PY38_CPU, RAY_ML_2_7_2OPTIMIZED_PY38_GPU, RAY_ML_2_7_2OPTIMIZED_PY39_CPU, RAY_ML_2_7_2OPTIMIZED_PY39_GPU, RAY_ML_2_8_0_PY310_CPU, RAY_ML_2_8_0_PY310_GPU, RAY_ML_2_8_0_PY38_CPU, RAY_ML_2_8_0_PY38_GPU, RAY_ML_2_8_0_PY39_CPU, RAY_ML_2_8_0_PY39_GPU, RAY_ML_2_8_1_PY310_CPU, RAY_ML_2_8_1_PY310_GPU, RAY_ML_2_8_1_PY38_CPU, RAY_ML_2_8_1_PY38_GPU, RAY_ML_2_8_1_PY39_CPU, RAY_ML_2_8_1_PY39_GPU, RAY_ML_2_9_0_PY310_CPU, RAY_ML_2_9_0_PY310_GPU, RAY_ML_2_9_0_PY38_CPU, RAY_ML_2_9_0_PY38_GPU, RAY_ML_2_9_0_PY39_CPU, RAY_ML_2_9_0_PY39_GPU, RAY_ML_2_9_1_PY310_CPU, RAY_ML_2_9_1_PY310_GPU, RAY_ML_2_9_1_PY38_CPU, RAY_ML_2_9_1_PY38_GPU, RAY_ML_2_9_1_PY39_CPU, RAY_ML_2_9_1_PY39_GPU, RAY_ML_2_9_2_PY310_CPU, RAY_ML_2_9_2_PY310_GPU, RAY_ML_2_9_2_PY38_CPU, RAY_ML_2_9_2_PY38_GPU, RAY_ML_2_9_2_PY39_CPU, RAY_ML_2_9_2_PY39_GPU, RAY_ML_2_9_3_PY310_CPU, RAY_ML_2_9_3_PY310_GPU, RAY_ML_2_9_3_PY38_CPU, RAY_ML_2_9_3_PY38_GPU, RAY_ML_2_9_3_PY39_CPU, RAY_ML_2_9_3_PY39_GPU, RAY_ML_NIGHTLY_PY310_GPU, RAY_ML_NIGHTLY_PY311_GPU, RAY_ML_NIGHTLY_PY312_GPU, RAY_ML_NIGHTLY_PY37_GPU, RAY_ML_NIGHTLY_PY38_GPU, RAY_ML_NIGHTLY_PY39_GPU, RAY_2_0_0_PY310, RAY_2_0_0_PY37, RAY_2_0_0_PY37_CU101, RAY_2_0_0_PY37_CU102, RAY_2_0_0_PY37_CU110, RAY_2_0_0_PY37_CU111, RAY_2_0_0_PY37_CU112, RAY_2_0_0_PY37_CU113, RAY_2_0_0_PY38, RAY_2_0_0_PY38_CU101, RAY_2_0_0_PY38_CU102, RAY_2_0_0_PY38_CU110, RAY_2_0_0_PY38_CU111, RAY_2_0_0_PY38_CU112, RAY_2_0_0_PY38_CU113, RAY_2_0_0_PY39, RAY_2_0_0_PY39_CU101, RAY_2_0_0_PY39_CU102, RAY_2_0_0_PY39_CU110, RAY_2_0_0_PY39_CU111, RAY_2_0_0_PY39_CU112, RAY_2_0_0_PY39_CU113, RAY_2_0_1_PY310, RAY_2_0_1_PY37, RAY_2_0_1_PY37_CU101, RAY_2_0_1_PY37_CU102, RAY_2_0_1_PY37_CU110, RAY_2_0_1_PY37_CU111, RAY_2_0_1_PY37_CU112, RAY_2_0_1_PY37_CU113, RAY_2_0_1_PY37_CU116, RAY_2_0_1_PY38, RAY_2_0_1_PY38_CU101, RAY_2_0_1_PY38_CU102, RAY_2_0_1_PY38_CU110, RAY_2_0_1_PY38_CU111, RAY_2_0_1_PY38_CU112, RAY_2_0_1_PY38_CU113, RAY_2_0_1_PY38_CU116, RAY_2_0_1_PY39, RAY_2_0_1_PY39_CU101, RAY_2_0_1_PY39_CU102, RAY_2_0_1_PY39_CU110, RAY_2_0_1_PY39_CU111, RAY_2_0_1_PY39_CU112, RAY_2_0_1_PY39_CU113, RAY_2_0_1_PY39_CU116, RAY_2_1_0_PY310, RAY_2_1_0_PY310_CU101, RAY_2_1_0_PY310_CU102, RAY_2_1_0_PY310_CU110, RAY_2_1_0_PY310_CU111, RAY_2_1_0_PY310_CU112, RAY_2_1_0_PY310_CU113, RAY_2_1_0_PY310_CU116, RAY_2_1_0_PY37, RAY_2_1_0_PY37_CU101, RAY_2_1_0_PY37_CU102, RAY_2_1_0_PY37_CU110, RAY_2_1_0_PY37_CU111, RAY_2_1_0_PY37_CU112, RAY_2_1_0_PY37_CU113, RAY_2_1_0_PY37_CU116, RAY_2_1_0_PY38, RAY_2_1_0_PY38_CU101, RAY_2_1_0_PY38_CU102, RAY_2_1_0_PY38_CU110, RAY_2_1_0_PY38_CU111, RAY_2_1_0_PY38_CU112, RAY_2_1_0_PY38_CU113, RAY_2_1_0_PY38_CU116, RAY_2_1_0_PY39, RAY_2_1_0_PY39_CU101, RAY_2_1_0_PY39_CU102, RAY_2_1_0_PY39_CU110, RAY_2_1_0_PY39_CU111, RAY_2_1_0_PY39_CU112, RAY_2_1_0_PY39_CU113, RAY_2_1_0_PY39_CU116, RAY_2_10_0_PY310, RAY_2_10_0_PY310_CU115, RAY_2_10_0_PY310_CU116, RAY_2_10_0_PY310_CU117, RAY_2_10_0_PY310_CU118, RAY_2_10_0_PY310_CU121, RAY_2_10_0_PY311, RAY_2_10_0_PY311_CU115, RAY_2_10_0_PY311_CU116, RAY_2_10_0_PY311_CU117, RAY_2_10_0_PY311_CU118, RAY_2_10_0_PY311_CU121, RAY_2_10_0_PY38, RAY_2_10_0_PY38_CU115, RAY_2_10_0_PY38_CU116, RAY_2_10_0_PY38_CU117, RAY_2_10_0_PY38_CU118, RAY_2_10_0_PY38_CU121, RAY_2_10_0_PY39, RAY_2_10_0_PY39_CU115, RAY_2_10_0_PY39_CU116, RAY_2_10_0_PY39_CU117, RAY_2_10_0_PY39_CU118, RAY_2_10_0_PY39_CU121, RAY_2_11_0_PY310, RAY_2_11_0_PY310_CU115, RAY_2_11_0_PY310_CU116, RAY_2_11_0_PY310_CU117, RAY_2_11_0_PY310_CU118, RAY_2_11_0_PY310_CU121, RAY_2_11_0_PY311, RAY_2_11_0_PY311_CU115, RAY_2_11_0_PY311_CU116, RAY_2_11_0_PY311_CU117, RAY_2_11_0_PY311_CU118, RAY_2_11_0_PY311_CU121, RAY_2_11_0_PY39, RAY_2_11_0_PY39_CU115, RAY_2_11_0_PY39_CU116, RAY_2_11_0_PY39_CU117, RAY_2_11_0_PY39_CU118, RAY_2_11_0_PY39_CU121, RAY_2_12_0_PY310, RAY_2_12_0_PY310_CU115, RAY_2_12_0_PY310_CU116, RAY_2_12_0_PY310_CU117, RAY_2_12_0_PY310_CU118, RAY_2_12_0_PY310_CU121, RAY_2_12_0_PY311, RAY_2_12_0_PY311_CU115, RAY_2_12_0_PY311_CU116, RAY_2_12_0_PY311_CU117, RAY_2_12_0_PY311_CU118, RAY_2_12_0_PY311_CU121, RAY_2_12_0_PY39, RAY_2_12_0_PY39_CU115, RAY_2_12_0_PY39_CU116, RAY_2_12_0_PY39_CU117, RAY_2_12_0_PY39_CU118, RAY_2_12_0_PY39_CU121, RAY_2_2_0_PY310, RAY_2_2_0_PY310_CU101, RAY_2_2_0_PY310_CU102, RAY_2_2_0_PY310_CU110, RAY_2_2_0_PY310_CU111, RAY_2_2_0_PY310_CU112, RAY_2_2_0_PY310_CU113, RAY_2_2_0_PY310_CU116, RAY_2_2_0_PY37, RAY_2_2_0_PY37_CU101, RAY_2_2_0_PY37_CU102, RAY_2_2_0_PY37_CU110, RAY_2_2_0_PY37_CU111, RAY_2_2_0_PY37_CU112, RAY_2_2_0_PY37_CU113, RAY_2_2_0_PY37_CU116, RAY_2_2_0_PY38, RAY_2_2_0_PY38_CU101, RAY_2_2_0_PY38_CU102, RAY_2_2_0_PY38_CU110, RAY_2_2_0_PY38_CU111, RAY_2_2_0_PY38_CU112, RAY_2_2_0_PY38_CU113, RAY_2_2_0_PY38_CU116, RAY_2_2_0_PY39, RAY_2_2_0_PY39_CU101, RAY_2_2_0_PY39_CU102, RAY_2_2_0_PY39_CU110, RAY_2_2_0_PY39_CU111, RAY_2_2_0_PY39_CU112, RAY_2_2_0_PY39_CU113, RAY_2_2_0_PY39_CU116, RAY_2_20_0_PY310, RAY_2_20_0_PY310_CU115, RAY_2_20_0_PY310_CU116, RAY_2_20_0_PY310_CU117, RAY_2_20_0_PY310_CU118, RAY_2_20_0_PY310_CU121, RAY_2_20_0_PY311, RAY_2_20_0_PY311_CU115, RAY_2_20_0_PY311_CU116, RAY_2_20_0_PY311_CU117, RAY_2_20_0_PY311_CU118, RAY_2_20_0_PY311_CU121, RAY_2_20_0_PY39, RAY_2_20_0_PY39_CU115, RAY_2_20_0_PY39_CU116, RAY_2_20_0_PY39_CU117, RAY_2_20_0_PY39_CU118, RAY_2_20_0_PY39_CU121, RAY_2_21_0_PY310, RAY_2_21_0_PY310_CU115, RAY_2_21_0_PY310_CU116, RAY_2_21_0_PY310_CU117, RAY_2_21_0_PY310_CU118, RAY_2_21_0_PY310_CU121, RAY_2_21_0_PY311, RAY_2_21_0_PY311_CU115, RAY_2_21_0_PY311_CU116, RAY_2_21_0_PY311_CU117, RAY_2_21_0_PY311_CU118, RAY_2_21_0_PY311_CU121, RAY_2_21_0_PY39, RAY_2_21_0_PY39_CU115, RAY_2_21_0_PY39_CU116, RAY_2_21_0_PY39_CU117, RAY_2_21_0_PY39_CU118, RAY_2_21_0_PY39_CU121, RAY_2_21_0_SLIM_PY310, RAY_2_21_0_SLIM_PY310_CU118, RAY_2_21_0_SLIM_PY310_CU121, RAY_2_21_0_SLIM_PY311, RAY_2_21_0_SLIM_PY311_CU118, RAY_2_21_0_SLIM_PY311_CU121, RAY_2_21_0_SLIM_PY39, RAY_2_21_0_SLIM_PY39_CU118, RAY_2_21_0_SLIM_PY39_CU121, RAY_2_22_0_PY310, RAY_2_22_0_PY310_CU115, RAY_2_22_0_PY310_CU116, RAY_2_22_0_PY310_CU117, RAY_2_22_0_PY310_CU118, RAY_2_22_0_PY310_CU121, RAY_2_22_0_PY311, RAY_2_22_0_PY311_CU115, RAY_2_22_0_PY311_CU116, RAY_2_22_0_PY311_CU117, RAY_2_22_0_PY311_CU118, RAY_2_22_0_PY311_CU121, RAY_2_22_0_PY39, RAY_2_22_0_PY39_CU115, RAY_2_22_0_PY39_CU116, RAY_2_22_0_PY39_CU117, RAY_2_22_0_PY39_CU118, RAY_2_22_0_PY39_CU121, RAY_2_22_0_SLIM_PY310, RAY_2_22_0_SLIM_PY310_CU118, RAY_2_22_0_SLIM_PY310_CU121, RAY_2_22_0_SLIM_PY311, RAY_2_22_0_SLIM_PY311_CU118, RAY_2_22_0_SLIM_PY311_CU121, RAY_2_22_0_SLIM_PY39, RAY_2_22_0_SLIM_PY39_CU118, RAY_2_22_0_SLIM_PY39_CU121, RAY_2_23_0_PY310, RAY_2_23_0_PY310_CU115, RAY_2_23_0_PY310_CU116, RAY_2_23_0_PY310_CU117, RAY_2_23_0_PY310_CU118, RAY_2_23_0_PY310_CU121, RAY_2_23_0_PY311, RAY_2_23_0_PY311_CU115, RAY_2_23_0_PY311_CU116, RAY_2_23_0_PY311_CU117, RAY_2_23_0_PY311_CU118, RAY_2_23_0_PY311_CU121, RAY_2_23_0_PY39, RAY_2_23_0_PY39_CU115, RAY_2_23_0_PY39_CU116, RAY_2_23_0_PY39_CU117, RAY_2_23_0_PY39_CU118, RAY_2_23_0_PY39_CU121, RAY_2_23_0_SLIM_PY310, RAY_2_23_0_SLIM_PY310_CU118, RAY_2_23_0_SLIM_PY310_CU121, RAY_2_23_0_SLIM_PY311, RAY_2_23_0_SLIM_PY311_CU118, RAY_2_23_0_SLIM_PY311_CU121, RAY_2_23_0_SLIM_PY39, RAY_2_23_0_SLIM_PY39_CU118, RAY_2_23_0_SLIM_PY39_CU121, RAY_2_24_0_PY310, RAY_2_24_0_PY310_CU115, RAY_2_24_0_PY310_CU116, RAY_2_24_0_PY310_CU117, RAY_2_24_0_PY310_CU118, RAY_2_24_0_PY310_CU121, RAY_2_24_0_PY311, RAY_2_24_0_PY311_CU115, RAY_2_24_0_PY311_CU116, RAY_2_24_0_PY311_CU117, RAY_2_24_0_PY311_CU118, RAY_2_24_0_PY311_CU121, RAY_2_24_0_PY39, RAY_2_24_0_PY39_CU115, RAY_2_24_0_PY39_CU116, RAY_2_24_0_PY39_CU117, RAY_2_24_0_PY39_CU118, RAY_2_24_0_PY39_CU121, RAY_2_24_0_SLIM_PY310, RAY_2_24_0_SLIM_PY310_CU118, RAY_2_24_0_SLIM_PY310_CU121, RAY_2_24_0_SLIM_PY311, RAY_2_24_0_SLIM_PY311_CU118, RAY_2_24_0_SLIM_PY311_CU121, RAY_2_24_0_SLIM_PY39, RAY_2_24_0_SLIM_PY39_CU118, RAY_2_24_0_SLIM_PY39_CU121, RAY_2_3_0_PY310, RAY_2_3_0_PY310_CU101, RAY_2_3_0_PY310_CU102, RAY_2_3_0_PY310_CU110, RAY_2_3_0_PY310_CU111, RAY_2_3_0_PY310_CU112, RAY_2_3_0_PY310_CU113, RAY_2_3_0_PY310_CU116, RAY_2_3_0_PY310_CU118, RAY_2_3_0_PY37, RAY_2_3_0_PY37_CU101, RAY_2_3_0_PY37_CU102, RAY_2_3_0_PY37_CU110, RAY_2_3_0_PY37_CU111, RAY_2_3_0_PY37_CU112, RAY_2_3_0_PY37_CU113, RAY_2_3_0_PY37_CU116, RAY_2_3_0_PY37_CU118, RAY_2_3_0_PY38, RAY_2_3_0_PY38_CU101, RAY_2_3_0_PY38_CU102, RAY_2_3_0_PY38_CU110, RAY_2_3_0_PY38_CU111, RAY_2_3_0_PY38_CU112, RAY_2_3_0_PY38_CU113, RAY_2_3_0_PY38_CU116, RAY_2_3_0_PY38_CU118, RAY_2_3_0_PY39, RAY_2_3_0_PY39_CU101, RAY_2_3_0_PY39_CU102, RAY_2_3_0_PY39_CU110, RAY_2_3_0_PY39_CU111, RAY_2_3_0_PY39_CU112, RAY_2_3_0_PY39_CU113, RAY_2_3_0_PY39_CU116, RAY_2_3_0_PY39_CU118, RAY_2_3_1_PY310, RAY_2_3_1_PY310_CU101, RAY_2_3_1_PY310_CU102, RAY_2_3_1_PY310_CU110, RAY_2_3_1_PY310_CU111, RAY_2_3_1_PY310_CU112, RAY_2_3_1_PY310_CU113, RAY_2_3_1_PY310_CU116, RAY_2_3_1_PY310_CU118, RAY_2_3_1_PY37, RAY_2_3_1_PY37_CU101, RAY_2_3_1_PY37_CU102, RAY_2_3_1_PY37_CU110, RAY_2_3_1_PY37_CU111, RAY_2_3_1_PY37_CU112, RAY_2_3_1_PY37_CU113, RAY_2_3_1_PY37_CU116, RAY_2_3_1_PY37_CU118, RAY_2_3_1_PY38, RAY_2_3_1_PY38_CU101, RAY_2_3_1_PY38_CU102, RAY_2_3_1_PY38_CU110, RAY_2_3_1_PY38_CU111, RAY_2_3_1_PY38_CU112, RAY_2_3_1_PY38_CU113, RAY_2_3_1_PY38_CU116, RAY_2_3_1_PY38_CU118, RAY_2_3_1_PY39, RAY_2_3_1_PY39_CU101, RAY_2_3_1_PY39_CU102, RAY_2_3_1_PY39_CU110, RAY_2_3_1_PY39_CU111, RAY_2_3_1_PY39_CU112, RAY_2_3_1_PY39_CU113, RAY_2_3_1_PY39_CU116, RAY_2_3_1_PY39_CU118, RAY_2_30_0_PY310, RAY_2_30_0_PY310_CU117, RAY_2_30_0_PY310_CU118, RAY_2_30_0_PY310_CU121, RAY_2_30_0_PY310_CU123, RAY_2_30_0_PY311, RAY_2_30_0_PY311_CU117, RAY_2_30_0_PY311_CU118, RAY_2_30_0_PY311_CU121, RAY_2_30_0_PY311_CU123, RAY_2_30_0_PY39, RAY_2_30_0_PY39_CU117, RAY_2_30_0_PY39_CU118, RAY_2_30_0_PY39_CU121, RAY_2_30_0_PY39_CU123, RAY_2_30_0_SLIM_PY310, RAY_2_30_0_SLIM_PY310_CU118, RAY_2_30_0_SLIM_PY310_CU121, RAY_2_30_0_SLIM_PY310_CU123, RAY_2_30_0_SLIM_PY311, RAY_2_30_0_SLIM_PY311_CU118, RAY_2_30_0_SLIM_PY311_CU121, RAY_2_30_0_SLIM_PY311_CU123, RAY_2_30_0_SLIM_PY39, RAY_2_30_0_SLIM_PY39_CU118, RAY_2_30_0_SLIM_PY39_CU121, RAY_2_30_0_SLIM_PY39_CU123, RAY_2_31_0_PY310, RAY_2_31_0_PY310_CU117, RAY_2_31_0_PY310_CU118, RAY_2_31_0_PY310_CU121, RAY_2_31_0_PY310_CU123, RAY_2_31_0_PY311, RAY_2_31_0_PY311_CU117, RAY_2_31_0_PY311_CU118, RAY_2_31_0_PY311_CU121, RAY_2_31_0_PY311_CU123, RAY_2_31_0_PY39, RAY_2_31_0_PY39_CU117, RAY_2_31_0_PY39_CU118, RAY_2_31_0_PY39_CU121, RAY_2_31_0_PY39_CU123, RAY_2_31_0_SLIM_PY310, RAY_2_31_0_SLIM_PY310_CU118, RAY_2_31_0_SLIM_PY310_CU121, RAY_2_31_0_SLIM_PY310_CU123, RAY_2_31_0_SLIM_PY311, RAY_2_31_0_SLIM_PY311_CU118, RAY_2_31_0_SLIM_PY311_CU121, RAY_2_31_0_SLIM_PY311_CU123, RAY_2_31_0_SLIM_PY39, RAY_2_31_0_SLIM_PY39_CU118, RAY_2_31_0_SLIM_PY39_CU121, RAY_2_31_0_SLIM_PY39_CU123, RAY_2_32_0_PY310, RAY_2_32_0_PY310_CU117, RAY_2_32_0_PY310_CU118, RAY_2_32_0_PY310_CU121, RAY_2_32_0_PY310_CU123, RAY_2_32_0_PY311, RAY_2_32_0_PY311_CU117, RAY_2_32_0_PY311_CU118, RAY_2_32_0_PY311_CU121, RAY_2_32_0_PY311_CU123, RAY_2_32_0_PY39, RAY_2_32_0_PY39_CU117, RAY_2_32_0_PY39_CU118, RAY_2_32_0_PY39_CU121, RAY_2_32_0_PY39_CU123, RAY_2_32_0_SLIM_PY310, RAY_2_32_0_SLIM_PY310_CU118, RAY_2_32_0_SLIM_PY310_CU121, RAY_2_32_0_SLIM_PY310_CU123, RAY_2_32_0_SLIM_PY311, RAY_2_32_0_SLIM_PY311_CU118, RAY_2_32_0_SLIM_PY311_CU121, RAY_2_32_0_SLIM_PY311_CU123, RAY_2_32_0_SLIM_PY39, RAY_2_32_0_SLIM_PY39_CU118, RAY_2_32_0_SLIM_PY39_CU121, RAY_2_32_0_SLIM_PY39_CU123, RAY_2_33_0_PY310, RAY_2_33_0_PY310_CU117, RAY_2_33_0_PY310_CU118, RAY_2_33_0_PY310_CU121, RAY_2_33_0_PY310_CU123, RAY_2_33_0_PY311, RAY_2_33_0_PY311_CU117, RAY_2_33_0_PY311_CU118, RAY_2_33_0_PY311_CU121, RAY_2_33_0_PY311_CU123, RAY_2_33_0_PY39, RAY_2_33_0_PY39_CU117, RAY_2_33_0_PY39_CU118, RAY_2_33_0_PY39_CU121, RAY_2_33_0_PY39_CU123, RAY_2_33_0_SLIM_PY310, RAY_2_33_0_SLIM_PY310_CU118, RAY_2_33_0_SLIM_PY310_CU121, RAY_2_33_0_SLIM_PY310_CU123, RAY_2_33_0_SLIM_PY311, RAY_2_33_0_SLIM_PY311_CU118, RAY_2_33_0_SLIM_PY311_CU121, RAY_2_33_0_SLIM_PY311_CU123, RAY_2_33_0_SLIM_PY39, RAY_2_33_0_SLIM_PY39_CU118, RAY_2_33_0_SLIM_PY39_CU121, RAY_2_33_0_SLIM_PY39_CU123, RAY_2_34_0_PY310, RAY_2_34_0_PY310_CU117, RAY_2_34_0_PY310_CU118, RAY_2_34_0_PY310_CU121, RAY_2_34_0_PY310_CU123, RAY_2_34_0_PY311, RAY_2_34_0_PY311_CU117, RAY_2_34_0_PY311_CU118, RAY_2_34_0_PY311_CU121, RAY_2_34_0_PY311_CU123, RAY_2_34_0_PY39, RAY_2_34_0_PY39_CU117, RAY_2_34_0_PY39_CU118, RAY_2_34_0_PY39_CU121, RAY_2_34_0_PY39_CU123, RAY_2_34_0_SLIM_PY310, RAY_2_34_0_SLIM_PY310_CU118, RAY_2_34_0_SLIM_PY310_CU121, RAY_2_34_0_SLIM_PY310_CU123, RAY_2_34_0_SLIM_PY311, RAY_2_34_0_SLIM_PY311_CU118, RAY_2_34_0_SLIM_PY311_CU121, RAY_2_34_0_SLIM_PY311_CU123, RAY_2_34_0_SLIM_PY39, RAY_2_34_0_SLIM_PY39_CU118, RAY_2_34_0_SLIM_PY39_CU121, RAY_2_34_0_SLIM_PY39_CU123, RAY_2_35_0_PY310, RAY_2_35_0_PY310_CU117, RAY_2_35_0_PY310_CU118, RAY_2_35_0_PY310_CU121, RAY_2_35_0_PY310_CU123, RAY_2_35_0_PY311, RAY_2_35_0_PY311_CU117, RAY_2_35_0_PY311_CU118, RAY_2_35_0_PY311_CU121, RAY_2_35_0_PY311_CU123, RAY_2_35_0_PY312, RAY_2_35_0_PY312_CU117, RAY_2_35_0_PY312_CU118, RAY_2_35_0_PY312_CU121, RAY_2_35_0_PY312_CU123, RAY_2_35_0_PY39, RAY_2_35_0_PY39_CU117, RAY_2_35_0_PY39_CU118, RAY_2_35_0_PY39_CU121, RAY_2_35_0_PY39_CU123, RAY_2_35_0_SLIM_PY310, RAY_2_35_0_SLIM_PY310_CU118, RAY_2_35_0_SLIM_PY310_CU121, RAY_2_35_0_SLIM_PY310_CU123, RAY_2_35_0_SLIM_PY311, RAY_2_35_0_SLIM_PY311_CU118, RAY_2_35_0_SLIM_PY311_CU121, RAY_2_35_0_SLIM_PY311_CU123, RAY_2_35_0_SLIM_PY312, RAY_2_35_0_SLIM_PY312_CU118, RAY_2_35_0_SLIM_PY312_CU121, RAY_2_35_0_SLIM_PY312_CU123, RAY_2_35_0_SLIM_PY39, RAY_2_35_0_SLIM_PY39_CU118, RAY_2_35_0_SLIM_PY39_CU121, RAY_2_35_0_SLIM_PY39_CU123, RAY_2_36_0_PY310, RAY_2_36_0_PY310_CU117, RAY_2_36_0_PY310_CU118, RAY_2_36_0_PY310_CU121, RAY_2_36_0_PY310_CU123, RAY_2_36_0_PY311, RAY_2_36_0_PY311_CU117, RAY_2_36_0_PY311_CU118, RAY_2_36_0_PY311_CU121, RAY_2_36_0_PY311_CU123, RAY_2_36_0_PY312, RAY_2_36_0_PY312_CU117, RAY_2_36_0_PY312_CU118, RAY_2_36_0_PY312_CU121, RAY_2_36_0_PY312_CU123, RAY_2_36_0_PY39, RAY_2_36_0_PY39_CU117, RAY_2_36_0_PY39_CU118, RAY_2_36_0_PY39_CU121, RAY_2_36_0_PY39_CU123, RAY_2_36_0_SLIM_PY310, RAY_2_36_0_SLIM_PY310_CU118, RAY_2_36_0_SLIM_PY310_CU121, RAY_2_36_0_SLIM_PY310_CU123, RAY_2_36_0_SLIM_PY311, RAY_2_36_0_SLIM_PY311_CU118, RAY_2_36_0_SLIM_PY311_CU121, RAY_2_36_0_SLIM_PY311_CU123, RAY_2_36_0_SLIM_PY312, RAY_2_36_0_SLIM_PY312_CU118, RAY_2_36_0_SLIM_PY312_CU121, RAY_2_36_0_SLIM_PY312_CU123, RAY_2_36_0_SLIM_PY39, RAY_2_36_0_SLIM_PY39_CU118, RAY_2_36_0_SLIM_PY39_CU121, RAY_2_36_0_SLIM_PY39_CU123, RAY_2_36_1_PY310, RAY_2_36_1_PY310_CU117, RAY_2_36_1_PY310_CU118, RAY_2_36_1_PY310_CU121, RAY_2_36_1_PY310_CU123, RAY_2_36_1_PY311, RAY_2_36_1_PY311_CU117, RAY_2_36_1_PY311_CU118, RAY_2_36_1_PY311_CU121, RAY_2_36_1_PY311_CU123, RAY_2_36_1_PY312, RAY_2_36_1_PY312_CU117, RAY_2_36_1_PY312_CU118, RAY_2_36_1_PY312_CU121, RAY_2_36_1_PY312_CU123, RAY_2_36_1_PY39, RAY_2_36_1_PY39_CU117, RAY_2_36_1_PY39_CU118, RAY_2_36_1_PY39_CU121, RAY_2_36_1_PY39_CU123, RAY_2_36_1_SLIM_PY310, RAY_2_36_1_SLIM_PY310_CU118, RAY_2_36_1_SLIM_PY310_CU121, RAY_2_36_1_SLIM_PY310_CU123, RAY_2_36_1_SLIM_PY311, RAY_2_36_1_SLIM_PY311_CU118, RAY_2_36_1_SLIM_PY311_CU121, RAY_2_36_1_SLIM_PY311_CU123, RAY_2_36_1_SLIM_PY312, RAY_2_36_1_SLIM_PY312_CU118, RAY_2_36_1_SLIM_PY312_CU121, RAY_2_36_1_SLIM_PY312_CU123, RAY_2_36_1_SLIM_PY39, RAY_2_36_1_SLIM_PY39_CU118, RAY_2_36_1_SLIM_PY39_CU121, RAY_2_36_1_SLIM_PY39_CU123, RAY_2_37_0_PY310, RAY_2_37_0_PY310_CU117, RAY_2_37_0_PY310_CU118, RAY_2_37_0_PY310_CU121, RAY_2_37_0_PY310_CU123, RAY_2_37_0_PY311, RAY_2_37_0_PY311_CU117, RAY_2_37_0_PY311_CU118, RAY_2_37_0_PY311_CU121, RAY_2_37_0_PY311_CU123, RAY_2_37_0_PY312, RAY_2_37_0_PY312_CU117, RAY_2_37_0_PY312_CU118, RAY_2_37_0_PY312_CU121, RAY_2_37_0_PY312_CU123, RAY_2_37_0_PY39, RAY_2_37_0_PY39_CU117, RAY_2_37_0_PY39_CU118, RAY_2_37_0_PY39_CU121, RAY_2_37_0_PY39_CU123, RAY_2_37_0_SLIM_PY310, RAY_2_37_0_SLIM_PY310_CU118, RAY_2_37_0_SLIM_PY310_CU121, RAY_2_37_0_SLIM_PY310_CU123, RAY_2_37_0_SLIM_PY311, RAY_2_37_0_SLIM_PY311_CU118, RAY_2_37_0_SLIM_PY311_CU121, RAY_2_37_0_SLIM_PY311_CU123, RAY_2_37_0_SLIM_PY312, RAY_2_37_0_SLIM_PY312_CU118, RAY_2_37_0_SLIM_PY312_CU121, RAY_2_37_0_SLIM_PY312_CU123, RAY_2_37_0_SLIM_PY39, RAY_2_37_0_SLIM_PY39_CU118, RAY_2_37_0_SLIM_PY39_CU121, RAY_2_37_0_SLIM_PY39_CU123, RAY_2_38_0_PY310, RAY_2_38_0_PY310_CU117, RAY_2_38_0_PY310_CU118, RAY_2_38_0_PY310_CU121, RAY_2_38_0_PY310_CU123, RAY_2_38_0_PY311, RAY_2_38_0_PY311_CU117, RAY_2_38_0_PY311_CU118, RAY_2_38_0_PY311_CU121, RAY_2_38_0_PY311_CU123, RAY_2_38_0_PY312, RAY_2_38_0_PY312_CU117, RAY_2_38_0_PY312_CU118, RAY_2_38_0_PY312_CU121, RAY_2_38_0_PY312_CU123, RAY_2_38_0_PY39, RAY_2_38_0_PY39_CU117, RAY_2_38_0_PY39_CU118, RAY_2_38_0_PY39_CU121, RAY_2_38_0_PY39_CU123, RAY_2_38_0_SLIM_PY310, RAY_2_38_0_SLIM_PY310_CU118, RAY_2_38_0_SLIM_PY310_CU121, RAY_2_38_0_SLIM_PY310_CU123, RAY_2_38_0_SLIM_PY311, RAY_2_38_0_SLIM_PY311_CU118, RAY_2_38_0_SLIM_PY311_CU121, RAY_2_38_0_SLIM_PY311_CU123, RAY_2_38_0_SLIM_PY312, RAY_2_38_0_SLIM_PY312_CU118, RAY_2_38_0_SLIM_PY312_CU121, RAY_2_38_0_SLIM_PY312_CU123, RAY_2_38_0_SLIM_PY39, RAY_2_38_0_SLIM_PY39_CU118, RAY_2_38_0_SLIM_PY39_CU121, RAY_2_38_0_SLIM_PY39_CU123, RAY_2_39_0_PY310, RAY_2_39_0_PY310_CU117, RAY_2_39_0_PY310_CU118, RAY_2_39_0_PY310_CU121, RAY_2_39_0_PY310_CU123, RAY_2_39_0_PY311, RAY_2_39_0_PY311_CU117, RAY_2_39_0_PY311_CU118, RAY_2_39_0_PY311_CU121, RAY_2_39_0_PY311_CU123, RAY_2_39_0_PY312, RAY_2_39_0_PY312_CU117, RAY_2_39_0_PY312_CU118, RAY_2_39_0_PY312_CU121, RAY_2_39_0_PY312_CU123, RAY_2_39_0_PY39, RAY_2_39_0_PY39_CU117, RAY_2_39_0_PY39_CU118, RAY_2_39_0_PY39_CU121, RAY_2_39_0_PY39_CU123, RAY_2_39_0_SLIM_PY310, RAY_2_39_0_SLIM_PY310_CU118, RAY_2_39_0_SLIM_PY310_CU121, RAY_2_39_0_SLIM_PY310_CU123, RAY_2_39_0_SLIM_PY311, RAY_2_39_0_SLIM_PY311_CU118, RAY_2_39_0_SLIM_PY311_CU121, RAY_2_39_0_SLIM_PY311_CU123, RAY_2_39_0_SLIM_PY312, RAY_2_39_0_SLIM_PY312_CU118, RAY_2_39_0_SLIM_PY312_CU121, RAY_2_39_0_SLIM_PY312_CU123, RAY_2_39_0_SLIM_PY39, RAY_2_39_0_SLIM_PY39_CU118, RAY_2_39_0_SLIM_PY39_CU121, RAY_2_39_0_SLIM_PY39_CU123, RAY_2_4_0_PY310, RAY_2_4_0_PY310_CU101, RAY_2_4_0_PY310_CU102, RAY_2_4_0_PY310_CU110, RAY_2_4_0_PY310_CU111, RAY_2_4_0_PY310_CU112, RAY_2_4_0_PY310_CU113, RAY_2_4_0_PY310_CU116, RAY_2_4_0_PY310_CU118, RAY_2_4_0_PY37, RAY_2_4_0_PY37_CU101, RAY_2_4_0_PY37_CU102, RAY_2_4_0_PY37_CU110, RAY_2_4_0_PY37_CU111, RAY_2_4_0_PY37_CU112, RAY_2_4_0_PY37_CU113, RAY_2_4_0_PY37_CU116, RAY_2_4_0_PY37_CU118, RAY_2_4_0_PY38, RAY_2_4_0_PY38_CU101, RAY_2_4_0_PY38_CU102, RAY_2_4_0_PY38_CU110, RAY_2_4_0_PY38_CU111, RAY_2_4_0_PY38_CU112, RAY_2_4_0_PY38_CU113, RAY_2_4_0_PY38_CU116, RAY_2_4_0_PY38_CU118, RAY_2_4_0_PY39, RAY_2_4_0_PY39_CU101, RAY_2_4_0_PY39_CU102, RAY_2_4_0_PY39_CU110, RAY_2_4_0_PY39_CU111, RAY_2_4_0_PY39_CU112, RAY_2_4_0_PY39_CU113, RAY_2_4_0_PY39_CU116, RAY_2_4_0_PY39_CU118, RAY_2_40_0_PY310, RAY_2_40_0_PY310_CU117, RAY_2_40_0_PY310_CU118, RAY_2_40_0_PY310_CU121, RAY_2_40_0_PY310_CU123, RAY_2_40_0_PY311, RAY_2_40_0_PY311_CU117, RAY_2_40_0_PY311_CU118, RAY_2_40_0_PY311_CU121, RAY_2_40_0_PY311_CU123, RAY_2_40_0_PY312, RAY_2_40_0_PY312_CU117, RAY_2_40_0_PY312_CU118, RAY_2_40_0_PY312_CU121, RAY_2_40_0_PY312_CU123, RAY_2_40_0_PY39, RAY_2_40_0_PY39_CU117, RAY_2_40_0_PY39_CU118, RAY_2_40_0_PY39_CU121, RAY_2_40_0_PY39_CU123, RAY_2_40_0_SLIM_PY310, RAY_2_40_0_SLIM_PY310_CU118, RAY_2_40_0_SLIM_PY310_CU121, RAY_2_40_0_SLIM_PY310_CU123, RAY_2_40_0_SLIM_PY311, RAY_2_40_0_SLIM_PY311_CU118, RAY_2_40_0_SLIM_PY311_CU121, RAY_2_40_0_SLIM_PY311_CU123, RAY_2_40_0_SLIM_PY312, RAY_2_40_0_SLIM_PY312_CU118, RAY_2_40_0_SLIM_PY312_CU121, RAY_2_40_0_SLIM_PY312_CU123, RAY_2_40_0_SLIM_PY39, RAY_2_40_0_SLIM_PY39_CU118, RAY_2_40_0_SLIM_PY39_CU121, RAY_2_40_0_SLIM_PY39_CU123, RAY_2_41_0_PY310, RAY_2_41_0_PY310_CU117, RAY_2_41_0_PY310_CU118, RAY_2_41_0_PY310_CU121, RAY_2_41_0_PY310_CU123, RAY_2_41_0_PY311, RAY_2_41_0_PY311_CU117, RAY_2_41_0_PY311_CU118, RAY_2_41_0_PY311_CU121, RAY_2_41_0_PY311_CU123, RAY_2_41_0_PY312, RAY_2_41_0_PY312_CU117, RAY_2_41_0_PY312_CU118, RAY_2_41_0_PY312_CU121, RAY_2_41_0_PY312_CU123, RAY_2_41_0_PY39, RAY_2_41_0_PY39_CU117, RAY_2_41_0_PY39_CU118, RAY_2_41_0_PY39_CU121, RAY_2_41_0_PY39_CU123, RAY_2_41_0_SLIM_PY310, RAY_2_41_0_SLIM_PY310_CU118, RAY_2_41_0_SLIM_PY310_CU121, RAY_2_41_0_SLIM_PY310_CU123, RAY_2_41_0_SLIM_PY311, RAY_2_41_0_SLIM_PY311_CU118, RAY_2_41_0_SLIM_PY311_CU121, RAY_2_41_0_SLIM_PY311_CU123, RAY_2_41_0_SLIM_PY312, RAY_2_41_0_SLIM_PY312_CU118, RAY_2_41_0_SLIM_PY312_CU121, RAY_2_41_0_SLIM_PY312_CU123, RAY_2_41_0_SLIM_PY39, RAY_2_41_0_SLIM_PY39_CU118, RAY_2_41_0_SLIM_PY39_CU121, RAY_2_41_0_SLIM_PY39_CU123, RAY_2_5_0_PY310, RAY_2_5_0_PY310_CU101, RAY_2_5_0_PY310_CU102, RAY_2_5_0_PY310_CU110, RAY_2_5_0_PY310_CU111, RAY_2_5_0_PY310_CU112, RAY_2_5_0_PY310_CU113, RAY_2_5_0_PY310_CU116, RAY_2_5_0_PY310_CU118, RAY_2_5_0_PY37, RAY_2_5_0_PY37_CU101, RAY_2_5_0_PY37_CU102, RAY_2_5_0_PY37_CU110, RAY_2_5_0_PY37_CU111, RAY_2_5_0_PY37_CU112, RAY_2_5_0_PY37_CU113, RAY_2_5_0_PY37_CU116, RAY_2_5_0_PY37_CU118, RAY_2_5_0_PY38, RAY_2_5_0_PY38_CU101, RAY_2_5_0_PY38_CU102, RAY_2_5_0_PY38_CU110, RAY_2_5_0_PY38_CU111, RAY_2_5_0_PY38_CU112, RAY_2_5_0_PY38_CU113, RAY_2_5_0_PY38_CU116, RAY_2_5_0_PY38_CU118, RAY_2_5_0_PY39, RAY_2_5_0_PY39_CU101, RAY_2_5_0_PY39_CU102, RAY_2_5_0_PY39_CU110, RAY_2_5_0_PY39_CU111, RAY_2_5_0_PY39_CU112, RAY_2_5_0_PY39_CU113, RAY_2_5_0_PY39_CU116, RAY_2_5_0_PY39_CU118, RAY_2_5_1_PY310, RAY_2_5_1_PY310_CU101, RAY_2_5_1_PY310_CU102, RAY_2_5_1_PY310_CU110, RAY_2_5_1_PY310_CU111, RAY_2_5_1_PY310_CU112, RAY_2_5_1_PY310_CU113, RAY_2_5_1_PY310_CU116, RAY_2_5_1_PY310_CU118, RAY_2_5_1_PY37, RAY_2_5_1_PY37_CU101, RAY_2_5_1_PY37_CU102, RAY_2_5_1_PY37_CU110, RAY_2_5_1_PY37_CU111, RAY_2_5_1_PY37_CU112, RAY_2_5_1_PY37_CU113, RAY_2_5_1_PY37_CU116, RAY_2_5_1_PY37_CU118, RAY_2_5_1_PY38, RAY_2_5_1_PY38_CU101, RAY_2_5_1_PY38_CU102, RAY_2_5_1_PY38_CU110, RAY_2_5_1_PY38_CU111, RAY_2_5_1_PY38_CU112, RAY_2_5_1_PY38_CU113, RAY_2_5_1_PY38_CU116, RAY_2_5_1_PY38_CU118, RAY_2_5_1_PY39, RAY_2_5_1_PY39_CU101, RAY_2_5_1_PY39_CU102, RAY_2_5_1_PY39_CU110, RAY_2_5_1_PY39_CU111, RAY_2_5_1_PY39_CU112, RAY_2_5_1_PY39_CU113, RAY_2_5_1_PY39_CU116, RAY_2_5_1_PY39_CU118, RAY_2_6_0_PY310, RAY_2_6_0_PY310_CU115, RAY_2_6_0_PY310_CU116, RAY_2_6_0_PY310_CU117, RAY_2_6_0_PY310_CU118, RAY_2_6_0_PY37, RAY_2_6_0_PY37_CU115, RAY_2_6_0_PY37_CU116, RAY_2_6_0_PY37_CU117, RAY_2_6_0_PY37_CU118, RAY_2_6_0_PY38, RAY_2_6_0_PY38_CU115, RAY_2_6_0_PY38_CU116, RAY_2_6_0_PY38_CU117, RAY_2_6_0_PY38_CU118, RAY_2_6_0_PY39, RAY_2_6_0_PY39_CU115, RAY_2_6_0_PY39_CU116, RAY_2_6_0_PY39_CU117, RAY_2_6_0_PY39_CU118, RAY_2_6_1_PY310, RAY_2_6_1_PY310_CU115, RAY_2_6_1_PY310_CU116, RAY_2_6_1_PY310_CU117, RAY_2_6_1_PY310_CU118, RAY_2_6_1_PY37, RAY_2_6_1_PY37_CU115, RAY_2_6_1_PY37_CU116, RAY_2_6_1_PY37_CU117, RAY_2_6_1_PY37_CU118, RAY_2_6_1_PY38, RAY_2_6_1_PY38_CU115, RAY_2_6_1_PY38_CU116, RAY_2_6_1_PY38_CU117, RAY_2_6_1_PY38_CU118, RAY_2_6_1_PY39, RAY_2_6_1_PY39_CU115, RAY_2_6_1_PY39_CU116, RAY_2_6_1_PY39_CU117, RAY_2_6_1_PY39_CU118, RAY_2_6_2_PY310, RAY_2_6_2_PY310_CU115, RAY_2_6_2_PY310_CU116, RAY_2_6_2_PY310_CU117, RAY_2_6_2_PY310_CU118, RAY_2_6_2_PY37, RAY_2_6_2_PY37_CU115, RAY_2_6_2_PY37_CU116, RAY_2_6_2_PY37_CU117, RAY_2_6_2_PY37_CU118, RAY_2_6_2_PY38, RAY_2_6_2_PY38_CU115, RAY_2_6_2_PY38_CU116, RAY_2_6_2_PY38_CU117, RAY_2_6_2_PY38_CU118, RAY_2_6_2_PY39, RAY_2_6_2_PY39_CU115, RAY_2_6_2_PY39_CU116, RAY_2_6_2_PY39_CU117, RAY_2_6_2_PY39_CU118, RAY_2_6_3_PY310, RAY_2_6_3_PY310_CU115, RAY_2_6_3_PY310_CU116, RAY_2_6_3_PY310_CU117, RAY_2_6_3_PY310_CU118, RAY_2_6_3_PY37, RAY_2_6_3_PY37_CU115, RAY_2_6_3_PY37_CU116, RAY_2_6_3_PY37_CU117, RAY_2_6_3_PY37_CU118, RAY_2_6_3_PY38, RAY_2_6_3_PY38_CU115, RAY_2_6_3_PY38_CU116, RAY_2_6_3_PY38_CU117, RAY_2_6_3_PY38_CU118, RAY_2_6_3_PY39, RAY_2_6_3_PY39_CU115, RAY_2_6_3_PY39_CU116, RAY_2_6_3_PY39_CU117, RAY_2_6_3_PY39_CU118, RAY_2_7_0OPTIMIZED_PY310, RAY_2_7_0OPTIMIZED_PY310_CU115, RAY_2_7_0OPTIMIZED_PY310_CU116, RAY_2_7_0OPTIMIZED_PY310_CU117, RAY_2_7_0OPTIMIZED_PY310_CU118, RAY_2_7_0OPTIMIZED_PY310_CU121, RAY_2_7_0OPTIMIZED_PY311, RAY_2_7_0OPTIMIZED_PY311_CU115, RAY_2_7_0OPTIMIZED_PY311_CU116, RAY_2_7_0OPTIMIZED_PY311_CU117, RAY_2_7_0OPTIMIZED_PY311_CU118, RAY_2_7_0OPTIMIZED_PY311_CU121, RAY_2_7_0OPTIMIZED_PY37, RAY_2_7_0OPTIMIZED_PY37_CU115, RAY_2_7_0OPTIMIZED_PY37_CU116, RAY_2_7_0OPTIMIZED_PY37_CU117, RAY_2_7_0OPTIMIZED_PY37_CU118, RAY_2_7_0OPTIMIZED_PY37_CU121, RAY_2_7_0OPTIMIZED_PY38, RAY_2_7_0OPTIMIZED_PY38_CU115, RAY_2_7_0OPTIMIZED_PY38_CU116, RAY_2_7_0OPTIMIZED_PY38_CU117, RAY_2_7_0OPTIMIZED_PY38_CU118, RAY_2_7_0OPTIMIZED_PY38_CU121, RAY_2_7_0OPTIMIZED_PY39, RAY_2_7_0OPTIMIZED_PY39_CU115, RAY_2_7_0OPTIMIZED_PY39_CU116, RAY_2_7_0OPTIMIZED_PY39_CU117, RAY_2_7_0OPTIMIZED_PY39_CU118, RAY_2_7_0OPTIMIZED_PY39_CU121, RAY_2_7_1OPTIMIZED_PY310, RAY_2_7_1OPTIMIZED_PY310_CU115, RAY_2_7_1OPTIMIZED_PY310_CU116, RAY_2_7_1OPTIMIZED_PY310_CU117, RAY_2_7_1OPTIMIZED_PY310_CU118, RAY_2_7_1OPTIMIZED_PY310_CU121, RAY_2_7_1OPTIMIZED_PY311, RAY_2_7_1OPTIMIZED_PY311_CU115, RAY_2_7_1OPTIMIZED_PY311_CU116, RAY_2_7_1OPTIMIZED_PY311_CU117, RAY_2_7_1OPTIMIZED_PY311_CU118, RAY_2_7_1OPTIMIZED_PY311_CU121, RAY_2_7_1OPTIMIZED_PY37, RAY_2_7_1OPTIMIZED_PY37_CU115, RAY_2_7_1OPTIMIZED_PY37_CU116, RAY_2_7_1OPTIMIZED_PY37_CU117, RAY_2_7_1OPTIMIZED_PY37_CU118, RAY_2_7_1OPTIMIZED_PY37_CU121, RAY_2_7_1OPTIMIZED_PY38, RAY_2_7_1OPTIMIZED_PY38_CU115, RAY_2_7_1OPTIMIZED_PY38_CU116, RAY_2_7_1OPTIMIZED_PY38_CU117, RAY_2_7_1OPTIMIZED_PY38_CU118, RAY_2_7_1OPTIMIZED_PY38_CU121, RAY_2_7_1OPTIMIZED_PY39, RAY_2_7_1OPTIMIZED_PY39_CU115, RAY_2_7_1OPTIMIZED_PY39_CU116, RAY_2_7_1OPTIMIZED_PY39_CU117, RAY_2_7_1OPTIMIZED_PY39_CU118, RAY_2_7_1OPTIMIZED_PY39_CU121, RAY_2_7_2OPTIMIZED_PY310, RAY_2_7_2OPTIMIZED_PY310_CU115, RAY_2_7_2OPTIMIZED_PY310_CU116, RAY_2_7_2OPTIMIZED_PY310_CU117, RAY_2_7_2OPTIMIZED_PY310_CU118, RAY_2_7_2OPTIMIZED_PY310_CU121, RAY_2_7_2OPTIMIZED_PY311, RAY_2_7_2OPTIMIZED_PY311_CU115, RAY_2_7_2OPTIMIZED_PY311_CU116, RAY_2_7_2OPTIMIZED_PY311_CU117, RAY_2_7_2OPTIMIZED_PY311_CU118, RAY_2_7_2OPTIMIZED_PY311_CU121, RAY_2_7_2OPTIMIZED_PY37, RAY_2_7_2OPTIMIZED_PY37_CU115, RAY_2_7_2OPTIMIZED_PY37_CU116, RAY_2_7_2OPTIMIZED_PY37_CU117, RAY_2_7_2OPTIMIZED_PY37_CU118, RAY_2_7_2OPTIMIZED_PY37_CU121, RAY_2_7_2OPTIMIZED_PY38, RAY_2_7_2OPTIMIZED_PY38_CU115, RAY_2_7_2OPTIMIZED_PY38_CU116, RAY_2_7_2OPTIMIZED_PY38_CU117, RAY_2_7_2OPTIMIZED_PY38_CU118, RAY_2_7_2OPTIMIZED_PY38_CU121, RAY_2_7_2OPTIMIZED_PY39, RAY_2_7_2OPTIMIZED_PY39_CU115, RAY_2_7_2OPTIMIZED_PY39_CU116, RAY_2_7_2OPTIMIZED_PY39_CU117, RAY_2_7_2OPTIMIZED_PY39_CU118, RAY_2_7_2OPTIMIZED_PY39_CU121, RAY_2_8_0_PY310, RAY_2_8_0_PY310_CU115, RAY_2_8_0_PY310_CU116, RAY_2_8_0_PY310_CU117, RAY_2_8_0_PY310_CU118, RAY_2_8_0_PY310_CU121, RAY_2_8_0_PY311, RAY_2_8_0_PY311_CU115, RAY_2_8_0_PY311_CU116, RAY_2_8_0_PY311_CU117, RAY_2_8_0_PY311_CU118, RAY_2_8_0_PY311_CU121, RAY_2_8_0_PY38, RAY_2_8_0_PY38_CU115, RAY_2_8_0_PY38_CU116, RAY_2_8_0_PY38_CU117, RAY_2_8_0_PY38_CU118, RAY_2_8_0_PY38_CU121, RAY_2_8_0_PY39, RAY_2_8_0_PY39_CU115, RAY_2_8_0_PY39_CU116, RAY_2_8_0_PY39_CU117, RAY_2_8_0_PY39_CU118, RAY_2_8_0_PY39_CU121, RAY_2_8_1_PY310, RAY_2_8_1_PY310_CU115, RAY_2_8_1_PY310_CU116, RAY_2_8_1_PY310_CU117, RAY_2_8_1_PY310_CU118, RAY_2_8_1_PY310_CU121, RAY_2_8_1_PY311, RAY_2_8_1_PY311_CU115, RAY_2_8_1_PY311_CU116, RAY_2_8_1_PY311_CU117, RAY_2_8_1_PY311_CU118, RAY_2_8_1_PY311_CU121, RAY_2_8_1_PY38, RAY_2_8_1_PY38_CU115, RAY_2_8_1_PY38_CU116, RAY_2_8_1_PY38_CU117, RAY_2_8_1_PY38_CU118, RAY_2_8_1_PY38_CU121, RAY_2_8_1_PY39, RAY_2_8_1_PY39_CU115, RAY_2_8_1_PY39_CU116, RAY_2_8_1_PY39_CU117, RAY_2_8_1_PY39_CU118, RAY_2_8_1_PY39_CU121, RAY_2_9_0_PY310, RAY_2_9_0_PY310_CU115, RAY_2_9_0_PY310_CU116, RAY_2_9_0_PY310_CU117, RAY_2_9_0_PY310_CU118, RAY_2_9_0_PY310_CU121, RAY_2_9_0_PY311, RAY_2_9_0_PY311_CU115, RAY_2_9_0_PY311_CU116, RAY_2_9_0_PY311_CU117, RAY_2_9_0_PY311_CU118, RAY_2_9_0_PY311_CU121, RAY_2_9_0_PY38, RAY_2_9_0_PY38_CU115, RAY_2_9_0_PY38_CU116, RAY_2_9_0_PY38_CU117, RAY_2_9_0_PY38_CU118, RAY_2_9_0_PY38_CU121, RAY_2_9_0_PY39, RAY_2_9_0_PY39_CU115, RAY_2_9_0_PY39_CU116, RAY_2_9_0_PY39_CU117, RAY_2_9_0_PY39_CU118, RAY_2_9_0_PY39_CU121, RAY_2_9_1_PY310, RAY_2_9_1_PY310_CU115, RAY_2_9_1_PY310_CU116, RAY_2_9_1_PY310_CU117, RAY_2_9_1_PY310_CU118, RAY_2_9_1_PY310_CU121, RAY_2_9_1_PY311, RAY_2_9_1_PY311_CU115, RAY_2_9_1_PY311_CU116, RAY_2_9_1_PY311_CU117, RAY_2_9_1_PY311_CU118, RAY_2_9_1_PY311_CU121, RAY_2_9_1_PY38, RAY_2_9_1_PY38_CU115, RAY_2_9_1_PY38_CU116, RAY_2_9_1_PY38_CU117, RAY_2_9_1_PY38_CU118, RAY_2_9_1_PY38_CU121, RAY_2_9_1_PY39, RAY_2_9_1_PY39_CU115, RAY_2_9_1_PY39_CU116, RAY_2_9_1_PY39_CU117, RAY_2_9_1_PY39_CU118, RAY_2_9_1_PY39_CU121, RAY_2_9_2_PY310, RAY_2_9_2_PY310_CU115, RAY_2_9_2_PY310_CU116, RAY_2_9_2_PY310_CU117, RAY_2_9_2_PY310_CU118, RAY_2_9_2_PY310_CU121, RAY_2_9_2_PY311, RAY_2_9_2_PY311_CU115, RAY_2_9_2_PY311_CU116, RAY_2_9_2_PY311_CU117, RAY_2_9_2_PY311_CU118, RAY_2_9_2_PY311_CU121, RAY_2_9_2_PY38, RAY_2_9_2_PY38_CU115, RAY_2_9_2_PY38_CU116, RAY_2_9_2_PY38_CU117, RAY_2_9_2_PY38_CU118, RAY_2_9_2_PY38_CU121, RAY_2_9_2_PY39, RAY_2_9_2_PY39_CU115, RAY_2_9_2_PY39_CU116, RAY_2_9_2_PY39_CU117, RAY_2_9_2_PY39_CU118, RAY_2_9_2_PY39_CU121, RAY_2_9_3_PY310, RAY_2_9_3_PY310_CU115, RAY_2_9_3_PY310_CU116, RAY_2_9_3_PY310_CU117, RAY_2_9_3_PY310_CU118, RAY_2_9_3_PY310_CU121, RAY_2_9_3_PY311, RAY_2_9_3_PY311_CU115, RAY_2_9_3_PY311_CU116, RAY_2_9_3_PY311_CU117, RAY_2_9_3_PY311_CU118, RAY_2_9_3_PY311_CU121, RAY_2_9_3_PY38, RAY_2_9_3_PY38_CU115, RAY_2_9_3_PY38_CU116, RAY_2_9_3_PY38_CU117, RAY_2_9_3_PY38_CU118, RAY_2_9_3_PY38_CU121, RAY_2_9_3_PY39, RAY_2_9_3_PY39_CU115, RAY_2_9_3_PY39_CU116, RAY_2_9_3_PY39_CU117, RAY_2_9_3_PY39_CU118, RAY_2_9_3_PY39_CU121, RAY_NIGHTLY_PY310, RAY_NIGHTLY_PY310_CU117, RAY_NIGHTLY_PY310_CU118, RAY_NIGHTLY_PY310_CU121, RAY_NIGHTLY_PY310_CU123, RAY_NIGHTLY_PY311, RAY_NIGHTLY_PY311_CU117, RAY_NIGHTLY_PY311_CU118, RAY_NIGHTLY_PY311_CU121, RAY_NIGHTLY_PY311_CU123, RAY_NIGHTLY_PY312, RAY_NIGHTLY_PY312_CU117, RAY_NIGHTLY_PY312_CU118, RAY_NIGHTLY_PY312_CU121, RAY_NIGHTLY_PY312_CU123, RAY_NIGHTLY_PY37, RAY_NIGHTLY_PY37_CU117, RAY_NIGHTLY_PY37_CU118, RAY_NIGHTLY_PY37_CU121, RAY_NIGHTLY_PY37_CU123, RAY_NIGHTLY_PY38, RAY_NIGHTLY_PY38_CU117, RAY_NIGHTLY_PY38_CU118, RAY_NIGHTLY_PY38_CU121, RAY_NIGHTLY_PY38_CU123, RAY_NIGHTLY_PY39, RAY_NIGHTLY_PY39_CU117, RAY_NIGHTLY_PY39_CU118, RAY_NIGHTLY_PY39_CU121, RAY_NIGHTLY_PY39_CU123] # noqa: E501
1505
1547
 
1506
1548
  """
1507
1549
  Attributes:
@@ -6,6 +6,8 @@ from anyscale._private.sdk.base_sdk import Timer
6
6
  from anyscale.cli_logger import BlockLogger
7
7
  from anyscale.service._private.service_sdk import PrivateServiceSDK
8
8
  from anyscale.service.commands import (
9
+ _ARCHIVE_ARG_DOCSTRINGS,
10
+ _ARCHIVE_EXAMPLE,
9
11
  _controller_logs,
10
12
  _CONTROLLER_LOGS_ARG_DOCSTRINGS,
11
13
  _CONTROLLER_LOGS_EXAMPLE,
@@ -19,6 +21,7 @@ from anyscale.service.commands import (
19
21
  _TERMINATE_EXAMPLE,
20
22
  _WAIT_ARG_DOCSTRINGS,
21
23
  _WAIT_EXAMPLE,
24
+ archive,
22
25
  deploy,
23
26
  rollback,
24
27
  status,
@@ -111,6 +114,24 @@ class ServiceSDK:
111
114
  """
112
115
  return self._private_sdk.terminate(name=name, cloud=cloud, project=project)
113
116
 
117
+ @sdk_docs(
118
+ doc_py_example=_ARCHIVE_EXAMPLE, arg_docstrings=_ARCHIVE_ARG_DOCSTRINGS,
119
+ )
120
+ def archive( # noqa: F811
121
+ self,
122
+ name: Optional[str] = None,
123
+ *,
124
+ cloud: Optional[str] = None,
125
+ project: Optional[str] = None,
126
+ ) -> str:
127
+ """Archive a service.
128
+
129
+ This command is asynchronous, so it always returns immediately.
130
+
131
+ Returns the ID of the archived service.
132
+ """
133
+ return self._private_sdk.archive(name=name, cloud=cloud, project=project)
134
+
114
135
  @sdk_docs(
115
136
  doc_py_example=_STATUS_EXAMPLE, arg_docstrings=_STATUS_ARG_DOCSTRINGS,
116
137
  )
@@ -493,6 +493,19 @@ class PrivateServiceSDK(WorkloadSDK):
493
493
 
494
494
  return model.id
495
495
 
496
+ def archive(
497
+ self,
498
+ name: Optional[str] = None,
499
+ *,
500
+ cloud: Optional[str] = None,
501
+ project: Optional[str] = None,
502
+ ) -> str:
503
+ model = self._resolve_to_service_model(name=name, cloud=cloud, project=project)
504
+
505
+ self.client.archive_service(model.id)
506
+
507
+ return model.id
508
+
496
509
  def _get_user_facing_service_version_id(
497
510
  self, model: ProductionServiceV2VersionModel
498
511
  ) -> str:
@@ -143,6 +143,41 @@ def terminate(
143
143
  return _sdk.terminate(name=name, cloud=cloud, project=project)
144
144
 
145
145
 
146
+ _ARCHIVE_EXAMPLE = """
147
+ import anyscale
148
+
149
+ anyscale.service.archive(name="my-service")
150
+ """
151
+
152
+ _ARCHIVE_ARG_DOCSTRINGS = {
153
+ "name": "Name of the service. When running in a workspace, this defaults to the workspace name.",
154
+ "cloud": "The Anyscale Cloud to run this workload on. If not provided, the organization default will be used (or, if running in a workspace, the cloud of the workspace).",
155
+ "project": "Named project to use for the service. If not provided, the default project for the cloud will be used (or, if running in a workspace, the project of the workspace).",
156
+ }
157
+
158
+
159
+ @sdk_command(
160
+ _SERVICE_SDK_SINGLETON_KEY,
161
+ PrivateServiceSDK,
162
+ doc_py_example=_ARCHIVE_EXAMPLE,
163
+ arg_docstrings=_ARCHIVE_ARG_DOCSTRINGS,
164
+ )
165
+ def archive(
166
+ name: Optional[str],
167
+ *,
168
+ cloud: Optional[str] = None,
169
+ project: Optional[str] = None,
170
+ _sdk: PrivateServiceSDK,
171
+ ) -> str:
172
+ """Archive a service.
173
+
174
+ This command is asynchronous, so it always returns immediately.
175
+
176
+ Returns the ID of the archived service.
177
+ """
178
+ return _sdk.archive(name=name, cloud=cloud, project=project)
179
+
180
+
146
181
  _STATUS_EXAMPLE = """
147
182
  import anyscale
148
183
  from anyscale.service.models import ServiceStatus
@@ -0,0 +1,88 @@
1
+ from typing import List, Optional
2
+
3
+ from anyscale._private.anyscale_client import AnyscaleClientInterface
4
+ from anyscale._private.sdk import sdk_docs
5
+ from anyscale._private.sdk.base_sdk import Timer
6
+ from anyscale.cli_logger import BlockLogger
7
+ from anyscale.service_account._private.service_account_sdk import (
8
+ PrivateServiceAccountSDK,
9
+ )
10
+ from anyscale.service_account.commands import (
11
+ _CREATE_API_KEY_DOCSTRINGS,
12
+ _CREATE_API_KEY_EXAMPLE,
13
+ _CREATE_DOCSTRINGS,
14
+ _CREATE_EXAMPLE,
15
+ _DELETE_DOCSTRINGS,
16
+ _DELETE_EXAMPLE,
17
+ _LIST_DOCSTRINGS,
18
+ _LIST_EXAMPLE,
19
+ _ROTATE_API_KEYS_DOCSTRINGS,
20
+ _ROTATE_API_KEYS_EXAMPLE,
21
+ create,
22
+ create_api_key,
23
+ delete,
24
+ list,
25
+ rotate_api_keys,
26
+ )
27
+ from anyscale.service_account.models import ServiceAccount
28
+
29
+
30
+ class ServiceAccountSDK:
31
+ def __init__(
32
+ self,
33
+ *,
34
+ client: Optional[AnyscaleClientInterface] = None,
35
+ logger: Optional[BlockLogger] = None,
36
+ timer: Optional[Timer] = None,
37
+ ):
38
+ self._private_sdk = PrivateServiceAccountSDK(
39
+ client=client, logger=logger, timer=timer
40
+ )
41
+
42
+ @sdk_docs(
43
+ doc_py_example=_CREATE_EXAMPLE, arg_docstrings=_CREATE_DOCSTRINGS,
44
+ )
45
+ def create(self, name: str) -> str: # noqa: F811
46
+ """Create a service account and return the API key.
47
+ """
48
+ return self._private_sdk.create(name)
49
+
50
+ @sdk_docs(
51
+ doc_py_example=_CREATE_API_KEY_EXAMPLE,
52
+ arg_docstrings=_CREATE_API_KEY_DOCSTRINGS,
53
+ )
54
+ def create_api_key( # noqa: F811
55
+ self, email: Optional[str] = None, name: Optional[str] = None
56
+ ) -> str:
57
+ """Create an API key for the service account and return the API key.
58
+ """
59
+ return self._private_sdk.create_api_key(email, name)
60
+
61
+ @sdk_docs(
62
+ doc_py_example=_LIST_EXAMPLE, arg_docstrings=_LIST_DOCSTRINGS,
63
+ )
64
+ def list(self, max_items: int = 20,) -> List[ServiceAccount]: # noqa: F811
65
+ """List service accounts.
66
+ """
67
+ return self._private_sdk.list(max_items=max_items,)
68
+
69
+ @sdk_docs(
70
+ doc_py_example=_DELETE_EXAMPLE, arg_docstrings=_DELETE_DOCSTRINGS,
71
+ )
72
+ def delete( # noqa: F811
73
+ self, email: Optional[str] = None, name: Optional[str] = None
74
+ ):
75
+ """Delete a service account.
76
+ """
77
+ return self._private_sdk.delete(email, name)
78
+
79
+ @sdk_docs(
80
+ doc_py_example=_ROTATE_API_KEYS_EXAMPLE,
81
+ arg_docstrings=_ROTATE_API_KEYS_DOCSTRINGS,
82
+ )
83
+ def rotate_api_key(
84
+ self, email: Optional[str] = None, name: Optional[str] = None
85
+ ) -> str: # noqa: F811
86
+ """Rotate all api keys of a service account and return the new API key.
87
+ """
88
+ return self._private_sdk.rotate_api_keys(email, name)
@@ -0,0 +1,101 @@
1
+ from typing import List, Optional
2
+
3
+ from anyscale._private.sdk.base_sdk import BaseSDK
4
+ from anyscale.client.openapi_client.models.organization_collaborator import (
5
+ OrganizationCollaborator,
6
+ )
7
+ from anyscale.service_account.models import ServiceAccount
8
+
9
+
10
+ ONE_HUNDRED_YEARS_IN_SECONDS = 3153600000
11
+
12
+
13
+ class PrivateServiceAccountSDK(BaseSDK):
14
+ def _get_service_account_identifier(
15
+ self, email: Optional[str], name: Optional[str]
16
+ ) -> str:
17
+ # Logic can be simplified but kept verbose for clarity and typing
18
+ if not email and not name:
19
+ raise ValueError("Either email or name must be provided.")
20
+ if email and name:
21
+ raise ValueError("Only one of email or name can be provided.")
22
+ if email:
23
+ return email
24
+ elif name:
25
+ return name
26
+
27
+ raise ValueError("Internal server error. Please contact support.")
28
+
29
+ def _validate_exactly_one_service_account_per_email_or_name(
30
+ self, service_accounts: List[OrganizationCollaborator], identifier: str,
31
+ ):
32
+ if len(service_accounts) == 0:
33
+ raise ValueError(f"No service account {identifier} found.")
34
+
35
+ if len(service_accounts) > 1:
36
+ raise ValueError(
37
+ f"Internal server error when fetching service account {identifier}. Please contact support."
38
+ )
39
+
40
+ def _get_service_account(
41
+ self, email: Optional[str], name: Optional[str]
42
+ ) -> OrganizationCollaborator:
43
+ identifier = self._get_service_account_identifier(email, name)
44
+ service_accounts = self.client.get_organization_collaborators(
45
+ email=email, name=name, is_service_account=True
46
+ )
47
+ self._validate_exactly_one_service_account_per_email_or_name(
48
+ service_accounts, identifier
49
+ )
50
+ service_account = service_accounts[0]
51
+
52
+ return service_account
53
+
54
+ def create(self, name: str) -> str:
55
+ service_account = self.client.create_service_account(name=name)
56
+
57
+ api_key = self.client.create_api_key(
58
+ ONE_HUNDRED_YEARS_IN_SECONDS, service_account.user_id
59
+ )
60
+
61
+ return api_key.server_session_id
62
+
63
+ def create_api_key(self, email: Optional[str], name: Optional[str]) -> str:
64
+ service_account = self._get_service_account(email, name)
65
+
66
+ api_key = self.client.create_api_key(
67
+ ONE_HUNDRED_YEARS_IN_SECONDS, service_account.user_id
68
+ )
69
+
70
+ return api_key.server_session_id
71
+
72
+ def list(self, max_items: int = 20,) -> List[ServiceAccount]:
73
+ service_accounts = self.client.get_organization_collaborators(
74
+ is_service_account=True
75
+ )
76
+
77
+ return [
78
+ ServiceAccount(
79
+ name=service_account.name,
80
+ created_at=service_account.created_at,
81
+ permission_level=service_account.permission_level,
82
+ email=service_account.email,
83
+ )
84
+ for service_account in service_accounts[:max_items]
85
+ ]
86
+
87
+ def delete(self, email: Optional[str], name: Optional[str]) -> None:
88
+ service_account = self._get_service_account(email, name)
89
+
90
+ self.client.delete_organization_collaborator(service_account.id)
91
+
92
+ def rotate_api_keys(self, email: Optional[str], name: Optional[str]) -> str:
93
+ service_account = self._get_service_account(email, name)
94
+
95
+ self.client.rotate_api_key(service_account.user_id)
96
+
97
+ api_key = self.client.create_api_key(
98
+ ONE_HUNDRED_YEARS_IN_SECONDS, service_account.user_id
99
+ )
100
+
101
+ return api_key.server_session_id
@@ -0,0 +1,147 @@
1
+ from typing import List, Optional
2
+
3
+ from anyscale._private.sdk import sdk_command
4
+ from anyscale.service_account._private.service_account_sdk import (
5
+ PrivateServiceAccountSDK,
6
+ )
7
+ from anyscale.service_account.models import ServiceAccount
8
+
9
+
10
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY = "service_account_sdk"
11
+
12
+ _CREATE_EXAMPLE = """
13
+ import anyscale
14
+
15
+ api_key = anyscale.service_account.create(
16
+ name="my-service-account",
17
+ )
18
+ """
19
+
20
+ _CREATE_DOCSTRINGS = {"name": "Name for the service account."}
21
+
22
+ _CREATE_API_KEY_EXAMPLE = """
23
+ import anyscale
24
+
25
+ api_key = anyscale.service_account.create_api_key(
26
+ name="my-service-account",
27
+ )
28
+ """
29
+
30
+ _CREATE_API_KEY_DOCSTRINGS = {
31
+ "email": "Email of the service account to create the new key for.",
32
+ "name": "Name of the service account to create the new key for.",
33
+ }
34
+
35
+ _LIST_EXAMPLE = """
36
+ import anyscale
37
+
38
+ anyscale.service_account.list(
39
+ max_items=20,
40
+ )
41
+ """
42
+
43
+ _LIST_DOCSTRINGS = {
44
+ "max_items": "Maximum number of items to return.",
45
+ }
46
+
47
+ _DELETE_EXAMPLE = """
48
+ import anyscale
49
+
50
+ anyscale.service_account.delete(
51
+ name="my-service-account",
52
+ )
53
+ """
54
+
55
+ _DELETE_DOCSTRINGS = {
56
+ "email": "Email of the service account to delete.",
57
+ "name": "Name of the service account to delete.",
58
+ }
59
+
60
+ _ROTATE_API_KEYS_EXAMPLE = """
61
+ import anyscale
62
+
63
+ anyscale.service_account.rotate_api_keys(
64
+ name="my-service-account",
65
+ )
66
+ """
67
+
68
+ _ROTATE_API_KEYS_DOCSTRINGS = {
69
+ "email": "Rotate API keys for the service account with this email.",
70
+ "name": "Rotate API keys for the service account with this name.",
71
+ }
72
+
73
+
74
+ @sdk_command(
75
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY,
76
+ PrivateServiceAccountSDK,
77
+ doc_py_example=_CREATE_EXAMPLE,
78
+ arg_docstrings=_CREATE_DOCSTRINGS,
79
+ )
80
+ def create(name: str, *, _sdk: PrivateServiceAccountSDK) -> str:
81
+ """Create a service account and return the API key.
82
+ """
83
+ return _sdk.create(name)
84
+
85
+
86
+ @sdk_command(
87
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY,
88
+ PrivateServiceAccountSDK,
89
+ doc_py_example=_CREATE_API_KEY_EXAMPLE,
90
+ arg_docstrings=_CREATE_API_KEY_DOCSTRINGS,
91
+ )
92
+ def create_api_key(
93
+ email: Optional[str] = None,
94
+ name: Optional[str] = None,
95
+ *,
96
+ _sdk: PrivateServiceAccountSDK
97
+ ) -> str:
98
+ """Create an API key for the service account and return the API key.
99
+ """
100
+ return _sdk.create_api_key(email, name)
101
+
102
+
103
+ @sdk_command(
104
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY,
105
+ PrivateServiceAccountSDK,
106
+ doc_py_example=_LIST_EXAMPLE,
107
+ arg_docstrings=_LIST_DOCSTRINGS,
108
+ )
109
+ def list( # noqa: A001
110
+ max_items: int = 20, *, _sdk: PrivateServiceAccountSDK
111
+ ) -> List[ServiceAccount]:
112
+ """List service accounts. """
113
+ return _sdk.list(max_items)
114
+
115
+
116
+ @sdk_command(
117
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY,
118
+ PrivateServiceAccountSDK,
119
+ doc_py_example=_DELETE_EXAMPLE,
120
+ arg_docstrings=_DELETE_DOCSTRINGS,
121
+ )
122
+ def delete(
123
+ email: Optional[str] = None,
124
+ name: Optional[str] = None,
125
+ *,
126
+ _sdk: PrivateServiceAccountSDK
127
+ ):
128
+ """Delete a service account.
129
+ """
130
+ return _sdk.delete(email, name)
131
+
132
+
133
+ @sdk_command(
134
+ _SERVICE_ACCOUNT_SDK_SINGLETON_KEY,
135
+ PrivateServiceAccountSDK,
136
+ doc_py_example=_ROTATE_API_KEYS_EXAMPLE,
137
+ arg_docstrings=_ROTATE_API_KEYS_DOCSTRINGS,
138
+ )
139
+ def rotate_api_keys(
140
+ email: Optional[str] = None,
141
+ name: Optional[str] = None,
142
+ *,
143
+ _sdk: PrivateServiceAccountSDK
144
+ ) -> str:
145
+ """Rotate all api keys of a service account and return the new API key.
146
+ """
147
+ return _sdk.rotate_api_keys(email, name)