snowflake-ml-python 2.2.0__tar.gz → 2.4.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 (558) hide show
  1. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/CHANGELOG.md +66 -10
  2. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/PKG-INFO +71 -13
  3. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/README.md +1 -1
  4. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/pyproject.toml +2 -2
  5. snowflake_ml_python-2.4.0/snowflake/cortex/_classify_text.py +93 -0
  6. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_complete.py +41 -9
  7. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_embed_text_1024.py +11 -5
  8. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_embed_text_768.py +11 -5
  9. snowflake_ml_python-2.4.0/snowflake/cortex/_extract_answer.py +85 -0
  10. snowflake_ml_python-2.4.0/snowflake/cortex/_sentiment.py +78 -0
  11. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_summarize.py +11 -5
  12. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_translate.py +11 -5
  13. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_util.py +35 -0
  14. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_entities/run.py +14 -6
  15. snowflake_ml_python-2.4.0/snowflake/ml/experiment/callback/catboost.py +75 -0
  16. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/experiment_tracking.py +41 -24
  17. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature_store.py +55 -0
  18. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/tile_sql_generator.py +40 -31
  19. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/job.py +19 -3
  20. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +81 -1
  21. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/batch_inference_task.py +24 -6
  22. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/model_version_impl.py +97 -5
  23. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/model_ops.py +253 -6
  24. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/service_ops.py +5 -4
  25. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +1 -1
  26. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/model.py +11 -3
  27. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/core.py +9 -4
  28. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/model_signature.py +85 -0
  29. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/model_specifications.py +10 -4
  30. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -2
  31. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +2 -1
  32. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +2 -1
  33. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +2 -1
  34. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/birch.py +2 -1
  35. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +2 -1
  36. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/dbscan.py +2 -1
  37. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +2 -1
  38. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/k_means.py +2 -1
  39. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/mean_shift.py +2 -1
  40. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +2 -1
  41. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/optics.py +2 -1
  42. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +2 -1
  43. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +2 -1
  44. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +2 -1
  45. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/compose/column_transformer.py +2 -1
  46. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +2 -1
  47. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +2 -1
  48. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +2 -1
  49. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +2 -1
  50. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +2 -1
  51. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +2 -1
  52. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/min_cov_det.py +2 -1
  53. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/oas.py +2 -1
  54. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +2 -1
  55. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +2 -1
  56. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +2 -1
  57. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/fast_ica.py +2 -1
  58. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +2 -1
  59. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +2 -1
  60. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +2 -1
  61. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +2 -1
  62. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/pca.py +2 -1
  63. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +2 -1
  64. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +2 -1
  65. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +2 -1
  66. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +2 -1
  67. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +2 -1
  68. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +2 -1
  69. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +2 -1
  70. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +2 -1
  71. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +2 -1
  72. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +2 -1
  73. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +2 -1
  74. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +2 -1
  75. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +2 -1
  76. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +2 -1
  77. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +2 -1
  78. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +2 -1
  79. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +2 -1
  80. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +2 -1
  81. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +2 -1
  82. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +2 -1
  83. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +2 -1
  84. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +2 -1
  85. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +2 -1
  86. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +2 -1
  87. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +2 -1
  88. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +2 -1
  89. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +2 -1
  90. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +2 -1
  91. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +2 -1
  92. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +2 -1
  93. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/impute/iterative_imputer.py +2 -1
  94. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/impute/knn_imputer.py +2 -1
  95. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/impute/missing_indicator.py +2 -1
  96. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +2 -1
  97. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +2 -1
  98. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +2 -1
  99. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +2 -1
  100. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +2 -1
  101. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +2 -1
  102. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +2 -1
  103. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +2 -1
  104. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ard_regression.py +2 -1
  105. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +2 -1
  106. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/elastic_net.py +2 -1
  107. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +2 -1
  108. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +2 -1
  109. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +2 -1
  110. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lars.py +2 -1
  111. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lars_cv.py +2 -1
  112. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lasso.py +2 -1
  113. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +2 -1
  114. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +2 -1
  115. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +2 -1
  116. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +2 -1
  117. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/linear_regression.py +2 -1
  118. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +2 -1
  119. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +2 -1
  120. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +2 -1
  121. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +2 -1
  122. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +2 -1
  123. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +2 -1
  124. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +2 -1
  125. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +2 -1
  126. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +2 -1
  127. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/perceptron.py +2 -1
  128. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +2 -1
  129. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +2 -1
  130. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ridge.py +2 -1
  131. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +2 -1
  132. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +2 -1
  133. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +2 -1
  134. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +2 -1
  135. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +2 -1
  136. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +2 -1
  137. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +2 -1
  138. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +2 -1
  139. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/manifold/isomap.py +2 -1
  140. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/manifold/mds.py +2 -1
  141. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +2 -1
  142. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/manifold/tsne.py +2 -1
  143. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/classification.py +1 -0
  144. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/metrics_utils.py +6 -0
  145. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/ranking.py +3 -0
  146. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/regression.py +3 -0
  147. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +2 -1
  148. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +2 -1
  149. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +2 -0
  150. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +2 -0
  151. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +2 -1
  152. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +2 -1
  153. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +2 -1
  154. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +2 -1
  155. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +2 -1
  156. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +2 -1
  157. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +2 -1
  158. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +2 -1
  159. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +2 -1
  160. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +2 -1
  161. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/kernel_density.py +2 -1
  162. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +2 -1
  163. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +2 -1
  164. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +2 -1
  165. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +2 -1
  166. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +2 -1
  167. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +2 -1
  168. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +2 -1
  169. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +2 -1
  170. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +2 -1
  171. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/pipeline/pipeline.py +6 -1
  172. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +2 -1
  173. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +2 -1
  174. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +2 -1
  175. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/linear_svc.py +2 -1
  176. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/linear_svr.py +2 -1
  177. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/nu_svc.py +2 -1
  178. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/nu_svr.py +2 -1
  179. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/svc.py +2 -1
  180. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/svr.py +2 -1
  181. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +2 -1
  182. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +2 -1
  183. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +2 -1
  184. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +2 -1
  185. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +2 -1
  186. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +2 -1
  187. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +2 -1
  188. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +2 -1
  189. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/registry/_manager/model_manager.py +78 -0
  190. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +7 -7
  191. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/version.py +1 -1
  192. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake_ml_python.egg-info/PKG-INFO +71 -13
  193. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
  194. snowflake_ml_python-2.2.0/snowflake/cortex/_classify_text.py +0 -47
  195. snowflake_ml_python-2.2.0/snowflake/cortex/_extract_answer.py +0 -43
  196. snowflake_ml_python-2.2.0/snowflake/cortex/_sentiment.py +0 -38
  197. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/LICENSE.txt +0 -0
  198. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/setup.cfg +0 -0
  199. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/__init__.py +0 -0
  200. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_finetune.py +0 -0
  201. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/cortex/_sse_client.py +0 -0
  202. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/env.py +0 -0
  203. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/env_utils.py +0 -0
  204. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  205. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  206. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  207. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  208. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  209. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  210. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  211. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  212. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  213. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/file_utils.py +0 -0
  214. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  215. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  216. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  217. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  218. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/init_utils.py +0 -0
  219. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  220. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  221. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  222. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  223. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/telemetry.py +0 -0
  224. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/type_utils.py +0 -0
  225. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  226. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  227. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  228. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  229. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  230. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  231. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  232. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  233. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  234. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  235. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/result.py +0 -0
  236. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  237. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  238. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  239. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  240. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  241. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  242. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  243. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/_internal/utils/url.py +0 -0
  244. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/__init__.py +0 -0
  245. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  246. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/data_connector.py +0 -0
  247. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/data_ingestor.py +0 -0
  248. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/data_source.py +0 -0
  249. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  250. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/data/torch_utils.py +0 -0
  251. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/dataset/__init__.py +0 -0
  252. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/dataset/dataset.py +0 -0
  253. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  254. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  255. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  256. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/__init__.py +0 -0
  257. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  258. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  259. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  260. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  261. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  262. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  263. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  264. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  265. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  266. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/_source_info.py +0 -0
  267. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  268. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  269. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  270. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/experiment/utils.py +0 -0
  271. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/__init__.py +0 -0
  272. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
  273. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  274. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  275. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/entity.py +0 -0
  276. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  277. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  278. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  279. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  280. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  281. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  282. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  283. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  284. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  285. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  286. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  287. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  288. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  289. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  290. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  291. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  292. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  293. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  294. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  295. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  296. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  297. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  298. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature.py +0 -0
  299. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature_group.py +0 -0
  300. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  301. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
  302. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
  303. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  304. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  305. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/online_service.py +0 -0
  306. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
  307. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
  308. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
  309. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
  310. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
  311. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/request_source.py +0 -0
  312. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  313. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
  314. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  315. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  316. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
  317. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  318. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  319. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  320. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  321. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/fileset/fileset.py +0 -0
  322. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  323. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/fileset/snowfs.py +0 -0
  324. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  325. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/__init__.py +0 -0
  326. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  327. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  328. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  329. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  330. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  331. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  332. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  333. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  334. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  335. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  336. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  337. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  338. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  339. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  340. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  341. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
  342. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  343. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  344. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  345. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  346. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  347. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  348. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  349. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  350. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  351. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/decorators.py +0 -0
  352. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/job_definition.py +0 -0
  353. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/jobs/manager.py +0 -0
  354. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/lineage/__init__.py +0 -0
  355. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  356. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/__init__.py +0 -0
  357. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/_loaded_model_telemetry.py +0 -0
  358. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  359. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  360. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model/telemetry_params.py +0 -0
  361. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model_spec/legacy_model_spec.py +0 -0
  362. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model_spec/model_extension_spec.py +0 -0
  363. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model_spec/model_extension_spec_schema.py +0 -0
  364. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model_spec/model_spec.py +0 -0
  365. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/model_spec/model_spec_parser.py +0 -0
  366. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  367. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
  368. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  369. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
  370. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  371. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  372. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  373. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  374. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  375. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  376. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  377. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  378. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  379. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
  380. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  381. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  382. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  383. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  384. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  385. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  386. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
  387. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  388. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
  389. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  390. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
  391. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  392. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  393. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  394. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  395. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  396. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  397. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  398. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  399. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  400. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  401. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
  402. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
  403. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  404. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
  405. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
  406. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
  407. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
  408. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
  409. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
  410. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
  411. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
  412. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
  413. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
  414. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
  415. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
  416. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
  417. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
  418. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
  419. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
  420. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
  421. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
  422. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
  423. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
  424. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
  425. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
  426. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
  427. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
  428. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
  429. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
  430. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
  431. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
  432. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  433. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  434. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  435. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/peft_adapter.py +0 -0
  436. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  437. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  438. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  439. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  440. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  441. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  442. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  443. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  444. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  445. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  446. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  447. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  448. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  449. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  450. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  451. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  452. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
  453. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  454. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  455. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  456. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  457. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  458. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  459. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
  460. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  461. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  462. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  463. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  464. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  465. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  466. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  467. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  468. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  469. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  470. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/batch_inference/__init__.py +0 -0
  471. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/code_path.py +0 -0
  472. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/compute_pool.py +0 -0
  473. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/custom_model.py +0 -0
  474. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/event_handler.py +0 -0
  475. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/inference_engine.py +0 -0
  476. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/models/huggingface.py +0 -0
  477. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  478. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/openai_signatures.py +0 -0
  479. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/target_platform.py +0 -0
  480. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/task.py +0 -0
  481. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/type_hints.py +0 -0
  482. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/model/volatility.py +0 -0
  483. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  484. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  485. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  486. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  487. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  488. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  489. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/optional_dependency.py +0 -0
  490. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  491. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  492. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  493. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  494. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  495. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  496. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  497. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  498. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  499. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  500. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  501. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  502. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  503. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  504. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/framework/base.py +0 -0
  505. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  506. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  507. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  508. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  509. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  510. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  511. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  512. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  513. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  514. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  515. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  516. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  517. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  518. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  519. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  520. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  521. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  522. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  523. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  524. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  525. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  526. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  527. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  528. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  529. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  530. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  531. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  532. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  533. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  534. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  535. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  536. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  537. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  538. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  539. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  540. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  541. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  542. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  543. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  544. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  545. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  546. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  547. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  548. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/monitoring/shap.py +0 -0
  549. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/registry/__init__.py +0 -0
  550. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/registry/registry.py +0 -0
  551. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/utils/authentication.py +0 -0
  552. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/utils/html_utils.py +0 -0
  553. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/utils/sparse.py +0 -0
  554. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/utils/sql_client.py +0 -0
  555. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake/ml/utils/stage_file.py +0 -0
  556. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  557. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  558. {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.4.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,62 @@
1
1
  # Release History
2
2
 
3
- ## 2.2.0
3
+ ## 2.4.0
4
+
5
+ ### New Features
6
+
7
+ * Generic: Support Python 3.14.
8
+
9
+ * Registry: `FeatureSpec(dtype=DataType.OBJECT)` now accepts schema-free Python dictionaries as a
10
+ model input or output (SQL `OBJECT`). Callers can pass a dict to `ModelVersion.run`, an object
11
+ literal in SQL, or a JSON object over REST, without stringifying to JSON. Use `shape=(-1,)` for
12
+ a list of dictionaries (`ARRAY(OBJECT)`). Closed structs with a fixed field list remain
13
+ `FeatureGroupSpec`.
14
+
15
+ * Experiment Tracking: Added `snowflake.ml.experiment.callback.catboost.SnowflakeCatboostCallback`, a
16
+ CatBoost training callback that logs metrics and, optionally, parameters to a Snowflake experiment.
17
+ Pass `params=model.get_params()` to log parameters. Model logging is handled separately after
18
+ training via ``ExperimentTracking.log_model``.
19
+
20
+ * Experiment Tracking: `ExperimentTracking` accepts an optional `warnings_as_errors` parameter. When True,
21
+ conditions that are normally reported as warnings are raised instead.
22
+
23
+ ### Bug Fixes
24
+
25
+ ### Behavior Changes
26
+
27
+ * Experiment Tracking: Re-constructing the `ExperimentTracking` singleton now logs an informational
28
+ message instead of emitting a `UserWarning`.
29
+
30
+ * Registry: `log_model` no longer raises when `options={'relax_version': True}` is used with pip
31
+ requirements or Snowpark Container Services-only targets. The option is ignored, a warning is
32
+ emitted, and exact pip version specifications are kept.
33
+
34
+ ### Deprecations
35
+
36
+ ## 2.3.0 (2026-09-28)
37
+
38
+ ### New Features
39
+
40
+ * Experiment Tracking: `ExperimentTracking` accepts an optional `model_registry` parameter. When provided,
41
+ `log_model` stores models in the registry's database and schema instead of the experiment's, so experiments
42
+ and models can live in separate schemas.
43
+
44
+ ### Bug Fixes
45
+
46
+ * Feature Store: Offline reads of a feature view with several list aggregations or several secondary-key
47
+ aggregation windows used to return incomplete results in some scenarios. The bug has been fixed
48
+ and the existing feature views pick up the fix on their next read, with no re-registration or backfill required.
49
+
50
+ ### Behavior Changes
51
+
52
+ * Feature Store: `update_feature_view()` now rejects a `target_lag` change on a feature view whose online store
53
+ is `POSTGRES`, instead of reporting success for a change that is not applied. Set `target_lag` when online
54
+ storage is first enabled, or delete and re-register the feature view to change it. Enabling or disabling
55
+ online storage, and `target_lag` changes on hybrid-table online stores, are unaffected.
56
+
57
+ ### Deprecations
58
+
59
+ ## 2.2.0 (2026-09-21)
4
60
 
5
61
  ### New Features
6
62
 
@@ -14,8 +70,17 @@
14
70
 
15
71
  ### Bug Fixes
16
72
 
73
+ * Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
74
+ executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
75
+ `EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
76
+ primary role is not the owner.
77
+
17
78
  ### Behavior Changes
18
79
 
80
+ * Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
81
+ installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
82
+ in `snowflake.ml.modeling.preprocessing` already requires that extra.
83
+
19
84
  ### Deprecations
20
85
 
21
86
  ## 2.1.0 (2026-09-14)
@@ -37,21 +102,12 @@
37
102
 
38
103
  ### Bug Fixes
39
104
 
40
- * Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
41
- executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
42
- `EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
43
- primary role is not the owner.
44
-
45
105
  * Registry: Fixed logging of MLflow models created with `mlflow.sklearn.save_model()`. The model is
46
106
  now re-logged from the scikit-learn estimator using the serialization format it was saved with,
47
107
  instead of from MLflow's PyFunc wrapper with the version-dependent default format.
48
108
 
49
109
  ### Behavior Changes
50
110
 
51
- * Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
52
- installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
53
- in `snowflake.ml.modeling.preprocessing` already requires that extra.
54
-
55
111
  ### Deprecations
56
112
 
57
113
  ## 2.0.0 (2026-09-09)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 2.2.0
3
+ Version: 2.4.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:
@@ -223,13 +223,15 @@ Classifier: Operating System :: OS Independent
223
223
  Classifier: Programming Language :: Python :: 3.10
224
224
  Classifier: Programming Language :: Python :: 3.11
225
225
  Classifier: Programming Language :: Python :: 3.12
226
+ Classifier: Programming Language :: Python :: 3.13
227
+ Classifier: Programming Language :: Python :: 3.14
226
228
  Classifier: Topic :: Database
227
229
  Classifier: Topic :: Software Development
228
230
  Classifier: Topic :: Software Development :: Libraries
229
231
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
230
232
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
231
233
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
232
- Requires-Python: <3.14,>=3.10
234
+ Requires-Python: <3.15,>=3.10
233
235
  Description-Content-Type: text/markdown
234
236
  License-File: LICENSE.txt
235
237
  Requires-Dist: anyio<5,>=3.5.0
@@ -378,7 +380,7 @@ In Snowflake Warehouse notebook environments, snowflake-ml-python can be install
378
380
  Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
379
381
  in the Snowflake documentation.
380
382
 
381
- Python versions 3.10 to 3.13 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
383
+ Python versions 3.10 to 3.14 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
382
384
  [anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
383
385
  or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
384
386
 
@@ -424,7 +426,63 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
424
426
 
425
427
  # Release History
426
428
 
427
- ## 2.2.0
429
+ ## 2.4.0
430
+
431
+ ### New Features
432
+
433
+ * Generic: Support Python 3.14.
434
+
435
+ * Registry: `FeatureSpec(dtype=DataType.OBJECT)` now accepts schema-free Python dictionaries as a
436
+ model input or output (SQL `OBJECT`). Callers can pass a dict to `ModelVersion.run`, an object
437
+ literal in SQL, or a JSON object over REST, without stringifying to JSON. Use `shape=(-1,)` for
438
+ a list of dictionaries (`ARRAY(OBJECT)`). Closed structs with a fixed field list remain
439
+ `FeatureGroupSpec`.
440
+
441
+ * Experiment Tracking: Added `snowflake.ml.experiment.callback.catboost.SnowflakeCatboostCallback`, a
442
+ CatBoost training callback that logs metrics and, optionally, parameters to a Snowflake experiment.
443
+ Pass `params=model.get_params()` to log parameters. Model logging is handled separately after
444
+ training via ``ExperimentTracking.log_model``.
445
+
446
+ * Experiment Tracking: `ExperimentTracking` accepts an optional `warnings_as_errors` parameter. When True,
447
+ conditions that are normally reported as warnings are raised instead.
448
+
449
+ ### Bug Fixes
450
+
451
+ ### Behavior Changes
452
+
453
+ * Experiment Tracking: Re-constructing the `ExperimentTracking` singleton now logs an informational
454
+ message instead of emitting a `UserWarning`.
455
+
456
+ * Registry: `log_model` no longer raises when `options={'relax_version': True}` is used with pip
457
+ requirements or Snowpark Container Services-only targets. The option is ignored, a warning is
458
+ emitted, and exact pip version specifications are kept.
459
+
460
+ ### Deprecations
461
+
462
+ ## 2.3.0 (2026-09-28)
463
+
464
+ ### New Features
465
+
466
+ * Experiment Tracking: `ExperimentTracking` accepts an optional `model_registry` parameter. When provided,
467
+ `log_model` stores models in the registry's database and schema instead of the experiment's, so experiments
468
+ and models can live in separate schemas.
469
+
470
+ ### Bug Fixes
471
+
472
+ * Feature Store: Offline reads of a feature view with several list aggregations or several secondary-key
473
+ aggregation windows used to return incomplete results in some scenarios. The bug has been fixed
474
+ and the existing feature views pick up the fix on their next read, with no re-registration or backfill required.
475
+
476
+ ### Behavior Changes
477
+
478
+ * Feature Store: `update_feature_view()` now rejects a `target_lag` change on a feature view whose online store
479
+ is `POSTGRES`, instead of reporting success for a change that is not applied. Set `target_lag` when online
480
+ storage is first enabled, or delete and re-register the feature view to change it. Enabling or disabling
481
+ online storage, and `target_lag` changes on hybrid-table online stores, are unaffected.
482
+
483
+ ### Deprecations
484
+
485
+ ## 2.2.0 (2026-09-21)
428
486
 
429
487
  ### New Features
430
488
 
@@ -438,8 +496,17 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
438
496
 
439
497
  ### Bug Fixes
440
498
 
499
+ * Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
500
+ executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
501
+ `EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
502
+ primary role is not the owner.
503
+
441
504
  ### Behavior Changes
442
505
 
506
+ * Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
507
+ installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
508
+ in `snowflake.ml.modeling.preprocessing` already requires that extra.
509
+
443
510
  ### Deprecations
444
511
 
445
512
  ## 2.1.0 (2026-09-14)
@@ -461,21 +528,12 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
461
528
 
462
529
  ### Bug Fixes
463
530
 
464
- * Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
465
- executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
466
- `EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
467
- primary role is not the owner.
468
-
469
531
  * Registry: Fixed logging of MLflow models created with `mlflow.sklearn.save_model()`. The model is
470
532
  now re-logged from the scikit-learn estimator using the serialization format it was saved with,
471
533
  instead of from MLflow's PyFunc wrapper with the version-dependent default format.
472
534
 
473
535
  ### Behavior Changes
474
536
 
475
- * Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
476
- installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
477
- in `snowflake.ml.modeling.preprocessing` already requires that extra.
478
-
479
537
  ### Deprecations
480
538
 
481
539
  ## 2.0.0 (2026-09-09)
@@ -57,7 +57,7 @@ In Snowflake Warehouse notebook environments, snowflake-ml-python can be install
57
57
  Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
58
58
  in the Snowflake documentation.
59
59
 
60
- Python versions 3.10 to 3.13 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
60
+ Python versions 3.10 to 3.14 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
61
61
  [anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
62
62
  or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
63
63
 
@@ -5,8 +5,8 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "snowflake-ml-python"
7
7
  description = "The machine learning client library that is used for interacting with Snowflake to build machine learning solutions."
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.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
- requires-python = ">=3.10, <3.14"
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.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "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
+ requires-python = ">=3.10, <3.15"
10
10
  dynamic = [ "version", "readme",]
11
11
  dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1", "cloudpickle>=2.0.0", "fsspec[http]>=2024.6.1,<2026", "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", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.37.0,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5",]
12
12
  [[project.authors]]
@@ -0,0 +1,93 @@
1
+ import json
2
+ from typing import Any, cast
3
+
4
+ from typing_extensions import deprecated
5
+
6
+ from snowflake import snowpark
7
+ from snowflake.cortex._util import (
8
+ CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
9
+ call_sql_function,
10
+ warn_cortex_deprecated,
11
+ )
12
+ from snowflake.ml._internal import telemetry
13
+ from snowflake.snowpark import functions
14
+
15
+ _AI_CLASSIFY_FUNCTION_NAME = "AI_CLASSIFY"
16
+ # Legacy CLASSIFY_TEXT always returned exactly one label. AI_CLASSIFY defaults to single-label mode, but
17
+ # we set output_mode explicitly so the single-label contract can't drift and multi-label results can
18
+ # never leak through.
19
+ _AI_CLASSIFY_SINGLE_LABEL_CONFIG = {"output_mode": "single"}
20
+
21
+
22
+ def _adapt_ai_classify_result(result: Any) -> str:
23
+ """Map an AI_CLASSIFY result to the legacy CLASSIFY_TEXT {"label": ...} JSON string."""
24
+ # Legacy classify_text returned the raw CLASSIFY_TEXT OBJECT, which the immediate (non-Column) path
25
+ # collects as a JSON string such as '{"label": "positive"}'. We reproduce that exact shape so
26
+ # existing callers that json.loads the result and read ["label"] keep working.
27
+ parsed: Any = result
28
+ if isinstance(result, str):
29
+ try:
30
+ parsed = json.loads(result)
31
+ except json.JSONDecodeError:
32
+ return result
33
+ label: Any = None
34
+ if isinstance(parsed, dict):
35
+ labels = parsed.get("labels")
36
+ if isinstance(labels, list) and labels:
37
+ label = labels[0]
38
+ elif parsed.get("label") is not None:
39
+ label = parsed.get("label")
40
+ return json.dumps({"label": label})
41
+
42
+
43
+ @telemetry.send_api_usage_telemetry(
44
+ project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
45
+ )
46
+ def classify_text(
47
+ str_input: str | snowpark.Column,
48
+ categories: list[str] | snowpark.Column,
49
+ session: snowpark.Session | None = None,
50
+ ) -> str | snowpark.Column:
51
+ """Use the LLM inference service to classify the INPUT text into one of the target CATEGORIES.
52
+
53
+ Args:
54
+ str_input: A Column of strings to classify.
55
+ categories: A list of candidate categories to classify the INPUT text into.
56
+ session: The snowpark session to use. Will be inferred by context if not specified.
57
+
58
+ Returns:
59
+ A column of classification responses.
60
+ """
61
+ warn_cortex_deprecated("classify_text", "ai_classify")
62
+ result = _classify_text_impl(
63
+ _AI_CLASSIFY_FUNCTION_NAME, str_input, categories, _AI_CLASSIFY_SINGLE_LABEL_CONFIG, session=session
64
+ )
65
+ if isinstance(result, snowpark.Column):
66
+ # AI_CLASSIFY returns {"labels": [...]}; re-wrap as the legacy CLASSIFY_TEXT {"label": ...} OBJECT
67
+ # so downstream SQL that reads col["label"] is unchanged. Subscript access (not functions.get with
68
+ # a bare string, which Snowpark treats as a column identifier) extracts the field by literal key.
69
+ label = functions.coalesce(result["labels"][0], result["label"])
70
+ return functions.object_construct(functions.lit("label"), label)
71
+ return _adapt_ai_classify_result(result)
72
+
73
+
74
+ def _classify_text_impl(
75
+ function: str,
76
+ str_input: str | snowpark.Column,
77
+ categories: list[str] | snowpark.Column,
78
+ config: dict[str, Any] | None = None,
79
+ session: snowpark.Session | None = None,
80
+ ) -> str | snowpark.Column:
81
+ args: list[Any] = [str_input, categories]
82
+ if config is not None:
83
+ args.append(config)
84
+ return cast(str | snowpark.Column, call_sql_function(function, session, *args))
85
+
86
+
87
+ ClassifyText = deprecated(
88
+ "ClassifyText() is deprecated and will be removed in a future release. Please use classify_text() instead."
89
+ )(
90
+ telemetry.send_api_usage_telemetry(
91
+ project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
92
+ )(classify_text)
93
+ )
@@ -14,6 +14,7 @@ from snowflake.cortex._util import (
14
14
  CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
15
15
  SnowflakeAuthenticationException,
16
16
  SnowflakeConfigurationException,
17
+ warn_cortex_deprecated,
17
18
  )
18
19
  from snowflake.ml._internal import telemetry
19
20
  from snowflake.snowpark import context, functions
@@ -331,12 +332,46 @@ def _return_stream_response(
331
332
  pass
332
333
 
333
334
 
334
- def _complete_call_sql_function_snowpark(
335
- function: str, *args: str | snowpark.Column | CompleteOptions
336
- ) -> snowpark.Column:
335
+ def _complete_call_sql_function_snowpark(function: str, *args: Any) -> snowpark.Column:
337
336
  return cast(snowpark.Column, functions.builtin(function)(*args))
338
337
 
339
338
 
339
+ _SQL_MODEL_PARAMETER_KEYS = ("max_tokens", "temperature", "top_p", "guardrails")
340
+
341
+
342
+ def _sql_ai_complete_args(
343
+ model: str | snowpark.Column,
344
+ prompt: str | list[ConversationMessage] | snowpark.Column,
345
+ options: CompleteOptions | snowpark.Column | None,
346
+ ) -> tuple[Any, ...]:
347
+ """Build positional SQL arguments for AI_COMPLETE.
348
+
349
+ Args:
350
+ model: Model name or Column of model names.
351
+ prompt: Prompt string, conversation history, or Column of prompts.
352
+ options: Complete options, a Column of options, or None.
353
+
354
+ Returns:
355
+ Positional AI_COMPLETE arguments with response format separate from
356
+ model parameters.
357
+ """
358
+ if options is None:
359
+ return (model, prompt)
360
+ if isinstance(options, snowpark.Column):
361
+ # Can't introspect a Column's keys at build time, so split response_format out of the options
362
+ # object in SQL: model_parameters is the object minus response_format, response_format is read
363
+ # out separately (NULL when absent, which AI_COMPLETE treats as "no response format").
364
+ model_parameters_col = functions.builtin("object_delete")(options, functions.lit("response_format"))
365
+ response_format_col = functions.get(options, functions.lit("response_format"))
366
+ return (model, prompt, model_parameters_col, response_format_col)
367
+ option_values = cast(dict[str, Any], options)
368
+ model_parameters = {key: option_values[key] for key in _SQL_MODEL_PARAMETER_KEYS if key in option_values}
369
+ response_format = options.get("response_format")
370
+ if response_format is None:
371
+ return (model, prompt, model_parameters) if model_parameters else (model, prompt)
372
+ return (model, prompt, model_parameters, response_format)
373
+
374
+
340
375
  def _complete_non_streaming_immediate(
341
376
  snow_api_xp_request_handler: Callable[..., dict[str, Any]] | None,
342
377
  model: str,
@@ -366,10 +401,7 @@ def _complete_non_streaming_impl(
366
401
  deadline: float | None = None,
367
402
  ) -> str | snowpark.Column:
368
403
  if isinstance(prompt, snowpark.Column):
369
- if options is not None:
370
- return _complete_call_sql_function_snowpark(function, model, prompt, options)
371
- else:
372
- return _complete_call_sql_function_snowpark(function, model, prompt)
404
+ return _complete_call_sql_function_snowpark(function, *_sql_ai_complete_args(model, prompt, options))
373
405
  if isinstance(model, snowpark.Column):
374
406
  raise ValueError("'model' cannot be a snowpark.Column when 'prompt' is a string.")
375
407
  if isinstance(options, snowpark.Column):
@@ -414,7 +446,7 @@ def _complete_impl(
414
446
  model: str | snowpark.Column,
415
447
  prompt: str | list[ConversationMessage] | snowpark.Column,
416
448
  snow_api_xp_request_handler: Callable[..., dict[str, Any]] | None = None,
417
- function: str = "snowflake.cortex.complete",
449
+ function: str = "AI_COMPLETE",
418
450
  options: CompleteOptions | None = None,
419
451
  session: snowpark.Session | None = None,
420
452
  stream: bool = False,
@@ -480,7 +512,7 @@ def complete(
480
512
  Returns:
481
513
  A column of string responses.
482
514
  """
483
-
515
+ warn_cortex_deprecated("complete", "ai_complete")
484
516
  # Set the XP snow api function, if available.
485
517
  snow_api_xp_request_handler = None
486
518
  if is_in_stored_procedure(): # type: ignore[no-untyped-call]
@@ -1,11 +1,17 @@
1
- from typing import Union, cast
1
+ from typing import cast
2
2
 
3
3
  from typing_extensions import deprecated
4
4
 
5
5
  from snowflake import snowpark
6
- from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
6
+ from snowflake.cortex._util import (
7
+ CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
8
+ call_sql_function,
9
+ warn_cortex_deprecated,
10
+ )
7
11
  from snowflake.ml._internal import telemetry
8
12
 
13
+ _AI_EMBED_FUNCTION_NAME = "AI_EMBED"
14
+
9
15
 
10
16
  @telemetry.send_api_usage_telemetry(
11
17
  project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
@@ -26,8 +32,8 @@ def embed_text_1024(
26
32
  Returns:
27
33
  A column of vectors containing embeddings.
28
34
  """
29
-
30
- return _embed_text_1024_impl("snowflake.cortex.embed_text_1024", model, text, session=session)
35
+ warn_cortex_deprecated("embed_text_1024", "ai_embed")
36
+ return _embed_text_1024_impl(_AI_EMBED_FUNCTION_NAME, model, text, session=session)
31
37
 
32
38
 
33
39
  def _embed_text_1024_impl(
@@ -36,7 +42,7 @@ def _embed_text_1024_impl(
36
42
  text: str | snowpark.Column,
37
43
  session: snowpark.Session | None = None,
38
44
  ) -> list[float] | snowpark.Column:
39
- return cast(Union[list[float], snowpark.Column], call_sql_function(function, session, model, text))
45
+ return cast(list[float] | snowpark.Column, call_sql_function(function, session, model, text))
40
46
 
41
47
 
42
48
  EmbedText1024 = deprecated(
@@ -1,11 +1,17 @@
1
- from typing import Union, cast
1
+ from typing import cast
2
2
 
3
3
  from typing_extensions import deprecated
4
4
 
5
5
  from snowflake import snowpark
6
- from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
6
+ from snowflake.cortex._util import (
7
+ CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
8
+ call_sql_function,
9
+ warn_cortex_deprecated,
10
+ )
7
11
  from snowflake.ml._internal import telemetry
8
12
 
13
+ _AI_EMBED_FUNCTION_NAME = "AI_EMBED"
14
+
9
15
 
10
16
  @telemetry.send_api_usage_telemetry(
11
17
  project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
@@ -26,8 +32,8 @@ def embed_text_768(
26
32
  Returns:
27
33
  A column of vectors containing embeddings.
28
34
  """
29
-
30
- return _embed_text_768_impl("snowflake.cortex.embed_text_768", model, text, session=session)
35
+ warn_cortex_deprecated("embed_text_768", "ai_embed")
36
+ return _embed_text_768_impl(_AI_EMBED_FUNCTION_NAME, model, text, session=session)
31
37
 
32
38
 
33
39
  def _embed_text_768_impl(
@@ -36,7 +42,7 @@ def _embed_text_768_impl(
36
42
  text: str | snowpark.Column,
37
43
  session: snowpark.Session | None = None,
38
44
  ) -> list[float] | snowpark.Column:
39
- return cast(Union[list[float], snowpark.Column], call_sql_function(function, session, model, text))
45
+ return cast(list[float] | snowpark.Column, call_sql_function(function, session, model, text))
40
46
 
41
47
 
42
48
  EmbedText768 = deprecated(
@@ -0,0 +1,85 @@
1
+ from typing import Any, cast
2
+
3
+ from typing_extensions import deprecated
4
+
5
+ from snowflake import snowpark
6
+ from snowflake.cortex._util import (
7
+ CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
8
+ SnowflakeAuthenticationException,
9
+ warn_cortex_deprecated,
10
+ )
11
+ from snowflake.ml._internal import telemetry
12
+ from snowflake.snowpark import context, functions
13
+
14
+ _AI_EXTRACT_FUNCTION_NAME = "AI_EXTRACT"
15
+ _ANSWER_KEY = "answer"
16
+
17
+
18
+ def _legacy_extract_answer_column(
19
+ from_text: str | snowpark.Column,
20
+ response_format: dict[str, Any] | snowpark.Column,
21
+ ) -> snowpark.Column:
22
+ """Call AI_EXTRACT and reshape it to the legacy EXTRACT_ANSWER [{"answer": ..., "score": ...}] ARRAY."""
23
+ # AI_EXTRACT returns the score only when the `scores` argument is TRUE, and `scores` is a named-only
24
+ # argument that the Snowpark builtin wrapper can't pass positionally -- inject it as a raw SQL fragment.
25
+ # AI_EXTRACT(<text>, <response_format>, scores => TRUE) returns:
26
+ # {"response": {"answer": ...}, "scoring": {"scores": {"answer": {"score": ...}}}}
27
+ extracted = functions.builtin(_AI_EXTRACT_FUNCTION_NAME)(
28
+ from_text, response_format, functions.sql_expr("scores => TRUE")
29
+ )
30
+ # Subscript access (not functions.get with a bare string, which Snowpark treats as a column
31
+ # identifier) extracts fields by literal key.
32
+ answer = extracted["response"][_ANSWER_KEY]
33
+ score = extracted["scoring"]["scores"][_ANSWER_KEY]["score"]
34
+ return functions.array_construct(
35
+ functions.object_construct(functions.lit(_ANSWER_KEY), answer, functions.lit("score"), score)
36
+ )
37
+
38
+
39
+ @telemetry.send_api_usage_telemetry(
40
+ project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
41
+ )
42
+ def extract_answer(
43
+ from_text: str | snowpark.Column,
44
+ question: str | snowpark.Column,
45
+ session: snowpark.Session | None = None,
46
+ ) -> str | snowpark.Column:
47
+ """Calls into the LLM inference service to extract an answer from within specified text.
48
+
49
+ Args:
50
+ from_text: A Column of strings representing input text.
51
+ question: A Column of strings representing a question to ask against from_text.
52
+ session: The snowpark session to use. Will be inferred by context if not specified.
53
+
54
+ Returns:
55
+ A column of arrays, each [{"answer": ..., "score": ...}], matching legacy EXTRACT_ANSWER.
56
+
57
+ Raises:
58
+ SnowflakeAuthenticationException: if no session is provided and none is active.
59
+ """
60
+ warn_cortex_deprecated("extract_answer", "ai_extract")
61
+ if isinstance(question, snowpark.Column):
62
+ response_format: dict[str, Any] | snowpark.Column = functions.object_construct(
63
+ functions.lit(_ANSWER_KEY), question
64
+ )
65
+ else:
66
+ response_format = {_ANSWER_KEY: question}
67
+
68
+ column = _legacy_extract_answer_column(from_text, response_format)
69
+ if isinstance(from_text, snowpark.Column) or isinstance(question, snowpark.Column):
70
+ return column
71
+
72
+ # Immediate (literal) path: evaluate the expression and return the collected ARRAY as a JSON string,
73
+ # exactly as the legacy EXTRACT_ANSWER immediate path did.
74
+ session = session or context.get_active_session()
75
+ if session is None:
76
+ raise SnowflakeAuthenticationException(
77
+ """Session required. Provide the session through a session=... argument or ensure an active session is
78
+ available in your environment."""
79
+ )
80
+ return cast(str, session.create_dataframe([snowpark.Row()]).select(column).collect()[0][0])
81
+
82
+
83
+ ExtractAnswer = deprecated(
84
+ "ExtractAnswer() is deprecated and will be removed in a future release. Use extract_answer() instead"
85
+ )(telemetry.send_api_usage_telemetry(project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT)(extract_answer))