snowflake-ml-python 1.48.0__tar.gz → 1.49.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 (547) hide show
  1. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/CHANGELOG.md +19 -1
  2. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/PKG-INFO +21 -3
  3. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/platform_capabilities.py +5 -1
  5. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/query_result_checker.py +12 -3
  6. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature_store.py +4 -3
  7. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/metadata_manager.py +5 -0
  8. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/online_service.py +3 -1
  9. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/tile_sql_generator.py +8 -9
  10. snowflake_ml_python-1.49.0/snowflake/ml/model/_client/ops/live_commit_naming.py +19 -0
  11. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/model_ops.py +73 -32
  12. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/model_version.py +6 -0
  13. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +11 -7
  14. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +1 -1
  15. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/registry/_manager/model_manager.py +71 -30
  16. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/version.py +1 -1
  17. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake_ml_python.egg-info/PKG-INFO +21 -3
  18. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
  19. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake_ml_python.egg-info/requires.txt +1 -1
  20. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/LICENSE.txt +0 -0
  21. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/README.md +0 -0
  22. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/setup.cfg +0 -0
  23. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/__init__.py +0 -0
  24. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_classify_text.py +0 -0
  25. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_complete.py +0 -0
  26. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  27. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_embed_text_768.py +0 -0
  28. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_extract_answer.py +0 -0
  29. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_finetune.py +0 -0
  30. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_sentiment.py +0 -0
  31. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_sse_client.py +0 -0
  32. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_summarize.py +0 -0
  33. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_translate.py +0 -0
  34. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/cortex/_util.py +0 -0
  35. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/env.py +0 -0
  36. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/env_utils.py +0 -0
  37. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  38. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  39. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  40. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  41. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  42. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  43. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  44. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  45. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  46. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/file_utils.py +0 -0
  47. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  48. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  49. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  50. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  51. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/init_utils.py +0 -0
  52. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  53. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  54. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  55. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/telemetry.py +0 -0
  56. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/type_utils.py +0 -0
  57. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  58. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  59. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  60. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  61. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  62. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  63. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  64. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  65. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  66. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/result.py +0 -0
  67. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  68. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  69. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  70. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  71. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  72. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  73. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  74. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/_internal/utils/url.py +0 -0
  75. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/__init__.py +0 -0
  76. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  77. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/data_connector.py +0 -0
  78. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/data_ingestor.py +0 -0
  79. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/data_source.py +0 -0
  80. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  81. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/data/torch_utils.py +0 -0
  82. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/dataset/__init__.py +0 -0
  83. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/dataset/dataset.py +0 -0
  84. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  85. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  86. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  87. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/__init__.py +0 -0
  88. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  89. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  90. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  91. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  92. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  93. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  94. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  95. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  96. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  97. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  98. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/_source_info.py +0 -0
  99. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  100. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  101. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  102. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  103. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/experiment/utils.py +0 -0
  104. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/__init__.py +0 -0
  105. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
  106. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  107. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  108. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/entity.py +0 -0
  109. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  110. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  111. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  112. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  113. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  114. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  115. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  116. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  117. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  118. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  119. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  120. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  121. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  122. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  123. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  124. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  125. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  126. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  127. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  128. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  129. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  130. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  131. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature.py +0 -0
  132. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature_group.py +0 -0
  133. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  134. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
  135. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
  136. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  137. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
  138. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
  139. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
  140. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
  141. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
  142. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/request_source.py +0 -0
  143. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  144. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
  145. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  146. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  147. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
  148. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  149. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  150. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  151. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  152. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/fileset/fileset.py +0 -0
  153. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  154. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/fileset/snowfs.py +0 -0
  155. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  156. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/__init__.py +0 -0
  157. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  158. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  159. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  160. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  161. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  162. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  163. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  164. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  165. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  166. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  167. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  168. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  169. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  170. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  171. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  172. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
  173. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  174. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  175. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  176. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  177. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  178. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  179. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  180. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  181. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  182. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/decorators.py +0 -0
  183. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/job.py +0 -0
  184. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/job_definition.py +0 -0
  185. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/jobs/manager.py +0 -0
  186. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/lineage/__init__.py +0 -0
  187. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  188. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/__init__.py +0 -0
  189. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
  190. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
  191. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
  192. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  193. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  194. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
  195. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  196. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  197. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
  198. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  199. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
  200. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  201. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
  202. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  203. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  204. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  205. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  206. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  207. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  208. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  209. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
  210. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  211. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  212. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  213. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  214. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  215. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  216. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
  217. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  218. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
  219. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  220. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
  221. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  222. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  223. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  224. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  225. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  226. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  227. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  228. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  229. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  230. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
  231. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
  232. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  233. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
  234. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
  235. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
  236. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
  237. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
  238. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
  239. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
  240. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
  241. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
  242. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
  243. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
  244. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
  245. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
  246. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
  247. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
  248. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
  249. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
  250. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
  251. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
  252. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
  253. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
  254. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
  255. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
  256. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
  257. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
  258. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
  259. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
  260. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
  261. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  262. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  263. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  264. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  265. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  266. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  267. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  268. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  269. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  270. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  271. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  272. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  273. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  274. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  275. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  276. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  277. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  278. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  279. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  280. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
  281. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  282. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  283. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  284. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  285. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  286. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
  287. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  288. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  289. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  290. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/core.py +0 -0
  291. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  292. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  293. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  294. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  295. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  296. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  297. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  298. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/batch/__init__.py +0 -0
  299. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/code_path.py +0 -0
  300. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/compute_pool.py +0 -0
  301. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/custom_model.py +0 -0
  302. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/event_handler.py +0 -0
  303. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/inference_engine.py +0 -0
  304. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/model_signature.py +0 -0
  305. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/models/huggingface.py +0 -0
  306. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  307. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/openai_signatures.py +0 -0
  308. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/target_platform.py +0 -0
  309. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/task.py +0 -0
  310. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/type_hints.py +0 -0
  311. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/model/volatility.py +0 -0
  312. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  313. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  314. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  315. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  316. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  317. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  318. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  319. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  320. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  321. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  322. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  323. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  324. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  325. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  326. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  327. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  328. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  329. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  330. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  331. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  332. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  333. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  334. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  335. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  336. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  337. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  338. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  339. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  340. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  341. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  342. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  343. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  344. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  345. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  346. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  347. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  348. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  349. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  350. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  351. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  352. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  353. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  354. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  355. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  356. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  357. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  358. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  359. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  360. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  361. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  362. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  363. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  364. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  365. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  366. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  367. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  368. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  369. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  370. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  371. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  372. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  373. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  374. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  375. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  376. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  377. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  378. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  379. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  380. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  381. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  382. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  383. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  384. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  385. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  386. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  387. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  388. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  389. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  390. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  391. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  392. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  393. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  394. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/framework/base.py +0 -0
  395. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  396. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  397. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  398. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  399. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  400. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  401. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  402. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  403. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  404. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  405. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  406. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  407. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  408. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  409. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  410. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  411. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  412. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  413. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  414. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  415. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  416. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  417. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  418. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  419. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  420. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  421. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  422. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  423. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  424. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  425. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  426. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  427. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  428. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  429. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  430. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  431. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  432. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  433. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  434. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  435. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  436. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  437. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  438. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  439. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  440. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  441. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  442. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  443. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  444. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  445. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  446. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  447. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  448. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  449. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  450. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  451. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  452. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  453. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  454. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  455. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  456. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  457. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  458. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  459. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  460. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  461. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  462. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  463. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  464. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  465. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  466. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  467. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  468. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  469. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  470. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  471. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  472. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  473. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  474. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  475. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  476. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  477. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  478. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  479. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  480. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  481. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  482. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  483. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  484. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  485. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  486. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  487. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  488. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  489. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  490. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  491. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  492. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  493. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  494. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  495. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  496. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  497. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  498. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  499. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  500. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  501. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  502. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  503. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  504. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  505. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  506. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  507. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  508. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  509. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  510. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  511. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  512. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  513. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  514. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  515. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  516. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  517. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  518. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  519. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  520. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  521. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  522. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  523. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  524. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  525. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  526. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  527. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  528. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  529. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  530. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  531. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  532. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  533. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  534. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  535. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  536. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/monitoring/shap.py +0 -0
  537. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/registry/__init__.py +0 -0
  538. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  539. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/registry/registry.py +0 -0
  540. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/authentication.py +0 -0
  541. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/connection_params.py +0 -0
  542. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/html_utils.py +0 -0
  543. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/sparse.py +0 -0
  544. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/sql_client.py +0 -0
  545. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake/ml/utils/stage_file.py +0 -0
  546. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  547. {snowflake_ml_python-1.48.0 → snowflake_ml_python-1.49.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,24 @@
1
1
  # Release History
2
2
 
3
- ## 1.48.0
3
+ ## 1.49.0
4
+
5
+ ### New Features
6
+
7
+ ### Bug Fixes
8
+
9
+ * Registry: Fixed a bug where logging a model with explainability enabled could fail with a data validation error
10
+ ("There is no non-null data in column ...") when a numeric input column was entirely null within the background
11
+ sample. The `explain` method now reuses the model's existing input signature instead of re-inferring it from the
12
+ sample.
13
+
14
+ * Feature Store: Fixed a bug where `get_feature_view()` could return stale metadata after re-registering a feature
15
+ view with `overwrite=True`. Metadata reads now select the most recently written row.
16
+
17
+ ### Behavior Changes
18
+
19
+ ### Deprecations
20
+
21
+ ## 1.48.0 (2026-07-22)
4
22
 
5
23
  ### New Features
6
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.48.0
3
+ Version: 1.49.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:
@@ -234,7 +234,7 @@ Requires-Python: <3.14,>=3.9
234
234
  Description-Content-Type: text/markdown
235
235
  License-File: LICENSE.txt
236
236
  Requires-Dist: anyio<5,>=3.5.0
237
- Requires-Dist: cachetools<6,>=3.1.1
237
+ Requires-Dist: cachetools>=3.1.1
238
238
  Requires-Dist: cloudpickle>=2.0.0
239
239
  Requires-Dist: cryptography
240
240
  Requires-Dist: fsspec[http]<2026,>=2024.6.1
@@ -417,7 +417,25 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
417
 
418
418
  # Release History
419
419
 
420
- ## 1.48.0
420
+ ## 1.49.0
421
+
422
+ ### New Features
423
+
424
+ ### Bug Fixes
425
+
426
+ * Registry: Fixed a bug where logging a model with explainability enabled could fail with a data validation error
427
+ ("There is no non-null data in column ...") when a numeric input column was entirely null within the background
428
+ sample. The `explain` method now reuses the model's existing input signature instead of re-inferring it from the
429
+ sample.
430
+
431
+ * Feature Store: Fixed a bug where `get_feature_view()` could return stale metadata after re-registering a feature
432
+ view with `overwrite=True`. Metadata reads now select the most recently written row.
433
+
434
+ ### Behavior Changes
435
+
436
+ ### Deprecations
437
+
438
+ ## 1.48.0 (2026-07-22)
421
439
 
422
440
  ### New Features
423
441
 
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
8
8
  classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
9
9
  requires-python = ">=3.9, <3.14"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "h2>=4.3.0,<5", "importlib_resources>=6.1.1, <7", "jinja2>=3.1.0,<4", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "scikit-learn<1.9", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
11
+ dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "h2>=4.3.0,<5", "importlib_resources>=6.1.1, <7", "jinja2>=3.1.0,<4", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "scikit-learn<1.9", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -16,6 +16,7 @@ from snowflake.snowpark import (
16
16
  logger = logging.getLogger(__name__)
17
17
 
18
18
  LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
19
+ HIDDEN_LIVE_COMMIT_PARAMETER = "ENABLE_HIDDEN_LIVE_VERSION_IN_SDK"
19
20
  INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
20
21
  SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
21
22
  ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
@@ -80,6 +81,9 @@ class PlatformCapabilities:
80
81
  def is_live_commit_enabled(self) -> bool:
81
82
  return self._get_bool_feature(LIVE_COMMIT_PARAMETER, False)
82
83
 
84
+ def is_hidden_live_commit_enabled(self) -> bool:
85
+ return False
86
+
83
87
  def is_model_method_signature_parameters_enabled(self) -> bool:
84
88
  return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
85
89
 
@@ -127,7 +131,7 @@ class PlatformCapabilities:
127
131
  self, *, session: Optional[snowpark_session.Session] = None, features: Optional[dict[str, Any]] = None
128
132
  ) -> None:
129
133
  # This is for testing purposes only.
130
- if features:
134
+ if features is not None:
131
135
  self.features = features
132
136
  return
133
137
  if not session:
@@ -242,23 +242,32 @@ class SqlResultValidator(ResultValidator):
242
242
  result = (
243
243
  SqlResultValidator(
244
244
  session=self._session,
245
- query="UPDATE table SET NAME = 'name'",
245
+ query="UPDATE table SET NAME = ?",
246
246
  statement_params=statement_params,
247
+ params=["name"],
247
248
  )
248
249
  .has_dimensions(expected_rows=1, expected_cols=1)
249
250
  .has_partial_match(row_idx=0, col_idx=0, expected_value="number of rows updated=1")
250
251
  .validate()
251
252
  )
253
+
254
+ ``params`` are bound as SQL query parameters (``?`` placeholders) rather than interpolated into the query.
252
255
  """
253
256
 
254
257
  def __init__(
255
- self, session: snowpark.Session, query: str, statement_params: Optional[dict[str, Any]] = None
258
+ self,
259
+ session: snowpark.Session,
260
+ query: str,
261
+ statement_params: Optional[dict[str, Any]] = None,
262
+ *,
263
+ params: Optional[list[Any]] = None,
256
264
  ) -> None:
257
265
  self._session: snowpark.Session = session
258
266
  self._query: str = query
259
267
  self._success_matchers: list[Callable[[list[snowpark.Row], Optional[str]], bool]] = []
260
268
  self._statement_params: Optional[dict[str, Any]] = statement_params
269
+ self._params: Optional[list[Any]] = params
261
270
 
262
271
  def _get_result(self) -> list[snowpark.Row]:
263
272
  """Collect the result of the given SQL query."""
264
- return self._session.sql(self._query).collect(statement_params=self._statement_params)
273
+ return self._session.sql(self._query, params=self._params).collect(statement_params=self._statement_params)
@@ -8274,8 +8274,8 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
8274
8274
  (e.g. ``"get_feature_view"``, ``"get_feature_group"``).
8275
8275
 
8276
8276
  Returns:
8277
- The query endpoint URL when the Online Service is RUNNING and
8278
- advertises a ``query`` endpoint; ``None`` otherwise.
8277
+ The query endpoint URL when the Online Service is RUNNING or
8278
+ UPDATING and advertises a ``query`` endpoint; ``None`` otherwise.
8279
8279
  """
8280
8280
  try:
8281
8281
  st = online_service.fetch_online_service_status(
@@ -8293,7 +8293,8 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
8293
8293
  )
8294
8294
  return None
8295
8295
  query_url = online_service.endpoint_url(st, "query", access=self._online_service_access)
8296
- if st.status == "RUNNING" and query_url:
8296
+ # UPDATING (redeploy in progress) still serves the query endpoint, so accept it too.
8297
+ if st.status in ("RUNNING", "UPDATING") and query_url:
8297
8298
  # Temporary: SYSTEM$ may return host-only query URLs until server sends full https URLs.
8298
8299
  return query_url
8299
8300
  warnings.warn(
@@ -1377,6 +1377,9 @@ class FeatureStoreMetadataManager:
1377
1377
  # Strip surrounding quotes if present; callers pass resolved() which handles casing.
1378
1378
  normalized_name = object_name.strip('"')
1379
1379
 
1380
+ # Writes append via INSERT and Snowflake does not enforce the primary
1381
+ # key, so multiple rows can share a key after a re-register. Return the
1382
+ # most recently written row so reads reflect the latest registration.
1380
1383
  result = self._session.sql(
1381
1384
  f"""
1382
1385
  SELECT METADATA
@@ -1385,6 +1388,8 @@ class FeatureStoreMetadataManager:
1385
1388
  AND OBJECT_NAME = '{normalized_name}'
1386
1389
  AND VERSION = '{version}'
1387
1390
  AND METADATA_TYPE = '{metadata_type.value}'
1391
+ ORDER BY UPDATED_AT DESC, CREATED_AT DESC
1392
+ LIMIT 1
1388
1393
  """
1389
1394
  ).collect(statement_params=self._telemetry_stmp)
1390
1395
 
@@ -533,7 +533,9 @@ def _assert_online_service_running(
533
533
  "then poll get_online_service_status() until RUNNING."
534
534
  ),
535
535
  )
536
- if st.status != "RUNNING":
536
+ # UPDATING means a redeploy is in progress; the service is still operational and
537
+ # serves reads/writes, so treat it like RUNNING as long as an endpoint is available.
538
+ if st.status not in ("RUNNING", "UPDATING"):
537
539
  raise snowml_exceptions.SnowflakeMLException(
538
540
  error_code=error_codes.INVALID_ARGUMENT,
539
541
  original_exception=ValueError(
@@ -1077,11 +1077,9 @@ class MergingSqlGenerator:
1077
1077
 
1078
1078
  elif spec.function == AggregationType.APPROX_COUNT_DISTINCT:
1079
1079
  col_name = spec.get_tile_column_name("DS_HLL")
1080
- agg_columns.append(
1081
- f"DATASKETCHES_HLL_ESTIMATE(DATASKETCHES_HLL_COMBINE("
1082
- f"CASE WHEN {tile_filter} THEN {col_name} ELSE NULL END"
1083
- f")) AS {output_col}"
1084
- )
1080
+ # Round the HLL estimate to a BIGINT for online/offline parity.
1081
+ sketch_expr = f"DATASKETCHES_HLL_COMBINE(CASE WHEN {tile_filter} THEN {col_name} ELSE NULL END)"
1082
+ agg_columns.append(f"ROUND(DATASKETCHES_HLL_ESTIMATE({sketch_expr}))::BIGINT AS {output_col}")
1085
1083
 
1086
1084
  elif spec.function == AggregationType.APPROX_PERCENTILE:
1087
1085
  # Combine T-Digest states and estimate percentile
@@ -1209,9 +1207,9 @@ class MergingSqlGenerator:
1209
1207
  )
1210
1208
  elif spec.function == AggregationType.APPROX_COUNT_DISTINCT:
1211
1209
  partial = spec.get_tile_column_name("DS_HLL")
1212
- inner_exprs.append(
1213
- f"DATASKETCHES_HLL_ESTIMATE(DATASKETCHES_HLL_COMBINE({partial})) AS {output_col}"
1214
- )
1210
+ # Round the HLL estimate to a BIGINT for online/offline parity.
1211
+ sketch_expr = f"DATASKETCHES_HLL_COMBINE({partial})"
1212
+ inner_exprs.append(f"ROUND(DATASKETCHES_HLL_ESTIMATE({sketch_expr}))::BIGINT AS {output_col}")
1215
1213
  elif spec.function == AggregationType.APPROX_PERCENTILE:
1216
1214
  # T-Digest states are likewise mergeable across tiles per
1217
1215
  # (entity, sk): combine then estimate at the requested
@@ -1378,7 +1376,8 @@ class MergingSqlGenerator:
1378
1376
 
1379
1377
  elif spec.function == AggregationType.APPROX_COUNT_DISTINCT:
1380
1378
  cum_col = spec.get_cumulative_column_name("DS_HLL")
1381
- select_cols.append(f"DATASKETCHES_HLL_ESTIMATE(TILES.{cum_col}) AS {output_col}")
1379
+ # Round the HLL estimate to a BIGINT for online/offline parity.
1380
+ select_cols.append(f"ROUND(DATASKETCHES_HLL_ESTIMATE(TILES.{cum_col}))::BIGINT AS {output_col}")
1382
1381
 
1383
1382
  elif spec.function == AggregationType.APPROX_PERCENTILE:
1384
1383
  cum_col = spec.get_cumulative_column_name("TDIGEST")
@@ -0,0 +1,19 @@
1
+ from uuid import uuid4
2
+
3
+ from snowflake.ml._internal.utils import sql_identifier
4
+
5
+ _CHECKOUT_NAME_SUFFIX_LEN = 8
6
+
7
+
8
+ def _checkout_name_suffix() -> str:
9
+ return uuid4().hex[:_CHECKOUT_NAME_SUFFIX_LEN].upper()
10
+
11
+
12
+ def generate_pending_model_name() -> sql_identifier.SqlIdentifier:
13
+ """Generate a hidden pending model name for checkout (CREATE path)."""
14
+ return sql_identifier.SqlIdentifier(f"PENDING_{_checkout_name_suffix()}_MODEL")
15
+
16
+
17
+ def generate_live_version_name() -> sql_identifier.SqlIdentifier:
18
+ """Generate a hidden live version name for checkout."""
19
+ return sql_identifier.SqlIdentifier(f"LIVE_{_checkout_name_suffix()}_VERSION")
@@ -170,6 +170,40 @@ class ModelOperator:
170
170
  else:
171
171
  return ModelAction.CREATE
172
172
 
173
+ def create_live_version(
174
+ self,
175
+ *,
176
+ database_name: Optional[sql_identifier.SqlIdentifier],
177
+ schema_name: Optional[sql_identifier.SqlIdentifier],
178
+ model_name: sql_identifier.SqlIdentifier,
179
+ version_name: sql_identifier.SqlIdentifier,
180
+ statement_params: Optional[dict[str, Any]] = None,
181
+ ) -> None:
182
+ self._model_version_client.create_live_version(
183
+ database_name=database_name,
184
+ schema_name=schema_name,
185
+ model_name=model_name,
186
+ version_name=version_name,
187
+ statement_params=statement_params,
188
+ )
189
+
190
+ def add_live_version(
191
+ self,
192
+ *,
193
+ database_name: Optional[sql_identifier.SqlIdentifier],
194
+ schema_name: Optional[sql_identifier.SqlIdentifier],
195
+ model_name: sql_identifier.SqlIdentifier,
196
+ version_name: sql_identifier.SqlIdentifier,
197
+ statement_params: Optional[dict[str, Any]] = None,
198
+ ) -> None:
199
+ self._model_version_client.add_live_version(
200
+ database_name=database_name,
201
+ schema_name=schema_name,
202
+ model_name=model_name,
203
+ version_name=version_name,
204
+ statement_params=statement_params,
205
+ )
206
+
173
207
  def add_or_create_live_version(
174
208
  self,
175
209
  *,
@@ -187,7 +221,7 @@ class ModelOperator:
187
221
  statement_params=statement_params,
188
222
  )
189
223
  if model_action == ModelAction.CREATE:
190
- self._model_version_client.create_live_version(
224
+ self.create_live_version(
191
225
  database_name=database_name,
192
226
  schema_name=schema_name,
193
227
  model_name=model_name,
@@ -195,7 +229,7 @@ class ModelOperator:
195
229
  statement_params=statement_params,
196
230
  )
197
231
  elif model_action == ModelAction.ALTER:
198
- self._model_version_client.add_live_version(
232
+ self.add_live_version(
199
233
  database_name=database_name,
200
234
  schema_name=schema_name,
201
235
  model_name=model_name,
@@ -205,6 +239,27 @@ class ModelOperator:
205
239
  else:
206
240
  raise AssertionError(f"The model_action is {model_action}. Expected CREATE or ALTER.")
207
241
 
242
+ def commit_live_version(
243
+ self,
244
+ *,
245
+ database_name: Optional[sql_identifier.SqlIdentifier],
246
+ schema_name: Optional[sql_identifier.SqlIdentifier],
247
+ checkout_model_name: sql_identifier.SqlIdentifier,
248
+ checkout_version_name: sql_identifier.SqlIdentifier,
249
+ rename_model_to: Optional[sql_identifier.SqlIdentifier] = None,
250
+ rename_version_to: Optional[sql_identifier.SqlIdentifier] = None,
251
+ statement_params: Optional[dict[str, Any]] = None,
252
+ ) -> None:
253
+ self._model_version_client.commit_version(
254
+ database_name=database_name,
255
+ schema_name=schema_name,
256
+ model_name=checkout_model_name,
257
+ version_name=checkout_version_name,
258
+ rename_model_to=rename_model_to,
259
+ rename_version_to=rename_version_to,
260
+ statement_params=statement_params,
261
+ )
262
+
208
263
  def create_from_stage(
209
264
  self,
210
265
  composed_model: model_composer.ModelComposer,
@@ -214,49 +269,35 @@ class ModelOperator:
214
269
  model_name: sql_identifier.SqlIdentifier,
215
270
  version_name: sql_identifier.SqlIdentifier,
216
271
  statement_params: Optional[dict[str, Any]] = None,
217
- use_live_commit: Optional[bool] = False,
218
272
  ) -> None:
219
- if use_live_commit:
220
- # if the model version is live, we can only commit the version
221
- self._model_version_client.commit_version(
273
+ stage_path = str(composed_model.stage_path)
274
+ model_action = self.get_model_action_from_model_name_and_version(
275
+ database_name=database_name,
276
+ schema_name=schema_name,
277
+ model_name=model_name,
278
+ version_name=version_name,
279
+ statement_params=statement_params,
280
+ )
281
+ if model_action == ModelAction.ALTER:
282
+ self._model_version_client.add_version_from_stage(
222
283
  database_name=database_name,
223
284
  schema_name=schema_name,
285
+ stage_path=stage_path,
224
286
  model_name=model_name,
225
287
  version_name=version_name,
226
288
  statement_params=statement_params,
227
289
  )
228
- else:
229
- stage_path = str(composed_model.stage_path)
230
- # if the model version is not live,
231
- # find whether the model exists and whether the version exists
232
- # and then decide whether to create or alter the model
233
- model_action = self.get_model_action_from_model_name_and_version(
290
+ elif model_action == ModelAction.CREATE:
291
+ self._model_version_client.create_from_stage(
234
292
  database_name=database_name,
235
293
  schema_name=schema_name,
294
+ stage_path=stage_path,
236
295
  model_name=model_name,
237
296
  version_name=version_name,
238
297
  statement_params=statement_params,
239
298
  )
240
- if model_action == ModelAction.ALTER:
241
- self._model_version_client.add_version_from_stage(
242
- database_name=database_name,
243
- schema_name=schema_name,
244
- stage_path=stage_path,
245
- model_name=model_name,
246
- version_name=version_name,
247
- statement_params=statement_params,
248
- )
249
- elif model_action == ModelAction.CREATE:
250
- self._model_version_client.create_from_stage(
251
- database_name=database_name,
252
- schema_name=schema_name,
253
- stage_path=stage_path,
254
- model_name=model_name,
255
- version_name=version_name,
256
- statement_params=statement_params,
257
- )
258
- else:
259
- raise AssertionError(f"The model_action is {model_action}. Expected CREATE or ALTER.")
299
+ else:
300
+ raise AssertionError(f"The model_action is {model_action}. Expected CREATE or ALTER.")
260
301
 
261
302
  def create_from_model_version(
262
303
  self,
@@ -117,12 +117,18 @@ class ModelVersionSQLClient(_base._BaseSQLClient):
117
117
  schema_name: Optional[sql_identifier.SqlIdentifier],
118
118
  model_name: sql_identifier.SqlIdentifier,
119
119
  version_name: sql_identifier.SqlIdentifier,
120
+ rename_model_to: Optional[sql_identifier.SqlIdentifier] = None,
121
+ rename_version_to: Optional[sql_identifier.SqlIdentifier] = None,
120
122
  statement_params: Optional[dict[str, Any]] = None,
121
123
  ) -> None:
122
124
  sql = (
123
125
  f"ALTER MODEL {self.fully_qualified_object_name(database_name, schema_name, model_name)}"
124
126
  f" COMMIT VERSION {version_name.identifier()}"
125
127
  )
128
+ if rename_model_to is not None:
129
+ sql += f" RENAME TO {self.fully_qualified_object_name(database_name, schema_name, rename_model_to)}"
130
+ if rename_version_to is not None:
131
+ sql += f" RENAME VERSION TO {rename_version_to.identifier()}"
126
132
 
127
133
  query_result_checker.SqlResultValidator(
128
134
  self._session,
@@ -1,3 +1,4 @@
1
+ import copy
1
2
  import importlib
2
3
  import json
3
4
  import logging
@@ -130,16 +131,19 @@ def add_inferred_explain_method_signature(
130
131
  suffixed_output_names = [f"{name}_explanation" for name in output_feature_names]
131
132
 
132
133
  truncated_background_data = get_truncated_sample_data(background_data, 5)
133
- sig = model_signature.infer_signature(
134
- input_data=truncated_background_data,
135
- output_data=explain_fn(truncated_background_data),
136
- input_feature_names=[spec.name for spec in inputs],
137
- output_feature_names=suffixed_output_names,
134
+
135
+ # The target method's signature already describes the model inputs, so reuse those specs for the explain
136
+ # signature (copied so it owns independent objects). The background sample is used only to infer the shape and
137
+ # data types of the explanation outputs.
138
+ explain_inputs = copy.deepcopy(list(inputs))
139
+ explain_outputs = model_signature_utils.rename_features(
140
+ model_signature._infer_signature(explain_fn(truncated_background_data), role="output"),
141
+ feature_names=list(suffixed_output_names),
138
142
  )
139
143
 
140
144
  target_sig = model_meta.signatures.get(target_method)
141
- if target_sig is not None and target_sig.params is not None:
142
- sig = model_signature.ModelSignature(inputs=sig.inputs, outputs=sig.outputs, params=target_sig.params)
145
+ params = target_sig.params if target_sig is not None else None
146
+ sig = model_signature.ModelSignature(inputs=explain_inputs, outputs=explain_outputs, params=params)
143
147
 
144
148
  model_meta.signatures[explain_method] = sig
145
149
  return model_meta
@@ -4,7 +4,7 @@
4
4
  REQUIREMENTS = [
5
5
  "aiohttp!=4.0.0a0, !=4.0.0a1",
6
6
  "anyio>=3.5.0,<5",
7
- "cachetools>=3.1.1,<6",
7
+ "cachetools>=3.1.1",
8
8
  "cloudpickle>=2.0.0",
9
9
  "cryptography",
10
10
  "fsspec>=2024.6.1,<2026",
@@ -12,7 +12,12 @@ from snowflake.ml._internal.human_readable_id import hrid_generator
12
12
  from snowflake.ml._internal.utils import sql_identifier
13
13
  from snowflake.ml.model import model_signature, task, type_hints
14
14
  from snowflake.ml.model._client.model import model_impl, model_version_impl
15
- from snowflake.ml.model._client.ops import metadata_ops, model_ops, service_ops
15
+ from snowflake.ml.model._client.ops import (
16
+ live_commit_naming,
17
+ metadata_ops,
18
+ model_ops,
19
+ service_ops,
20
+ )
16
21
  from snowflake.ml.model._client.service import (
17
22
  import_model_spec_schema,
18
23
  model_deployment_spec_schema,
@@ -154,6 +159,7 @@ class ModelManager:
154
159
  model=model,
155
160
  model_name=model_name,
156
161
  version_name=version_name,
162
+ model_exists=model_exists,
157
163
  comment=comment,
158
164
  metrics=metrics,
159
165
  conda_dependencies=conda_dependencies,
@@ -180,6 +186,7 @@ class ModelManager:
180
186
  *,
181
187
  model_name: str,
182
188
  version_name: str,
189
+ model_exists: bool,
183
190
  progress_status: type_hints.ProgressStatus,
184
191
  comment: Optional[str] = None,
185
192
  metrics: Optional[dict[str, Any]] = None,
@@ -230,36 +237,58 @@ class ModelManager:
230
237
  )
231
238
 
232
239
  # TODO(SNOW-2091317): Remove this when the snowpark enables file PUT operation for snowurls
233
- use_live_commit = (
240
+ use_hidden_live_commit = (
234
241
  not snowpark_utils.is_in_stored_procedure() # type: ignore[no-untyped-call]
235
- ) and platform_capabilities.PlatformCapabilities.get_instance().is_live_commit_enabled()
236
- if use_live_commit:
237
- logger.info("Using live commit model version")
242
+ ) and platform_capabilities.PlatformCapabilities.get_instance().is_hidden_live_commit_enabled()
243
+ if use_hidden_live_commit:
244
+ logger.info("Using hidden live commit model version")
238
245
  else:
239
246
  logger.info("Using non-live commit model version")
240
247
 
241
- if use_live_commit:
242
- # This step creates the live model version, and the files can be written directly to the stage
243
- # after this.
248
+ checkout_model_name_id = model_name_id
249
+ checkout_version_name_id: Optional[sql_identifier.SqlIdentifier] = None
250
+ rename_model_to_id: Optional[sql_identifier.SqlIdentifier] = None
251
+
252
+ if use_hidden_live_commit:
253
+ model_action = model_ops.ModelAction.ALTER if model_exists else model_ops.ModelAction.CREATE
254
+ live_version_name_id = live_commit_naming.generate_live_version_name()
255
+ checkout_version_name_id = live_version_name_id
256
+ if model_action == model_ops.ModelAction.CREATE:
257
+ checkout_model_name_id = live_commit_naming.generate_pending_model_name()
258
+ rename_model_to_id = model_name_id
244
259
  try:
245
- self._model_ops.add_or_create_live_version(
246
- database_name=database_name_id,
247
- schema_name=schema_name_id,
248
- model_name=model_name_id,
249
- version_name=version_name_id,
250
- statement_params=statement_params,
251
- )
260
+ if model_action == model_ops.ModelAction.CREATE:
261
+ self._model_ops.create_live_version(
262
+ database_name=database_name_id,
263
+ schema_name=schema_name_id,
264
+ model_name=checkout_model_name_id,
265
+ version_name=live_version_name_id,
266
+ statement_params=statement_params,
267
+ )
268
+ else:
269
+ self._model_ops.add_live_version(
270
+ database_name=database_name_id,
271
+ schema_name=schema_name_id,
272
+ model_name=checkout_model_name_id,
273
+ version_name=live_version_name_id,
274
+ statement_params=statement_params,
275
+ )
252
276
  except (AssertionError, snowpark_exceptions.SnowparkSQLException) as e:
253
- logger.info(f"Failed to create live model version: {e}, falling back to regular model version creation")
254
- use_live_commit = False
277
+ logger.info(
278
+ f"Failed to create hidden live model version: {e}, falling back to regular model version creation"
279
+ )
280
+ use_hidden_live_commit = False
281
+ checkout_model_name_id = model_name_id
282
+ checkout_version_name_id = None
283
+ rename_model_to_id = None
255
284
 
256
- if use_live_commit:
257
- # using model version's stage path to write files directly to the stage
285
+ if use_hidden_live_commit:
286
+ assert checkout_version_name_id is not None
258
287
  stage_path = self._model_ops.get_model_version_stage_path(
259
288
  database_name=database_name_id,
260
289
  schema_name=schema_name_id,
261
- model_name=model_name_id,
262
- version_name=version_name_id,
290
+ model_name=checkout_model_name_id,
291
+ version_name=checkout_version_name_id,
263
292
  )
264
293
  else:
265
294
  # using a temp path to write files and then upload to the model version's stage
@@ -307,6 +336,7 @@ class ModelManager:
307
336
  progress_status.increment()
308
337
 
309
338
  model_metadata: model_meta.ModelMetadata = mc.save(
339
+ # Artifact identity must use the target model name, not checkout (pending/live) names.
310
340
  name=model_name_id.resolved(),
311
341
  model=model,
312
342
  signatures=signatures,
@@ -338,15 +368,26 @@ class ModelManager:
338
368
  progress_status.update("creating model object in Snowflake...")
339
369
  progress_status.increment()
340
370
 
341
- self._model_ops.create_from_stage(
342
- composed_model=mc,
343
- database_name=database_name_id,
344
- schema_name=schema_name_id,
345
- model_name=model_name_id,
346
- version_name=version_name_id,
347
- statement_params=statement_params,
348
- use_live_commit=use_live_commit,
349
- )
371
+ if use_hidden_live_commit:
372
+ assert checkout_version_name_id is not None
373
+ self._model_ops.commit_live_version(
374
+ database_name=database_name_id,
375
+ schema_name=schema_name_id,
376
+ checkout_model_name=checkout_model_name_id,
377
+ checkout_version_name=checkout_version_name_id,
378
+ rename_model_to=rename_model_to_id,
379
+ rename_version_to=version_name_id,
380
+ statement_params=statement_params,
381
+ )
382
+ else:
383
+ self._model_ops.create_from_stage(
384
+ composed_model=mc,
385
+ database_name=database_name_id,
386
+ schema_name=schema_name_id,
387
+ model_name=model_name_id,
388
+ version_name=version_name_id,
389
+ statement_params=statement_params,
390
+ )
350
391
 
351
392
  mv = self._create_model_version_ref(
352
393
  database_name_id=database_name_id,
@@ -1,2 +1,2 @@
1
1
  # This is parsed by regex in conda recipe meta file. Make sure not to break it.
2
- VERSION = "1.48.0"
2
+ VERSION = "1.49.0"