snowflake-ml-python 1.52.0__tar.gz → 1.53.0__tar.gz

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 (551) hide show
  1. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/CHANGELOG.md +41 -4
  2. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/PKG-INFO +42 -5
  3. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/exceptions.py +8 -2
  4. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/platform_capabilities.py +17 -0
  5. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_store.py +145 -5
  6. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view.py +29 -9
  7. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/online_service.py +6 -1
  8. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/__init__.py +3 -0
  9. snowflake_ml_python-1.53.0/snowflake/ml/jobs/_interop/results.py +99 -0
  10. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/constants.py +8 -0
  11. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/payload_utils.py +1 -1
  12. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +5 -21
  13. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/job.py +297 -2
  14. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/job_definition.py +38 -0
  15. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/manager.py +15 -0
  16. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/model_version_impl.py +2 -0
  17. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/model_ops.py +26 -5
  18. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/model_version.py +10 -2
  19. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/service.py +10 -2
  20. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +4 -0
  21. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +2 -0
  22. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +6 -1
  23. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +6 -1
  24. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +31 -0
  25. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/version.py +1 -1
  26. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/PKG-INFO +42 -5
  27. snowflake_ml_python-1.52.0/snowflake/ml/jobs/_interop/results.py +0 -51
  28. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/LICENSE.txt +0 -0
  29. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/README.md +0 -0
  30. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/pyproject.toml +0 -0
  31. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/setup.cfg +0 -0
  32. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/__init__.py +0 -0
  33. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_classify_text.py +0 -0
  34. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_complete.py +0 -0
  35. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  36. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_embed_text_768.py +0 -0
  37. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_extract_answer.py +0 -0
  38. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_finetune.py +0 -0
  39. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_sentiment.py +0 -0
  40. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_sse_client.py +0 -0
  41. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_summarize.py +0 -0
  42. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_translate.py +0 -0
  43. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_util.py +0 -0
  44. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/env.py +0 -0
  45. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/env_utils.py +0 -0
  46. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  47. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  48. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  49. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  50. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  51. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  52. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  53. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  54. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/file_utils.py +0 -0
  55. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  56. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  57. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  58. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  59. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/init_utils.py +0 -0
  60. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  61. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  62. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  63. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/telemetry.py +0 -0
  64. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/type_utils.py +0 -0
  65. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  66. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  67. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  68. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  69. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  70. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  71. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  72. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  73. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  74. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  75. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/result.py +0 -0
  76. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  77. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  78. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  79. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  80. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  81. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  82. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  83. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/url.py +0 -0
  84. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/__init__.py +0 -0
  85. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  86. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_connector.py +0 -0
  87. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_ingestor.py +0 -0
  88. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_source.py +0 -0
  89. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  90. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/torch_utils.py +0 -0
  91. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/__init__.py +0 -0
  92. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset.py +0 -0
  93. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  94. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  95. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  96. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/__init__.py +0 -0
  97. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  98. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  99. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  100. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  101. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  102. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  103. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  104. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  105. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  106. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  107. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_source_info.py +0 -0
  108. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  109. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  110. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  111. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  112. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/utils.py +0 -0
  113. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/__init__.py +0 -0
  114. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
  115. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  116. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  117. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/entity.py +0 -0
  118. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  119. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  120. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  121. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  122. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  123. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  124. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  125. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  126. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  127. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  128. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  129. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  130. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  131. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  132. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  133. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  134. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  135. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  136. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  137. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  138. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  139. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  140. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature.py +0 -0
  141. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_group.py +0 -0
  142. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
  143. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
  144. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  145. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  146. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
  147. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
  148. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
  149. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
  150. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
  151. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/request_source.py +0 -0
  152. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  153. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
  154. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  155. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  156. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
  157. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  158. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  159. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  160. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
  161. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  162. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/fileset.py +0 -0
  163. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  164. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/snowfs.py +0 -0
  165. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  166. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  167. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  168. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  169. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  170. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  171. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  172. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  173. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  174. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  175. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  176. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  177. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  178. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
  179. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  180. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  181. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  182. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  183. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  184. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  185. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  186. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  187. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/decorators.py +0 -0
  188. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/lineage/__init__.py +0 -0
  189. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  190. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/__init__.py +0 -0
  191. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +0 -0
  192. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
  193. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
  194. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
  195. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_task_v2.py +0 -0
  196. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  197. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  198. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  199. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
  200. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  201. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
  202. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  203. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
  204. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  205. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
  206. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  207. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  208. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  209. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  210. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  211. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  212. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
  213. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  214. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  215. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  216. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  217. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
  218. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  219. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
  220. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  221. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  222. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  223. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  224. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  225. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  226. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  227. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  228. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  229. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
  230. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
  231. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  232. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
  233. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
  234. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
  235. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
  236. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
  237. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
  238. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
  239. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
  240. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
  241. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
  242. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
  243. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
  244. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
  245. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
  246. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
  247. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
  248. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
  249. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
  250. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
  251. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
  252. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
  253. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
  254. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
  255. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
  256. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
  257. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
  258. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
  259. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
  260. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  261. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  262. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  263. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  264. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  265. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  266. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  267. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  268. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  269. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  270. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  271. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  272. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  273. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  274. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  275. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  276. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  277. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  278. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  279. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
  280. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  281. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  282. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  283. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  284. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  285. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  286. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
  287. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  288. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  289. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  290. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/core.py +0 -0
  291. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  292. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  293. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  294. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  295. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  296. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  297. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  298. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/batch/__init__.py +0 -0
  299. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/batch_inference/__init__.py +0 -0
  300. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/code_path.py +0 -0
  301. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/compute_pool.py +0 -0
  302. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/custom_model.py +0 -0
  303. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/event_handler.py +0 -0
  304. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/inference_engine.py +0 -0
  305. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/model_signature.py +0 -0
  306. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/models/huggingface.py +0 -0
  307. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  308. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/openai_signatures.py +0 -0
  309. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/target_platform.py +0 -0
  310. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/task.py +0 -0
  311. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/type_hints.py +0 -0
  312. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/volatility.py +0 -0
  313. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  314. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  315. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  316. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  317. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  318. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  319. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  320. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  321. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  322. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  323. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  324. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  325. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  326. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  327. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  328. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  329. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  330. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  331. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  332. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  333. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  334. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  335. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  336. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  337. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  338. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  339. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  340. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  341. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  342. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  343. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  344. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  345. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  346. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  347. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  348. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  349. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  350. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  351. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  352. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  353. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  354. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  355. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  356. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  357. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  358. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  359. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  360. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  361. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  362. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  363. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  364. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  365. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  366. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  367. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  368. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  369. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  370. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  371. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  372. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  373. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  374. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  375. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  376. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  377. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  378. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  379. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  380. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  381. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  382. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  383. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  384. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  385. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  386. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  387. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  388. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  389. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  390. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  391. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  392. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  393. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  394. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  395. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/framework/base.py +0 -0
  396. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  397. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  398. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  399. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  400. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  401. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  402. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  403. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  404. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  405. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  406. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  407. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  408. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  409. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  410. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  411. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  412. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  413. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  414. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  415. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  416. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  417. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  418. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  419. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  420. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  421. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  422. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  423. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  424. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  425. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  426. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  427. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  428. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  429. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  430. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  431. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  432. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  433. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  434. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  435. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  436. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  437. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  438. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  439. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  440. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  441. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  442. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  443. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  444. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  445. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  446. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  447. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  448. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  449. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  450. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  451. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  452. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  453. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  454. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  455. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  456. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  457. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  458. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  459. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  460. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  461. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  462. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  463. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  464. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  465. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  466. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  467. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  468. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  469. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  470. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  471. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  472. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  473. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  474. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  475. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  476. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  477. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  478. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  479. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  480. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  481. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  482. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  483. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  484. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  485. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  486. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  487. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  488. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  489. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  490. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  491. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  492. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  493. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  494. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  495. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  496. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  497. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  498. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  499. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  500. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  501. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  502. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  503. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  504. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  505. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  506. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  507. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  508. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  509. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  510. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  511. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  512. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  513. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  514. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  515. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  516. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  517. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  518. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  519. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  520. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  521. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  522. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  523. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  524. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  525. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  526. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  527. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  528. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  529. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  530. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  531. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  532. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  533. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  534. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  535. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  536. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  537. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/shap.py +0 -0
  538. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/__init__.py +0 -0
  539. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  540. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  541. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/registry.py +0 -0
  542. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/authentication.py +0 -0
  543. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/connection_params.py +0 -0
  544. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/html_utils.py +0 -0
  545. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/sparse.py +0 -0
  546. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/sql_client.py +0 -0
  547. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/stage_file.py +0 -0
  548. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
  549. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  550. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  551. {snowflake_ml_python-1.52.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,43 @@
1
1
  # Release History
2
2
 
3
- ## 1.52.0
3
+ ## 1.53.0
4
+
5
+ ### New Features
6
+
7
+ * ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `parallel` kwarg (default `False`).
8
+ With `parallel=True`, the entrypoint is executed directly on every instance with the job topology injected into the
9
+ environment (`SNOWFLAKE_JOB_INDEX`, `SNOWFLAKE_JOBS_COUNT`, `MLRS_HEAD_IP`, `MLRS_RDZV_PORT`, `MLRS_NODE_IPS`).
10
+ Not supported for callable (`@remote`) payloads.
11
+
12
+ * ML Jobs: added `MLJob.distributed_result()`, the result API for distributed (e.g. `parallel=True`) jobs, which
13
+ have no single head result. On full success it returns a `DistributedResult` (`success`, per-instance `exit_codes`,
14
+ `failed_instance`, and instance 0's `return_value`); if any instance failed it raises `DistributedJobError`, which
15
+ carries that `DistributedResult` as `.result` and the earliest-failing instance's reconstructed exception as its
16
+ cause. `DistributedResult` and `DistributedJobError` are exported from `snowflake.ml.jobs`.
17
+
18
+ * ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `preflight` kwarg, supported only
19
+ together with `parallel=True`. It takes the name of a check level, run on every instance before the entrypoint:
20
+ `"wiring"` checks the rendezvous plus a small collective, and `"reference"` additionally times a short synthetic
21
+ DDP step and reports its step times from instance 0. If a requested check fails, the job aborts without running
22
+ the entrypoint and the failure surfaces through `distributed_result()`. A check that does not apply to the job
23
+ (`"reference"` on a CPU pool or a single instance) is reported as skipped and the job continues. Covers only the
24
+ PyTorch c10d rendezvous backend.
25
+
26
+ * Feature Store: Iceberg-backed feature views can enable online storage when using the Postgres online store
27
+ (`OnlineConfig(store_type=OnlineStoreType.POSTGRES)`). Online storage with Iceberg remains unsupported for
28
+ other store types.
29
+
30
+ ### Bug Fixes
31
+
32
+ ### Behavior Changes
33
+
34
+ * Feature Store: `register_feature_view` now records `FV_SOURCE_REFS` metadata for managed batch
35
+ feature views (derived from the `feature_df` schema) when the caller does not supply
36
+ `source_refs`. Streaming and realtime feature views are unaffected.
37
+
38
+ ### Deprecations
39
+
40
+ ## 1.52.0 (2026-08-20)
4
41
 
5
42
  ### New Features
6
43
 
@@ -8,6 +45,9 @@
8
45
 
9
46
  ### Behavior Changes
10
47
 
48
+ * Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
49
+ `StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
50
+
11
51
  ### Deprecations
12
52
 
13
53
  ## 1.51.0 (2026-08-12)
@@ -26,9 +66,6 @@
26
66
 
27
67
  ### Behavior Changes
28
68
 
29
- * Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
30
- `StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
31
-
32
69
  ### Deprecations
33
70
 
34
71
  ## 1.50.0 (2026-08-03)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.52.0
3
+ Version: 1.53.0
4
4
  Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
5
5
  Author-email: "Snowflake, Inc" <support@snowflake.com>
6
6
  License:
@@ -416,7 +416,44 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
416
416
 
417
417
  # Release History
418
418
 
419
- ## 1.52.0
419
+ ## 1.53.0
420
+
421
+ ### New Features
422
+
423
+ * ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `parallel` kwarg (default `False`).
424
+ With `parallel=True`, the entrypoint is executed directly on every instance with the job topology injected into the
425
+ environment (`SNOWFLAKE_JOB_INDEX`, `SNOWFLAKE_JOBS_COUNT`, `MLRS_HEAD_IP`, `MLRS_RDZV_PORT`, `MLRS_NODE_IPS`).
426
+ Not supported for callable (`@remote`) payloads.
427
+
428
+ * ML Jobs: added `MLJob.distributed_result()`, the result API for distributed (e.g. `parallel=True`) jobs, which
429
+ have no single head result. On full success it returns a `DistributedResult` (`success`, per-instance `exit_codes`,
430
+ `failed_instance`, and instance 0's `return_value`); if any instance failed it raises `DistributedJobError`, which
431
+ carries that `DistributedResult` as `.result` and the earliest-failing instance's reconstructed exception as its
432
+ cause. `DistributedResult` and `DistributedJobError` are exported from `snowflake.ml.jobs`.
433
+
434
+ * ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `preflight` kwarg, supported only
435
+ together with `parallel=True`. It takes the name of a check level, run on every instance before the entrypoint:
436
+ `"wiring"` checks the rendezvous plus a small collective, and `"reference"` additionally times a short synthetic
437
+ DDP step and reports its step times from instance 0. If a requested check fails, the job aborts without running
438
+ the entrypoint and the failure surfaces through `distributed_result()`. A check that does not apply to the job
439
+ (`"reference"` on a CPU pool or a single instance) is reported as skipped and the job continues. Covers only the
440
+ PyTorch c10d rendezvous backend.
441
+
442
+ * Feature Store: Iceberg-backed feature views can enable online storage when using the Postgres online store
443
+ (`OnlineConfig(store_type=OnlineStoreType.POSTGRES)`). Online storage with Iceberg remains unsupported for
444
+ other store types.
445
+
446
+ ### Bug Fixes
447
+
448
+ ### Behavior Changes
449
+
450
+ * Feature Store: `register_feature_view` now records `FV_SOURCE_REFS` metadata for managed batch
451
+ feature views (derived from the `feature_df` schema) when the caller does not supply
452
+ `source_refs`. Streaming and realtime feature views are unaffected.
453
+
454
+ ### Deprecations
455
+
456
+ ## 1.52.0 (2026-08-20)
420
457
 
421
458
  ### New Features
422
459
 
@@ -424,6 +461,9 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
424
461
 
425
462
  ### Behavior Changes
426
463
 
464
+ * Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
465
+ `StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
466
+
427
467
  ### Deprecations
428
468
 
429
469
  ## 1.51.0 (2026-08-12)
@@ -442,9 +482,6 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
442
482
 
443
483
  ### Behavior Changes
444
484
 
445
- * Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
446
- `StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
447
-
448
485
  ### Deprecations
449
486
 
450
487
  ## 1.50.0 (2026-08-03)
@@ -15,7 +15,8 @@ class SnowflakeMLException(Exception):
15
15
 
16
16
  Attributes:
17
17
  error_code: Error code.
18
- original_exception: Original exception with an error code in its message.
18
+ original_exception: Original exception. The error code is added to its message when the exception
19
+ type can be constructed from a message.
19
20
  suppress_source_trace: Suppress source stacktrace.
20
21
 
21
22
  Raises:
@@ -34,7 +35,12 @@ class SnowflakeMLException(Exception):
34
35
  raise ValueError("Must provide non-empty error_code and original_exception.")
35
36
 
36
37
  self.error_code = error_code
37
- self.original_exception = type(original_exception)(f"({self.error_code}) {str(original_exception)}")
38
+ try:
39
+ self.original_exception = type(original_exception)(f"({self.error_code}) {str(original_exception)}")
40
+ except Exception:
41
+ # Not every exception class can be rebuilt from a message alone: sqlalchemy's DBAPIError, for one,
42
+ # requires a statement, parameters and the driver error. Keep the original rather than masking it.
43
+ self.original_exception = original_exception
38
44
  self.suppress_source_trace = suppress_source_trace
39
45
  self._pretty_msg = repr(self.original_exception)
40
46
 
@@ -21,6 +21,8 @@ INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VE
21
21
  SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
22
22
  ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
23
23
  ENABLE_PIP_ONLY_PACKAGING = "ENABLE_PIP_ONLY_PACKAGING"
24
+ ENABLE_LORA_ADAPTERS = "ENABLE_LORA_ADAPTERS"
25
+ ENABLE_SINGLE_OUTPUT_NATIVE_TYPE = "ENABLE_SINGLE_OUTPUT_NATIVE_TYPE"
24
26
 
25
27
 
26
28
  class PlatformCapabilities:
@@ -87,6 +89,21 @@ class PlatformCapabilities:
87
89
  def is_model_method_signature_parameters_enabled(self) -> bool:
88
90
  return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
89
91
 
92
+ def is_lora_adapters_enabled(self) -> bool:
93
+ return False
94
+
95
+ def is_single_output_native_type_enabled(self) -> bool:
96
+ """Whether a single, non-OBJECT model FUNCTION output is registered with its native SQL type.
97
+
98
+ When enabled (and supported server-side), a scalar FUNCTION method with exactly one non-OBJECT output
99
+ is declared with that native type in the manifest and returns the value directly, instead of packing it
100
+ into an OBJECT. Defaults to disabled when the capability is absent (older servers).
101
+
102
+ Returns:
103
+ True if single-output native typing is enabled for this account; otherwise False.
104
+ """
105
+ return self._get_bool_feature(ENABLE_SINGLE_OUTPUT_NATIVE_TYPE, False)
106
+
90
107
  def is_pip_only_packaging_enabled(self) -> bool:
91
108
  """Whether pip-only model packaging is enabled for this account.
92
109
 
@@ -93,10 +93,12 @@ from snowflake.ml.feature_store.spec.enums import (
93
93
  ENTITY_TAG_PREFIX,
94
94
  FeatureAggregationMethod,
95
95
  FeatureViewKind,
96
+ SourceType,
96
97
  TableType,
97
98
  )
98
99
  from snowflake.ml.feature_store.spec.models import (
99
100
  FeatureViewSpec,
101
+ _columns_from_tiled_struct_type,
100
102
  validate_spec_oft_offline_table_schema,
101
103
  validate_spec_oft_tiled_offline_table_schema,
102
104
  )
@@ -178,6 +180,11 @@ def _validate_stream_ingest_record_keys(expected: list[str], row: dict[str, Any]
178
180
  )
179
181
 
180
182
 
183
+ # Timezone names that place the session on the same time grid as UTC, so reading
184
+ # through them carries no tile-boundary alignment risk.
185
+ _UTC_TIMEZONE_NAMES = frozenset({"UTC", "ETC/UTC", "ETC/GMT", "GMT", "UCT", "UNIVERSAL", "ZULU"})
186
+
187
+
181
188
  def _store_type_from_oft_show_row(row: Row) -> OnlineStoreType:
182
189
  """Map SHOW ONLINE FEATURE TABLES ``store_type`` to ``OnlineStoreType``.
183
190
 
@@ -355,6 +362,85 @@ def _initialization_warehouse_clause(feature_view: FeatureView) -> str:
355
362
  return f"\n INITIALIZATION_WAREHOUSE = {iw}" if iw is not None else ""
356
363
 
357
364
 
365
+ def _derive_source_refs_from_feature_df(feature_view: FeatureView) -> Optional[list[dict[str, Any]]]:
366
+ """Record the batch FV's raw input columns so it can be recovered as code.
367
+
368
+ Background: a feature view can be registered two ways. The declarative
369
+ flow authors it as YAML/spec (which names its upstream *sources* and their
370
+ columns), while ``register_feature_view`` registers it imperatively from a
371
+ Snowpark ``feature_df`` and usually names no sources at all. Later,
372
+ ``snow feature init`` reverse-engineers deployed FVs back into that
373
+ declarative spec so they can be managed as code. For a tiled batch FV that
374
+ round-trip needs the *pre-aggregation* input schema (the columns the
375
+ ``feature_df`` read before aggregation). That schema cannot be read back
376
+ from the deployed object: the backing Dynamic Table only stores the
377
+ post-aggregation result (renamed/aggregated columns, plus internal
378
+ ``ArrayType`` tile columns). With nothing to compare against, recovery
379
+ guesses wrong, the planner sees a "changed" FV, and rebuilds it
380
+ (``RECREATE_FV``). This function captures the raw ``feature_df`` schema at
381
+ registration time and stores it as a source-ref so recovery reproduces the
382
+ same spec and the planner reports ``NO_CHANGE``.
383
+
384
+ What gets stored, and why each field:
385
+
386
+ - ``columns``: the whole point — the raw input schema recovery can't
387
+ otherwise reconstruct.
388
+ - ``source_type``: hard-coded to ``Batch`` because this path only runs for
389
+ managed batch FVs (streaming/realtime bail out above), so there is no
390
+ other value it could take. It is a fixed label for the stored entry, not
391
+ something derived from a real source object (we don't have one here).
392
+ - ``name``: a synthetic ``<FV>__SOURCE`` rather than the bare FV name.
393
+ Source names and FV names live in the same namespace during recovery, so
394
+ naming this after the FV would make the FV look like it depends on
395
+ itself.
396
+ - ``table``/``query`` are deliberately absent. When recovery diffs a
397
+ source it identifies it by its binding — ``table``, else ``query``, else
398
+ ``name`` — never by ``columns``. That binding is recovered independently
399
+ from the Dynamic Table's ``FROM`` clause. This entry therefore contributes
400
+ only columns and carries no binding of its own, so it can never disagree
401
+ with (or override) the recovered one. The row is immutable once written,
402
+ so getting this shape right at registration time is what matters.
403
+
404
+ Best-effort: schema reads are wrapped so a failure only skips the stamp
405
+ (worst case, the old ``RECREATE_FV`` behavior) and never breaks
406
+ registration.
407
+
408
+ Args:
409
+ feature_view: The feature view being registered.
410
+
411
+ Returns:
412
+ A one-element source-ref list
413
+ ``[{"name": "<FV>__SOURCE", "source_type": "Batch", "columns": [...]}]``
414
+ derived from ``feature_view.feature_df.schema``, or ``None`` when the
415
+ FV is not a managed batch FV, has no feature DataFrame, exposes no
416
+ columns, or its schema cannot be read.
417
+ """
418
+ if feature_view.is_streaming or feature_view.is_realtime_feature_view:
419
+ return None
420
+ feature_df = feature_view.feature_df
421
+ if feature_df is None:
422
+ return None
423
+ try:
424
+ # ``_columns_from_tiled_struct_type`` (not the scalar converter) so
425
+ # ArrayType/Binary tile columns serialize instead of raising.
426
+ columns = [col.model_dump(exclude_none=True) for col in _columns_from_tiled_struct_type(feature_df.schema)]
427
+ except Exception:
428
+ # Never let best-effort source-ref capture break registration.
429
+ return None
430
+ if not columns:
431
+ return None
432
+ # Columns only, no ``table``/``query`` binding — see the merge contract in
433
+ # the docstring. The ``<FV>__SOURCE`` name is synthetic so it can't be
434
+ # confused with the feature view itself.
435
+ return [
436
+ {
437
+ "name": f"{feature_view.name.resolved()}__SOURCE",
438
+ "source_type": SourceType.BATCH.value,
439
+ "columns": columns,
440
+ }
441
+ ]
442
+
443
+
358
444
  # ``list_feature_views`` output schemas. Row builders always populate the verbose
359
445
  # schema; non-verbose callers receive _LIST_FEATURE_VIEW_SCHEMA after trimming
360
446
  # verbose-only trailing fields.
@@ -1249,14 +1335,19 @@ class FeatureStore:
1249
1335
  feature_view.name, version, agg_metadata, descs, fv_metadata_config=fv_meta_config
1250
1336
  )
1251
1337
 
1252
- # Persist the authored source-ref list when the caller
1253
- # supplied one; callers that leave ``source_refs`` unset skip
1254
- # the metadata write and no ``FV_SOURCE_REFS`` row is created.
1255
- if feature_view.source_refs:
1338
+ # Persist the source-ref list. Prefer the caller-supplied list;
1339
+ # otherwise auto-stamp one derived from the raw ``feature_df``
1340
+ # schema (managed batch FVs) so imperatively-registered FVs carry
1341
+ # FV_SOURCE_REFS and recover cleanly during declarative
1342
+ # ``snow feature init`` instead of triggering a one-time
1343
+ # RECREATE_FV. Streaming/realtime FVs and un-derivable schemas fall
1344
+ # through with no row, preserving prior behavior for them.
1345
+ source_refs = feature_view.source_refs or _derive_source_refs_from_feature_df(feature_view)
1346
+ if source_refs:
1256
1347
  self._metadata_manager.save_feature_view_source_refs(
1257
1348
  feature_view.name,
1258
1349
  version,
1259
- FvSourceRefsMetadata(sources=list(feature_view.source_refs)),
1350
+ FvSourceRefsMetadata(sources=list(source_refs)),
1260
1351
  )
1261
1352
 
1262
1353
  # Step 4: Save rollup metadata for PIT-correct training queries
@@ -1910,6 +2001,9 @@ class FeatureStore:
1910
2001
  "Snowpark DataFrame instead if you accept the full-scan cost."
1911
2002
  ),
1912
2003
  )
2004
+ # TODO(okharatsidi): add a persistent FV-level "timezone" parameter. For now, we warn
2005
+ # the user about potentially inaccurate results.
2006
+ self._warn_on_non_utc_session_timezone(feature_view)
1913
2007
  return self._read_from_offline_store(feature_view, keys, feature_names)
1914
2008
  else:
1915
2009
  raise snowml_exceptions.SnowflakeMLException(
@@ -5024,6 +5118,52 @@ class FeatureStore:
5024
5118
  query = f"SELECT {select_clause} FROM {table_name}{where_clause}"
5025
5119
  return self._session.sql(query)
5026
5120
 
5121
+ def _get_session_timezone(self) -> Optional[str]:
5122
+ """Read the timezone configured for the current session.
5123
+
5124
+ Returns:
5125
+ The configured timezone name, or ``None`` when it cannot be determined.
5126
+ """
5127
+ try:
5128
+ rows = self._session.sql("SHOW PARAMETERS LIKE 'TIMEZONE' IN SESSION").collect()
5129
+ except Exception as e:
5130
+ logger.debug("feature store: could not determine the session timezone: %s", e)
5131
+ return None
5132
+
5133
+ if not rows:
5134
+ return None
5135
+ row = rows[0]
5136
+ for key in ("value", "VALUE"):
5137
+ if key in row:
5138
+ raw = row[key]
5139
+ return str(raw) if raw is not None else None
5140
+ return None
5141
+
5142
+ def _warn_on_non_utc_session_timezone(self, feature_view: FeatureView) -> None:
5143
+ """Warn before an offline read of a tiled Postgres-backed feature view from a non-UTC session.
5144
+
5145
+ Args:
5146
+ feature_view: The feature view about to be read from the offline store.
5147
+ """
5148
+ if not feature_view.is_tiled:
5149
+ return
5150
+ online_config = feature_view.online_config
5151
+ if online_config is None or online_config.store_type != OnlineStoreType.POSTGRES:
5152
+ return
5153
+
5154
+ session_timezone = self._get_session_timezone()
5155
+ if session_timezone is None or session_timezone.strip().upper() in _UTC_TIMEZONE_NAMES:
5156
+ return
5157
+
5158
+ warnings.warn(
5159
+ f"feature store: the current session timezone is '{session_timezone}', not UTC. Aggregation "
5160
+ "window boundaries are resolved in the session timezone while tile boundaries are bucketed in "
5161
+ "the UTC timezone, so feature values may be inaccurate. Set the session timezone to UTC "
5162
+ "(ALTER SESSION SET TIMEZONE = 'UTC') for consistent results.",
5163
+ stacklevel=3,
5164
+ category=UserWarning,
5165
+ )
5166
+
5027
5167
  def _read_tiled_fv_at_current_time(
5028
5168
  self,
5029
5169
  feature_view: FeatureView,
@@ -60,11 +60,16 @@ _FEATURE_VIEW_VERSION_MAX_LENGTH = 128
60
60
 
61
61
  # Postgres online store identifiers must fit PostgreSQL's 63-byte limit (NAMEDATALEN - 1); longer names
62
62
  # are silently truncated and can collide. name+version maps to "{name}${version}$UDF_TRANSFORMED"
63
- # (17 bytes of affixes) and columns to a distinct-N tile column "_PARTIAL_FIRST_DISTINCT_1000_TS_<col>"
64
- # (32 bytes), so each budget below leaves a 1-byte margin. The padding-guard test rechecks the affixes.
63
+ # (17 bytes of affixes), so its budget leaves a 1-byte margin. Column budgets depend on the feature view:
64
+ # - Tiled (aggregation) feature views wrap each column in a tile prefix, worst case the distinct-N tile
65
+ # column "_PARTIAL_FIRST_DISTINCT_1000_TS_<col>" (32 bytes), so the tile budget is tight.
66
+ # - Non-tiled (passthrough) feature views map each column 1:1 to a Postgres column with no prefix, so
67
+ # the passthrough budget only reserves the 1-byte margin.
68
+ # The padding-guard test rechecks the affixes.
65
69
  _PG_IDENTIFIER_BYTE_LIMIT = 63
66
70
  _POSTGRES_ONLINE_MAX_NAME_VERSION_LEN = 45
67
71
  _POSTGRES_ONLINE_MAX_COLUMN_LEN = 30
72
+ _POSTGRES_ONLINE_MAX_PASSTHROUGH_COLUMN_LEN = _PG_IDENTIFIER_BYTE_LIMIT - 1
68
73
 
69
74
  # The online-store schema is derived as "{schema}__{oft_id}", so its budget reserves room for the "__"
70
75
  # separator and a 19-digit (64-bit) oft_id, keeping the derived identifier within the limit (63 - 2 - 19).
@@ -1085,8 +1090,11 @@ class FeatureView(lineage_node.LineageNode):
1085
1090
  # Optional authored source-ref list. When the caller passes one,
1086
1091
  # ``FeatureStore.register_feature_view`` persists it under
1087
1092
  # ``MetadataType.FV_SOURCE_REFS`` and ``get_feature_view``
1088
- # rehydrates the same list onto reconstructed FVs; callers that
1089
- # leave it ``None`` skip the metadata write entirely.
1093
+ # rehydrates the same list onto reconstructed FVs. When it is left
1094
+ # ``None``, ``register_feature_view`` auto-stamps a best-effort
1095
+ # source-ref derived from the raw ``feature_df`` schema for managed
1096
+ # batch FVs (so declarative state recovery round-trips); streaming and
1097
+ # realtime FVs still skip the write.
1090
1098
  self._source_refs: Optional[list[dict[str, Any]]] = _kwargs.pop("_source_refs", None)
1091
1099
  if self._stream_config is not None:
1092
1100
  if online_config is not None and online_config.enable is False:
@@ -1645,8 +1653,10 @@ class FeatureView(lineage_node.LineageNode):
1645
1653
  When set, :meth:`FeatureStore.register_feature_view` persists
1646
1654
  these entries under :attr:`MetadataType.FV_SOURCE_REFS` and
1647
1655
  ``get_feature_view`` returns the same list on the reconstructed
1648
- FV. Callers that did not supply a list see ``None`` here and no
1649
- metadata row is written.
1656
+ FV. When it is ``None``, ``register_feature_view`` still auto-stamps
1657
+ a best-effort source-ref derived from the raw ``feature_df`` schema
1658
+ for managed batch FVs; this property reflects only what was supplied
1659
+ at construction and is unaffected by that register-time default.
1650
1660
 
1651
1661
  Returns:
1652
1662
  The list of source-ref dicts as supplied, or ``None`` when
@@ -2156,7 +2166,12 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2156
2166
  # Validate Iceberg storage configuration
2157
2167
  if self._storage_config is not None and self._storage_config.format == StorageFormat.ICEBERG:
2158
2168
  if self.online:
2159
- raise ValueError("Online storage is not supported with Iceberg.")
2169
+ store_type = self._online_config.store_type if self._online_config is not None else None
2170
+ if store_type != OnlineStoreType.POSTGRES:
2171
+ raise ValueError(
2172
+ "Online storage with Iceberg is only supported with the Postgres online store. "
2173
+ "Use OnlineConfig(store_type=OnlineStoreType.POSTGRES)."
2174
+ )
2160
2175
  if self._refresh_freq is None:
2161
2176
  raise ValueError("Iceberg storage requires refresh_freq.")
2162
2177
 
@@ -2226,11 +2241,16 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2226
2241
  key = join_key if isinstance(join_key, SqlIdentifier) else SqlIdentifier(join_key)
2227
2242
  resolved_columns.add(key.resolved())
2228
2243
 
2244
+ # Tiled feature views wrap each column in a tile prefix, so they get the tighter budget;
2245
+ # non-tiled (passthrough) columns map 1:1 to Postgres columns and can use the full budget.
2246
+ column_budget = (
2247
+ _POSTGRES_ONLINE_MAX_COLUMN_LEN if self.is_tiled else _POSTGRES_ONLINE_MAX_PASSTHROUGH_COLUMN_LEN
2248
+ )
2229
2249
  for resolved in sorted(resolved_columns):
2230
- if len(resolved) > _POSTGRES_ONLINE_MAX_COLUMN_LEN:
2250
+ if len(resolved) > column_budget:
2231
2251
  raise ValueError(
2232
2252
  f"column '{resolved}' is too long for the Postgres online store: {len(resolved)} "
2233
- f"characters exceeds the limit of {_POSTGRES_ONLINE_MAX_COLUMN_LEN}. Rename the column."
2253
+ f"characters exceeds the limit of {column_budget}. Rename the column."
2234
2254
  )
2235
2255
 
2236
2256
  def _validate_window_offset_alignment(self) -> None:
@@ -7,6 +7,7 @@ as well as reading online features and ingesting records for streaming feature v
7
7
  from __future__ import annotations
8
8
 
9
9
  import datetime
10
+ import decimal
10
11
  import json
11
12
  import logging
12
13
  import os
@@ -411,6 +412,10 @@ def _json_serialize_value(value: Any) -> Any:
411
412
  # NaN -> None. NB: NaN is the only float for which ``v != v`` holds.
412
413
  if value != value:
413
414
  return None
415
+ if value == float("inf"):
416
+ return "inf"
417
+ if value == float("-inf"):
418
+ return "-inf"
414
419
  return value
415
420
  if isinstance(value, str):
416
421
  return value
@@ -1196,7 +1201,7 @@ def _parse_query_batch_response(
1196
1201
  ``batch_size``, or feature metadata is missing.
1197
1202
  """
1198
1203
  try:
1199
- data = json.loads(raw.decode("utf-8"))
1204
+ data = json.loads(raw.decode("utf-8"), parse_float=decimal.Decimal)
1200
1205
  except (json.JSONDecodeError, UnicodeDecodeError) as e:
1201
1206
  raise snowml_exceptions.SnowflakeMLException(
1202
1207
  error_code=error_codes.INTERNAL_SNOWML_ERROR,
@@ -1,4 +1,5 @@
1
1
  from snowflake.ml.jobs._interop.exception_utils import install_exception_display_hooks
2
+ from snowflake.ml.jobs._interop.results import DistributedJobError, DistributedResult
2
3
  from snowflake.ml.jobs._utils.type_utils import JOB_STATUS
3
4
  from snowflake.ml.jobs.decorators import remote
4
5
  from snowflake.ml.jobs.job import MLJob
@@ -26,4 +27,6 @@ __all__ = [
26
27
  "JOB_STATUS",
27
28
  "submit_from_stage",
28
29
  "MLJobDefinition",
30
+ "DistributedResult",
31
+ "DistributedJobError",
29
32
  ]
@@ -0,0 +1,99 @@
1
+ from dataclasses import dataclass
2
+ from typing import Any, Optional
3
+
4
+
5
+ @dataclass(frozen=True)
6
+ class ExecutionResult:
7
+ """
8
+ A result of a job execution.
9
+
10
+ Args:
11
+ success: Whether the execution was successful.
12
+ value: The value of the execution.
13
+ """
14
+
15
+ success: bool
16
+ value: Any
17
+
18
+ def get_value(self, wrap_exceptions: bool = True) -> Any:
19
+ if not self.success:
20
+ assert isinstance(self.value, BaseException), "Unexpected non-exception value for failed result"
21
+ self._raise_exception(self.value, wrap_exceptions)
22
+ return self.value
23
+
24
+ def _raise_exception(self, exception: BaseException, wrap_exceptions: bool) -> None:
25
+ if wrap_exceptions:
26
+ raise RuntimeError(f"Job execution failed with error: {exception!r}") from exception
27
+ else:
28
+ raise exception
29
+
30
+
31
+ @dataclass(frozen=True)
32
+ class LoadedExecutionResult(ExecutionResult):
33
+ """
34
+ A result of a job execution that has been loaded from a file.
35
+ """
36
+
37
+ load_error: Optional[Exception] = None
38
+ result_metadata: Optional[dict[str, Any]] = None
39
+
40
+ def get_value(self, wrap_exceptions: bool = True) -> Any:
41
+ if not self.success:
42
+ # Raise the original exception if available, otherwise raise the load error
43
+ ex = self.value
44
+ if not isinstance(ex, BaseException):
45
+ ex = RuntimeError(f"Unknown error {ex or ''}")
46
+ ex.__cause__ = self.load_error
47
+ self._raise_exception(ex, wrap_exceptions)
48
+ else:
49
+ if self.load_error:
50
+ raise ValueError("Job execution succeeded but result retrieval failed") from self.load_error
51
+ return self.value
52
+
53
+
54
+ @dataclass(frozen=True)
55
+ class DistributedResult:
56
+ """Aggregated result of a multi-node job that has no single result-bearing instance.
57
+
58
+ For jobs where every instance runs the entrypoint independently — no head/worker
59
+ split (e.g. submitted with parallel=True) — there is no single head result to read.
60
+ Instead this LEFT-JOINs every instance's per-instance record onto the authoritative
61
+ control-plane instance set.
62
+
63
+ Args:
64
+ success: True iff every instance in the control-plane set exited 0.
65
+ exit_codes: instance_id -> exit code; None = lost (killed before writing a record).
66
+ failed_instance: Earliest-failing instance id; None on success.
67
+ return_value: The run's Python return value on success — persisted by instance 0, if the
68
+ entrypoint produced one — else None (subprocess entrypoints, lost instances, and
69
+ failures have no return value).
70
+ """
71
+
72
+ success: bool
73
+ exit_codes: dict[int, Optional[int]]
74
+ failed_instance: Optional[int] = None
75
+ return_value: Any = None
76
+
77
+
78
+ class DistributedJobError(RuntimeError):
79
+ """Raised by ``MLJob.distributed_result()`` when a multi-node job did not fully succeed.
80
+
81
+ Carries the full :class:`DistributedResult` (``.result``) so callers can inspect per-instance
82
+ ``exit_codes`` and ``failed_instance``. The earliest-failing instance's reconstructed
83
+ exception is attached by the raising site as ``__cause__`` (via ``raise ... from``), so
84
+ the original error and its remote traceback surface on an uncaught raise.
85
+ """
86
+
87
+ def __init__(self, message: str, result: Optional[DistributedResult] = None) -> None:
88
+ super().__init__(message)
89
+ self.result = result
90
+
91
+ @classmethod
92
+ def from_result(cls, result: DistributedResult) -> "DistributedJobError":
93
+ num_succeeded = sum(1 for code in result.exit_codes.values() if code == 0)
94
+ num_failed = len(result.exit_codes) - num_succeeded
95
+ return cls(
96
+ f"Distributed job failed: {num_failed}/{len(result.exit_codes)} instances did not exit 0 "
97
+ f"(earliest failed instance: {result.failed_instance}); see .result.exit_codes for details.",
98
+ result=result,
99
+ )
@@ -19,6 +19,14 @@ INSTANCES_TIMEOUT_ENV_VAR = "MLRS_INSTANCES_TIMEOUT"
19
19
  INSTANCES_CHECK_INTERVAL_ENV_VAR = "MLRS_INSTANCES_CHECK_INTERVAL"
20
20
  RUNTIME_IMAGE_TAG_ENV_VAR = "MLRS_CONTAINER_IMAGE_TAG"
21
21
  USE_EMBEDDED_SCRIPTS_ENV_VAR = "MLRS_USE_EMBEDDED_SCRIPTS"
22
+ PREFLIGHT_ENV_VAR = "MLRS_DISTRIBUTED_PREFLIGHT"
23
+ # Adds the reference step to the preflight; no effect on its own.
24
+ PREFLIGHT_REFERENCE_STEP_ENV_VAR = "MLRS_PREFLIGHT_REFERENCE_STEP"
25
+ LAUNCH_BACKEND_ENV_VAR = "MLRS_LAUNCH_BACKEND"
26
+ # Value for LAUNCH_BACKEND_ENV_VAR that selects the passthrough launch path: the user's
27
+ # entrypoint runs directly on every instance (Ray is still brought up, for readiness only).
28
+ # Must match the literal the image's launcher compares against.
29
+ LAUNCH_BACKEND_PASSTHROUGH = "passthrough"
22
30
 
23
31
  # Stage mount paths
24
32
  STAGE_VOLUME_MOUNT_PATH = "/mnt/job_stage"
@@ -239,7 +239,7 @@ def resolve_entrypoint(
239
239
  if entrypoint.suffix not in _SUPPORTED_ENTRYPOINT_EXTENSIONS:
240
240
  raise ValueError(
241
241
  "Unsupported entrypoint type:"
242
- f" supported={','.join(_SUPPORTED_ENTRYPOINT_EXTENSIONS)} got={entrypoint.suffix}"
242
+ f" supported={','.join(sorted(_SUPPORTED_ENTRYPOINT_EXTENSIONS))} got={entrypoint.suffix}"
243
243
  )
244
244
 
245
245
  return type_utils.PayloadEntrypoint(