anyscale 0.24.86__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 (1131) hide show
  1. anyscale/__init__.py +181 -0
  2. anyscale/_private/anyscale_client/README.md +16 -0
  3. anyscale/_private/anyscale_client/__init__.py +8 -0
  4. anyscale/_private/anyscale_client/anyscale_client.py +1847 -0
  5. anyscale/_private/anyscale_client/common.py +593 -0
  6. anyscale/_private/anyscale_client/fake_anyscale_client.py +1080 -0
  7. anyscale/_private/docgen/README.md +15 -0
  8. anyscale/_private/docgen/__main__.py +700 -0
  9. anyscale/_private/docgen/api.md +1106 -0
  10. anyscale/_private/docgen/generator.py +559 -0
  11. anyscale/_private/docgen/generator_legacy.py +104 -0
  12. anyscale/_private/docgen/models.md +2261 -0
  13. anyscale/_private/models/__init__.py +2 -0
  14. anyscale/_private/models/image_uri.py +116 -0
  15. anyscale/_private/models/model_base.py +251 -0
  16. anyscale/_private/sdk/__init__.py +102 -0
  17. anyscale/_private/sdk/base_sdk.py +35 -0
  18. anyscale/_private/sdk/timer.py +46 -0
  19. anyscale/_private/utils/__init__.py +0 -0
  20. anyscale/_private/utils/progress_util.py +85 -0
  21. anyscale/_private/workload/__init__.py +2 -0
  22. anyscale/_private/workload/workload_config.py +195 -0
  23. anyscale/_private/workload/workload_sdk.py +324 -0
  24. anyscale/aggregated_instance_usage/__init__.py +36 -0
  25. anyscale/aggregated_instance_usage/_private/aggregated_instance_usage_sdk.py +30 -0
  26. anyscale/aggregated_instance_usage/commands.py +42 -0
  27. anyscale/aggregated_instance_usage/models.py +85 -0
  28. anyscale/anyscale-cloud-setup-gcp-oa.yaml +88 -0
  29. anyscale/anyscale-cloud-setup-gcp.yaml +113 -0
  30. anyscale/anyscale-cloud-setup-oa.yaml +121 -0
  31. anyscale/anyscale-cloud-setup.yaml +327 -0
  32. anyscale/anyscale_pydantic/HISTORY.md +1254 -0
  33. anyscale/anyscale_pydantic/LICENSE +21 -0
  34. anyscale/anyscale_pydantic/PKG-INFO +1351 -0
  35. anyscale/anyscale_pydantic/README.md +7 -0
  36. anyscale/anyscale_pydantic/__init__.py +131 -0
  37. anyscale/anyscale_pydantic/_hypothesis_plugin.py +391 -0
  38. anyscale/anyscale_pydantic/annotated_types.py +72 -0
  39. anyscale/anyscale_pydantic/class_validators.py +361 -0
  40. anyscale/anyscale_pydantic/color.py +494 -0
  41. anyscale/anyscale_pydantic/config.py +191 -0
  42. anyscale/anyscale_pydantic/dataclasses.py +478 -0
  43. anyscale/anyscale_pydantic/datetime_parse.py +248 -0
  44. anyscale/anyscale_pydantic/decorator.py +264 -0
  45. anyscale/anyscale_pydantic/env_settings.py +350 -0
  46. anyscale/anyscale_pydantic/error_wrappers.py +162 -0
  47. anyscale/anyscale_pydantic/errors.py +646 -0
  48. anyscale/anyscale_pydantic/fields.py +1256 -0
  49. anyscale/anyscale_pydantic/generics.py +400 -0
  50. anyscale/anyscale_pydantic/json.py +112 -0
  51. anyscale/anyscale_pydantic/main.py +1109 -0
  52. anyscale/anyscale_pydantic/mypy.py +943 -0
  53. anyscale/anyscale_pydantic/networks.py +739 -0
  54. anyscale/anyscale_pydantic/parse.py +66 -0
  55. anyscale/anyscale_pydantic/py.typed +0 -0
  56. anyscale/anyscale_pydantic/schema.py +1164 -0
  57. anyscale/anyscale_pydantic/tools.py +92 -0
  58. anyscale/anyscale_pydantic/types.py +1206 -0
  59. anyscale/anyscale_pydantic/typing.py +603 -0
  60. anyscale/anyscale_pydantic/utils.py +803 -0
  61. anyscale/anyscale_pydantic/validators.py +765 -0
  62. anyscale/anyscale_pydantic/version.py +38 -0
  63. anyscale/anyscale_schema.json +9 -0
  64. anyscale/api.py +215 -0
  65. anyscale/api_utils/README.md +2 -0
  66. anyscale/api_utils/__init__.py +0 -0
  67. anyscale/api_utils/common_utils.py +81 -0
  68. anyscale/api_utils/exceptions/__init__.py +0 -0
  69. anyscale/api_utils/exceptions/job_errors.py +2 -0
  70. anyscale/api_utils/job_logs_util.py +116 -0
  71. anyscale/api_utils/job_util.py +22 -0
  72. anyscale/api_utils/logs_util.py +61 -0
  73. anyscale/authenticate.py +298 -0
  74. anyscale/aws_iam_policies.py +465 -0
  75. anyscale/background/__init__.py +0 -0
  76. anyscale/background/job_runner.py +64 -0
  77. anyscale/cli_logger.py +378 -0
  78. anyscale/client/.gitignore +66 -0
  79. anyscale/client/.openapi-generator/VERSION +1 -0
  80. anyscale/client/.openapi-generator-ignore +23 -0
  81. anyscale/client/README.md +1070 -0
  82. anyscale/client/git_push.sh +58 -0
  83. anyscale/client/openapi_client/__init__.py +667 -0
  84. anyscale/client/openapi_client/api/__init__.py +6 -0
  85. anyscale/client/openapi_client/api/default_api.py +40922 -0
  86. anyscale/client/openapi_client/api_client.py +647 -0
  87. anyscale/client/openapi_client/configuration.py +373 -0
  88. anyscale/client/openapi_client/exceptions.py +120 -0
  89. anyscale/client/openapi_client/models/__init__.py +652 -0
  90. anyscale/client/openapi_client/models/access_config.py +122 -0
  91. anyscale/client/openapi_client/models/aggregated_instance_usage_with_cost_model.py +733 -0
  92. anyscale/client/openapi_client/models/aggregatedinstanceusagewithcostmodel_list_response.py +147 -0
  93. anyscale/client/openapi_client/models/aica_endpoint.py +527 -0
  94. anyscale/client/openapi_client/models/aica_endpoint_event.py +433 -0
  95. anyscale/client/openapi_client/models/aica_endpoint_event_level.py +103 -0
  96. anyscale/client/openapi_client/models/aica_endpoint_event_type.py +120 -0
  97. anyscale/client/openapi_client/models/aica_endpoint_scope.py +102 -0
  98. anyscale/client/openapi_client/models/aica_model.py +398 -0
  99. anyscale/client/openapi_client/models/aica_model_accelerator_map.py +123 -0
  100. anyscale/client/openapi_client/models/aica_model_configuration.py +209 -0
  101. anyscale/client/openapi_client/models/aica_observability_urls.py +178 -0
  102. anyscale/client/openapi_client/models/aicaendpoint_list_response.py +147 -0
  103. anyscale/client/openapi_client/models/aicaendpoint_response.py +121 -0
  104. anyscale/client/openapi_client/models/aicaendpointevent_list_response.py +147 -0
  105. anyscale/client/openapi_client/models/aicamodel_list_response.py +147 -0
  106. anyscale/client/openapi_client/models/aicamodel_response.py +121 -0
  107. anyscale/client/openapi_client/models/aioa_cloud_waitlist_record.py +254 -0
  108. anyscale/client/openapi_client/models/aioacloudwaitlistrecord_response.py +121 -0
  109. anyscale/client/openapi_client/models/alert_type.py +103 -0
  110. anyscale/client/openapi_client/models/anyscale_aws_account.py +121 -0
  111. anyscale/client/openapi_client/models/anyscale_service_account.py +256 -0
  112. anyscale/client/openapi_client/models/anyscale_version_response.py +121 -0
  113. anyscale/client/openapi_client/models/anyscaleawsaccount_response.py +121 -0
  114. anyscale/client/openapi_client/models/anyscaled_credential_response.py +121 -0
  115. anyscale/client/openapi_client/models/anyscaledcredentialresponse_response.py +121 -0
  116. anyscale/client/openapi_client/models/anyscaleserviceaccount_response.py +121 -0
  117. anyscale/client/openapi_client/models/anyscaleversionresponse_response.py +121 -0
  118. anyscale/client/openapi_client/models/api_key_parameters.py +147 -0
  119. anyscale/client/openapi_client/models/app_config.py +436 -0
  120. anyscale/client/openapi_client/models/app_config_config_schema.py +235 -0
  121. anyscale/client/openapi_client/models/appconfig_list_response.py +147 -0
  122. anyscale/client/openapi_client/models/appconfig_response.py +121 -0
  123. anyscale/client/openapi_client/models/application_type.py +99 -0
  124. anyscale/client/openapi_client/models/applied_snapshot.py +175 -0
  125. anyscale/client/openapi_client/models/apply_production_service_v2_model.py +490 -0
  126. anyscale/client/openapi_client/models/archive_status.py +101 -0
  127. anyscale/client/openapi_client/models/archived_logs_info.py +164 -0
  128. anyscale/client/openapi_client/models/archivedlogsinfo_response.py +121 -0
  129. anyscale/client/openapi_client/models/attach_machine_pool_to_cloud_request.py +152 -0
  130. anyscale/client/openapi_client/models/attachmachinepooltocloudresponse_response.py +121 -0
  131. anyscale/client/openapi_client/models/aviary_model_config_v2.py +358 -0
  132. anyscale/client/openapi_client/models/aws_credentials.py +181 -0
  133. anyscale/client/openapi_client/models/aws_memory_db_cluster_config.py +148 -0
  134. anyscale/client/openapi_client/models/aws_region_and_zones.py +123 -0
  135. anyscale/client/openapi_client/models/aws_region_info.py +152 -0
  136. anyscale/client/openapi_client/models/awsregionandzones_response.py +121 -0
  137. anyscale/client/openapi_client/models/bank_account_information.py +239 -0
  138. anyscale/client/openapi_client/models/base_job_status.py +105 -0
  139. anyscale/client/openapi_client/models/baseimagesenum.py +2130 -0
  140. anyscale/client/openapi_client/models/batch_response_batched_result_organization_invitation_base.py +121 -0
  141. anyscale/client/openapi_client/models/batched_result_organization_invitation_base.py +173 -0
  142. anyscale/client/openapi_client/models/billing_information.py +181 -0
  143. anyscale/client/openapi_client/models/billing_version_code.py +100 -0
  144. anyscale/client/openapi_client/models/body_aws_marketplace_registration_api_v2_organization_billing_aws_marketplace_registration_post.py +121 -0
  145. anyscale/client/openapi_client/models/buffer_registration.py +285 -0
  146. anyscale/client/openapi_client/models/build.py +607 -0
  147. anyscale/client/openapi_client/models/build_log_response.py +123 -0
  148. anyscale/client/openapi_client/models/build_registration.py +285 -0
  149. anyscale/client/openapi_client/models/build_response.py +121 -0
  150. anyscale/client/openapi_client/models/build_status.py +104 -0
  151. anyscale/client/openapi_client/models/buildlogresponse_response.py +121 -0
  152. anyscale/client/openapi_client/models/card.py +181 -0
  153. anyscale/client/openapi_client/models/card_id.py +108 -0
  154. anyscale/client/openapi_client/models/card_list_response.py +147 -0
  155. anyscale/client/openapi_client/models/change_password_params.py +148 -0
  156. anyscale/client/openapi_client/models/cleanup_leaked_grafana_dashboard_response.py +208 -0
  157. anyscale/client/openapi_client/models/cleanupleakedgrafanadashboardresponse_response.py +121 -0
  158. anyscale/client/openapi_client/models/clone_experimental_workspace.py +151 -0
  159. anyscale/client/openapi_client/models/cloud.py +802 -0
  160. anyscale/client/openapi_client/models/cloud_analytics_event.py +351 -0
  161. anyscale/client/openapi_client/models/cloud_analytics_event_cloud_provider_error.py +152 -0
  162. anyscale/client/openapi_client/models/cloud_analytics_event_cloud_resource.py +117 -0
  163. anyscale/client/openapi_client/models/cloud_analytics_event_command_name.py +103 -0
  164. anyscale/client/openapi_client/models/cloud_analytics_event_error.py +150 -0
  165. anyscale/client/openapi_client/models/cloud_analytics_event_name.py +109 -0
  166. anyscale/client/openapi_client/models/cloud_collaborator.py +175 -0
  167. anyscale/client/openapi_client/models/cloud_collaborator_value.py +177 -0
  168. anyscale/client/openapi_client/models/cloud_collaborators_query.py +122 -0
  169. anyscale/client/openapi_client/models/cloud_config.py +206 -0
  170. anyscale/client/openapi_client/models/cloud_data_bucket_access_mode.py +100 -0
  171. anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py +102 -0
  172. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_info.py +268 -0
  173. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_request.py +152 -0
  174. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_scheme.py +100 -0
  175. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_request.py +209 -0
  176. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_response.py +296 -0
  177. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_scheme.py +100 -0
  178. anyscale/client/openapi_client/models/cloud_data_bucket_request_scope.py +100 -0
  179. anyscale/client/openapi_client/models/cloud_hosting_type.py +100 -0
  180. anyscale/client/openapi_client/models/cloud_list_response.py +147 -0
  181. anyscale/client/openapi_client/models/cloud_name_options.py +121 -0
  182. anyscale/client/openapi_client/models/cloud_overview_dashboard.py +175 -0
  183. anyscale/client/openapi_client/models/cloud_project_collaborator.py +175 -0
  184. anyscale/client/openapi_client/models/cloud_project_collaborator_value.py +121 -0
  185. anyscale/client/openapi_client/models/cloud_provider.py +102 -0
  186. anyscale/client/openapi_client/models/cloud_providers.py +103 -0
  187. anyscale/client/openapi_client/models/cloud_region_and_zones.py +123 -0
  188. anyscale/client/openapi_client/models/cloud_region_info.py +152 -0
  189. anyscale/client/openapi_client/models/cloud_resource.py +740 -0
  190. anyscale/client/openapi_client/models/cloud_resource_gcp.py +691 -0
  191. anyscale/client/openapi_client/models/cloud_response.py +121 -0
  192. anyscale/client/openapi_client/models/cloud_state.py +104 -0
  193. anyscale/client/openapi_client/models/cloud_status.py +100 -0
  194. anyscale/client/openapi_client/models/cloud_type.py +100 -0
  195. anyscale/client/openapi_client/models/cloud_types.py +100 -0
  196. anyscale/client/openapi_client/models/cloud_version.py +100 -0
  197. anyscale/client/openapi_client/models/cloud_waitlist_status.py +102 -0
  198. anyscale/client/openapi_client/models/cloud_with_cloud_resource.py +830 -0
  199. anyscale/client/openapi_client/models/cloud_with_cloud_resource_gcp.py +830 -0
  200. anyscale/client/openapi_client/models/cloudcollaborator_list_response.py +147 -0
  201. anyscale/client/openapi_client/models/clouddatabucketpresigneduploadinfo_response.py +121 -0
  202. anyscale/client/openapi_client/models/clouddatabucketpresignedurlresponse_response.py +121 -0
  203. anyscale/client/openapi_client/models/cloudoverviewdashboard_response.py +121 -0
  204. anyscale/client/openapi_client/models/cloudregionandzones_response.py +121 -0
  205. anyscale/client/openapi_client/models/cloudresource_response.py +121 -0
  206. anyscale/client/openapi_client/models/cloudresourcegcp_response.py +121 -0
  207. anyscale/client/openapi_client/models/cloudwithcloudresource_response.py +121 -0
  208. anyscale/client/openapi_client/models/cloudwithcloudresourcegcp_response.py +121 -0
  209. anyscale/client/openapi_client/models/cluster_auth_response.py +148 -0
  210. anyscale/client/openapi_client/models/cluster_config.py +178 -0
  211. anyscale/client/openapi_client/models/cluster_config_with_session_idle_timeout.py +204 -0
  212. anyscale/client/openapi_client/models/cluster_environments_query.py +290 -0
  213. anyscale/client/openapi_client/models/cluster_event.py +174 -0
  214. anyscale/client/openapi_client/models/cluster_events_output.py +175 -0
  215. anyscale/client/openapi_client/models/cluster_features.py +152 -0
  216. anyscale/client/openapi_client/models/cluster_management_stack_versions.py +100 -0
  217. anyscale/client/openapi_client/models/cluster_startup.py +208 -0
  218. anyscale/client/openapi_client/models/cluster_status.py +104 -0
  219. anyscale/client/openapi_client/models/cluster_status_details.py +100 -0
  220. anyscale/client/openapi_client/models/clusterauthresponse_response.py +121 -0
  221. anyscale/client/openapi_client/models/clusterconfig_response.py +121 -0
  222. anyscale/client/openapi_client/models/clusterconfigwithsessionidletimeout_response.py +121 -0
  223. anyscale/client/openapi_client/models/clustereventsoutput_response.py +121 -0
  224. anyscale/client/openapi_client/models/clusterfeatures_response.py +121 -0
  225. anyscale/client/openapi_client/models/company_size.py +103 -0
  226. anyscale/client/openapi_client/models/compute_node_type.py +292 -0
  227. anyscale/client/openapi_client/models/compute_stack.py +100 -0
  228. anyscale/client/openapi_client/models/compute_template.py +415 -0
  229. anyscale/client/openapi_client/models/compute_template_config.py +461 -0
  230. anyscale/client/openapi_client/models/compute_template_query.py +316 -0
  231. anyscale/client/openapi_client/models/computetemplate_response.py +121 -0
  232. anyscale/client/openapi_client/models/computetemplateconfig_response.py +121 -0
  233. anyscale/client/openapi_client/models/create_aica_endpoint.py +210 -0
  234. anyscale/client/openapi_client/models/create_aioa_cloud_waitlist.py +173 -0
  235. anyscale/client/openapi_client/models/create_analytics_event.py +122 -0
  236. anyscale/client/openapi_client/models/create_app_config.py +235 -0
  237. anyscale/client/openapi_client/models/create_app_config_configuration_schema.py +235 -0
  238. anyscale/client/openapi_client/models/create_billing_version.py +181 -0
  239. anyscale/client/openapi_client/models/create_bug_report_response.py +152 -0
  240. anyscale/client/openapi_client/models/create_build.py +263 -0
  241. anyscale/client/openapi_client/models/create_byod_app_config.py +180 -0
  242. anyscale/client/openapi_client/models/create_byod_app_config_configuration_schema.py +206 -0
  243. anyscale/client/openapi_client/models/create_byod_build.py +152 -0
  244. anyscale/client/openapi_client/models/create_cloud_collaborator.py +148 -0
  245. anyscale/client/openapi_client/models/create_cloud_resource.py +682 -0
  246. anyscale/client/openapi_client/models/create_cloud_resource_gcp.py +633 -0
  247. anyscale/client/openapi_client/models/create_cloud_with_cloud_resource.py +546 -0
  248. anyscale/client/openapi_client/models/create_cluster_compute_config.py +463 -0
  249. anyscale/client/openapi_client/models/create_compute_template.py +229 -0
  250. anyscale/client/openapi_client/models/create_compute_template_config.py +464 -0
  251. anyscale/client/openapi_client/models/create_dataset.py +200 -0
  252. anyscale/client/openapi_client/models/create_experimental_workspace.py +435 -0
  253. anyscale/client/openapi_client/models/create_experimental_workspace_from_job.py +123 -0
  254. anyscale/client/openapi_client/models/create_fine_tuning_hyperparameters.py +156 -0
  255. anyscale/client/openapi_client/models/create_fine_tuning_job_product_request.py +353 -0
  256. anyscale/client/openapi_client/models/create_instance_usage_budget.py +253 -0
  257. anyscale/client/openapi_client/models/create_internal_production_job.py +262 -0
  258. anyscale/client/openapi_client/models/create_job_queue_config.py +206 -0
  259. anyscale/client/openapi_client/models/create_job_queue_requests.py +323 -0
  260. anyscale/client/openapi_client/models/create_machine_pool_request.py +151 -0
  261. anyscale/client/openapi_client/models/create_machine_pool_response.py +123 -0
  262. anyscale/client/openapi_client/models/create_machine_request.py +151 -0
  263. anyscale/client/openapi_client/models/create_machine_response.py +123 -0
  264. anyscale/client/openapi_client/models/create_metronome_webhook_notification.py +175 -0
  265. anyscale/client/openapi_client/models/create_notification_channel_record.py +146 -0
  266. anyscale/client/openapi_client/models/create_organization_configuration.py +199 -0
  267. anyscale/client/openapi_client/models/create_organization_invitation.py +121 -0
  268. anyscale/client/openapi_client/models/create_otp_return_api_model.py +148 -0
  269. anyscale/client/openapi_client/models/create_production_job_config.py +347 -0
  270. anyscale/client/openapi_client/models/create_resource_quota.py +293 -0
  271. anyscale/client/openapi_client/models/create_schedule.py +263 -0
  272. anyscale/client/openapi_client/models/create_session_from_snapshot_options.py +565 -0
  273. anyscale/client/openapi_client/models/create_session_in_db.py +434 -0
  274. anyscale/client/openapi_client/models/create_session_response.py +174 -0
  275. anyscale/client/openapi_client/models/create_user.py +439 -0
  276. anyscale/client/openapi_client/models/create_user_project_collaborator.py +148 -0
  277. anyscale/client/openapi_client/models/create_user_project_collaborator_value.py +121 -0
  278. anyscale/client/openapi_client/models/create_workspace_from_template.py +263 -0
  279. anyscale/client/openapi_client/models/createbugreportresponse_response.py +121 -0
  280. anyscale/client/openapi_client/models/createcomputetemplateconfig_response.py +121 -0
  281. anyscale/client/openapi_client/models/createmachinepoolresponse_response.py +121 -0
  282. anyscale/client/openapi_client/models/createmachineresponse_response.py +121 -0
  283. anyscale/client/openapi_client/models/createotpreturnapimodel_response.py +121 -0
  284. anyscale/client/openapi_client/models/createsessionresponse_response.py +121 -0
  285. anyscale/client/openapi_client/models/credit_card_information.py +268 -0
  286. anyscale/client/openapi_client/models/customer_alert_status.py +101 -0
  287. anyscale/client/openapi_client/models/customer_billing_type.py +101 -0
  288. anyscale/client/openapi_client/models/dataplane_services.py +102 -0
  289. anyscale/client/openapi_client/models/dataset.py +416 -0
  290. anyscale/client/openapi_client/models/dataset_list_response.py +150 -0
  291. anyscale/client/openapi_client/models/dataset_response.py +121 -0
  292. anyscale/client/openapi_client/models/dataset_upload.py +148 -0
  293. anyscale/client/openapi_client/models/datasetupload_response.py +121 -0
  294. anyscale/client/openapi_client/models/decorated_application_template.py +493 -0
  295. anyscale/client/openapi_client/models/decorated_build.py +664 -0
  296. anyscale/client/openapi_client/models/decorated_compute_template.py +446 -0
  297. anyscale/client/openapi_client/models/decorated_compute_template_config.py +490 -0
  298. anyscale/client/openapi_client/models/decorated_interactive_session.py +793 -0
  299. anyscale/client/openapi_client/models/decorated_job.py +793 -0
  300. anyscale/client/openapi_client/models/decorated_job_queue.py +639 -0
  301. anyscale/client/openapi_client/models/decorated_job_submission.py +575 -0
  302. anyscale/client/openapi_client/models/decorated_list_service_api_model.py +670 -0
  303. anyscale/client/openapi_client/models/decorated_production_job.py +805 -0
  304. anyscale/client/openapi_client/models/decorated_production_job_state_transition.py +319 -0
  305. anyscale/client/openapi_client/models/decorated_production_service_v2_api_model.py +641 -0
  306. anyscale/client/openapi_client/models/decorated_production_service_v2_version_api_model.py +437 -0
  307. anyscale/client/openapi_client/models/decorated_runtime_env.py +488 -0
  308. anyscale/client/openapi_client/models/decorated_schedule.py +552 -0
  309. anyscale/client/openapi_client/models/decorated_serve_deployment.py +711 -0
  310. anyscale/client/openapi_client/models/decorated_service_event_api_model.py +513 -0
  311. anyscale/client/openapi_client/models/decorated_session.py +1789 -0
  312. anyscale/client/openapi_client/models/decorated_support_request.py +283 -0
  313. anyscale/client/openapi_client/models/decorated_unified_job.py +466 -0
  314. anyscale/client/openapi_client/models/decoratedapplicationtemplate_list_response.py +147 -0
  315. anyscale/client/openapi_client/models/decoratedapplicationtemplate_response.py +121 -0
  316. anyscale/client/openapi_client/models/decoratedbuild_list_response.py +147 -0
  317. anyscale/client/openapi_client/models/decoratedbuild_response.py +121 -0
  318. anyscale/client/openapi_client/models/decoratedcomputetemplate_list_response.py +147 -0
  319. anyscale/client/openapi_client/models/decoratedcomputetemplate_response.py +121 -0
  320. anyscale/client/openapi_client/models/decoratedinteractivesession_list_response.py +147 -0
  321. anyscale/client/openapi_client/models/decoratedinteractivesession_response.py +121 -0
  322. anyscale/client/openapi_client/models/decoratedjob_list_response.py +147 -0
  323. anyscale/client/openapi_client/models/decoratedjob_response.py +121 -0
  324. anyscale/client/openapi_client/models/decoratedjobqueue_list_response.py +147 -0
  325. anyscale/client/openapi_client/models/decoratedjobqueue_response.py +121 -0
  326. anyscale/client/openapi_client/models/decoratedjobsubmission_list_response.py +147 -0
  327. anyscale/client/openapi_client/models/decoratedjobsubmission_response.py +121 -0
  328. anyscale/client/openapi_client/models/decoratedlistserviceapimodel_list_response.py +147 -0
  329. anyscale/client/openapi_client/models/decoratedproductionjob_list_response.py +147 -0
  330. anyscale/client/openapi_client/models/decoratedproductionjob_response.py +121 -0
  331. anyscale/client/openapi_client/models/decoratedproductionjobstatetransition_list_response.py +147 -0
  332. anyscale/client/openapi_client/models/decoratedproductionservicev2_apimodel_response.py +121 -0
  333. anyscale/client/openapi_client/models/decoratedproductionservicev2_versionapimodel_list_response.py +147 -0
  334. anyscale/client/openapi_client/models/decoratedruntimeenv_list_response.py +147 -0
  335. anyscale/client/openapi_client/models/decoratedruntimeenv_response.py +121 -0
  336. anyscale/client/openapi_client/models/decoratedschedule_list_response.py +147 -0
  337. anyscale/client/openapi_client/models/decoratedschedule_response.py +121 -0
  338. anyscale/client/openapi_client/models/decoratedservedeployment_list_response.py +147 -0
  339. anyscale/client/openapi_client/models/decoratedservedeployment_response.py +121 -0
  340. anyscale/client/openapi_client/models/decoratedserviceeventapimodel_list_response.py +147 -0
  341. anyscale/client/openapi_client/models/decoratedsession_list_response.py +147 -0
  342. anyscale/client/openapi_client/models/decoratedsession_response.py +121 -0
  343. anyscale/client/openapi_client/models/decoratedsupportrequest_list_response.py +147 -0
  344. anyscale/client/openapi_client/models/decoratedsupportrequest_response.py +121 -0
  345. anyscale/client/openapi_client/models/decoratedunifiedjob_list_response.py +147 -0
  346. anyscale/client/openapi_client/models/decoratedunifiedjob_response.py +121 -0
  347. anyscale/client/openapi_client/models/delete_machine_pool_request.py +123 -0
  348. anyscale/client/openapi_client/models/delete_machine_request.py +206 -0
  349. anyscale/client/openapi_client/models/deleted_platform_fine_tuned_model.py +148 -0
  350. anyscale/client/openapi_client/models/deletedplatformfinetunedmodel_response.py +121 -0
  351. anyscale/client/openapi_client/models/deletemachinepoolresponse_response.py +121 -0
  352. anyscale/client/openapi_client/models/detach_machine_pool_from_cloud_request.py +152 -0
  353. anyscale/client/openapi_client/models/detachmachinepoolfromcloudresponse_response.py +121 -0
  354. anyscale/client/openapi_client/models/dismissal_type.py +100 -0
  355. anyscale/client/openapi_client/models/editable_cloud_resource.py +206 -0
  356. anyscale/client/openapi_client/models/editable_cloud_resource_gcp.py +178 -0
  357. anyscale/client/openapi_client/models/error.py +174 -0
  358. anyscale/client/openapi_client/models/event_level.py +104 -0
  359. anyscale/client/openapi_client/models/execute_command_response.py +175 -0
  360. anyscale/client/openapi_client/models/execute_interactive_command_options.py +147 -0
  361. anyscale/client/openapi_client/models/execute_shell_command_options.py +121 -0
  362. anyscale/client/openapi_client/models/executecommandresponse_response.py +121 -0
  363. anyscale/client/openapi_client/models/experimental_workspace.py +748 -0
  364. anyscale/client/openapi_client/models/experimental_workspaces_sort_field.py +100 -0
  365. anyscale/client/openapi_client/models/experimentalworkspace_list_response.py +147 -0
  366. anyscale/client/openapi_client/models/experimentalworkspace_response.py +121 -0
  367. anyscale/client/openapi_client/models/external_service_status.py +147 -0
  368. anyscale/client/openapi_client/models/external_service_status_response.py +250 -0
  369. anyscale/client/openapi_client/models/external_terminal_command.py +280 -0
  370. anyscale/client/openapi_client/models/externalservicestatusresponse_response.py +121 -0
  371. anyscale/client/openapi_client/models/feature_compatibility.py +152 -0
  372. anyscale/client/openapi_client/models/feature_flag_response.py +121 -0
  373. anyscale/client/openapi_client/models/featureflagresponse_response.py +121 -0
  374. anyscale/client/openapi_client/models/fine_tune_type.py +100 -0
  375. anyscale/client/openapi_client/models/fine_tuned_model.py +412 -0
  376. anyscale/client/openapi_client/models/fine_tuning_job_status.py +103 -0
  377. anyscale/client/openapi_client/models/finetunedmodel_list_response.py +147 -0
  378. anyscale/client/openapi_client/models/finetunedmodel_response.py +121 -0
  379. anyscale/client/openapi_client/models/finish_ft_job_request.py +204 -0
  380. anyscale/client/openapi_client/models/finish_ft_job_request_v2.py +183 -0
  381. anyscale/client/openapi_client/models/gcp_file_store_config.py +175 -0
  382. anyscale/client/openapi_client/models/gcp_memorystore_instance_config.py +148 -0
  383. anyscale/client/openapi_client/models/grafana_dashboard.py +201 -0
  384. anyscale/client/openapi_client/models/grpc_protocol_config.py +178 -0
  385. anyscale/client/openapi_client/models/ha_job_error_types.py +103 -0
  386. anyscale/client/openapi_client/models/ha_job_event_level.py +101 -0
  387. anyscale/client/openapi_client/models/ha_job_event_origin.py +100 -0
  388. anyscale/client/openapi_client/models/ha_job_goal_states.py +102 -0
  389. anyscale/client/openapi_client/models/ha_job_states.py +109 -0
  390. anyscale/client/openapi_client/models/ha_job_type.py +100 -0
  391. anyscale/client/openapi_client/models/ha_jobs_sort_field.py +105 -0
  392. anyscale/client/openapi_client/models/head_ip.py +121 -0
  393. anyscale/client/openapi_client/models/headip_response.py +121 -0
  394. anyscale/client/openapi_client/models/http_protocol_config.py +150 -0
  395. anyscale/client/openapi_client/models/http_validation_error.py +120 -0
  396. anyscale/client/openapi_client/models/idle_termination_status.py +104 -0
  397. anyscale/client/openapi_client/models/import_aica_model.py +241 -0
  398. anyscale/client/openapi_client/models/instance_usage_budget.py +572 -0
  399. anyscale/client/openapi_client/models/instance_usage_budget_evaluation_period.py +100 -0
  400. anyscale/client/openapi_client/models/instanceusagebudget_list_response.py +147 -0
  401. anyscale/client/openapi_client/models/instanceusagebudget_response.py +121 -0
  402. anyscale/client/openapi_client/models/integration_details.py +120 -0
  403. anyscale/client/openapi_client/models/interactive_session_logs.py +152 -0
  404. anyscale/client/openapi_client/models/interactivesessionlogs_response.py +121 -0
  405. anyscale/client/openapi_client/models/internal_production_job.py +663 -0
  406. anyscale/client/openapi_client/models/internalproductionjob_response.py +121 -0
  407. anyscale/client/openapi_client/models/invoice.py +413 -0
  408. anyscale/client/openapi_client/models/invoice_list_response.py +147 -0
  409. anyscale/client/openapi_client/models/invoice_status.py +102 -0
  410. anyscale/client/openapi_client/models/invoices_query.py +150 -0
  411. anyscale/client/openapi_client/models/job_access.py +102 -0
  412. anyscale/client/openapi_client/models/job_queue.py +467 -0
  413. anyscale/client/openapi_client/models/job_queue_config.py +122 -0
  414. anyscale/client/openapi_client/models/job_queue_execution_mode.py +101 -0
  415. anyscale/client/openapi_client/models/job_queue_spec.py +263 -0
  416. anyscale/client/openapi_client/models/job_queue_state.py +100 -0
  417. anyscale/client/openapi_client/models/job_queues_query.py +262 -0
  418. anyscale/client/openapi_client/models/job_run_type.py +101 -0
  419. anyscale/client/openapi_client/models/job_state_log_level_types.py +100 -0
  420. anyscale/client/openapi_client/models/job_status.py +105 -0
  421. anyscale/client/openapi_client/models/job_submissions_sort_field.py +101 -0
  422. anyscale/client/openapi_client/models/jobqueue_response.py +121 -0
  423. anyscale/client/openapi_client/models/jobs_logs.py +152 -0
  424. anyscale/client/openapi_client/models/jobs_logs_query_info.py +181 -0
  425. anyscale/client/openapi_client/models/jobs_sort_field.py +104 -0
  426. anyscale/client/openapi_client/models/jobslogs_response.py +121 -0
  427. anyscale/client/openapi_client/models/jobslogsqueryinfo_response.py +121 -0
  428. anyscale/client/openapi_client/models/json_patch_operation.py +200 -0
  429. anyscale/client/openapi_client/models/kubernetes_manager_registration_request.py +123 -0
  430. anyscale/client/openapi_client/models/kubernetes_manager_registration_response.py +123 -0
  431. anyscale/client/openapi_client/models/kubernetesmanagerregistrationresponse_response.py +121 -0
  432. anyscale/client/openapi_client/models/lb_resource.py +123 -0
  433. anyscale/client/openapi_client/models/lbresource_response.py +121 -0
  434. anyscale/client/openapi_client/models/list_machine_pools_response.py +123 -0
  435. anyscale/client/openapi_client/models/list_machines_response.py +121 -0
  436. anyscale/client/openapi_client/models/list_resource_quotas_query.py +234 -0
  437. anyscale/client/openapi_client/models/list_response_metadata.py +146 -0
  438. anyscale/client/openapi_client/models/listmachinepoolsresponse_response.py +121 -0
  439. anyscale/client/openapi_client/models/listmachinesresponse_response.py +121 -0
  440. anyscale/client/openapi_client/models/log_detail.py +187 -0
  441. anyscale/client/openapi_client/models/log_details.py +151 -0
  442. anyscale/client/openapi_client/models/log_download_config.py +206 -0
  443. anyscale/client/openapi_client/models/log_download_request.py +150 -0
  444. anyscale/client/openapi_client/models/log_download_result.py +207 -0
  445. anyscale/client/openapi_client/models/log_file_chunk.py +439 -0
  446. anyscale/client/openapi_client/models/log_filter.py +430 -0
  447. anyscale/client/openapi_client/models/log_item.py +181 -0
  448. anyscale/client/openapi_client/models/log_item_batch.py +151 -0
  449. anyscale/client/openapi_client/models/log_level_types.py +100 -0
  450. anyscale/client/openapi_client/models/log_stream.py +151 -0
  451. anyscale/client/openapi_client/models/logdetails_response.py +121 -0
  452. anyscale/client/openapi_client/models/logdownloadresult_response.py +121 -0
  453. anyscale/client/openapi_client/models/login_user_params.py +205 -0
  454. anyscale/client/openapi_client/models/logitembatch_response.py +121 -0
  455. anyscale/client/openapi_client/models/logs_output.py +202 -0
  456. anyscale/client/openapi_client/models/logsoutput_response.py +121 -0
  457. anyscale/client/openapi_client/models/logstream_response.py +121 -0
  458. anyscale/client/openapi_client/models/long_running_workload.py +256 -0
  459. anyscale/client/openapi_client/models/longrunningworkload_list_response.py +147 -0
  460. anyscale/client/openapi_client/models/machine_allocation_state.py +100 -0
  461. anyscale/client/openapi_client/models/machine_connection_state.py +100 -0
  462. anyscale/client/openapi_client/models/machine_info.py +466 -0
  463. anyscale/client/openapi_client/models/machine_pool.py +266 -0
  464. anyscale/client/openapi_client/models/metronome_customer_info_model.py +148 -0
  465. anyscale/client/openapi_client/models/metronome_dashboard_type.py +101 -0
  466. anyscale/client/openapi_client/models/metronomecustomerinfomodel_list_response.py +147 -0
  467. anyscale/client/openapi_client/models/metronomecustomerinfomodel_response.py +121 -0
  468. anyscale/client/openapi_client/models/mini_build.py +267 -0
  469. anyscale/client/openapi_client/models/mini_cloud.py +321 -0
  470. anyscale/client/openapi_client/models/mini_cluster.py +148 -0
  471. anyscale/client/openapi_client/models/mini_compute_template.py +228 -0
  472. anyscale/client/openapi_client/models/mini_compute_template_config.py +121 -0
  473. anyscale/client/openapi_client/models/mini_job_run.py +599 -0
  474. anyscale/client/openapi_client/models/mini_namespace.py +148 -0
  475. anyscale/client/openapi_client/models/mini_organization.py +148 -0
  476. anyscale/client/openapi_client/models/mini_production_job.py +202 -0
  477. anyscale/client/openapi_client/models/mini_project.py +205 -0
  478. anyscale/client/openapi_client/models/mini_runtime_environment.py +147 -0
  479. anyscale/client/openapi_client/models/mini_schedule.py +180 -0
  480. anyscale/client/openapi_client/models/mini_user.py +266 -0
  481. anyscale/client/openapi_client/models/minibuild_list_response.py +147 -0
  482. anyscale/client/openapi_client/models/minicomputetemplate_list_response.py +147 -0
  483. anyscale/client/openapi_client/models/miniproject_list_response.py +147 -0
  484. anyscale/client/openapi_client/models/monitor_logs_extension.py +100 -0
  485. anyscale/client/openapi_client/models/named_entity.py +148 -0
  486. anyscale/client/openapi_client/models/nfs_mount_target.py +151 -0
  487. anyscale/client/openapi_client/models/node_registration_aws.py +152 -0
  488. anyscale/client/openapi_client/models/node_registration_gcp.py +123 -0
  489. anyscale/client/openapi_client/models/node_registration_k8_s.py +178 -0
  490. anyscale/client/openapi_client/models/node_registration_provisioned.py +150 -0
  491. anyscale/client/openapi_client/models/node_registration_v2.py +279 -0
  492. anyscale/client/openapi_client/models/node_type.py +100 -0
  493. anyscale/client/openapi_client/models/notification_channel_email_config.py +121 -0
  494. anyscale/client/openapi_client/models/notification_channel_webhook_config.py +121 -0
  495. anyscale/client/openapi_client/models/onboarding_user_cards_query.py +122 -0
  496. anyscale/client/openapi_client/models/organization.py +490 -0
  497. anyscale/client/openapi_client/models/organization_availability.py +148 -0
  498. anyscale/client/openapi_client/models/organization_collaborator.py +259 -0
  499. anyscale/client/openapi_client/models/organization_configuration.py +280 -0
  500. anyscale/client/openapi_client/models/organization_configuration_response.py +227 -0
  501. anyscale/client/openapi_client/models/organization_invitation.py +255 -0
  502. anyscale/client/openapi_client/models/organization_invitation_base.py +121 -0
  503. anyscale/client/openapi_client/models/organization_marketing_questions.py +198 -0
  504. anyscale/client/openapi_client/models/organization_permission_level.py +100 -0
  505. anyscale/client/openapi_client/models/organization_project_collaborator.py +175 -0
  506. anyscale/client/openapi_client/models/organization_project_collaborator_value.py +148 -0
  507. anyscale/client/openapi_client/models/organization_public_identifier.py +121 -0
  508. anyscale/client/openapi_client/models/organization_response.py +121 -0
  509. anyscale/client/openapi_client/models/organization_summary.py +229 -0
  510. anyscale/client/openapi_client/models/organization_usage_alert.py +210 -0
  511. anyscale/client/openapi_client/models/organization_usage_alert_severity.py +100 -0
  512. anyscale/client/openapi_client/models/organizationavailability_response.py +121 -0
  513. anyscale/client/openapi_client/models/organizationcollaborator_list_response.py +147 -0
  514. anyscale/client/openapi_client/models/organizationconfiguration_list_response.py +147 -0
  515. anyscale/client/openapi_client/models/organizationconfigurationresponse_response.py +121 -0
  516. anyscale/client/openapi_client/models/organizationinvitation_list_response.py +147 -0
  517. anyscale/client/openapi_client/models/organizationinvitation_response.py +121 -0
  518. anyscale/client/openapi_client/models/organizationinvitationbase_response.py +121 -0
  519. anyscale/client/openapi_client/models/organizationprojectcollaborator_list_response.py +147 -0
  520. anyscale/client/openapi_client/models/organizationpublicidentifier_response.py +121 -0
  521. anyscale/client/openapi_client/models/organizationusagealert_list_response.py +147 -0
  522. anyscale/client/openapi_client/models/page_query.py +153 -0
  523. anyscale/client/openapi_client/models/pause_schedule.py +123 -0
  524. anyscale/client/openapi_client/models/permission_level.py +101 -0
  525. anyscale/client/openapi_client/models/platform_fine_tuning_job.py +577 -0
  526. anyscale/client/openapi_client/models/platformfinetuningjob_list_response.py +147 -0
  527. anyscale/client/openapi_client/models/platformfinetuningjob_response.py +121 -0
  528. anyscale/client/openapi_client/models/product_autoscaler_flag.py +122 -0
  529. anyscale/client/openapi_client/models/product_type.py +100 -0
  530. anyscale/client/openapi_client/models/productautoscalerflag_response.py +121 -0
  531. anyscale/client/openapi_client/models/production_job.py +437 -0
  532. anyscale/client/openapi_client/models/production_job_config.py +348 -0
  533. anyscale/client/openapi_client/models/production_job_event.py +378 -0
  534. anyscale/client/openapi_client/models/production_job_event_scope_filter.py +101 -0
  535. anyscale/client/openapi_client/models/production_job_state_transition.py +293 -0
  536. anyscale/client/openapi_client/models/productionjob_response.py +121 -0
  537. anyscale/client/openapi_client/models/productionjobevent_list_response.py +147 -0
  538. anyscale/client/openapi_client/models/project.py +554 -0
  539. anyscale/client/openapi_client/models/project_base.py +121 -0
  540. anyscale/client/openapi_client/models/project_collaborator.py +175 -0
  541. anyscale/client/openapi_client/models/project_collaborator_value.py +175 -0
  542. anyscale/client/openapi_client/models/project_collaborators_put_message.py +121 -0
  543. anyscale/client/openapi_client/models/project_create_message.py +148 -0
  544. anyscale/client/openapi_client/models/project_default_session_name.py +121 -0
  545. anyscale/client/openapi_client/models/project_delete_message.py +121 -0
  546. anyscale/client/openapi_client/models/project_list_response.py +147 -0
  547. anyscale/client/openapi_client/models/project_patch_message.py +121 -0
  548. anyscale/client/openapi_client/models/project_response.py +121 -0
  549. anyscale/client/openapi_client/models/projectbase_response.py +121 -0
  550. anyscale/client/openapi_client/models/projectcollaborator_list_response.py +147 -0
  551. anyscale/client/openapi_client/models/projectdefaultsessionname_response.py +121 -0
  552. anyscale/client/openapi_client/models/projects_sort_field.py +101 -0
  553. anyscale/client/openapi_client/models/projects_violating_tree_hierarchy_response.py +121 -0
  554. anyscale/client/openapi_client/models/projectsviolatingtreehierarchyresponse_response.py +121 -0
  555. anyscale/client/openapi_client/models/protocols.py +150 -0
  556. anyscale/client/openapi_client/models/provider_metadata.py +205 -0
  557. anyscale/client/openapi_client/models/providermetadata_response.py +121 -0
  558. anyscale/client/openapi_client/models/python_modules.py +150 -0
  559. anyscale/client/openapi_client/models/quota.py +198 -0
  560. anyscale/client/openapi_client/models/ray_gcs_external_storage_config.py +178 -0
  561. anyscale/client/openapi_client/models/ray_runtime_env_config.py +262 -0
  562. anyscale/client/openapi_client/models/read_billing_version.py +210 -0
  563. anyscale/client/openapi_client/models/readbillingversion_list_response.py +147 -0
  564. anyscale/client/openapi_client/models/replica_details.py +152 -0
  565. anyscale/client/openapi_client/models/replica_state.py +104 -0
  566. anyscale/client/openapi_client/models/request_email_magic_link_response.py +147 -0
  567. anyscale/client/openapi_client/models/request_otp_return_api_model.py +148 -0
  568. anyscale/client/openapi_client/models/request_password_reset_params.py +147 -0
  569. anyscale/client/openapi_client/models/requestemailmagiclinkresponse_response.py +121 -0
  570. anyscale/client/openapi_client/models/requestotpreturnapimodel_response.py +121 -0
  571. anyscale/client/openapi_client/models/reset_password_params.py +148 -0
  572. anyscale/client/openapi_client/models/resource_quota.py +465 -0
  573. anyscale/client/openapi_client/models/resource_quota_status.py +123 -0
  574. anyscale/client/openapi_client/models/resourcequota_list_response.py +147 -0
  575. anyscale/client/openapi_client/models/resourcequota_response.py +121 -0
  576. anyscale/client/openapi_client/models/resources.py +234 -0
  577. anyscale/client/openapi_client/models/resubmit_ft_job_request.py +121 -0
  578. anyscale/client/openapi_client/models/rollback_service_model.py +122 -0
  579. anyscale/client/openapi_client/models/rollout_strategy.py +100 -0
  580. anyscale/client/openapi_client/models/s3_download_location.py +148 -0
  581. anyscale/client/openapi_client/models/schedule_config.py +151 -0
  582. anyscale/client/openapi_client/models/serve_deployment_grafana_dashboard_status.py +101 -0
  583. anyscale/client/openapi_client/models/serve_deployment_logs.py +152 -0
  584. anyscale/client/openapi_client/models/serve_deployment_state.py +104 -0
  585. anyscale/client/openapi_client/models/servedeploymentlogs_response.py +121 -0
  586. anyscale/client/openapi_client/models/server_session_token.py +121 -0
  587. anyscale/client/openapi_client/models/serversessiontoken_response.py +121 -0
  588. anyscale/client/openapi_client/models/service_config.py +178 -0
  589. anyscale/client/openapi_client/models/service_event_current_state.py +108 -0
  590. anyscale/client/openapi_client/models/service_event_level.py +102 -0
  591. anyscale/client/openapi_client/models/service_event_origin.py +103 -0
  592. anyscale/client/openapi_client/models/service_event_scope.py +103 -0
  593. anyscale/client/openapi_client/models/service_event_scope_filter.py +104 -0
  594. anyscale/client/openapi_client/models/service_event_type.py +125 -0
  595. anyscale/client/openapi_client/models/service_event_verbose_message_model.py +180 -0
  596. anyscale/client/openapi_client/models/service_goal_states.py +100 -0
  597. anyscale/client/openapi_client/models/service_observability_urls.py +206 -0
  598. anyscale/client/openapi_client/models/service_sort_field.py +101 -0
  599. anyscale/client/openapi_client/models/service_type.py +100 -0
  600. anyscale/client/openapi_client/models/service_usage.py +353 -0
  601. anyscale/client/openapi_client/models/service_version_state.py +106 -0
  602. anyscale/client/openapi_client/models/serviceeventverbosemessagemodel_list_response.py +147 -0
  603. anyscale/client/openapi_client/models/session.py +834 -0
  604. anyscale/client/openapi_client/models/session_access.py +102 -0
  605. anyscale/client/openapi_client/models/session_autosync_sessions_update_message.py +121 -0
  606. anyscale/client/openapi_client/models/session_command.py +413 -0
  607. anyscale/client/openapi_client/models/session_command_finish_options.py +226 -0
  608. anyscale/client/openapi_client/models/session_command_id.py +121 -0
  609. anyscale/client/openapi_client/models/session_command_types.py +100 -0
  610. anyscale/client/openapi_client/models/session_create_message.py +148 -0
  611. anyscale/client/openapi_client/models/session_delete_message.py +121 -0
  612. anyscale/client/openapi_client/models/session_describe.py +175 -0
  613. anyscale/client/openapi_client/models/session_details.py +148 -0
  614. anyscale/client/openapi_client/models/session_event.py +267 -0
  615. anyscale/client/openapi_client/models/session_event_cause.py +150 -0
  616. anyscale/client/openapi_client/models/session_event_types.py +111 -0
  617. anyscale/client/openapi_client/models/session_execute_message.py +121 -0
  618. anyscale/client/openapi_client/models/session_finish_command_message.py +175 -0
  619. anyscale/client/openapi_client/models/session_history_item.py +146 -0
  620. anyscale/client/openapi_client/models/session_kill_command_message.py +121 -0
  621. anyscale/client/openapi_client/models/session_list_response.py +147 -0
  622. anyscale/client/openapi_client/models/session_patch_message.py +121 -0
  623. anyscale/client/openapi_client/models/session_response.py +121 -0
  624. anyscale/client/openapi_client/models/session_ssh_key.py +148 -0
  625. anyscale/client/openapi_client/models/session_starting_up_data.py +146 -0
  626. anyscale/client/openapi_client/models/session_state.py +111 -0
  627. anyscale/client/openapi_client/models/session_state_change_message.py +121 -0
  628. anyscale/client/openapi_client/models/session_state_data.py +146 -0
  629. anyscale/client/openapi_client/models/session_stopping_data.py +146 -0
  630. anyscale/client/openapi_client/models/sessioncommand_list_response.py +147 -0
  631. anyscale/client/openapi_client/models/sessioncommandid_response.py +121 -0
  632. anyscale/client/openapi_client/models/sessiondescribe_response.py +121 -0
  633. anyscale/client/openapi_client/models/sessiondetails_response.py +121 -0
  634. anyscale/client/openapi_client/models/sessionevent_list_response.py +147 -0
  635. anyscale/client/openapi_client/models/sessionhistoryitem_list_response.py +147 -0
  636. anyscale/client/openapi_client/models/sessions_sort_field.py +104 -0
  637. anyscale/client/openapi_client/models/sessionsshkey_response.py +121 -0
  638. anyscale/client/openapi_client/models/setup_initialize_session_options.py +225 -0
  639. anyscale/client/openapi_client/models/show_otp_source_return_api_model.py +121 -0
  640. anyscale/client/openapi_client/models/showotpsourcereturnapimodel_response.py +121 -0
  641. anyscale/client/openapi_client/models/snapshot_create_message.py +148 -0
  642. anyscale/client/openapi_client/models/snapshot_delete_message.py +148 -0
  643. anyscale/client/openapi_client/models/snapshot_patch_message.py +148 -0
  644. anyscale/client/openapi_client/models/socket_message_schemas.py +499 -0
  645. anyscale/client/openapi_client/models/socket_message_types.py +113 -0
  646. anyscale/client/openapi_client/models/socketmessageschemas_response.py +121 -0
  647. anyscale/client/openapi_client/models/socketmessagetypes_response.py +121 -0
  648. anyscale/client/openapi_client/models/sort_order.py +100 -0
  649. anyscale/client/openapi_client/models/sso_login_info.py +151 -0
  650. anyscale/client/openapi_client/models/ssologininfo_response.py +121 -0
  651. anyscale/client/openapi_client/models/start_session_options.py +146 -0
  652. anyscale/client/openapi_client/models/stop_session_options.py +227 -0
  653. anyscale/client/openapi_client/models/stream_publish_request.py +239 -0
  654. anyscale/client/openapi_client/models/subnet_id_with_availability_zone_aws.py +148 -0
  655. anyscale/client/openapi_client/models/support_requests_query.py +178 -0
  656. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +1570 -0
  657. anyscale/client/openapi_client/models/templatized_compute_configs.py +202 -0
  658. anyscale/client/openapi_client/models/templatized_decorated_application_templates.py +202 -0
  659. anyscale/client/openapi_client/models/templatizedcomputeconfigs_response.py +121 -0
  660. anyscale/client/openapi_client/models/templatizeddecoratedapplicationtemplates_response.py +121 -0
  661. anyscale/client/openapi_client/models/text_query.py +178 -0
  662. anyscale/client/openapi_client/models/timestamped_logs_output.py +148 -0
  663. anyscale/client/openapi_client/models/timestampedlogsoutput_response.py +121 -0
  664. anyscale/client/openapi_client/models/tool.py +100 -0
  665. anyscale/client/openapi_client/models/tracing_config.py +178 -0
  666. anyscale/client/openapi_client/models/try_login_email_response.py +208 -0
  667. anyscale/client/openapi_client/models/tryloginemailresponse_response.py +121 -0
  668. anyscale/client/openapi_client/models/unified_job_sort_field.py +103 -0
  669. anyscale/client/openapi_client/models/unified_job_status.py +114 -0
  670. anyscale/client/openapi_client/models/unified_job_type.py +100 -0
  671. anyscale/client/openapi_client/models/update_cloud_with_cloud_resource.py +178 -0
  672. anyscale/client/openapi_client/models/update_cloud_with_cloud_resource_gcp.py +178 -0
  673. anyscale/client/openapi_client/models/update_cluster_dns.py +152 -0
  674. anyscale/client/openapi_client/models/update_compute_template.py +146 -0
  675. anyscale/client/openapi_client/models/update_compute_template_config.py +464 -0
  676. anyscale/client/openapi_client/models/update_endpoint.py +152 -0
  677. anyscale/client/openapi_client/models/update_machine_pool_request.py +151 -0
  678. anyscale/client/openapi_client/models/update_model_deployment.py +152 -0
  679. anyscale/client/openapi_client/models/update_organization_collaborator.py +121 -0
  680. anyscale/client/openapi_client/models/update_project_collaborator.py +121 -0
  681. anyscale/client/openapi_client/models/update_resource_quota.py +122 -0
  682. anyscale/client/openapi_client/models/updatemachinepoolresponse_response.py +121 -0
  683. anyscale/client/openapi_client/models/upload_session_command_logs_locations.py +148 -0
  684. anyscale/client/openapi_client/models/uploadsessioncommandlogslocations_response.py +121 -0
  685. anyscale/client/openapi_client/models/user_info.py +569 -0
  686. anyscale/client/openapi_client/models/user_resend_email_options.py +147 -0
  687. anyscale/client/openapi_client/models/user_service_access_types.py +100 -0
  688. anyscale/client/openapi_client/models/userinfo_response.py +121 -0
  689. anyscale/client/openapi_client/models/utm_fields.py +224 -0
  690. anyscale/client/openapi_client/models/ux_instance.py +468 -0
  691. anyscale/client/openapi_client/models/validate_otp_params_api_model.py +121 -0
  692. anyscale/client/openapi_client/models/validation_error.py +175 -0
  693. anyscale/client/openapi_client/models/verify_response.py +147 -0
  694. anyscale/client/openapi_client/models/verifyresponse_response.py +121 -0
  695. anyscale/client/openapi_client/models/visibility.py +100 -0
  696. anyscale/client/openapi_client/models/waitlist_status_response.py +121 -0
  697. anyscale/client/openapi_client/models/waitlist_status_type.py +100 -0
  698. anyscale/client/openapi_client/models/waitliststatusresponse_response.py +121 -0
  699. anyscale/client/openapi_client/models/wand_b_run_details.py +147 -0
  700. anyscale/client/openapi_client/models/web_terminal.py +121 -0
  701. anyscale/client/openapi_client/models/webterminal_list_response.py +147 -0
  702. anyscale/client/openapi_client/models/webterminal_response.py +121 -0
  703. anyscale/client/openapi_client/models/worker_node_type.py +404 -0
  704. anyscale/client/openapi_client/models/workload_type.py +102 -0
  705. anyscale/client/openapi_client/models/workspace_dataplane_artifact.py +181 -0
  706. anyscale/client/openapi_client/models/workspace_dataplane_artifacts.py +123 -0
  707. anyscale/client/openapi_client/models/workspace_dataplane_proxied_artifacts.py +178 -0
  708. anyscale/client/openapi_client/models/workspace_event.py +325 -0
  709. anyscale/client/openapi_client/models/workspace_event_source.py +100 -0
  710. anyscale/client/openapi_client/models/workspace_event_source_filter.py +101 -0
  711. anyscale/client/openapi_client/models/workspace_readme.py +123 -0
  712. anyscale/client/openapi_client/models/workspace_snapshot_states.py +108 -0
  713. anyscale/client/openapi_client/models/workspace_template.py +353 -0
  714. anyscale/client/openapi_client/models/workspace_template_cluster_environment_metadata.py +178 -0
  715. anyscale/client/openapi_client/models/workspacedataplaneartifacts_response.py +121 -0
  716. anyscale/client/openapi_client/models/workspacedataplaneproxiedartifacts_response.py +121 -0
  717. anyscale/client/openapi_client/models/workspaceevent_list_response.py +147 -0
  718. anyscale/client/openapi_client/models/workspacereadme_response.py +121 -0
  719. anyscale/client/openapi_client/models/workspacetemplate_list_response.py +147 -0
  720. anyscale/client/openapi_client/models/workspacetemplateclusterenvironmentmetadata_response.py +121 -0
  721. anyscale/client/openapi_client/models/write_cloud.py +546 -0
  722. anyscale/client/openapi_client/models/write_cluster_config.py +123 -0
  723. anyscale/client/openapi_client/models/write_project.py +226 -0
  724. anyscale/client/openapi_client/models/write_session.py +147 -0
  725. anyscale/client/openapi_client/models/write_support_request.py +121 -0
  726. anyscale/client/openapi_client/rest.py +296 -0
  727. anyscale/client/requirements.txt +6 -0
  728. anyscale/client/setup.cfg +2 -0
  729. anyscale/client/setup.py +40 -0
  730. anyscale/client/test-requirements.txt +3 -0
  731. anyscale/client/tox.ini +9 -0
  732. anyscale/cloud.py +216 -0
  733. anyscale/cloud_resource.py +1032 -0
  734. anyscale/cluster.py +138 -0
  735. anyscale/cluster_compute.py +167 -0
  736. anyscale/cluster_env.py +173 -0
  737. anyscale/commands/__init__.py +0 -0
  738. anyscale/commands/aggregated_instance_usage_commands.py +86 -0
  739. anyscale/commands/anyscale_api/__init__.py +0 -0
  740. anyscale/commands/anyscale_api/api_commands.py +23 -0
  741. anyscale/commands/anyscale_api/session_commands_commands.py +80 -0
  742. anyscale/commands/anyscale_api/session_operations_commands.py +28 -0
  743. anyscale/commands/anyscale_api/sessions_commands.py +152 -0
  744. anyscale/commands/auth_commands.py +41 -0
  745. anyscale/commands/cloud_commands.py +1011 -0
  746. anyscale/commands/cloud_commands_util.py +10 -0
  747. anyscale/commands/cluster_commands.py +476 -0
  748. anyscale/commands/cluster_env_commands.py +139 -0
  749. anyscale/commands/command_examples.py +495 -0
  750. anyscale/commands/compute_config_commands.py +252 -0
  751. anyscale/commands/config_commands.py +213 -0
  752. anyscale/commands/exec_commands.py +14 -0
  753. anyscale/commands/experimental_integrations_commands.py +70 -0
  754. anyscale/commands/image_commands.py +125 -0
  755. anyscale/commands/job_commands.py +745 -0
  756. anyscale/commands/list_commands.py +85 -0
  757. anyscale/commands/llm/dataset_commands.py +269 -0
  758. anyscale/commands/llm/group.py +15 -0
  759. anyscale/commands/llm/models_commands.py +123 -0
  760. anyscale/commands/login_commands.py +79 -0
  761. anyscale/commands/logs_commands.py +312 -0
  762. anyscale/commands/machine_commands.py +116 -0
  763. anyscale/commands/machine_pool_commands.py +163 -0
  764. anyscale/commands/migrate_commands.py +84 -0
  765. anyscale/commands/project_commands.py +203 -0
  766. anyscale/commands/resource_quota_commands.py +214 -0
  767. anyscale/commands/schedule_commands.py +436 -0
  768. anyscale/commands/service_account_commands.py +72 -0
  769. anyscale/commands/service_commands.py +738 -0
  770. anyscale/commands/session_commands_hidden.py +179 -0
  771. anyscale/commands/util.py +152 -0
  772. anyscale/commands/workspace_commands.py +511 -0
  773. anyscale/commands/workspace_commands_v2.py +874 -0
  774. anyscale/component_activity_util.py +83 -0
  775. anyscale/compute_config/__init__.py +84 -0
  776. anyscale/compute_config/_private/compute_config_sdk.py +433 -0
  777. anyscale/compute_config/commands.py +122 -0
  778. anyscale/compute_config/models.py +630 -0
  779. anyscale/conf.py +23 -0
  780. anyscale/connect.py +1323 -0
  781. anyscale/connect_utils/__init__.py +0 -0
  782. anyscale/connect_utils/prepare_cluster.py +962 -0
  783. anyscale/connect_utils/project.py +298 -0
  784. anyscale/connect_utils/start_interactive_session.py +437 -0
  785. anyscale/controllers/__init__.py +0 -0
  786. anyscale/controllers/auth_controller.py +134 -0
  787. anyscale/controllers/base_controller.py +52 -0
  788. anyscale/controllers/cloud_controller.py +3609 -0
  789. anyscale/controllers/cloud_functional_verification_controller.py +858 -0
  790. anyscale/controllers/cluster_controller.py +720 -0
  791. anyscale/controllers/cluster_env_controller.py +219 -0
  792. anyscale/controllers/compute_config_controller.py +351 -0
  793. anyscale/controllers/config_controller.py +422 -0
  794. anyscale/controllers/experimental_integrations_controller.py +80 -0
  795. anyscale/controllers/job_controller.py +647 -0
  796. anyscale/controllers/jobs_bg_controller.py +0 -0
  797. anyscale/controllers/list_controller.py +290 -0
  798. anyscale/controllers/llm/__init__.py +0 -0
  799. anyscale/controllers/llm/models_controller.py +144 -0
  800. anyscale/controllers/logs_controller.py +449 -0
  801. anyscale/controllers/machine_controller.py +37 -0
  802. anyscale/controllers/machine_pool_controller.py +86 -0
  803. anyscale/controllers/project_controller.py +281 -0
  804. anyscale/controllers/resource_quota_controller.py +183 -0
  805. anyscale/controllers/schedule_controller.py +333 -0
  806. anyscale/controllers/service_account_controller.py +168 -0
  807. anyscale/controllers/service_controller.py +453 -0
  808. anyscale/controllers/workspace_controller.py +253 -0
  809. anyscale/feature_flags.py +4 -0
  810. anyscale/fingerprint.py +62 -0
  811. anyscale/formatters/__init__.py +0 -0
  812. anyscale/formatters/clouds_formatter.py +65 -0
  813. anyscale/formatters/common_formatter.py +22 -0
  814. anyscale/gcp_verification.py +792 -0
  815. anyscale/image/__init__.py +73 -0
  816. anyscale/image/_private/image_sdk.py +202 -0
  817. anyscale/image/commands.py +117 -0
  818. anyscale/image/models.py +57 -0
  819. anyscale/integrations.py +329 -0
  820. anyscale/job/__init__.py +166 -0
  821. anyscale/job/_private/job_sdk.py +497 -0
  822. anyscale/job/commands.py +267 -0
  823. anyscale/job/models.py +500 -0
  824. anyscale/links.py +4 -0
  825. anyscale/llm/__init__.py +2 -0
  826. anyscale/llm/dataset/__init__.py +2 -0
  827. anyscale/llm/dataset/_private/__init__.py +0 -0
  828. anyscale/llm/dataset/_private/docs.py +63 -0
  829. anyscale/llm/dataset/_private/models.py +71 -0
  830. anyscale/llm/dataset/_private/sdk.py +147 -0
  831. anyscale/llm/model/__init__.py +2 -0
  832. anyscale/llm/model/_private/models_sdk.py +62 -0
  833. anyscale/llm/model/commands.py +93 -0
  834. anyscale/llm/model/models.py +171 -0
  835. anyscale/llm/model/sdk.py +62 -0
  836. anyscale/llm/sdk.py +27 -0
  837. anyscale/memorydb_supported_zones.json +22 -0
  838. anyscale/models/job_model.py +457 -0
  839. anyscale/models/service_model.py +125 -0
  840. anyscale/project.py +501 -0
  841. anyscale/schedule/__init__.py +91 -0
  842. anyscale/schedule/_private/schedule_sdk.py +165 -0
  843. anyscale/schedule/commands.py +149 -0
  844. anyscale/schedule/models.py +145 -0
  845. anyscale/scripts.py +164 -0
  846. anyscale/sdk/anyscale_client/__init__.py +235 -0
  847. anyscale/sdk/anyscale_client/api/__init__.py +6 -0
  848. anyscale/sdk/anyscale_client/api/default_api.py +11625 -0
  849. anyscale/sdk/anyscale_client/api_client.py +647 -0
  850. anyscale/sdk/anyscale_client/configuration.py +373 -0
  851. anyscale/sdk/anyscale_client/exceptions.py +120 -0
  852. anyscale/sdk/anyscale_client/models/__init__.py +220 -0
  853. anyscale/sdk/anyscale_client/models/access_config.py +122 -0
  854. anyscale/sdk/anyscale_client/models/app_config.py +436 -0
  855. anyscale/sdk/anyscale_client/models/app_config_config_schema.py +235 -0
  856. anyscale/sdk/anyscale_client/models/appconfig_list_response.py +147 -0
  857. anyscale/sdk/anyscale_client/models/appconfig_response.py +121 -0
  858. anyscale/sdk/anyscale_client/models/apply_production_service_v2_model.py +490 -0
  859. anyscale/sdk/anyscale_client/models/apply_service_model.py +490 -0
  860. anyscale/sdk/anyscale_client/models/archive_status.py +101 -0
  861. anyscale/sdk/anyscale_client/models/base_job_status.py +105 -0
  862. anyscale/sdk/anyscale_client/models/baseimagesenum.py +2130 -0
  863. anyscale/sdk/anyscale_client/models/build.py +607 -0
  864. anyscale/sdk/anyscale_client/models/build_list_response.py +147 -0
  865. anyscale/sdk/anyscale_client/models/build_log_response.py +123 -0
  866. anyscale/sdk/anyscale_client/models/build_response.py +121 -0
  867. anyscale/sdk/anyscale_client/models/build_status.py +104 -0
  868. anyscale/sdk/anyscale_client/models/buildlogresponse_response.py +121 -0
  869. anyscale/sdk/anyscale_client/models/cloud.py +802 -0
  870. anyscale/sdk/anyscale_client/models/cloud_config.py +206 -0
  871. anyscale/sdk/anyscale_client/models/cloud_list_response.py +147 -0
  872. anyscale/sdk/anyscale_client/models/cloud_providers.py +103 -0
  873. anyscale/sdk/anyscale_client/models/cloud_response.py +121 -0
  874. anyscale/sdk/anyscale_client/models/cloud_state.py +104 -0
  875. anyscale/sdk/anyscale_client/models/cloud_status.py +100 -0
  876. anyscale/sdk/anyscale_client/models/cloud_type.py +100 -0
  877. anyscale/sdk/anyscale_client/models/cloud_types.py +100 -0
  878. anyscale/sdk/anyscale_client/models/cloud_version.py +100 -0
  879. anyscale/sdk/anyscale_client/models/clouds_query.py +150 -0
  880. anyscale/sdk/anyscale_client/models/cluster.py +721 -0
  881. anyscale/sdk/anyscale_client/models/cluster_compute.py +415 -0
  882. anyscale/sdk/anyscale_client/models/cluster_compute_config.py +461 -0
  883. anyscale/sdk/anyscale_client/models/cluster_computes_query.py +293 -0
  884. anyscale/sdk/anyscale_client/models/cluster_environment.py +380 -0
  885. anyscale/sdk/anyscale_client/models/cluster_environment_build.py +578 -0
  886. anyscale/sdk/anyscale_client/models/cluster_environment_build_log_response.py +123 -0
  887. anyscale/sdk/anyscale_client/models/cluster_environment_build_operation.py +237 -0
  888. anyscale/sdk/anyscale_client/models/cluster_environment_build_status.py +104 -0
  889. anyscale/sdk/anyscale_client/models/cluster_environments_query.py +290 -0
  890. anyscale/sdk/anyscale_client/models/cluster_head_node_info.py +152 -0
  891. anyscale/sdk/anyscale_client/models/cluster_list_response.py +147 -0
  892. anyscale/sdk/anyscale_client/models/cluster_management_stack_versions.py +100 -0
  893. anyscale/sdk/anyscale_client/models/cluster_operation.py +266 -0
  894. anyscale/sdk/anyscale_client/models/cluster_operation_type.py +101 -0
  895. anyscale/sdk/anyscale_client/models/cluster_response.py +121 -0
  896. anyscale/sdk/anyscale_client/models/cluster_services_urls.py +430 -0
  897. anyscale/sdk/anyscale_client/models/cluster_state.py +108 -0
  898. anyscale/sdk/anyscale_client/models/cluster_status.py +104 -0
  899. anyscale/sdk/anyscale_client/models/cluster_status_details.py +100 -0
  900. anyscale/sdk/anyscale_client/models/clustercompute_list_response.py +147 -0
  901. anyscale/sdk/anyscale_client/models/clustercompute_response.py +121 -0
  902. anyscale/sdk/anyscale_client/models/clusterenvironment_list_response.py +147 -0
  903. anyscale/sdk/anyscale_client/models/clusterenvironment_response.py +121 -0
  904. anyscale/sdk/anyscale_client/models/clusterenvironmentbuild_list_response.py +147 -0
  905. anyscale/sdk/anyscale_client/models/clusterenvironmentbuild_response.py +121 -0
  906. anyscale/sdk/anyscale_client/models/clusterenvironmentbuildlogresponse_response.py +121 -0
  907. anyscale/sdk/anyscale_client/models/clusterenvironmentbuildoperation_response.py +121 -0
  908. anyscale/sdk/anyscale_client/models/clusteroperation_response.py +121 -0
  909. anyscale/sdk/anyscale_client/models/clusters_query.py +234 -0
  910. anyscale/sdk/anyscale_client/models/compute_node_type.py +292 -0
  911. anyscale/sdk/anyscale_client/models/compute_stack.py +100 -0
  912. anyscale/sdk/anyscale_client/models/compute_template.py +415 -0
  913. anyscale/sdk/anyscale_client/models/compute_template_config.py +461 -0
  914. anyscale/sdk/anyscale_client/models/compute_template_query.py +316 -0
  915. anyscale/sdk/anyscale_client/models/computetemplate_list_response.py +147 -0
  916. anyscale/sdk/anyscale_client/models/computetemplate_response.py +121 -0
  917. anyscale/sdk/anyscale_client/models/computetemplateconfig_response.py +121 -0
  918. anyscale/sdk/anyscale_client/models/create_app_config.py +235 -0
  919. anyscale/sdk/anyscale_client/models/create_app_config_configuration_schema.py +235 -0
  920. anyscale/sdk/anyscale_client/models/create_build.py +263 -0
  921. anyscale/sdk/anyscale_client/models/create_byod_app_config_configuration_schema.py +206 -0
  922. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment.py +180 -0
  923. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment_build.py +152 -0
  924. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment_configuration_schema.py +208 -0
  925. anyscale/sdk/anyscale_client/models/create_cloud.py +518 -0
  926. anyscale/sdk/anyscale_client/models/create_cluster.py +376 -0
  927. anyscale/sdk/anyscale_client/models/create_cluster_compute.py +229 -0
  928. anyscale/sdk/anyscale_client/models/create_cluster_compute_config.py +463 -0
  929. anyscale/sdk/anyscale_client/models/create_cluster_environment.py +235 -0
  930. anyscale/sdk/anyscale_client/models/create_cluster_environment_build.py +263 -0
  931. anyscale/sdk/anyscale_client/models/create_cluster_environment_configuration_schema.py +235 -0
  932. anyscale/sdk/anyscale_client/models/create_compute_template.py +229 -0
  933. anyscale/sdk/anyscale_client/models/create_compute_template_config.py +464 -0
  934. anyscale/sdk/anyscale_client/models/create_job_queue_config.py +206 -0
  935. anyscale/sdk/anyscale_client/models/create_production_job.py +234 -0
  936. anyscale/sdk/anyscale_client/models/create_production_job_config.py +347 -0
  937. anyscale/sdk/anyscale_client/models/create_project.py +207 -0
  938. anyscale/sdk/anyscale_client/models/create_schedule.py +263 -0
  939. anyscale/sdk/anyscale_client/models/create_session.py +432 -0
  940. anyscale/sdk/anyscale_client/models/create_session_command.py +152 -0
  941. anyscale/sdk/anyscale_client/models/create_sso_config.py +150 -0
  942. anyscale/sdk/anyscale_client/models/grpc_protocol_config.py +178 -0
  943. anyscale/sdk/anyscale_client/models/ha_job_goal_states.py +102 -0
  944. anyscale/sdk/anyscale_client/models/ha_job_states.py +109 -0
  945. anyscale/sdk/anyscale_client/models/http_protocol_config.py +150 -0
  946. anyscale/sdk/anyscale_client/models/http_validation_error.py +120 -0
  947. anyscale/sdk/anyscale_client/models/idle_termination_status.py +104 -0
  948. anyscale/sdk/anyscale_client/models/job.py +466 -0
  949. anyscale/sdk/anyscale_client/models/job_list_response.py +147 -0
  950. anyscale/sdk/anyscale_client/models/job_queue_config.py +122 -0
  951. anyscale/sdk/anyscale_client/models/job_queue_execution_mode.py +101 -0
  952. anyscale/sdk/anyscale_client/models/job_queue_spec.py +263 -0
  953. anyscale/sdk/anyscale_client/models/job_run_type.py +101 -0
  954. anyscale/sdk/anyscale_client/models/job_status.py +105 -0
  955. anyscale/sdk/anyscale_client/models/jobs_query.py +458 -0
  956. anyscale/sdk/anyscale_client/models/jobs_sort_field.py +104 -0
  957. anyscale/sdk/anyscale_client/models/list_response_metadata.py +146 -0
  958. anyscale/sdk/anyscale_client/models/list_service_model.py +347 -0
  959. anyscale/sdk/anyscale_client/models/listservicemodel_list_response.py +147 -0
  960. anyscale/sdk/anyscale_client/models/log_download_result.py +207 -0
  961. anyscale/sdk/anyscale_client/models/log_file_chunk.py +439 -0
  962. anyscale/sdk/anyscale_client/models/log_level_types.py +100 -0
  963. anyscale/sdk/anyscale_client/models/log_stream.py +151 -0
  964. anyscale/sdk/anyscale_client/models/logdownloadresult_response.py +121 -0
  965. anyscale/sdk/anyscale_client/models/logstream_response.py +121 -0
  966. anyscale/sdk/anyscale_client/models/node_type.py +100 -0
  967. anyscale/sdk/anyscale_client/models/object_storage_config.py +122 -0
  968. anyscale/sdk/anyscale_client/models/object_storage_config_s3.py +256 -0
  969. anyscale/sdk/anyscale_client/models/objectstorageconfig_response.py +121 -0
  970. anyscale/sdk/anyscale_client/models/operation_error.py +123 -0
  971. anyscale/sdk/anyscale_client/models/operation_progress.py +123 -0
  972. anyscale/sdk/anyscale_client/models/operation_result.py +150 -0
  973. anyscale/sdk/anyscale_client/models/organization.py +209 -0
  974. anyscale/sdk/anyscale_client/models/organization_response.py +121 -0
  975. anyscale/sdk/anyscale_client/models/page_query.py +153 -0
  976. anyscale/sdk/anyscale_client/models/pause_schedule.py +123 -0
  977. anyscale/sdk/anyscale_client/models/production_job.py +437 -0
  978. anyscale/sdk/anyscale_client/models/production_job_config.py +348 -0
  979. anyscale/sdk/anyscale_client/models/production_job_state_transition.py +293 -0
  980. anyscale/sdk/anyscale_client/models/production_service_v2_model.py +612 -0
  981. anyscale/sdk/anyscale_client/models/production_service_v2_version_model.py +437 -0
  982. anyscale/sdk/anyscale_client/models/productionjob_list_response.py +147 -0
  983. anyscale/sdk/anyscale_client/models/productionjob_response.py +121 -0
  984. anyscale/sdk/anyscale_client/models/productionservicev2_model_response.py +121 -0
  985. anyscale/sdk/anyscale_client/models/project.py +467 -0
  986. anyscale/sdk/anyscale_client/models/project_list_response.py +147 -0
  987. anyscale/sdk/anyscale_client/models/project_response.py +121 -0
  988. anyscale/sdk/anyscale_client/models/projects_query.py +234 -0
  989. anyscale/sdk/anyscale_client/models/protocols.py +150 -0
  990. anyscale/sdk/anyscale_client/models/python_modules.py +150 -0
  991. anyscale/sdk/anyscale_client/models/python_version.py +105 -0
  992. anyscale/sdk/anyscale_client/models/ray_gcs_external_storage_config.py +178 -0
  993. anyscale/sdk/anyscale_client/models/ray_runtime_env_config.py +262 -0
  994. anyscale/sdk/anyscale_client/models/resources.py +234 -0
  995. anyscale/sdk/anyscale_client/models/rollback_service_model.py +122 -0
  996. anyscale/sdk/anyscale_client/models/rollout_strategy.py +100 -0
  997. anyscale/sdk/anyscale_client/models/runtime_environment.py +406 -0
  998. anyscale/sdk/anyscale_client/models/runtimeenvironment_response.py +121 -0
  999. anyscale/sdk/anyscale_client/models/schedule_api_model.py +467 -0
  1000. anyscale/sdk/anyscale_client/models/schedule_config.py +151 -0
  1001. anyscale/sdk/anyscale_client/models/scheduleapimodel_list_response.py +147 -0
  1002. anyscale/sdk/anyscale_client/models/scheduleapimodel_response.py +121 -0
  1003. anyscale/sdk/anyscale_client/models/service_config.py +178 -0
  1004. anyscale/sdk/anyscale_client/models/service_event_current_state.py +108 -0
  1005. anyscale/sdk/anyscale_client/models/service_goal_states.py +100 -0
  1006. anyscale/sdk/anyscale_client/models/service_model.py +612 -0
  1007. anyscale/sdk/anyscale_client/models/service_observability_urls.py +206 -0
  1008. anyscale/sdk/anyscale_client/models/service_sort_field.py +101 -0
  1009. anyscale/sdk/anyscale_client/models/service_type.py +100 -0
  1010. anyscale/sdk/anyscale_client/models/service_version_state.py +106 -0
  1011. anyscale/sdk/anyscale_client/models/servicemodel_list_response.py +147 -0
  1012. anyscale/sdk/anyscale_client/models/servicemodel_response.py +121 -0
  1013. anyscale/sdk/anyscale_client/models/session.py +1535 -0
  1014. anyscale/sdk/anyscale_client/models/session_command.py +350 -0
  1015. anyscale/sdk/anyscale_client/models/session_command_types.py +100 -0
  1016. anyscale/sdk/anyscale_client/models/session_event.py +267 -0
  1017. anyscale/sdk/anyscale_client/models/session_event_cause.py +150 -0
  1018. anyscale/sdk/anyscale_client/models/session_event_types.py +111 -0
  1019. anyscale/sdk/anyscale_client/models/session_list_response.py +147 -0
  1020. anyscale/sdk/anyscale_client/models/session_operation.py +266 -0
  1021. anyscale/sdk/anyscale_client/models/session_operation_type.py +101 -0
  1022. anyscale/sdk/anyscale_client/models/session_response.py +121 -0
  1023. anyscale/sdk/anyscale_client/models/session_starting_up_data.py +146 -0
  1024. anyscale/sdk/anyscale_client/models/session_state.py +111 -0
  1025. anyscale/sdk/anyscale_client/models/session_state_data.py +146 -0
  1026. anyscale/sdk/anyscale_client/models/session_stopping_data.py +146 -0
  1027. anyscale/sdk/anyscale_client/models/sessioncommand_list_response.py +147 -0
  1028. anyscale/sdk/anyscale_client/models/sessioncommand_response.py +121 -0
  1029. anyscale/sdk/anyscale_client/models/sessionevent_list_response.py +147 -0
  1030. anyscale/sdk/anyscale_client/models/sessionoperation_response.py +121 -0
  1031. anyscale/sdk/anyscale_client/models/sessions_query.py +206 -0
  1032. anyscale/sdk/anyscale_client/models/sort_by_clause_jobs_sort_field.py +148 -0
  1033. anyscale/sdk/anyscale_client/models/sort_order.py +100 -0
  1034. anyscale/sdk/anyscale_client/models/sso_config.py +237 -0
  1035. anyscale/sdk/anyscale_client/models/sso_mode.py +101 -0
  1036. anyscale/sdk/anyscale_client/models/ssoconfig_response.py +121 -0
  1037. anyscale/sdk/anyscale_client/models/start_cluster_options.py +178 -0
  1038. anyscale/sdk/anyscale_client/models/start_session_options.py +206 -0
  1039. anyscale/sdk/anyscale_client/models/static_sso_config.py +210 -0
  1040. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +1570 -0
  1041. anyscale/sdk/anyscale_client/models/terminate_cluster_options.py +122 -0
  1042. anyscale/sdk/anyscale_client/models/terminate_session_options.py +206 -0
  1043. anyscale/sdk/anyscale_client/models/text_query.py +178 -0
  1044. anyscale/sdk/anyscale_client/models/tracing_config.py +178 -0
  1045. anyscale/sdk/anyscale_client/models/update_app_config.py +122 -0
  1046. anyscale/sdk/anyscale_client/models/update_cloud.py +150 -0
  1047. anyscale/sdk/anyscale_client/models/update_cluster.py +206 -0
  1048. anyscale/sdk/anyscale_client/models/update_compute_template.py +146 -0
  1049. anyscale/sdk/anyscale_client/models/update_compute_template_config.py +464 -0
  1050. anyscale/sdk/anyscale_client/models/update_organization.py +123 -0
  1051. anyscale/sdk/anyscale_client/models/update_project.py +150 -0
  1052. anyscale/sdk/anyscale_client/models/update_session.py +150 -0
  1053. anyscale/sdk/anyscale_client/models/user_service_access_types.py +100 -0
  1054. anyscale/sdk/anyscale_client/models/ux_instance.py +468 -0
  1055. anyscale/sdk/anyscale_client/models/validation_error.py +175 -0
  1056. anyscale/sdk/anyscale_client/models/worker_node_type.py +404 -0
  1057. anyscale/sdk/anyscale_client/rest.py +296 -0
  1058. anyscale/sdk/anyscale_client/sdk.py +634 -0
  1059. anyscale/service/__init__.py +168 -0
  1060. anyscale/service/_private/service_sdk.py +702 -0
  1061. anyscale/service/commands.py +261 -0
  1062. anyscale/service/models.py +671 -0
  1063. anyscale/shared_anyscale_utils/__init__.py +1 -0
  1064. anyscale/shared_anyscale_utils/aws.py +153 -0
  1065. anyscale/shared_anyscale_utils/bytes_util.py +10 -0
  1066. anyscale/shared_anyscale_utils/conf.py +47 -0
  1067. anyscale/shared_anyscale_utils/default_anyscale_aws.yaml +74 -0
  1068. anyscale/shared_anyscale_utils/default_anyscale_gcp.yaml +80 -0
  1069. anyscale/shared_anyscale_utils/headers.py +38 -0
  1070. anyscale/shared_anyscale_utils/latest_ray_version.py +2 -0
  1071. anyscale/shared_anyscale_utils/project.py +15 -0
  1072. anyscale/shared_anyscale_utils/test_util.py +22 -0
  1073. anyscale/shared_anyscale_utils/tests/__init__.py +1 -0
  1074. anyscale/shared_anyscale_utils/tests/test_asyncio.py +41 -0
  1075. anyscale/shared_anyscale_utils/tests/test_ray_semver.py +63 -0
  1076. anyscale/shared_anyscale_utils/util.py +50 -0
  1077. anyscale/shared_anyscale_utils/utils/__init__.py +2 -0
  1078. anyscale/shared_anyscale_utils/utils/asyncio.py +120 -0
  1079. anyscale/shared_anyscale_utils/utils/byod.py +40 -0
  1080. anyscale/shared_anyscale_utils/utils/collections.py +33 -0
  1081. anyscale/shared_anyscale_utils/utils/id_gen.py +147 -0
  1082. anyscale/shared_anyscale_utils/utils/protected_string.py +89 -0
  1083. anyscale/shared_anyscale_utils/utils/ray_semver.py +81 -0
  1084. anyscale/snapshot.py +46 -0
  1085. anyscale/tables.py +82 -0
  1086. anyscale/util.py +1155 -0
  1087. anyscale/utils/__init__.py +0 -0
  1088. anyscale/utils/cli_version_check_util.py +63 -0
  1089. anyscale/utils/cloud_update_utils.py +862 -0
  1090. anyscale/utils/cloud_utils.py +317 -0
  1091. anyscale/utils/cluster_debug.py +191 -0
  1092. anyscale/utils/connect_helpers.py +155 -0
  1093. anyscale/utils/deprecation_util.py +32 -0
  1094. anyscale/utils/entity_arg_utils.py +43 -0
  1095. anyscale/utils/env_utils.py +17 -0
  1096. anyscale/utils/gcp_managed_setup_utils.py +888 -0
  1097. anyscale/utils/gcp_utils.py +312 -0
  1098. anyscale/utils/imports/__init__.py +0 -0
  1099. anyscale/utils/imports/all.py +13 -0
  1100. anyscale/utils/imports/azure.py +14 -0
  1101. anyscale/utils/imports/gcp.py +59 -0
  1102. anyscale/utils/logs_utils.py +141 -0
  1103. anyscale/utils/name_utils.py +33 -0
  1104. anyscale/utils/network_verification.py +153 -0
  1105. anyscale/utils/ray_utils.py +128 -0
  1106. anyscale/utils/ray_version_checker.py +48 -0
  1107. anyscale/utils/ray_version_utils.py +53 -0
  1108. anyscale/utils/runtime_env.py +487 -0
  1109. anyscale/utils/s3.py +92 -0
  1110. anyscale/utils/user_utils.py +17 -0
  1111. anyscale/utils/workload_types.py +7 -0
  1112. anyscale/utils/workspace_notification.py +39 -0
  1113. anyscale/utils/workspace_utils.py +65 -0
  1114. anyscale/version.py +1 -0
  1115. anyscale/webterminal/__init__.py +0 -0
  1116. anyscale/webterminal/bash-preexec.sh +370 -0
  1117. anyscale/webterminal/command_persister.py +164 -0
  1118. anyscale/webterminal/utils.py +176 -0
  1119. anyscale/webterminal/webterminal.py +311 -0
  1120. anyscale/workspace/__init__.py +270 -0
  1121. anyscale/workspace/_private/workspace_sdk.py +737 -0
  1122. anyscale/workspace/commands.py +472 -0
  1123. anyscale/workspace/models.py +296 -0
  1124. anyscale/workspace_utils.py +35 -0
  1125. anyscale-0.24.86.dist-info/LICENSE +68 -0
  1126. anyscale-0.24.86.dist-info/METADATA +82 -0
  1127. anyscale-0.24.86.dist-info/NOTICE +6 -0
  1128. anyscale-0.24.86.dist-info/RECORD +1131 -0
  1129. anyscale-0.24.86.dist-info/WHEEL +5 -0
  1130. anyscale-0.24.86.dist-info/entry_points.txt +2 -0
  1131. anyscale-0.24.86.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1109 @@
1
+ import warnings
2
+ from abc import ABCMeta
3
+ from copy import deepcopy
4
+ from enum import Enum
5
+ from functools import partial
6
+ from pathlib import Path
7
+ from types import FunctionType, prepare_class, resolve_bases
8
+ from typing import (
9
+ TYPE_CHECKING,
10
+ AbstractSet,
11
+ Any,
12
+ Callable,
13
+ ClassVar,
14
+ Dict,
15
+ List,
16
+ Mapping,
17
+ Optional,
18
+ Tuple,
19
+ Type,
20
+ TypeVar,
21
+ Union,
22
+ cast,
23
+ no_type_check,
24
+ overload,
25
+ )
26
+
27
+ from typing_extensions import dataclass_transform
28
+
29
+ from .class_validators import ValidatorGroup, extract_root_validators, extract_validators, inherit_validators
30
+ from .config import BaseConfig, Extra, inherit_config, prepare_config
31
+ from .error_wrappers import ErrorWrapper, ValidationError
32
+ from .errors import ConfigError, DictError, ExtraError, MissingError
33
+ from .fields import (
34
+ MAPPING_LIKE_SHAPES,
35
+ Field,
36
+ ModelField,
37
+ ModelPrivateAttr,
38
+ PrivateAttr,
39
+ Undefined,
40
+ is_finalvar_with_default_val,
41
+ )
42
+ from .json import custom_pydantic_encoder, pydantic_encoder
43
+ from .parse import Protocol, load_file, load_str_bytes
44
+ from .schema import default_ref_template, model_schema
45
+ from .types import PyObject, StrBytes
46
+ from .typing import (
47
+ AnyCallable,
48
+ get_args,
49
+ get_origin,
50
+ is_classvar,
51
+ is_namedtuple,
52
+ is_union,
53
+ resolve_annotations,
54
+ update_model_forward_refs,
55
+ )
56
+ from .utils import (
57
+ DUNDER_ATTRIBUTES,
58
+ ROOT_KEY,
59
+ ClassAttribute,
60
+ GetterDict,
61
+ Representation,
62
+ ValueItems,
63
+ generate_model_signature,
64
+ is_valid_field,
65
+ is_valid_private_name,
66
+ lenient_issubclass,
67
+ sequence_like,
68
+ smart_deepcopy,
69
+ unique_list,
70
+ validate_field_name,
71
+ )
72
+
73
+ if TYPE_CHECKING:
74
+ from inspect import Signature
75
+
76
+ from .class_validators import ValidatorListDict
77
+ from .types import ModelOrDc
78
+ from .typing import (
79
+ AbstractSetIntStr,
80
+ AnyClassMethod,
81
+ CallableGenerator,
82
+ DictAny,
83
+ DictStrAny,
84
+ MappingIntStrAny,
85
+ ReprArgs,
86
+ SetStr,
87
+ TupleGenerator,
88
+ )
89
+
90
+ Model = TypeVar('Model', bound='BaseModel')
91
+
92
+ __all__ = 'BaseModel', 'create_model', 'validate_model'
93
+
94
+ _T = TypeVar('_T')
95
+
96
+
97
+ def validate_custom_root_type(fields: Dict[str, ModelField]) -> None:
98
+ if len(fields) > 1:
99
+ raise ValueError(f'{ROOT_KEY} cannot be mixed with other fields')
100
+
101
+
102
+ def generate_hash_function(frozen: bool) -> Optional[Callable[[Any], int]]:
103
+ def hash_function(self_: Any) -> int:
104
+ return hash(self_.__class__) + hash(tuple(self_.__dict__.values()))
105
+
106
+ return hash_function if frozen else None
107
+
108
+
109
+ # If a field is of type `Callable`, its default value should be a function and cannot to ignored.
110
+ ANNOTATED_FIELD_UNTOUCHED_TYPES: Tuple[Any, ...] = (property, type, classmethod, staticmethod)
111
+ # When creating a `BaseModel` instance, we bypass all the methods, properties... added to the model
112
+ UNTOUCHED_TYPES: Tuple[Any, ...] = (FunctionType,) + ANNOTATED_FIELD_UNTOUCHED_TYPES
113
+ # Note `ModelMetaclass` refers to `BaseModel`, but is also used to *create* `BaseModel`, so we need to add this extra
114
+ # (somewhat hacky) boolean to keep track of whether we've created the `BaseModel` class yet, and therefore whether it's
115
+ # safe to refer to it. If it *hasn't* been created, we assume that the `__new__` call we're in the middle of is for
116
+ # the `BaseModel` class, since that's defined immediately after the metaclass.
117
+ _is_base_model_class_defined = False
118
+
119
+
120
+ @dataclass_transform(kw_only_default=True, field_specifiers=(Field,))
121
+ class ModelMetaclass(ABCMeta):
122
+ @no_type_check # noqa C901
123
+ def __new__(mcs, name, bases, namespace, **kwargs): # noqa C901
124
+ fields: Dict[str, ModelField] = {}
125
+ config = BaseConfig
126
+ validators: 'ValidatorListDict' = {}
127
+
128
+ pre_root_validators, post_root_validators = [], []
129
+ private_attributes: Dict[str, ModelPrivateAttr] = {}
130
+ base_private_attributes: Dict[str, ModelPrivateAttr] = {}
131
+ slots: SetStr = namespace.get('__slots__', ())
132
+ slots = {slots} if isinstance(slots, str) else set(slots)
133
+ class_vars: SetStr = set()
134
+ hash_func: Optional[Callable[[Any], int]] = None
135
+
136
+ for base in reversed(bases):
137
+ if _is_base_model_class_defined and issubclass(base, BaseModel) and base != BaseModel:
138
+ fields.update(smart_deepcopy(base.__fields__))
139
+ config = inherit_config(base.__config__, config)
140
+ validators = inherit_validators(base.__validators__, validators)
141
+ pre_root_validators += base.__pre_root_validators__
142
+ post_root_validators += base.__post_root_validators__
143
+ base_private_attributes.update(base.__private_attributes__)
144
+ class_vars.update(base.__class_vars__)
145
+ hash_func = base.__hash__
146
+
147
+ resolve_forward_refs = kwargs.pop('__resolve_forward_refs__', True)
148
+ allowed_config_kwargs: SetStr = {
149
+ key
150
+ for key in dir(config)
151
+ if not (key.startswith('__') and key.endswith('__')) # skip dunder methods and attributes
152
+ }
153
+ config_kwargs = {key: kwargs.pop(key) for key in kwargs.keys() & allowed_config_kwargs}
154
+ config_from_namespace = namespace.get('Config')
155
+ if config_kwargs and config_from_namespace:
156
+ raise TypeError('Specifying config in two places is ambiguous, use either Config attribute or class kwargs')
157
+ config = inherit_config(config_from_namespace, config, **config_kwargs)
158
+
159
+ validators = inherit_validators(extract_validators(namespace), validators)
160
+ vg = ValidatorGroup(validators)
161
+
162
+ for f in fields.values():
163
+ f.set_config(config)
164
+ extra_validators = vg.get_validators(f.name)
165
+ if extra_validators:
166
+ f.class_validators.update(extra_validators)
167
+ # re-run prepare to add extra validators
168
+ f.populate_validators()
169
+
170
+ prepare_config(config, name)
171
+
172
+ untouched_types = ANNOTATED_FIELD_UNTOUCHED_TYPES
173
+
174
+ def is_untouched(v: Any) -> bool:
175
+ return isinstance(v, untouched_types) or v.__class__.__name__ == 'cython_function_or_method'
176
+
177
+ if (namespace.get('__module__'), namespace.get('__qualname__')) != ('pydantic.main', 'BaseModel'):
178
+ annotations = resolve_annotations(namespace.get('__annotations__', {}), namespace.get('__module__', None))
179
+ # annotation only fields need to come first in fields
180
+ for ann_name, ann_type in annotations.items():
181
+ if is_classvar(ann_type):
182
+ class_vars.add(ann_name)
183
+ elif is_finalvar_with_default_val(ann_type, namespace.get(ann_name, Undefined)):
184
+ class_vars.add(ann_name)
185
+ elif is_valid_field(ann_name):
186
+ validate_field_name(bases, ann_name)
187
+ value = namespace.get(ann_name, Undefined)
188
+ allowed_types = get_args(ann_type) if is_union(get_origin(ann_type)) else (ann_type,)
189
+ if (
190
+ is_untouched(value)
191
+ and ann_type != PyObject
192
+ and not any(
193
+ lenient_issubclass(get_origin(allowed_type), Type) for allowed_type in allowed_types
194
+ )
195
+ ):
196
+ continue
197
+ fields[ann_name] = ModelField.infer(
198
+ name=ann_name,
199
+ value=value,
200
+ annotation=ann_type,
201
+ class_validators=vg.get_validators(ann_name),
202
+ config=config,
203
+ )
204
+ elif ann_name not in namespace and config.underscore_attrs_are_private:
205
+ private_attributes[ann_name] = PrivateAttr()
206
+
207
+ untouched_types = UNTOUCHED_TYPES + config.keep_untouched
208
+ for var_name, value in namespace.items():
209
+ can_be_changed = var_name not in class_vars and not is_untouched(value)
210
+ if isinstance(value, ModelPrivateAttr):
211
+ if not is_valid_private_name(var_name):
212
+ raise NameError(
213
+ f'Private attributes "{var_name}" must not be a valid field name; '
214
+ f'Use sunder or dunder names, e. g. "_{var_name}" or "__{var_name}__"'
215
+ )
216
+ private_attributes[var_name] = value
217
+ elif config.underscore_attrs_are_private and is_valid_private_name(var_name) and can_be_changed:
218
+ private_attributes[var_name] = PrivateAttr(default=value)
219
+ elif is_valid_field(var_name) and var_name not in annotations and can_be_changed:
220
+ validate_field_name(bases, var_name)
221
+ inferred = ModelField.infer(
222
+ name=var_name,
223
+ value=value,
224
+ annotation=annotations.get(var_name, Undefined),
225
+ class_validators=vg.get_validators(var_name),
226
+ config=config,
227
+ )
228
+ if var_name in fields:
229
+ if lenient_issubclass(inferred.type_, fields[var_name].type_):
230
+ inferred.type_ = fields[var_name].type_
231
+ else:
232
+ raise TypeError(
233
+ f'The type of {name}.{var_name} differs from the new default value; '
234
+ f'if you wish to change the type of this field, please use a type annotation'
235
+ )
236
+ fields[var_name] = inferred
237
+
238
+ _custom_root_type = ROOT_KEY in fields
239
+ if _custom_root_type:
240
+ validate_custom_root_type(fields)
241
+ vg.check_for_unused()
242
+ if config.json_encoders:
243
+ json_encoder = partial(custom_pydantic_encoder, config.json_encoders)
244
+ else:
245
+ json_encoder = pydantic_encoder
246
+ pre_rv_new, post_rv_new = extract_root_validators(namespace)
247
+
248
+ if hash_func is None:
249
+ hash_func = generate_hash_function(config.frozen)
250
+
251
+ exclude_from_namespace = fields | private_attributes.keys() | {'__slots__'}
252
+ new_namespace = {
253
+ '__config__': config,
254
+ '__fields__': fields,
255
+ '__exclude_fields__': {
256
+ name: field.field_info.exclude for name, field in fields.items() if field.field_info.exclude is not None
257
+ }
258
+ or None,
259
+ '__include_fields__': {
260
+ name: field.field_info.include for name, field in fields.items() if field.field_info.include is not None
261
+ }
262
+ or None,
263
+ '__validators__': vg.validators,
264
+ '__pre_root_validators__': unique_list(
265
+ pre_root_validators + pre_rv_new,
266
+ name_factory=lambda v: v.__name__,
267
+ ),
268
+ '__post_root_validators__': unique_list(
269
+ post_root_validators + post_rv_new,
270
+ name_factory=lambda skip_on_failure_and_v: skip_on_failure_and_v[1].__name__,
271
+ ),
272
+ '__schema_cache__': {},
273
+ '__json_encoder__': staticmethod(json_encoder),
274
+ '__custom_root_type__': _custom_root_type,
275
+ '__private_attributes__': {**base_private_attributes, **private_attributes},
276
+ '__slots__': slots | private_attributes.keys(),
277
+ '__hash__': hash_func,
278
+ '__class_vars__': class_vars,
279
+ **{n: v for n, v in namespace.items() if n not in exclude_from_namespace},
280
+ }
281
+
282
+ cls = super().__new__(mcs, name, bases, new_namespace, **kwargs)
283
+ # set __signature__ attr only for model class, but not for its instances
284
+ cls.__signature__ = ClassAttribute('__signature__', generate_model_signature(cls.__init__, fields, config))
285
+ if resolve_forward_refs:
286
+ cls.__try_update_forward_refs__()
287
+
288
+ # preserve `__set_name__` protocol defined in https://peps.python.org/pep-0487
289
+ # for attributes not in `new_namespace` (e.g. private attributes)
290
+ for name, obj in namespace.items():
291
+ if name not in new_namespace:
292
+ set_name = getattr(obj, '__set_name__', None)
293
+ if callable(set_name):
294
+ set_name(cls, name)
295
+
296
+ return cls
297
+
298
+ def __instancecheck__(self, instance: Any) -> bool:
299
+ """
300
+ Avoid calling ABC _abc_subclasscheck unless we're pretty sure.
301
+
302
+ See #3829 and python/cpython#92810
303
+ """
304
+ return hasattr(instance, '__fields__') and super().__instancecheck__(instance)
305
+
306
+
307
+ object_setattr = object.__setattr__
308
+
309
+
310
+ class BaseModel(Representation, metaclass=ModelMetaclass):
311
+ if TYPE_CHECKING:
312
+ # populated by the metaclass, defined here to help IDEs only
313
+ __fields__: ClassVar[Dict[str, ModelField]] = {}
314
+ __include_fields__: ClassVar[Optional[Mapping[str, Any]]] = None
315
+ __exclude_fields__: ClassVar[Optional[Mapping[str, Any]]] = None
316
+ __validators__: ClassVar[Dict[str, AnyCallable]] = {}
317
+ __pre_root_validators__: ClassVar[List[AnyCallable]]
318
+ __post_root_validators__: ClassVar[List[Tuple[bool, AnyCallable]]]
319
+ __config__: ClassVar[Type[BaseConfig]] = BaseConfig
320
+ __json_encoder__: ClassVar[Callable[[Any], Any]] = lambda x: x
321
+ __schema_cache__: ClassVar['DictAny'] = {}
322
+ __custom_root_type__: ClassVar[bool] = False
323
+ __signature__: ClassVar['Signature']
324
+ __private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]]
325
+ __class_vars__: ClassVar[SetStr]
326
+ __fields_set__: ClassVar[SetStr] = set()
327
+
328
+ Config = BaseConfig
329
+ __slots__ = ('__dict__', '__fields_set__')
330
+ __doc__ = '' # Null out the Representation docstring
331
+
332
+ def __init__(__pydantic_self__, **data: Any) -> None:
333
+ """
334
+ Create a new model by parsing and validating input data from keyword arguments.
335
+
336
+ Raises ValidationError if the input data cannot be parsed to form a valid model.
337
+ """
338
+ # Uses something other than `self` the first arg to allow "self" as a settable attribute
339
+ values, fields_set, validation_error = validate_model(__pydantic_self__.__class__, data)
340
+ if validation_error:
341
+ raise validation_error
342
+ try:
343
+ object_setattr(__pydantic_self__, '__dict__', values)
344
+ except TypeError as e:
345
+ raise TypeError(
346
+ 'Model values must be a dict; you may not have returned a dictionary from a root validator'
347
+ ) from e
348
+ object_setattr(__pydantic_self__, '__fields_set__', fields_set)
349
+ __pydantic_self__._init_private_attributes()
350
+
351
+ @no_type_check
352
+ def __setattr__(self, name, value): # noqa: C901 (ignore complexity)
353
+ if name in self.__private_attributes__ or name in DUNDER_ATTRIBUTES:
354
+ return object_setattr(self, name, value)
355
+
356
+ if self.__config__.extra is not Extra.allow and name not in self.__fields__:
357
+ raise ValueError(f'"{self.__class__.__name__}" object has no field "{name}"')
358
+ elif not self.__config__.allow_mutation or self.__config__.frozen:
359
+ raise TypeError(f'"{self.__class__.__name__}" is immutable and does not support item assignment')
360
+ elif name in self.__fields__ and self.__fields__[name].final:
361
+ raise TypeError(
362
+ f'"{self.__class__.__name__}" object "{name}" field is final and does not support reassignment'
363
+ )
364
+ elif self.__config__.validate_assignment:
365
+ new_values = {**self.__dict__, name: value}
366
+
367
+ for validator in self.__pre_root_validators__:
368
+ try:
369
+ new_values = validator(self.__class__, new_values)
370
+ except (ValueError, TypeError, AssertionError) as exc:
371
+ raise ValidationError([ErrorWrapper(exc, loc=ROOT_KEY)], self.__class__)
372
+
373
+ known_field = self.__fields__.get(name, None)
374
+ if known_field:
375
+ # We want to
376
+ # - make sure validators are called without the current value for this field inside `values`
377
+ # - keep other values (e.g. submodels) untouched (using `BaseModel.dict()` will change them into dicts)
378
+ # - keep the order of the fields
379
+ if not known_field.field_info.allow_mutation:
380
+ raise TypeError(f'"{known_field.name}" has allow_mutation set to False and cannot be assigned')
381
+ dict_without_original_value = {k: v for k, v in self.__dict__.items() if k != name}
382
+ value, error_ = known_field.validate(value, dict_without_original_value, loc=name, cls=self.__class__)
383
+ if error_:
384
+ raise ValidationError([error_], self.__class__)
385
+ else:
386
+ new_values[name] = value
387
+
388
+ errors = []
389
+ for skip_on_failure, validator in self.__post_root_validators__:
390
+ if skip_on_failure and errors:
391
+ continue
392
+ try:
393
+ new_values = validator(self.__class__, new_values)
394
+ except (ValueError, TypeError, AssertionError) as exc:
395
+ errors.append(ErrorWrapper(exc, loc=ROOT_KEY))
396
+ if errors:
397
+ raise ValidationError(errors, self.__class__)
398
+
399
+ # update the whole __dict__ as other values than just `value`
400
+ # may be changed (e.g. with `root_validator`)
401
+ object_setattr(self, '__dict__', new_values)
402
+ else:
403
+ self.__dict__[name] = value
404
+
405
+ self.__fields_set__.add(name)
406
+
407
+ def __getstate__(self) -> 'DictAny':
408
+ private_attrs = ((k, getattr(self, k, Undefined)) for k in self.__private_attributes__)
409
+ return {
410
+ '__dict__': self.__dict__,
411
+ '__fields_set__': self.__fields_set__,
412
+ '__private_attribute_values__': {k: v for k, v in private_attrs if v is not Undefined},
413
+ }
414
+
415
+ def __setstate__(self, state: 'DictAny') -> None:
416
+ object_setattr(self, '__dict__', state['__dict__'])
417
+ object_setattr(self, '__fields_set__', state['__fields_set__'])
418
+ for name, value in state.get('__private_attribute_values__', {}).items():
419
+ object_setattr(self, name, value)
420
+
421
+ def _init_private_attributes(self) -> None:
422
+ for name, private_attr in self.__private_attributes__.items():
423
+ default = private_attr.get_default()
424
+ if default is not Undefined:
425
+ object_setattr(self, name, default)
426
+
427
+ def dict(
428
+ self,
429
+ *,
430
+ include: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
431
+ exclude: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
432
+ by_alias: bool = False,
433
+ skip_defaults: Optional[bool] = None,
434
+ exclude_unset: bool = False,
435
+ exclude_defaults: bool = False,
436
+ exclude_none: bool = False,
437
+ ) -> 'DictStrAny':
438
+ """
439
+ Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
440
+
441
+ """
442
+ if skip_defaults is not None:
443
+ warnings.warn(
444
+ f'{self.__class__.__name__}.dict(): "skip_defaults" is deprecated and replaced by "exclude_unset"',
445
+ DeprecationWarning,
446
+ )
447
+ exclude_unset = skip_defaults
448
+
449
+ return dict(
450
+ self._iter(
451
+ to_dict=True,
452
+ by_alias=by_alias,
453
+ include=include,
454
+ exclude=exclude,
455
+ exclude_unset=exclude_unset,
456
+ exclude_defaults=exclude_defaults,
457
+ exclude_none=exclude_none,
458
+ )
459
+ )
460
+
461
+ def json(
462
+ self,
463
+ *,
464
+ include: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
465
+ exclude: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
466
+ by_alias: bool = False,
467
+ skip_defaults: Optional[bool] = None,
468
+ exclude_unset: bool = False,
469
+ exclude_defaults: bool = False,
470
+ exclude_none: bool = False,
471
+ encoder: Optional[Callable[[Any], Any]] = None,
472
+ models_as_dict: bool = True,
473
+ **dumps_kwargs: Any,
474
+ ) -> str:
475
+ """
476
+ Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`.
477
+
478
+ `encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`.
479
+ """
480
+ if skip_defaults is not None:
481
+ warnings.warn(
482
+ f'{self.__class__.__name__}.json(): "skip_defaults" is deprecated and replaced by "exclude_unset"',
483
+ DeprecationWarning,
484
+ )
485
+ exclude_unset = skip_defaults
486
+ encoder = cast(Callable[[Any], Any], encoder or self.__json_encoder__)
487
+
488
+ # We don't directly call `self.dict()`, which does exactly this with `to_dict=True`
489
+ # because we want to be able to keep raw `BaseModel` instances and not as `dict`.
490
+ # This allows users to write custom JSON encoders for given `BaseModel` classes.
491
+ data = dict(
492
+ self._iter(
493
+ to_dict=models_as_dict,
494
+ by_alias=by_alias,
495
+ include=include,
496
+ exclude=exclude,
497
+ exclude_unset=exclude_unset,
498
+ exclude_defaults=exclude_defaults,
499
+ exclude_none=exclude_none,
500
+ )
501
+ )
502
+ if self.__custom_root_type__:
503
+ data = data[ROOT_KEY]
504
+ return self.__config__.json_dumps(data, default=encoder, **dumps_kwargs)
505
+
506
+ @classmethod
507
+ def _enforce_dict_if_root(cls, obj: Any) -> Any:
508
+ if cls.__custom_root_type__ and (
509
+ not (isinstance(obj, dict) and obj.keys() == {ROOT_KEY})
510
+ and not (isinstance(obj, BaseModel) and obj.__fields__.keys() == {ROOT_KEY})
511
+ or cls.__fields__[ROOT_KEY].shape in MAPPING_LIKE_SHAPES
512
+ ):
513
+ return {ROOT_KEY: obj}
514
+ else:
515
+ return obj
516
+
517
+ @classmethod
518
+ def parse_obj(cls: Type['Model'], obj: Any) -> 'Model':
519
+ obj = cls._enforce_dict_if_root(obj)
520
+ if not isinstance(obj, dict):
521
+ try:
522
+ obj = dict(obj)
523
+ except (TypeError, ValueError) as e:
524
+ exc = TypeError(f'{cls.__name__} expected dict not {obj.__class__.__name__}')
525
+ raise ValidationError([ErrorWrapper(exc, loc=ROOT_KEY)], cls) from e
526
+ return cls(**obj)
527
+
528
+ @classmethod
529
+ def parse_raw(
530
+ cls: Type['Model'],
531
+ b: StrBytes,
532
+ *,
533
+ content_type: str = None,
534
+ encoding: str = 'utf8',
535
+ proto: Protocol = None,
536
+ allow_pickle: bool = False,
537
+ ) -> 'Model':
538
+ try:
539
+ obj = load_str_bytes(
540
+ b,
541
+ proto=proto,
542
+ content_type=content_type,
543
+ encoding=encoding,
544
+ allow_pickle=allow_pickle,
545
+ json_loads=cls.__config__.json_loads,
546
+ )
547
+ except (ValueError, TypeError, UnicodeDecodeError) as e:
548
+ raise ValidationError([ErrorWrapper(e, loc=ROOT_KEY)], cls)
549
+ return cls.parse_obj(obj)
550
+
551
+ @classmethod
552
+ def parse_file(
553
+ cls: Type['Model'],
554
+ path: Union[str, Path],
555
+ *,
556
+ content_type: str = None,
557
+ encoding: str = 'utf8',
558
+ proto: Protocol = None,
559
+ allow_pickle: bool = False,
560
+ ) -> 'Model':
561
+ obj = load_file(
562
+ path,
563
+ proto=proto,
564
+ content_type=content_type,
565
+ encoding=encoding,
566
+ allow_pickle=allow_pickle,
567
+ json_loads=cls.__config__.json_loads,
568
+ )
569
+ return cls.parse_obj(obj)
570
+
571
+ @classmethod
572
+ def from_orm(cls: Type['Model'], obj: Any) -> 'Model':
573
+ if not cls.__config__.orm_mode:
574
+ raise ConfigError('You must have the config attribute orm_mode=True to use from_orm')
575
+ obj = {ROOT_KEY: obj} if cls.__custom_root_type__ else cls._decompose_class(obj)
576
+ m = cls.__new__(cls)
577
+ values, fields_set, validation_error = validate_model(cls, obj)
578
+ if validation_error:
579
+ raise validation_error
580
+ object_setattr(m, '__dict__', values)
581
+ object_setattr(m, '__fields_set__', fields_set)
582
+ m._init_private_attributes()
583
+ return m
584
+
585
+ @classmethod
586
+ def construct(cls: Type['Model'], _fields_set: Optional['SetStr'] = None, **values: Any) -> 'Model':
587
+ """
588
+ Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.
589
+ Default values are respected, but no other validation is performed.
590
+ Behaves as if `Config.extra = 'allow'` was set since it adds all passed values
591
+ """
592
+ m = cls.__new__(cls)
593
+ fields_values: Dict[str, Any] = {}
594
+ for name, field in cls.__fields__.items():
595
+ if field.alt_alias and field.alias in values:
596
+ fields_values[name] = values[field.alias]
597
+ elif name in values:
598
+ fields_values[name] = values[name]
599
+ elif not field.required:
600
+ fields_values[name] = field.get_default()
601
+ fields_values.update(values)
602
+ object_setattr(m, '__dict__', fields_values)
603
+ if _fields_set is None:
604
+ _fields_set = set(values.keys())
605
+ object_setattr(m, '__fields_set__', _fields_set)
606
+ m._init_private_attributes()
607
+ return m
608
+
609
+ def _copy_and_set_values(self: 'Model', values: 'DictStrAny', fields_set: 'SetStr', *, deep: bool) -> 'Model':
610
+ if deep:
611
+ # chances of having empty dict here are quite low for using smart_deepcopy
612
+ values = deepcopy(values)
613
+
614
+ cls = self.__class__
615
+ m = cls.__new__(cls)
616
+ object_setattr(m, '__dict__', values)
617
+ object_setattr(m, '__fields_set__', fields_set)
618
+ for name in self.__private_attributes__:
619
+ value = getattr(self, name, Undefined)
620
+ if value is not Undefined:
621
+ if deep:
622
+ value = deepcopy(value)
623
+ object_setattr(m, name, value)
624
+
625
+ return m
626
+
627
+ def copy(
628
+ self: 'Model',
629
+ *,
630
+ include: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
631
+ exclude: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
632
+ update: Optional['DictStrAny'] = None,
633
+ deep: bool = False,
634
+ ) -> 'Model':
635
+ """
636
+ Duplicate a model, optionally choose which fields to include, exclude and change.
637
+
638
+ :param include: fields to include in new model
639
+ :param exclude: fields to exclude from new model, as with values this takes precedence over include
640
+ :param update: values to change/add in the new model. Note: the data is not validated before creating
641
+ the new model: you should trust this data
642
+ :param deep: set to `True` to make a deep copy of the model
643
+ :return: new model instance
644
+ """
645
+
646
+ values = dict(
647
+ self._iter(to_dict=False, by_alias=False, include=include, exclude=exclude, exclude_unset=False),
648
+ **(update or {}),
649
+ )
650
+
651
+ # new `__fields_set__` can have unset optional fields with a set value in `update` kwarg
652
+ if update:
653
+ fields_set = self.__fields_set__ | update.keys()
654
+ else:
655
+ fields_set = set(self.__fields_set__)
656
+
657
+ return self._copy_and_set_values(values, fields_set, deep=deep)
658
+
659
+ @classmethod
660
+ def schema(cls, by_alias: bool = True, ref_template: str = default_ref_template) -> 'DictStrAny':
661
+ cached = cls.__schema_cache__.get((by_alias, ref_template))
662
+ if cached is not None:
663
+ return cached
664
+ s = model_schema(cls, by_alias=by_alias, ref_template=ref_template)
665
+ cls.__schema_cache__[(by_alias, ref_template)] = s
666
+ return s
667
+
668
+ @classmethod
669
+ def schema_json(
670
+ cls, *, by_alias: bool = True, ref_template: str = default_ref_template, **dumps_kwargs: Any
671
+ ) -> str:
672
+ from .json import pydantic_encoder
673
+
674
+ return cls.__config__.json_dumps(
675
+ cls.schema(by_alias=by_alias, ref_template=ref_template), default=pydantic_encoder, **dumps_kwargs
676
+ )
677
+
678
+ @classmethod
679
+ def __get_validators__(cls) -> 'CallableGenerator':
680
+ yield cls.validate
681
+
682
+ @classmethod
683
+ def validate(cls: Type['Model'], value: Any) -> 'Model':
684
+ if isinstance(value, cls):
685
+ copy_on_model_validation = cls.__config__.copy_on_model_validation
686
+ # whether to deep or shallow copy the model on validation, None means do not copy
687
+ deep_copy: Optional[bool] = None
688
+ if copy_on_model_validation not in {'deep', 'shallow', 'none'}:
689
+ # Warn about deprecated behavior
690
+ warnings.warn(
691
+ "`copy_on_model_validation` should be a string: 'deep', 'shallow' or 'none'", DeprecationWarning
692
+ )
693
+ if copy_on_model_validation:
694
+ deep_copy = False
695
+
696
+ if copy_on_model_validation == 'shallow':
697
+ # shallow copy
698
+ deep_copy = False
699
+ elif copy_on_model_validation == 'deep':
700
+ # deep copy
701
+ deep_copy = True
702
+
703
+ if deep_copy is None:
704
+ return value
705
+ else:
706
+ return value._copy_and_set_values(value.__dict__, value.__fields_set__, deep=deep_copy)
707
+
708
+ value = cls._enforce_dict_if_root(value)
709
+
710
+ if isinstance(value, dict):
711
+ return cls(**value)
712
+ elif cls.__config__.orm_mode:
713
+ return cls.from_orm(value)
714
+ else:
715
+ try:
716
+ value_as_dict = dict(value)
717
+ except (TypeError, ValueError) as e:
718
+ raise DictError() from e
719
+ return cls(**value_as_dict)
720
+
721
+ @classmethod
722
+ def _decompose_class(cls: Type['Model'], obj: Any) -> GetterDict:
723
+ if isinstance(obj, GetterDict):
724
+ return obj
725
+ return cls.__config__.getter_dict(obj)
726
+
727
+ @classmethod
728
+ @no_type_check
729
+ def _get_value(
730
+ cls,
731
+ v: Any,
732
+ to_dict: bool,
733
+ by_alias: bool,
734
+ include: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']],
735
+ exclude: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']],
736
+ exclude_unset: bool,
737
+ exclude_defaults: bool,
738
+ exclude_none: bool,
739
+ ) -> Any:
740
+
741
+ if isinstance(v, BaseModel):
742
+ if to_dict:
743
+ v_dict = v.dict(
744
+ by_alias=by_alias,
745
+ exclude_unset=exclude_unset,
746
+ exclude_defaults=exclude_defaults,
747
+ include=include,
748
+ exclude=exclude,
749
+ exclude_none=exclude_none,
750
+ )
751
+ if ROOT_KEY in v_dict:
752
+ return v_dict[ROOT_KEY]
753
+ return v_dict
754
+ else:
755
+ return v.copy(include=include, exclude=exclude)
756
+
757
+ value_exclude = ValueItems(v, exclude) if exclude else None
758
+ value_include = ValueItems(v, include) if include else None
759
+
760
+ if isinstance(v, dict):
761
+ return {
762
+ k_: cls._get_value(
763
+ v_,
764
+ to_dict=to_dict,
765
+ by_alias=by_alias,
766
+ exclude_unset=exclude_unset,
767
+ exclude_defaults=exclude_defaults,
768
+ include=value_include and value_include.for_element(k_),
769
+ exclude=value_exclude and value_exclude.for_element(k_),
770
+ exclude_none=exclude_none,
771
+ )
772
+ for k_, v_ in v.items()
773
+ if (not value_exclude or not value_exclude.is_excluded(k_))
774
+ and (not value_include or value_include.is_included(k_))
775
+ }
776
+
777
+ elif sequence_like(v):
778
+ seq_args = (
779
+ cls._get_value(
780
+ v_,
781
+ to_dict=to_dict,
782
+ by_alias=by_alias,
783
+ exclude_unset=exclude_unset,
784
+ exclude_defaults=exclude_defaults,
785
+ include=value_include and value_include.for_element(i),
786
+ exclude=value_exclude and value_exclude.for_element(i),
787
+ exclude_none=exclude_none,
788
+ )
789
+ for i, v_ in enumerate(v)
790
+ if (not value_exclude or not value_exclude.is_excluded(i))
791
+ and (not value_include or value_include.is_included(i))
792
+ )
793
+
794
+ return v.__class__(*seq_args) if is_namedtuple(v.__class__) else v.__class__(seq_args)
795
+
796
+ elif isinstance(v, Enum) and getattr(cls.Config, 'use_enum_values', False):
797
+ return v.value
798
+
799
+ else:
800
+ return v
801
+
802
+ @classmethod
803
+ def __try_update_forward_refs__(cls, **localns: Any) -> None:
804
+ """
805
+ Same as update_forward_refs but will not raise exception
806
+ when forward references are not defined.
807
+ """
808
+ update_model_forward_refs(cls, cls.__fields__.values(), cls.__config__.json_encoders, localns, (NameError,))
809
+
810
+ @classmethod
811
+ def update_forward_refs(cls, **localns: Any) -> None:
812
+ """
813
+ Try to update ForwardRefs on fields based on this Model, globalns and localns.
814
+ """
815
+ update_model_forward_refs(cls, cls.__fields__.values(), cls.__config__.json_encoders, localns)
816
+
817
+ def __iter__(self) -> 'TupleGenerator':
818
+ """
819
+ so `dict(model)` works
820
+ """
821
+ yield from self.__dict__.items()
822
+
823
+ def _iter(
824
+ self,
825
+ to_dict: bool = False,
826
+ by_alias: bool = False,
827
+ include: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
828
+ exclude: Optional[Union['AbstractSetIntStr', 'MappingIntStrAny']] = None,
829
+ exclude_unset: bool = False,
830
+ exclude_defaults: bool = False,
831
+ exclude_none: bool = False,
832
+ ) -> 'TupleGenerator':
833
+
834
+ # Merge field set excludes with explicit exclude parameter with explicit overriding field set options.
835
+ # The extra "is not None" guards are not logically necessary but optimizes performance for the simple case.
836
+ if exclude is not None or self.__exclude_fields__ is not None:
837
+ exclude = ValueItems.merge(self.__exclude_fields__, exclude)
838
+
839
+ if include is not None or self.__include_fields__ is not None:
840
+ include = ValueItems.merge(self.__include_fields__, include, intersect=True)
841
+
842
+ allowed_keys = self._calculate_keys(
843
+ include=include, exclude=exclude, exclude_unset=exclude_unset # type: ignore
844
+ )
845
+ if allowed_keys is None and not (to_dict or by_alias or exclude_unset or exclude_defaults or exclude_none):
846
+ # huge boost for plain _iter()
847
+ yield from self.__dict__.items()
848
+ return
849
+
850
+ value_exclude = ValueItems(self, exclude) if exclude is not None else None
851
+ value_include = ValueItems(self, include) if include is not None else None
852
+
853
+ for field_key, v in self.__dict__.items():
854
+ if (allowed_keys is not None and field_key not in allowed_keys) or (exclude_none and v is None):
855
+ continue
856
+
857
+ if exclude_defaults:
858
+ model_field = self.__fields__.get(field_key)
859
+ if not getattr(model_field, 'required', True) and getattr(model_field, 'default', _missing) == v:
860
+ continue
861
+
862
+ if by_alias and field_key in self.__fields__:
863
+ dict_key = self.__fields__[field_key].alias
864
+ else:
865
+ dict_key = field_key
866
+
867
+ if to_dict or value_include or value_exclude:
868
+ v = self._get_value(
869
+ v,
870
+ to_dict=to_dict,
871
+ by_alias=by_alias,
872
+ include=value_include and value_include.for_element(field_key),
873
+ exclude=value_exclude and value_exclude.for_element(field_key),
874
+ exclude_unset=exclude_unset,
875
+ exclude_defaults=exclude_defaults,
876
+ exclude_none=exclude_none,
877
+ )
878
+ yield dict_key, v
879
+
880
+ def _calculate_keys(
881
+ self,
882
+ include: Optional['MappingIntStrAny'],
883
+ exclude: Optional['MappingIntStrAny'],
884
+ exclude_unset: bool,
885
+ update: Optional['DictStrAny'] = None,
886
+ ) -> Optional[AbstractSet[str]]:
887
+ if include is None and exclude is None and exclude_unset is False:
888
+ return None
889
+
890
+ keys: AbstractSet[str]
891
+ if exclude_unset:
892
+ keys = self.__fields_set__.copy()
893
+ else:
894
+ keys = self.__dict__.keys()
895
+
896
+ if include is not None:
897
+ keys &= include.keys()
898
+
899
+ if update:
900
+ keys -= update.keys()
901
+
902
+ if exclude:
903
+ keys -= {k for k, v in exclude.items() if ValueItems.is_true(v)}
904
+
905
+ return keys
906
+
907
+ def __eq__(self, other: Any) -> bool:
908
+ if isinstance(other, BaseModel):
909
+ return self.dict() == other.dict()
910
+ else:
911
+ return self.dict() == other
912
+
913
+ def __repr_args__(self) -> 'ReprArgs':
914
+ return [
915
+ (k, v)
916
+ for k, v in self.__dict__.items()
917
+ if k not in DUNDER_ATTRIBUTES and (k not in self.__fields__ or self.__fields__[k].field_info.repr)
918
+ ]
919
+
920
+
921
+ _is_base_model_class_defined = True
922
+
923
+
924
+ @overload
925
+ def create_model(
926
+ __model_name: str,
927
+ *,
928
+ __config__: Optional[Type[BaseConfig]] = None,
929
+ __base__: None = None,
930
+ __module__: str = __name__,
931
+ __validators__: Dict[str, 'AnyClassMethod'] = None,
932
+ __cls_kwargs__: Dict[str, Any] = None,
933
+ **field_definitions: Any,
934
+ ) -> Type['BaseModel']:
935
+ ...
936
+
937
+
938
+ @overload
939
+ def create_model(
940
+ __model_name: str,
941
+ *,
942
+ __config__: Optional[Type[BaseConfig]] = None,
943
+ __base__: Union[Type['Model'], Tuple[Type['Model'], ...]],
944
+ __module__: str = __name__,
945
+ __validators__: Dict[str, 'AnyClassMethod'] = None,
946
+ __cls_kwargs__: Dict[str, Any] = None,
947
+ **field_definitions: Any,
948
+ ) -> Type['Model']:
949
+ ...
950
+
951
+
952
+ def create_model(
953
+ __model_name: str,
954
+ *,
955
+ __config__: Optional[Type[BaseConfig]] = None,
956
+ __base__: Union[None, Type['Model'], Tuple[Type['Model'], ...]] = None,
957
+ __module__: str = __name__,
958
+ __validators__: Dict[str, 'AnyClassMethod'] = None,
959
+ __cls_kwargs__: Dict[str, Any] = None,
960
+ __slots__: Optional[Tuple[str, ...]] = None,
961
+ **field_definitions: Any,
962
+ ) -> Type['Model']:
963
+ """
964
+ Dynamically create a model.
965
+ :param __model_name: name of the created model
966
+ :param __config__: config class to use for the new model
967
+ :param __base__: base class for the new model to inherit from
968
+ :param __module__: module of the created model
969
+ :param __validators__: a dict of method names and @validator class methods
970
+ :param __cls_kwargs__: a dict for class creation
971
+ :param __slots__: Deprecated, `__slots__` should not be passed to `create_model`
972
+ :param field_definitions: fields of the model (or extra fields if a base is supplied)
973
+ in the format `<name>=(<type>, <default default>)` or `<name>=<default value>, e.g.
974
+ `foobar=(str, ...)` or `foobar=123`, or, for complex use-cases, in the format
975
+ `<name>=<Field>` or `<name>=(<type>, <FieldInfo>)`, e.g.
976
+ `foo=Field(datetime, default_factory=datetime.utcnow, alias='bar')` or
977
+ `foo=(str, FieldInfo(title='Foo'))`
978
+ """
979
+ if __slots__ is not None:
980
+ # __slots__ will be ignored from here on
981
+ warnings.warn('__slots__ should not be passed to create_model', RuntimeWarning)
982
+
983
+ if __base__ is not None:
984
+ if __config__ is not None:
985
+ raise ConfigError('to avoid confusion __config__ and __base__ cannot be used together')
986
+ if not isinstance(__base__, tuple):
987
+ __base__ = (__base__,)
988
+ else:
989
+ __base__ = (cast(Type['Model'], BaseModel),)
990
+
991
+ __cls_kwargs__ = __cls_kwargs__ or {}
992
+
993
+ fields = {}
994
+ annotations = {}
995
+
996
+ for f_name, f_def in field_definitions.items():
997
+ if not is_valid_field(f_name):
998
+ warnings.warn(f'fields may not start with an underscore, ignoring "{f_name}"', RuntimeWarning)
999
+ if isinstance(f_def, tuple):
1000
+ try:
1001
+ f_annotation, f_value = f_def
1002
+ except ValueError as e:
1003
+ raise ConfigError(
1004
+ 'field definitions should either be a tuple of (<type>, <default>) or just a '
1005
+ 'default value, unfortunately this means tuples as '
1006
+ 'default values are not allowed'
1007
+ ) from e
1008
+ else:
1009
+ f_annotation, f_value = None, f_def
1010
+
1011
+ if f_annotation:
1012
+ annotations[f_name] = f_annotation
1013
+ fields[f_name] = f_value
1014
+
1015
+ namespace: 'DictStrAny' = {'__annotations__': annotations, '__module__': __module__}
1016
+ if __validators__:
1017
+ namespace.update(__validators__)
1018
+ namespace.update(fields)
1019
+ if __config__:
1020
+ namespace['Config'] = inherit_config(__config__, BaseConfig)
1021
+ resolved_bases = resolve_bases(__base__)
1022
+ meta, ns, kwds = prepare_class(__model_name, resolved_bases, kwds=__cls_kwargs__)
1023
+ if resolved_bases is not __base__:
1024
+ ns['__orig_bases__'] = __base__
1025
+ namespace.update(ns)
1026
+ return meta(__model_name, resolved_bases, namespace, **kwds)
1027
+
1028
+
1029
+ _missing = object()
1030
+
1031
+
1032
+ def validate_model( # noqa: C901 (ignore complexity)
1033
+ model: Type[BaseModel], input_data: 'DictStrAny', cls: 'ModelOrDc' = None
1034
+ ) -> Tuple['DictStrAny', 'SetStr', Optional[ValidationError]]:
1035
+ """
1036
+ validate data against a model.
1037
+ """
1038
+ values = {}
1039
+ errors = []
1040
+ # input_data names, possibly alias
1041
+ names_used = set()
1042
+ # field names, never aliases
1043
+ fields_set = set()
1044
+ config = model.__config__
1045
+ check_extra = config.extra is not Extra.ignore
1046
+ cls_ = cls or model
1047
+
1048
+ for validator in model.__pre_root_validators__:
1049
+ try:
1050
+ input_data = validator(cls_, input_data)
1051
+ except (ValueError, TypeError, AssertionError) as exc:
1052
+ return {}, set(), ValidationError([ErrorWrapper(exc, loc=ROOT_KEY)], cls_)
1053
+
1054
+ for name, field in model.__fields__.items():
1055
+ value = input_data.get(field.alias, _missing)
1056
+ using_name = False
1057
+ if value is _missing and config.allow_population_by_field_name and field.alt_alias:
1058
+ value = input_data.get(field.name, _missing)
1059
+ using_name = True
1060
+
1061
+ if value is _missing:
1062
+ if field.required:
1063
+ errors.append(ErrorWrapper(MissingError(), loc=field.alias))
1064
+ continue
1065
+
1066
+ value = field.get_default()
1067
+
1068
+ if not config.validate_all and not field.validate_always:
1069
+ values[name] = value
1070
+ continue
1071
+ else:
1072
+ fields_set.add(name)
1073
+ if check_extra:
1074
+ names_used.add(field.name if using_name else field.alias)
1075
+
1076
+ v_, errors_ = field.validate(value, values, loc=field.alias, cls=cls_)
1077
+ if isinstance(errors_, ErrorWrapper):
1078
+ errors.append(errors_)
1079
+ elif isinstance(errors_, list):
1080
+ errors.extend(errors_)
1081
+ else:
1082
+ values[name] = v_
1083
+
1084
+ if check_extra:
1085
+ if isinstance(input_data, GetterDict):
1086
+ extra = input_data.extra_keys() - names_used
1087
+ else:
1088
+ extra = input_data.keys() - names_used
1089
+ if extra:
1090
+ fields_set |= extra
1091
+ if config.extra is Extra.allow:
1092
+ for f in extra:
1093
+ values[f] = input_data[f]
1094
+ else:
1095
+ for f in sorted(extra):
1096
+ errors.append(ErrorWrapper(ExtraError(), loc=f))
1097
+
1098
+ for skip_on_failure, validator in model.__post_root_validators__:
1099
+ if skip_on_failure and errors:
1100
+ continue
1101
+ try:
1102
+ values = validator(cls_, values)
1103
+ except (ValueError, TypeError, AssertionError) as exc:
1104
+ errors.append(ErrorWrapper(exc, loc=ROOT_KEY))
1105
+
1106
+ if errors:
1107
+ return values, fields_set, ValidationError(errors, cls_)
1108
+ else:
1109
+ return values, fields_set, None