snowflake-ml-python 1.15.0__tar.gz → 1.16.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 (455) hide show
  1. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/CHANGELOG.md +39 -1
  2. {snowflake_ml_python-1.15.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.16.0}/PKG-INFO +41 -3
  3. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/platform_capabilities.py +4 -0
  5. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/mixins.py +24 -9
  6. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/experiment_tracking.py +63 -19
  7. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/spec_utils.py +49 -11
  8. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/manager.py +20 -0
  9. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/__init__.py +16 -2
  10. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +18 -2
  11. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/model/model_version_impl.py +5 -0
  12. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/ops/service_ops.py +50 -5
  13. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +1 -1
  14. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/stage.py +8 -0
  15. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +1 -0
  16. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +25 -2
  17. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_env/model_env.py +26 -16
  18. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +1 -1
  19. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/type_hints.py +13 -0
  20. snowflake_ml_python-1.16.0/snowflake/ml/model/volatility.py +34 -0
  21. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +1 -1
  22. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +1 -1
  23. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +1 -1
  24. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/birch.py +1 -1
  25. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +1 -1
  26. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/dbscan.py +1 -1
  27. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +1 -1
  28. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/k_means.py +1 -1
  29. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/mean_shift.py +1 -1
  30. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +1 -1
  31. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/optics.py +1 -1
  32. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +1 -1
  33. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +1 -1
  34. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +1 -1
  35. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/compose/column_transformer.py +1 -1
  36. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +1 -1
  37. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +1 -1
  38. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +1 -1
  39. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +1 -1
  40. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +1 -1
  41. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +1 -1
  42. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/min_cov_det.py +1 -1
  43. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/oas.py +1 -1
  44. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +1 -1
  45. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +1 -1
  46. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +1 -1
  47. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/fast_ica.py +1 -1
  48. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +1 -1
  49. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +1 -1
  50. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +1 -1
  51. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +1 -1
  52. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/pca.py +1 -1
  53. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +1 -1
  54. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +1 -1
  55. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +1 -1
  56. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +1 -1
  57. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +1 -1
  58. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +1 -1
  59. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +1 -1
  60. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +1 -1
  61. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +1 -1
  62. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +1 -1
  63. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +1 -1
  64. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +1 -1
  65. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +1 -1
  66. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +1 -1
  67. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +1 -1
  68. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +1 -1
  69. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +1 -1
  70. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +1 -1
  71. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +1 -1
  72. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +1 -1
  73. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +1 -1
  74. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +1 -1
  75. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +1 -1
  76. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +1 -1
  77. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +1 -1
  78. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +1 -1
  79. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +1 -1
  80. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +1 -1
  81. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +1 -1
  82. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +1 -1
  83. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/impute/iterative_imputer.py +1 -1
  84. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/impute/knn_imputer.py +1 -1
  85. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/impute/missing_indicator.py +1 -1
  86. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +1 -1
  87. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +1 -1
  88. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +1 -1
  89. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +1 -1
  90. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +1 -1
  91. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +1 -1
  92. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +1 -1
  93. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +1 -1
  94. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ard_regression.py +1 -1
  95. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +1 -1
  96. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/elastic_net.py +1 -1
  97. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +1 -1
  98. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +1 -1
  99. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +1 -1
  100. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lars.py +1 -1
  101. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lars_cv.py +1 -1
  102. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lasso.py +1 -1
  103. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +1 -1
  104. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +1 -1
  105. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +1 -1
  106. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +1 -1
  107. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/linear_regression.py +1 -1
  108. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +1 -1
  109. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +1 -1
  110. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +1 -1
  111. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +1 -1
  112. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +1 -1
  113. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +1 -1
  114. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +1 -1
  115. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +1 -1
  116. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +1 -1
  117. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/perceptron.py +1 -1
  118. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +1 -1
  119. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +1 -1
  120. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ridge.py +1 -1
  121. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +1 -1
  122. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +1 -1
  123. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +1 -1
  124. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +1 -1
  125. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +1 -1
  126. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +1 -1
  127. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +1 -1
  128. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +1 -1
  129. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/manifold/isomap.py +1 -1
  130. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/manifold/mds.py +1 -1
  131. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +1 -1
  132. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/manifold/tsne.py +1 -1
  133. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +1 -1
  134. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +1 -1
  135. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +1 -1
  136. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +1 -1
  137. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +1 -1
  138. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +1 -1
  139. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +1 -1
  140. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +1 -1
  141. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +1 -1
  142. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +1 -1
  143. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +1 -1
  144. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +1 -1
  145. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/kernel_density.py +1 -1
  146. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +1 -1
  147. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +1 -1
  148. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +1 -1
  149. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +1 -1
  150. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +1 -1
  151. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +1 -1
  152. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +1 -1
  153. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +1 -1
  154. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +1 -1
  155. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +1 -1
  156. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +1 -1
  157. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +1 -1
  158. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/linear_svc.py +1 -1
  159. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/linear_svr.py +1 -1
  160. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/nu_svc.py +1 -1
  161. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/nu_svr.py +1 -1
  162. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/svc.py +1 -1
  163. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/svr.py +1 -1
  164. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +1 -1
  165. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +1 -1
  166. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +1 -1
  167. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +1 -1
  168. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +1 -1
  169. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +1 -1
  170. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +1 -1
  171. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +1 -1
  172. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/registry/_manager/model_manager.py +1 -0
  173. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +27 -0
  174. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/registry/registry.py +15 -0
  175. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/utils/authentication.py +16 -0
  176. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/version.py +1 -1
  177. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0/snowflake_ml_python.egg-info}/PKG-INFO +41 -3
  178. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
  179. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake_ml_python.egg-info/requires.txt +1 -1
  180. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/LICENSE.txt +0 -0
  181. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/README.md +0 -0
  182. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/setup.cfg +0 -0
  183. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/__init__.py +0 -0
  184. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_classify_text.py +0 -0
  185. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_complete.py +0 -0
  186. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  187. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_embed_text_768.py +0 -0
  188. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_extract_answer.py +0 -0
  189. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_finetune.py +0 -0
  190. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_sentiment.py +0 -0
  191. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_sse_client.py +0 -0
  192. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_summarize.py +0 -0
  193. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_translate.py +0 -0
  194. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/cortex/_util.py +0 -0
  195. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/env.py +0 -0
  196. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/env_utils.py +0 -0
  197. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  198. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  199. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  200. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  201. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  202. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  203. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  204. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  205. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  206. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/file_utils.py +0 -0
  207. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  208. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  209. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  210. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  211. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/init_utils.py +0 -0
  212. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  213. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  214. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  215. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/telemetry.py +0 -0
  216. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/type_utils.py +0 -0
  217. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  218. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  219. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  220. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  221. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  222. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  223. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  224. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  225. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  226. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/result.py +0 -0
  227. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  228. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  229. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  230. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  231. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  232. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  233. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/__init__.py +0 -0
  234. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  235. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/data_connector.py +0 -0
  236. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/data_ingestor.py +0 -0
  237. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/data_source.py +0 -0
  238. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  239. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/data/torch_utils.py +0 -0
  240. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/dataset/__init__.py +0 -0
  241. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/dataset/dataset.py +0 -0
  242. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  243. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  244. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  245. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/__init__.py +0 -0
  246. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  247. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  248. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  249. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  250. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  251. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  252. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  253. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  254. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  255. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  256. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/experiment/utils.py +0 -0
  257. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/__init__.py +0 -0
  258. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  259. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/entity.py +0 -0
  260. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  261. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  262. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  263. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  264. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  265. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  266. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  267. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  268. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  269. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  270. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  271. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  272. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  273. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  274. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  275. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  276. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  277. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  278. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  279. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  280. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  281. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  282. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/feature_store.py +0 -0
  283. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  284. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  285. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/fileset/fileset.py +0 -0
  286. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  287. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/fileset/snowfs.py +0 -0
  288. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  289. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/__init__.py +0 -0
  290. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  291. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  292. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  293. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
  294. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
  295. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  296. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  297. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  298. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  299. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  300. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  301. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  302. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  303. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  304. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/_utils/types.py +0 -0
  305. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/decorators.py +0 -0
  306. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/jobs/job.py +0 -0
  307. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/lineage/__init__.py +0 -0
  308. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  309. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  310. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  311. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  312. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  313. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  314. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  315. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  316. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  317. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  318. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  319. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  320. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  321. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  322. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  323. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  324. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  325. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  326. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  327. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  328. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  329. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  330. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  331. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  332. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +0 -0
  333. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  334. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  335. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  336. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  337. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  338. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  339. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  340. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  341. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  342. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  343. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  344. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  345. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  346. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  347. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  348. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  349. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  350. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  351. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  352. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  353. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  354. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  355. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  356. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  357. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  358. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  359. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/core.py +0 -0
  360. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  361. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  362. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  363. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  364. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  365. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  366. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  367. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/custom_model.py +0 -0
  368. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/event_handler.py +0 -0
  369. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/inference_engine.py +0 -0
  370. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/model_signature.py +0 -0
  371. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  372. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/openai_signatures.py +0 -0
  373. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/target_platform.py +0 -0
  374. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/model/task.py +0 -0
  375. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  376. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  377. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  378. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  379. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  380. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  381. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  382. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  383. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  384. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  385. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  386. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  387. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  388. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  389. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  390. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  391. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  392. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  393. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  394. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  395. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  396. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  397. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/framework/base.py +0 -0
  398. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  399. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  400. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  401. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  402. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  403. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  404. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  405. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  406. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  407. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  408. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  409. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  410. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  411. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  412. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  413. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  414. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  415. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  416. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  417. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  418. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  419. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  420. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  421. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  422. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  423. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  424. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  425. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  426. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  427. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  428. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  429. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  430. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  431. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  432. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  433. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  434. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  435. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  436. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  437. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  438. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  439. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  440. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  441. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  442. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  443. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  444. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  445. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  446. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  447. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  448. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/monitoring/shap.py +0 -0
  449. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/registry/__init__.py +0 -0
  450. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/utils/connection_params.py +0 -0
  451. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/utils/html_utils.py +0 -0
  452. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/utils/sparse.py +0 -0
  453. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake/ml/utils/sql_client.py +0 -0
  454. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  455. {snowflake_ml_python-1.15.0 → snowflake_ml_python-1.16.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,44 @@
1
1
  # Release History
2
2
 
3
- ## 1.15.0
3
+ ## 1.16.0
4
+
5
+ ### Bug Fixes
6
+
7
+ * Registry: Remove redundant pip dependency warnings when `artifact_repository_map` is provided for warehouse model deployments.
8
+
9
+ ### Behavior Changes
10
+
11
+ ### New Features
12
+
13
+ * Support scikit-learn < 1.8.
14
+ * ML Job: Added support for configuring the runtime image via `runtime_environment`
15
+ (image tag or full image URL) at submission time.
16
+ Examples:
17
+ * @remote(compute_pool, stage_name = 'payload_stage', runtime_environment = '1.8.0')
18
+ * submit_file('/path/to/repo/test.py', compute_pool, stage_name = 'payload_stage', runtime_environment = '/mydb/myschema/myrepo/myimage:latest')
19
+ * Registry: Ability to mark model methods as `Volatility.VOLATILE` or `Volatility.IMMUTABLE`.
20
+
21
+ ```python
22
+ from snowflake.ml.model.volatility import Volatility
23
+
24
+ options = {
25
+ "embed_local_ml_library": True,
26
+ "relax_version": True,
27
+ "save_location": "/path/to/my/directory",
28
+ "function_type": "TABLE_FUNCTION",
29
+ "volatility": Volatility.IMMUTABLE,
30
+ "method_options": {
31
+ "predict": {
32
+ "case_sensitive": False,
33
+ "max_batch_size": 100,
34
+ "function_type": "TABLE_FUNCTION",
35
+ "volatility": Volatility.VOLATILE,
36
+ },
37
+ }
38
+
39
+ ````
40
+
41
+ ## 1.15.0 (09-29-2025)
4
42
 
5
43
  ### Bug Fixes
6
44
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.15.0
3
+ Version: 1.16.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:
@@ -250,7 +250,7 @@ Requires-Dist: pytimeparse<2,>=1.1.8
250
250
  Requires-Dist: pyyaml<7,>=6.0
251
251
  Requires-Dist: retrying<2,>=1.3.3
252
252
  Requires-Dist: s3fs<2026,>=2024.6.1
253
- Requires-Dist: scikit-learn<1.7
253
+ Requires-Dist: scikit-learn<1.8
254
254
  Requires-Dist: scipy<2,>=1.9
255
255
  Requires-Dist: shap<1,>=0.46.0
256
256
  Requires-Dist: snowflake-connector-python[pandas]<4,>=3.16.0
@@ -406,7 +406,45 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
406
406
 
407
407
  # Release History
408
408
 
409
- ## 1.15.0
409
+ ## 1.16.0
410
+
411
+ ### Bug Fixes
412
+
413
+ * Registry: Remove redundant pip dependency warnings when `artifact_repository_map` is provided for warehouse model deployments.
414
+
415
+ ### Behavior Changes
416
+
417
+ ### New Features
418
+
419
+ * Support scikit-learn < 1.8.
420
+ * ML Job: Added support for configuring the runtime image via `runtime_environment`
421
+ (image tag or full image URL) at submission time.
422
+ Examples:
423
+ * @remote(compute_pool, stage_name = 'payload_stage', runtime_environment = '1.8.0')
424
+ * submit_file('/path/to/repo/test.py', compute_pool, stage_name = 'payload_stage', runtime_environment = '/mydb/myschema/myrepo/myimage:latest')
425
+ * Registry: Ability to mark model methods as `Volatility.VOLATILE` or `Volatility.IMMUTABLE`.
426
+
427
+ ```python
428
+ from snowflake.ml.model.volatility import Volatility
429
+
430
+ options = {
431
+ "embed_local_ml_library": True,
432
+ "relax_version": True,
433
+ "save_location": "/path/to/my/directory",
434
+ "function_type": "TABLE_FUNCTION",
435
+ "volatility": Volatility.IMMUTABLE,
436
+ "method_options": {
437
+ "predict": {
438
+ "case_sensitive": False,
439
+ "max_batch_size": 100,
440
+ "function_type": "TABLE_FUNCTION",
441
+ "volatility": Volatility.VOLATILE,
442
+ },
443
+ }
444
+
445
+ ````
446
+
447
+ ## 1.15.0 (09-29-2025)
410
448
 
411
449
  ### Bug Fixes
412
450
 
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
8
8
  classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
9
9
  requires-python = ">=3.9, <3.13"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<25", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.7", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.16.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
11
+ dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<25", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.16.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -17,6 +17,7 @@ logger = logging.getLogger(__name__)
17
17
 
18
18
  LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
19
19
  INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
20
+ SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
20
21
 
21
22
 
22
23
  class PlatformCapabilities:
@@ -73,6 +74,9 @@ class PlatformCapabilities:
73
74
  def is_inlined_deployment_spec_enabled(self) -> bool:
74
75
  return self._is_version_feature_enabled(INLINE_DEPLOYMENT_SPEC_PARAMETER)
75
76
 
77
+ def is_set_module_functions_volatility_from_manifest(self) -> bool:
78
+ return self._get_bool_feature(SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST, False)
79
+
76
80
  def is_live_commit_enabled(self) -> bool:
77
81
  return self._get_bool_feature(LIVE_COMMIT_PARAMETER, False)
78
82
 
@@ -1,3 +1,4 @@
1
+ from dataclasses import dataclass
1
2
  from typing import Any, Optional
2
3
 
3
4
  from snowflake.ml._internal.utils import identifier
@@ -16,6 +17,14 @@ def _identifiers_match(saved: Optional[str], current: Optional[str]) -> bool:
16
17
  return saved_resolved == current_resolved
17
18
 
18
19
 
20
+ @dataclass(frozen=True)
21
+ class _SessionState:
22
+ account: Optional[str]
23
+ role: Optional[str]
24
+ database: Optional[str]
25
+ schema: Optional[str]
26
+
27
+
19
28
  class SerializableSessionMixin:
20
29
  """Mixin that provides pickling capabilities for objects with Snowpark sessions."""
21
30
 
@@ -40,17 +49,23 @@ class SerializableSessionMixin:
40
49
 
41
50
  def __setstate__(self, state: dict[str, Any]) -> None:
42
51
  """Restore session from context during unpickling."""
43
- saved_account = state.pop(_SESSION_ACCOUNT_KEY, None)
44
- saved_role = state.pop(_SESSION_ROLE_KEY, None)
45
- saved_database = state.pop(_SESSION_DATABASE_KEY, None)
46
- saved_schema = state.pop(_SESSION_SCHEMA_KEY, None)
52
+ session_state = _SessionState(
53
+ account=state.pop(_SESSION_ACCOUNT_KEY, None),
54
+ role=state.pop(_SESSION_ROLE_KEY, None),
55
+ database=state.pop(_SESSION_DATABASE_KEY, None),
56
+ schema=state.pop(_SESSION_SCHEMA_KEY, None),
57
+ )
47
58
 
48
59
  if hasattr(super(), "__setstate__"):
49
60
  super().__setstate__(state) # type: ignore[misc]
50
61
  else:
51
62
  self.__dict__.update(state)
52
63
 
53
- if saved_account is not None:
64
+ self._set_session(session_state)
65
+
66
+ def _set_session(self, session_state: _SessionState) -> None:
67
+
68
+ if session_state.account is not None:
54
69
  active_sessions = snowpark_session._get_active_sessions()
55
70
  if len(active_sessions) == 0:
56
71
  raise RuntimeError("No active Snowpark session available. Please create a session.")
@@ -63,10 +78,10 @@ class SerializableSessionMixin:
63
78
  active_sessions,
64
79
  key=lambda s: sum(
65
80
  (
66
- _identifiers_match(saved_account, s.get_current_account()),
67
- _identifiers_match(saved_role, s.get_current_role()),
68
- _identifiers_match(saved_database, s.get_current_database()),
69
- _identifiers_match(saved_schema, s.get_current_schema()),
81
+ _identifiers_match(session_state.account, s.get_current_account()),
82
+ _identifiers_match(session_state.role, s.get_current_role()),
83
+ _identifiers_match(session_state.database, s.get_current_database()),
84
+ _identifiers_match(session_state.schema, s.get_current_schema()),
70
85
  )
71
86
  ),
72
87
  ),
@@ -1,10 +1,10 @@
1
1
  import functools
2
2
  import json
3
3
  import sys
4
- from typing import Any, Optional, Union
4
+ from typing import Any, Callable, Concatenate, Optional, ParamSpec, TypeVar, Union
5
5
  from urllib.parse import quote
6
6
 
7
- import snowflake.snowpark._internal.utils as snowpark_utils
7
+ from snowflake import snowpark
8
8
  from snowflake.ml import model as ml_model, registry
9
9
  from snowflake.ml._internal.human_readable_id import hrid_generator
10
10
  from snowflake.ml._internal.utils import mixins, sql_identifier
@@ -18,20 +18,40 @@ from snowflake.ml.experiment._client import (
18
18
  )
19
19
  from snowflake.ml.model import type_hints
20
20
  from snowflake.ml.utils import sql_client as sql_client_utils
21
- from snowflake.snowpark import session
22
21
 
23
22
  DEFAULT_EXPERIMENT_NAME = sql_identifier.SqlIdentifier("DEFAULT")
24
23
 
24
+ P = ParamSpec("P")
25
+ T = TypeVar("T")
26
+
27
+
28
+ def _restore_session(
29
+ func: Callable[Concatenate["ExperimentTracking", P], T],
30
+ ) -> Callable[Concatenate["ExperimentTracking", P], T]:
31
+ @functools.wraps(func)
32
+ def wrapper(self: "ExperimentTracking", /, *args: P.args, **kwargs: P.kwargs) -> T:
33
+ if self._session is None:
34
+ if self._session_state is None:
35
+ raise RuntimeError(
36
+ f"Session is not set before calling {func.__name__}, and there is no session state to restore from"
37
+ )
38
+ self._set_session(self._session_state)
39
+ if self._session is None:
40
+ raise RuntimeError(f"Failed to restore session before calling {func.__name__}")
41
+ return func(self, *args, **kwargs)
42
+
43
+ return wrapper
44
+
25
45
 
26
46
  class ExperimentTracking(mixins.SerializableSessionMixin):
27
47
  """
28
48
  Class to manage experiments in Snowflake.
29
49
  """
30
50
 
31
- @snowpark_utils.private_preview(version="1.9.1")
51
+ @snowpark._internal.utils.private_preview(version="1.9.1")
32
52
  def __init__(
33
53
  self,
34
- session: session.Session,
54
+ session: snowpark.Session,
35
55
  *,
36
56
  database_name: Optional[str] = None,
37
57
  schema_name: Optional[str] = None,
@@ -73,7 +93,10 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
73
93
  database_name=self._database_name,
74
94
  schema_name=self._schema_name,
75
95
  )
76
- self._session = session
96
+ self._session: Optional[snowpark.Session] = session
97
+ # Used to store information about the session if the session could not be restored during unpickling
98
+ # _session_state is None if and only if _session is not None
99
+ self._session_state: Optional[mixins._SessionState] = None
77
100
 
78
101
  # The experiment in context
79
102
  self._experiment: Optional[entities.Experiment] = None
@@ -87,20 +110,29 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
87
110
  state["_registry"] = None
88
111
  return state
89
112
 
90
- def __setstate__(self, state: dict[str, Any]) -> None:
91
- super().__setstate__(state)
92
- # Restore unpicklable attributes
93
- self._sql_client = sql_client.ExperimentTrackingSQLClient(
94
- session=self._session,
95
- database_name=self._database_name,
96
- schema_name=self._schema_name,
97
- )
98
- self._registry = registry.Registry(
99
- session=self._session,
100
- database_name=self._database_name,
101
- schema_name=self._schema_name,
102
- )
113
+ def _set_session(self, session_state: mixins._SessionState) -> None:
114
+ try:
115
+ super()._set_session(session_state)
116
+ assert self._session is not None
117
+ except (snowpark.exceptions.SnowparkSessionException, AssertionError):
118
+ # If session was not set, store the session state
119
+ self._session = None
120
+ self._session_state = session_state
121
+ else:
122
+ # If session was set, clear the session state, and reinitialize the SQL client and registry
123
+ self._session_state = None
124
+ self._sql_client = sql_client.ExperimentTrackingSQLClient(
125
+ session=self._session,
126
+ database_name=self._database_name,
127
+ schema_name=self._schema_name,
128
+ )
129
+ self._registry = registry.Registry(
130
+ session=self._session,
131
+ database_name=self._database_name,
132
+ schema_name=self._schema_name,
133
+ )
103
134
 
135
+ @_restore_session
104
136
  def set_experiment(
105
137
  self,
106
138
  experiment_name: str,
@@ -125,6 +157,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
125
157
  self._run = None
126
158
  return self._experiment
127
159
 
160
+ @_restore_session
128
161
  def delete_experiment(
129
162
  self,
130
163
  experiment_name: str,
@@ -141,8 +174,10 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
141
174
  self._run = None
142
175
 
143
176
  @functools.wraps(registry.Registry.log_model)
177
+ @_restore_session
144
178
  def log_model(
145
179
  self,
180
+ /, # self needs to be a positional argument to stop mypy from complaining
146
181
  model: Union[type_hints.SupportedModelType, ml_model.ModelVersion],
147
182
  *,
148
183
  model_name: str,
@@ -152,6 +187,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
152
187
  with experiment_info.ExperimentInfoPatcher(experiment_info=run._get_experiment_info()):
153
188
  return self._registry.log_model(model, model_name=model_name, **kwargs)
154
189
 
190
+ @_restore_session
155
191
  def start_run(
156
192
  self,
157
193
  run_name: Optional[str] = None,
@@ -181,6 +217,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
181
217
  self._run = entities.Run(experiment_tracking=self, experiment_name=experiment.name, run_name=run_name)
182
218
  return self._run
183
219
 
220
+ @_restore_session
184
221
  def end_run(self, run_name: Optional[str] = None) -> None:
185
222
  """
186
223
  End the current run if no run name is provided. Otherwise, the specified run is ended.
@@ -210,6 +247,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
210
247
  self._run = None
211
248
  self._print_urls(experiment_name=experiment_name, run_name=run_name)
212
249
 
250
+ @_restore_session
213
251
  def delete_run(
214
252
  self,
215
253
  run_name: str,
@@ -248,6 +286,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
248
286
  """
249
287
  self.log_metrics(metrics={key: value}, step=step)
250
288
 
289
+ @_restore_session
251
290
  def log_metrics(
252
291
  self,
253
292
  metrics: dict[str, float],
@@ -284,6 +323,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
284
323
  """
285
324
  self.log_params({key: value})
286
325
 
326
+ @_restore_session
287
327
  def log_params(
288
328
  self,
289
329
  params: dict[str, Any],
@@ -305,6 +345,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
305
345
  params=json.dumps([param.to_dict() for param in params_list]),
306
346
  )
307
347
 
348
+ @_restore_session
308
349
  def log_artifact(
309
350
  self,
310
351
  local_path: str,
@@ -328,6 +369,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
328
369
  file_path=file_path,
329
370
  )
330
371
 
372
+ @_restore_session
331
373
  def list_artifacts(
332
374
  self,
333
375
  run_name: str,
@@ -356,6 +398,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
356
398
  artifact_path=artifact_path or "",
357
399
  )
358
400
 
401
+ @_restore_session
359
402
  def download_artifacts(
360
403
  self,
361
404
  run_name: str,
@@ -397,6 +440,7 @@ class ExperimentTracking(mixins.SerializableSessionMixin):
397
440
  return self._run
398
441
  return self.start_run()
399
442
 
443
+ @_restore_session
400
444
  def _generate_run_name(self, experiment: entities.Experiment) -> sql_identifier.SqlIdentifier:
401
445
  generator = hrid_generator.HRID16()
402
446
  existing_runs = self._sql_client.show_runs_in_experiment(experiment_name=experiment.name)
@@ -1,5 +1,6 @@
1
1
  import logging
2
2
  import os
3
+ import re
3
4
  import sys
4
5
  from math import ceil
5
6
  from pathlib import PurePath
@@ -10,6 +11,8 @@ from snowflake.ml._internal.utils import snowflake_env
10
11
  from snowflake.ml.jobs._utils import constants, feature_flags, query_helper, types
11
12
  from snowflake.ml.jobs._utils.runtime_env_utils import RuntimeEnvironmentsDict
12
13
 
14
+ _OCI_TAG_REGEX = re.compile("^[a-zA-Z0-9._-]{1,128}$")
15
+
13
16
 
14
17
  def _get_node_resources(session: snowpark.Session, compute_pool: str) -> types.ComputeResources:
15
18
  """Extract resource information for the specified compute pool"""
@@ -56,22 +59,55 @@ def _get_runtime_image(session: snowpark.Session, target_hardware: Literal["CPU"
56
59
  return selected_runtime.runtime_container_image if selected_runtime else None
57
60
 
58
61
 
59
- def _get_image_spec(session: snowpark.Session, compute_pool: str) -> types.ImageSpec:
62
+ def _check_image_tag_valid(tag: Optional[str]) -> bool:
63
+ if tag is None:
64
+ return False
65
+
66
+ return _OCI_TAG_REGEX.fullmatch(tag) is not None
67
+
68
+
69
+ def _get_image_spec(
70
+ session: snowpark.Session, compute_pool: str, runtime_environment: Optional[str] = None
71
+ ) -> types.ImageSpec:
72
+ """
73
+ Resolve image specification (container image and resources) for the job.
74
+
75
+ Behavior:
76
+ - If `runtime_environment` is empty or the feature flag is disabled, use the
77
+ default image tag and image name.
78
+ - If `runtime_environment` is a valid image tag, use that tag with the default
79
+ repository/name.
80
+ - If `runtime_environment` is a full image URL, use it directly.
81
+ - If the feature flag is enabled and `runtime_environment` is not provided,
82
+ select an ML Runtime image matching the local Python major.minor
83
+ - When multiple inputs are provided, `runtime_environment` takes priority.
84
+
85
+ Args:
86
+ session: Snowflake session.
87
+ compute_pool: Compute pool used to infer CPU/GPU resources.
88
+ runtime_environment: Optional image tag or full image URL to override.
89
+
90
+ Returns:
91
+ Image spec including container image and resource requests/limits.
92
+ """
60
93
  # Retrieve compute pool node resources
61
94
  resources = _get_node_resources(session, compute_pool=compute_pool)
95
+ hardware = "GPU" if resources.gpu > 0 else "CPU"
96
+ image_tag = _get_runtime_image_tag()
97
+ image_repo = constants.DEFAULT_IMAGE_REPO
98
+ image_name = constants.DEFAULT_IMAGE_GPU if resources.gpu > 0 else constants.DEFAULT_IMAGE_CPU
62
99
 
63
100
  # Use MLRuntime image
64
- hardware = "GPU" if resources.gpu > 0 else "CPU"
65
101
  container_image = None
66
- if feature_flags.FeatureFlags.ENABLE_IMAGE_VERSION_ENV_VAR.is_enabled():
102
+ if runtime_environment:
103
+ if _check_image_tag_valid(runtime_environment):
104
+ image_tag = runtime_environment
105
+ else:
106
+ container_image = runtime_environment
107
+ elif feature_flags.FeatureFlags.ENABLE_IMAGE_VERSION_ENV_VAR.is_enabled():
67
108
  container_image = _get_runtime_image(session, hardware) # type: ignore[arg-type]
68
109
 
69
- if not container_image:
70
- image_repo = constants.DEFAULT_IMAGE_REPO
71
- image_name = constants.DEFAULT_IMAGE_GPU if resources.gpu > 0 else constants.DEFAULT_IMAGE_CPU
72
- image_tag = _get_runtime_image_tag()
73
- container_image = f"{image_repo}/{image_name}:{image_tag}"
74
-
110
+ container_image = container_image or f"{image_repo}/{image_name}:{image_tag}"
75
111
  # TODO: Should each instance consume the entire pod?
76
112
  return types.ImageSpec(
77
113
  resource_requests=resources,
@@ -127,6 +163,7 @@ def generate_service_spec(
127
163
  target_instances: int = 1,
128
164
  min_instances: int = 1,
129
165
  enable_metrics: bool = False,
166
+ runtime_environment: Optional[str] = None,
130
167
  ) -> dict[str, Any]:
131
168
  """
132
169
  Generate a service specification for a job.
@@ -139,11 +176,12 @@ def generate_service_spec(
139
176
  target_instances: Number of instances for multi-node job
140
177
  enable_metrics: Enable platform metrics for the job
141
178
  min_instances: Minimum number of instances required to start the job
179
+ runtime_environment: The runtime image to use. Only support image tag or full image URL.
142
180
 
143
181
  Returns:
144
182
  Job service specification
145
183
  """
146
- image_spec = _get_image_spec(session, compute_pool)
184
+ image_spec = _get_image_spec(session, compute_pool, runtime_environment)
147
185
 
148
186
  # Set resource requests/limits, including nvidia.com/gpu quantity if applicable
149
187
  resource_requests: dict[str, Union[str, int]] = {
@@ -317,7 +355,7 @@ def merge_patch(base: Any, patch: Any, display_name: str = "") -> Any:
317
355
  Returns:
318
356
  The patched object.
319
357
  """
320
- if not type(base) is type(patch):
358
+ if type(base) is not type(patch):
321
359
  if base is not None:
322
360
  logging.warning(f"Type mismatch while merging {display_name} (base={type(base)}, patch={type(patch)})")
323
361
  return patch
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  import logging
3
3
  import pathlib
4
+ import sys
4
5
  import textwrap
5
6
  from pathlib import PurePath
6
7
  from typing import Any, Callable, Optional, TypeVar, Union, cast, overload
@@ -344,6 +345,9 @@ def submit_from_stage(
344
345
  query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
345
346
  spec_overrides (dict): A dictionary of overrides for the service spec.
346
347
  imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
348
+ runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
349
+ e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
350
+ it should contain image repository, image name and image tag.
347
351
 
348
352
  Returns:
349
353
  An object representing the submitted job.
@@ -409,6 +413,7 @@ def _submit_job(
409
413
  "min_instances",
410
414
  "enable_metrics",
411
415
  "query_warehouse",
416
+ "runtime_environment",
412
417
  ],
413
418
  )
414
419
  def _submit_job(
@@ -459,6 +464,9 @@ def _submit_job(
459
464
  )
460
465
  imports = kwargs.pop("additional_payloads")
461
466
 
467
+ if "runtime_environment" in kwargs:
468
+ logger.warning("'runtime_environment' is in private preview since 1.15.0, do not use it in production.")
469
+
462
470
  # Use kwargs for less common optional parameters
463
471
  database = kwargs.pop("database", None)
464
472
  schema = kwargs.pop("schema", None)
@@ -470,6 +478,7 @@ def _submit_job(
470
478
  enable_metrics = kwargs.pop("enable_metrics", True)
471
479
  query_warehouse = kwargs.pop("query_warehouse", session.get_current_warehouse())
472
480
  imports = kwargs.pop("imports", None) or imports
481
+ runtime_environment = kwargs.pop("runtime_environment", None)
473
482
 
474
483
  # Warn if there are unknown kwargs
475
484
  if kwargs:
@@ -544,6 +553,7 @@ def _submit_job(
544
553
  min_instances=min_instances,
545
554
  enable_metrics=enable_metrics,
546
555
  use_async=True,
556
+ runtime_environment=runtime_environment,
547
557
  )
548
558
 
549
559
  # Fall back to v1
@@ -556,6 +566,7 @@ def _submit_job(
556
566
  target_instances=target_instances,
557
567
  min_instances=min_instances,
558
568
  enable_metrics=enable_metrics,
569
+ runtime_environment=runtime_environment,
559
570
  )
560
571
 
561
572
  # Generate spec overrides
@@ -639,6 +650,7 @@ def _do_submit_job_v2(
639
650
  min_instances: int = 1,
640
651
  enable_metrics: bool = True,
641
652
  use_async: bool = True,
653
+ runtime_environment: Optional[str] = None,
642
654
  ) -> jb.MLJob[Any]:
643
655
  """
644
656
  Generate the SQL query for job submission.
@@ -657,6 +669,7 @@ def _do_submit_job_v2(
657
669
  min_instances: Minimum number of instances required to start the job.
658
670
  enable_metrics: Whether to enable platform metrics for the job.
659
671
  use_async: Whether to run the job asynchronously.
672
+ runtime_environment: image tag or full image URL to use for the job.
660
673
 
661
674
  Returns:
662
675
  The job object.
@@ -672,6 +685,13 @@ def _do_submit_job_v2(
672
685
  "ENABLE_METRICS": enable_metrics,
673
686
  "SPEC_OVERRIDES": spec_overrides,
674
687
  }
688
+ # for the image tag or full image URL, we use that directly
689
+ if runtime_environment:
690
+ spec_options["RUNTIME"] = runtime_environment
691
+ elif feature_flags.FeatureFlags.ENABLE_IMAGE_VERSION_ENV_VAR.is_enabled():
692
+ # when feature flag is enabled, we get the local python version and wrap it in a dict
693
+ # in system function, we can know whether it is python version or image tag or full image URL through the format
694
+ spec_options["RUNTIME"] = json.dumps({"pythonVersion": f"{sys.version_info.major}.{sys.version_info.minor}"})
675
695
  job_options = {
676
696
  "EXTERNAL_ACCESS_INTEGRATIONS": external_access_integrations,
677
697
  "QUERY_WAREHOUSE": query_warehouse,
@@ -1,6 +1,20 @@
1
- from snowflake.ml.model._client.model.batch_inference_specs import JobSpec, OutputSpec
1
+ from snowflake.ml.model._client.model.batch_inference_specs import (
2
+ JobSpec,
3
+ OutputSpec,
4
+ SaveMode,
5
+ )
2
6
  from snowflake.ml.model._client.model.model_impl import Model
3
7
  from snowflake.ml.model._client.model.model_version_impl import ExportMode, ModelVersion
4
8
  from snowflake.ml.model.models.huggingface_pipeline import HuggingFacePipelineModel
9
+ from snowflake.ml.model.volatility import Volatility
5
10
 
6
- __all__ = ["Model", "ModelVersion", "ExportMode", "HuggingFacePipelineModel", "JobSpec", "OutputSpec"]
11
+ __all__ = [
12
+ "Model",
13
+ "ModelVersion",
14
+ "ExportMode",
15
+ "HuggingFacePipelineModel",
16
+ "JobSpec",
17
+ "OutputSpec",
18
+ "SaveMode",
19
+ "Volatility",
20
+ ]
@@ -1,10 +1,26 @@
1
- from typing import Optional, Union
1
+ from enum import Enum
2
+ from typing import Optional
2
3
 
3
4
  from pydantic import BaseModel
4
5
 
5
6
 
7
+ class SaveMode(str, Enum):
8
+ """Save mode options for batch inference output.
9
+
10
+ Determines the behavior when files already exist in the output location.
11
+
12
+ OVERWRITE: Remove existing files and write new results.
13
+
14
+ ERROR: Raise an error if files already exist in the output location.
15
+ """
16
+
17
+ OVERWRITE = "overwrite"
18
+ ERROR = "error"
19
+
20
+
6
21
  class OutputSpec(BaseModel):
7
22
  stage_location: str
23
+ mode: SaveMode = SaveMode.ERROR
8
24
 
9
25
 
10
26
  class JobSpec(BaseModel):
@@ -12,10 +28,10 @@ class JobSpec(BaseModel):
12
28
  job_name: Optional[str] = None
13
29
  num_workers: Optional[int] = None
14
30
  function_name: Optional[str] = None
15
- gpu: Optional[Union[str, int]] = None
16
31
  force_rebuild: bool = False
17
32
  max_batch_rows: int = 1024
18
33
  warehouse: Optional[str] = None
19
34
  cpu_requests: Optional[str] = None
20
35
  memory_requests: Optional[str] = None
36
+ gpu_requests: Optional[str] = None
21
37
  replicas: Optional[int] = None