snowflake-ml-python 1.7.3__tar.gz → 1.7.5__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 (418) hide show
  1. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/CHANGELOG.md +57 -11
  2. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/PKG-INFO +81 -33
  3. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/README.md +1 -1
  4. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/pyproject.toml +8 -8
  5. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_complete.py +19 -0
  6. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/env_utils.py +64 -21
  7. snowflake_ml_python-1.7.5/snowflake/ml/_internal/platform_capabilities.py +87 -0
  8. snowflake_ml_python-1.7.5/snowflake/ml/_internal/relax_version_strategy.py +16 -0
  9. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/telemetry.py +21 -0
  10. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/_internal/arrow_ingestor.py +1 -1
  11. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset.py +0 -1
  12. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/feature_store.py +18 -0
  13. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/feature_view.py +46 -1
  14. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/fileset.py +6 -0
  15. snowflake_ml_python-1.7.5/snowflake/ml/jobs/__init__.py +21 -0
  16. snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/constants.py +57 -0
  17. snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/payload_utils.py +438 -0
  18. snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/spec_utils.py +296 -0
  19. snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/types.py +39 -0
  20. snowflake_ml_python-1.7.5/snowflake/ml/jobs/decorators.py +71 -0
  21. snowflake_ml_python-1.7.5/snowflake/ml/jobs/job.py +113 -0
  22. snowflake_ml_python-1.7.5/snowflake/ml/jobs/manager.py +298 -0
  23. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/model_ops.py +11 -2
  24. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/service_ops.py +1 -11
  25. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/service.py +13 -6
  26. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_env/model_env.py +45 -28
  27. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/_utils.py +19 -6
  28. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/custom.py +1 -2
  29. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +17 -0
  30. snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_handlers/keras.py +230 -0
  31. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/pytorch.py +1 -0
  32. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/sklearn.py +28 -3
  33. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +74 -21
  34. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +27 -49
  35. snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +48 -0
  36. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_meta.py +1 -1
  37. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +3 -0
  38. snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -0
  39. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +4 -1
  40. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_task/model_task_utils.py +5 -1
  41. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/base_handler.py +1 -2
  42. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/builtins_handler.py +2 -2
  43. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/core.py +2 -2
  44. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/numpy_handler.py +11 -12
  45. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/pandas_handler.py +11 -9
  46. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/pytorch_handler.py +3 -6
  47. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/snowpark_handler.py +3 -3
  48. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/tensorflow_handler.py +2 -7
  49. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/model_signature.py +25 -4
  50. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/type_hints.py +15 -0
  51. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +14 -1
  52. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +6 -3
  53. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/affinity_propagation.py +6 -3
  54. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +6 -3
  55. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/birch.py +6 -3
  56. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/bisecting_k_means.py +6 -3
  57. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/dbscan.py +6 -3
  58. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/feature_agglomeration.py +6 -3
  59. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/k_means.py +6 -3
  60. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/mean_shift.py +6 -3
  61. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +6 -3
  62. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/optics.py +6 -3
  63. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_biclustering.py +6 -3
  64. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_clustering.py +6 -3
  65. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_coclustering.py +6 -3
  66. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/column_transformer.py +6 -3
  67. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/transformed_target_regressor.py +6 -3
  68. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/elliptic_envelope.py +6 -3
  69. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/empirical_covariance.py +6 -3
  70. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/graphical_lasso.py +6 -3
  71. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +6 -3
  72. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/ledoit_wolf.py +6 -3
  73. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/min_cov_det.py +6 -3
  74. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/oas.py +6 -3
  75. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/shrunk_covariance.py +6 -3
  76. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/dictionary_learning.py +6 -3
  77. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/factor_analysis.py +6 -3
  78. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/fast_ica.py +6 -3
  79. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/incremental_pca.py +6 -3
  80. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/kernel_pca.py +6 -3
  81. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +6 -3
  82. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +6 -3
  83. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/pca.py +6 -3
  84. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/sparse_pca.py +6 -3
  85. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/truncated_svd.py +6 -3
  86. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +6 -3
  87. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +6 -3
  88. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +6 -3
  89. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +6 -3
  90. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/bagging_classifier.py +6 -3
  91. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/bagging_regressor.py +6 -3
  92. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +6 -3
  93. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +6 -3
  94. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +6 -3
  95. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +6 -3
  96. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +6 -3
  97. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +6 -3
  98. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/isolation_forest.py +6 -3
  99. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +6 -3
  100. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +6 -3
  101. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/stacking_regressor.py +6 -3
  102. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/voting_classifier.py +6 -3
  103. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/voting_regressor.py +6 -3
  104. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +6 -3
  105. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fdr.py +6 -3
  106. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fpr.py +6 -3
  107. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fwe.py +6 -3
  108. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_k_best.py +6 -3
  109. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_percentile.py +6 -3
  110. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +6 -3
  111. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/variance_threshold.py +6 -3
  112. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +6 -3
  113. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +6 -3
  114. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/iterative_imputer.py +6 -3
  115. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/knn_imputer.py +6 -3
  116. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/missing_indicator.py +6 -3
  117. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +6 -3
  118. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/nystroem.py +6 -3
  119. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +6 -3
  120. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +6 -3
  121. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +6 -3
  122. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +6 -3
  123. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +6 -3
  124. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +6 -3
  125. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ard_regression.py +6 -3
  126. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +6 -3
  127. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/elastic_net.py +6 -3
  128. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +6 -3
  129. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/gamma_regressor.py +6 -3
  130. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/huber_regressor.py +6 -3
  131. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lars.py +6 -3
  132. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lars_cv.py +6 -3
  133. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso.py +6 -3
  134. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_cv.py +6 -3
  135. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars.py +6 -3
  136. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +6 -3
  137. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +6 -3
  138. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/linear_regression.py +6 -3
  139. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/logistic_regression.py +6 -3
  140. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +6 -3
  141. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +6 -3
  142. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +6 -3
  143. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +6 -3
  144. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +6 -3
  145. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +6 -3
  146. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +6 -3
  147. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +6 -3
  148. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/perceptron.py +6 -3
  149. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/poisson_regressor.py +6 -3
  150. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ransac_regressor.py +6 -3
  151. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge.py +6 -3
  152. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_classifier.py +6 -3
  153. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +6 -3
  154. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_cv.py +6 -3
  155. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_classifier.py +6 -3
  156. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +6 -3
  157. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_regressor.py +6 -3
  158. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +6 -3
  159. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +6 -3
  160. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/isomap.py +6 -3
  161. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/mds.py +6 -3
  162. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/spectral_embedding.py +6 -3
  163. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/tsne.py +6 -3
  164. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +6 -3
  165. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/gaussian_mixture.py +6 -3
  166. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/grid_search_cv.py +17 -2
  167. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +17 -2
  168. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +6 -3
  169. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +6 -3
  170. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/output_code_classifier.py +6 -3
  171. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +6 -3
  172. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +6 -3
  173. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/complement_nb.py +6 -3
  174. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +6 -3
  175. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +6 -3
  176. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +6 -3
  177. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +6 -3
  178. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/kernel_density.py +6 -3
  179. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +6 -3
  180. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/nearest_centroid.py +6 -3
  181. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +6 -3
  182. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +6 -3
  183. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +6 -3
  184. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +6 -3
  185. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +6 -3
  186. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/mlp_classifier.py +6 -3
  187. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/mlp_regressor.py +6 -3
  188. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/pipeline/pipeline.py +28 -3
  189. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/polynomial_features.py +8 -5
  190. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/label_propagation.py +6 -3
  191. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/label_spreading.py +6 -3
  192. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/linear_svc.py +6 -3
  193. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/linear_svr.py +6 -3
  194. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/nu_svc.py +6 -3
  195. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/nu_svr.py +6 -3
  196. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/svc.py +6 -3
  197. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/svr.py +6 -3
  198. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/decision_tree_classifier.py +6 -3
  199. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/decision_tree_regressor.py +6 -3
  200. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/extra_tree_classifier.py +6 -3
  201. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/extra_tree_regressor.py +6 -3
  202. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgb_classifier.py +6 -3
  203. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgb_regressor.py +6 -3
  204. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +6 -3
  205. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +6 -3
  206. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/registry.py +34 -4
  207. snowflake_ml_python-1.7.5/snowflake/ml/version.py +1 -0
  208. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/PKG-INFO +81 -33
  209. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/SOURCES.txt +12 -0
  210. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/requires.txt +21 -20
  211. snowflake_ml_python-1.7.3/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -2
  212. snowflake_ml_python-1.7.3/snowflake/ml/version.py +0 -1
  213. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/LICENSE.txt +0 -0
  214. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/setup.cfg +0 -0
  215. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/__init__.py +0 -0
  216. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_classify_text.py +0 -0
  217. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_embed_text_1024.py +0 -0
  218. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_embed_text_768.py +0 -0
  219. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_extract_answer.py +0 -0
  220. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_finetune.py +0 -0
  221. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_sentiment.py +0 -0
  222. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_sse_client.py +0 -0
  223. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_summarize.py +0 -0
  224. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_translate.py +0 -0
  225. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_util.py +0 -0
  226. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/env.py +0 -0
  227. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  228. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  229. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  230. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  231. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  232. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  233. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  234. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  235. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  236. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/file_utils.py +0 -0
  237. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  238. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  239. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  240. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  241. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/init_utils.py +0 -0
  242. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  243. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/migrator_utils.py +0 -0
  244. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/type_utils.py +0 -0
  245. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  246. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/formatting.py +0 -0
  247. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/identifier.py +0 -0
  248. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  249. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  250. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  251. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  252. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  253. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/result.py +0 -0
  254. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  255. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  256. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  257. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  258. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  259. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  260. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/__init__.py +0 -0
  261. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_connector.py +0 -0
  262. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_ingestor.py +0 -0
  263. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_source.py +0 -0
  264. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/ingestor_utils.py +0 -0
  265. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/torch_utils.py +0 -0
  266. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/__init__.py +0 -0
  267. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_factory.py +0 -0
  268. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  269. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_reader.py +0 -0
  270. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/__init__.py +0 -0
  271. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/access_manager.py +0 -0
  272. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/entity.py +0 -0
  273. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  274. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  275. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  276. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  277. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  278. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  279. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  280. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  281. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  282. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  283. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  284. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  285. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  286. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  287. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  288. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  289. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  290. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  291. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  292. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  293. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  294. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  295. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  296. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/sfcfs.py +0 -0
  297. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/snowfs.py +0 -0
  298. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/stage_fs.py +0 -0
  299. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/lineage/__init__.py +0 -0
  300. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/lineage/lineage_node.py +0 -0
  301. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/__init__.py +0 -0
  302. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  303. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
  304. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  305. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  306. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  307. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/_base.py +0 -0
  308. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/model.py +0 -0
  309. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  310. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/stage.py +0 -0
  311. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/tag.py +0 -0
  312. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  313. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  314. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  315. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  316. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  317. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  318. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  319. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  320. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  321. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  322. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handler.py +0 -0
  323. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  324. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  325. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  326. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  327. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  328. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  329. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  330. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  331. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -0
  332. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  333. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  334. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  335. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  336. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_packager.py +0 -0
  337. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/utils.py +0 -0
  338. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/custom_model.py +0 -0
  339. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  340. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/constants.py +0 -0
  341. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  342. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  343. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  344. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  345. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  346. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  347. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  348. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  349. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  350. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  351. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  352. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  353. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  354. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  355. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/__init__.py +0 -0
  356. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  357. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  358. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  359. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  360. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  361. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/framework/_utils.py +0 -0
  362. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/framework/base.py +0 -0
  363. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  364. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/__init__.py +0 -0
  365. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  366. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  367. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  368. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  369. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  370. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  371. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  372. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/classification.py +0 -0
  373. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  374. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  375. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  376. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  377. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/regression.py +0 -0
  378. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  379. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  380. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  381. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  382. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  383. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  384. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  385. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  386. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  387. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  388. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  389. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  390. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  391. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  392. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  393. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  394. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  395. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  396. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  397. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  398. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  399. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  400. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/__init__.py +0 -0
  401. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/__init__.py +0 -0
  402. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  403. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  404. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  405. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  406. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  407. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  408. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/model_monitor.py +0 -0
  409. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/model_monitor_version.py +0 -0
  410. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/shap.py +0 -0
  411. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/__init__.py +0 -0
  412. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  413. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/authentication.py +0 -0
  414. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/connection_params.py +0 -0
  415. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/sparse.py +0 -0
  416. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/sql_client.py +0 -0
  417. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  418. {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,11 +1,61 @@
1
1
  # Release History
2
2
 
3
- ## 1.7.3
3
+ ## 1.7.5
4
+
5
+ - Support Python 3.12.
6
+ - Explainability: Support native and snowml sklearn pipeline
7
+
8
+ ### Bug Fixes
9
+
10
+ - Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
11
+ model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
12
+ is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
13
+ use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
14
+ Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
15
+ - Registry: Removed the validation that disallows data that does not have non-null values being passed to
16
+ `ModelVersion.run`.
17
+ - ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
18
+ - ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
19
+ combinations to be erroneously rejected with
20
+ `ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
21
+ - ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
22
+
23
+ ### Behavior Change
24
+
25
+ ### New Features
26
+
27
+ - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
28
+ - Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
29
+ - ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
30
+
31
+ ## 1.7.4 (01-28-2025)
32
+
33
+ - FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
34
+ Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
35
+ [snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
36
+ instead.
37
+ - Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
38
+
39
+ ### Bug Fixes
40
+
41
+ - Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
42
+ - Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
43
+
44
+ ### New Features
45
+
46
+ - Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
47
+ [Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
48
+ - Added `guardrails` option to Cortex `complete` function, enabling
49
+ [Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
50
+ - Model Monitoring: Expose Model Monitoring Python API by default.
51
+
52
+ ## 1.7.3 (2025-01-08)
4
53
 
5
54
  - Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
6
55
  - Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
7
56
  - Bumped the requirement of `mlflow` to `>=2.16.0, <3`
8
57
  - Registry: Support 500+ features for model registry
58
+ - Feature Store: Add support for `cluster_by` for feature views.
9
59
 
10
60
  ### Bug Fixes
11
61
 
@@ -18,13 +68,13 @@
18
68
  - Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
19
69
  pipeline models due to default explainability enablement.
20
70
 
21
- ### Behavior Changes
22
-
23
71
  ### New Features
24
72
 
25
73
  - Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
26
74
  - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
27
75
  - DataConnector: Add new `DataConnector.from_sql()` constructor
76
+ - Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
77
+ to be used when inferring the signature.
28
78
 
29
79
  ## 1.7.2 (2024-11-21)
30
80
 
@@ -33,8 +83,6 @@
33
83
  - Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
34
84
  whose task is UNKNOWN and fails later when invoked.
35
85
 
36
- ### Behavior Changes
37
-
38
86
  ### New Features
39
87
 
40
88
  - Registry: Support asynchronous model inference service creation with the `block` option
@@ -54,8 +102,6 @@ signature inference.
54
102
  - Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
55
103
  - Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
56
104
 
57
- ### Behavior Changes
58
-
59
105
  ### New Features
60
106
 
61
107
  - Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
@@ -127,6 +173,10 @@ class ExamplePipelineModel(custom_model.CustomModel):
127
173
  - Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
128
174
  interoperability with PyTorch DataLoader.
129
175
  - Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
176
+ - Limitations:
177
+ - The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
178
+ Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
179
+ to preprocess the categorical datatype and log the pipeline with the XGBoost model.
130
180
  - Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
131
181
  data from explainablity and data lineage.
132
182
 
@@ -304,10 +354,6 @@ data from explainablity and data lineage.
304
354
  - Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
305
355
  dependency error.
306
356
 
307
- ### Behavior Changes
308
-
309
- ### New Features
310
-
311
357
  ## 1.5.1 (05-22-2024)
312
358
 
313
359
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: snowflake-ml-python
3
- Version: 1.7.3
3
+ Version: 1.7.5
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,17 +223,18 @@ Classifier: Operating System :: OS Independent
223
223
  Classifier: Programming Language :: Python :: 3.9
224
224
  Classifier: Programming Language :: Python :: 3.10
225
225
  Classifier: Programming Language :: Python :: 3.11
226
+ Classifier: Programming Language :: Python :: 3.12
226
227
  Classifier: Topic :: Database
227
228
  Classifier: Topic :: Software Development
228
229
  Classifier: Topic :: Software Development :: Libraries
229
230
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
230
231
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
231
232
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
232
- Requires-Python: <3.12,>=3.9
233
+ Requires-Python: <3.13,>=3.9
233
234
  Description-Content-Type: text/markdown
234
235
  License-File: LICENSE.txt
235
236
  Requires-Dist: absl-py<2,>=0.15
236
- Requires-Dist: anyio<4,>=3.5.0
237
+ Requires-Dist: anyio<5,>=3.5.0
237
238
  Requires-Dist: cachetools<6,>=3.1.1
238
239
  Requires-Dist: cloudpickle>=2.0.0
239
240
  Requires-Dist: cryptography
@@ -251,45 +252,46 @@ Requires-Dist: s3fs<2026,>=2024.6.1
251
252
  Requires-Dist: scikit-learn<1.6,>=1.4
252
253
  Requires-Dist: scipy<2,>=1.9
253
254
  Requires-Dist: snowflake-connector-python[pandas]<4,>=3.5.0
254
- Requires-Dist: snowflake-snowpark-python<2,>=1.17.0
255
+ Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
255
256
  Requires-Dist: sqlparse<1,>=0.4
256
257
  Requires-Dist: typing-extensions<5,>=4.1.0
257
258
  Requires-Dist: xgboost<3,>=1.7.3
258
259
  Provides-Extra: all
259
260
  Requires-Dist: catboost<2,>=1.2.0; extra == "all"
260
- Requires-Dist: huggingface_hub<0.26; extra == "all"
261
+ Requires-Dist: keras<4,>=2.0.0; extra == "all"
261
262
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "all"
262
263
  Requires-Dist: mlflow<3,>=2.16.0; extra == "all"
263
- Requires-Dist: peft<1,>=0.5.0; extra == "all"
264
- Requires-Dist: sentence-transformers<3,>=2.2.2; extra == "all"
265
- Requires-Dist: sentencepiece<1,>=0.1.95; extra == "all"
264
+ Requires-Dist: sentence-transformers<3,>=2.7.0; extra == "all"
265
+ Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "all"
266
266
  Requires-Dist: shap<1,>=0.46.0; extra == "all"
267
- Requires-Dist: tensorflow<3,>=2.12.0; extra == "all"
268
- Requires-Dist: tokenizers<1,>=0.10; extra == "all"
269
- Requires-Dist: torch<2.3.0,>=2.0.1; extra == "all"
267
+ Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
268
+ Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
269
+ Requires-Dist: torch<3,>=2.0.1; extra == "all"
270
270
  Requires-Dist: torchdata<1,>=0.4; extra == "all"
271
- Requires-Dist: transformers<5,>=4.32.1; extra == "all"
271
+ Requires-Dist: transformers<5,>=4.37.2; extra == "all"
272
272
  Provides-Extra: catboost
273
273
  Requires-Dist: catboost<2,>=1.2.0; extra == "catboost"
274
+ Provides-Extra: keras
275
+ Requires-Dist: keras<4,>=2.0.0; extra == "keras"
276
+ Requires-Dist: tensorflow<3,>=2.17.0; extra == "keras"
277
+ Requires-Dist: torch<3,>=2.0.1; extra == "keras"
274
278
  Provides-Extra: lightgbm
275
279
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "lightgbm"
276
- Provides-Extra: llm
277
- Requires-Dist: peft<1,>=0.5.0; extra == "llm"
278
280
  Provides-Extra: mlflow
279
281
  Requires-Dist: mlflow<3,>=2.16.0; extra == "mlflow"
280
282
  Provides-Extra: shap
281
283
  Requires-Dist: shap<1,>=0.46.0; extra == "shap"
282
284
  Provides-Extra: tensorflow
283
- Requires-Dist: tensorflow<3,>=2.12.0; extra == "tensorflow"
285
+ Requires-Dist: tensorflow<3,>=2.17.0; extra == "tensorflow"
284
286
  Provides-Extra: torch
285
- Requires-Dist: torch<2.3.0,>=2.0.1; extra == "torch"
287
+ Requires-Dist: torch<3,>=2.0.1; extra == "torch"
286
288
  Requires-Dist: torchdata<1,>=0.4; extra == "torch"
287
289
  Provides-Extra: transformers
288
- Requires-Dist: huggingface_hub<0.26; extra == "transformers"
289
- Requires-Dist: sentence-transformers<3,>=2.2.2; extra == "transformers"
290
- Requires-Dist: sentencepiece<1,>=0.1.95; extra == "transformers"
291
- Requires-Dist: tokenizers<1,>=0.10; extra == "transformers"
292
- Requires-Dist: transformers<5,>=4.32.1; extra == "transformers"
290
+ Requires-Dist: sentence-transformers<3,>=2.7.0; extra == "transformers"
291
+ Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
292
+ Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
293
+ Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
294
+ Requires-Dist: transformers<5,>=4.37.2; extra == "transformers"
293
295
 
294
296
  # Snowpark ML
295
297
 
@@ -346,7 +348,7 @@ If you don't have a Snowflake account yet, you can [sign up for a 30-day free tr
346
348
  Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
347
349
  in the Snowflake documentation.
348
350
 
349
- Python versions 3.9 to 3.11 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
351
+ Python versions 3.9 to 3.12 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
350
352
  [anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
351
353
  or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
352
354
 
@@ -399,12 +401,62 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
399
401
 
400
402
  # Release History
401
403
 
402
- ## 1.7.3
404
+ ## 1.7.5
405
+
406
+ - Support Python 3.12.
407
+ - Explainability: Support native and snowml sklearn pipeline
408
+
409
+ ### Bug Fixes
410
+
411
+ - Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
412
+ model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
413
+ is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
414
+ use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
415
+ Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
416
+ - Registry: Removed the validation that disallows data that does not have non-null values being passed to
417
+ `ModelVersion.run`.
418
+ - ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
419
+ - ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
420
+ combinations to be erroneously rejected with
421
+ `ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
422
+ - ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
423
+
424
+ ### Behavior Change
425
+
426
+ ### New Features
427
+
428
+ - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
429
+ - Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
430
+ - ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
431
+
432
+ ## 1.7.4 (01-28-2025)
433
+
434
+ - FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
435
+ Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
436
+ [snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
437
+ instead.
438
+ - Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
439
+
440
+ ### Bug Fixes
441
+
442
+ - Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
443
+ - Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
444
+
445
+ ### New Features
446
+
447
+ - Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
448
+ [Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
449
+ - Added `guardrails` option to Cortex `complete` function, enabling
450
+ [Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
451
+ - Model Monitoring: Expose Model Monitoring Python API by default.
452
+
453
+ ## 1.7.3 (2025-01-08)
403
454
 
404
455
  - Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
405
456
  - Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
406
457
  - Bumped the requirement of `mlflow` to `>=2.16.0, <3`
407
458
  - Registry: Support 500+ features for model registry
459
+ - Feature Store: Add support for `cluster_by` for feature views.
408
460
 
409
461
  ### Bug Fixes
410
462
 
@@ -417,13 +469,13 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
469
  - Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
418
470
  pipeline models due to default explainability enablement.
419
471
 
420
- ### Behavior Changes
421
-
422
472
  ### New Features
423
473
 
424
474
  - Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
425
475
  - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
426
476
  - DataConnector: Add new `DataConnector.from_sql()` constructor
477
+ - Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
478
+ to be used when inferring the signature.
427
479
 
428
480
  ## 1.7.2 (2024-11-21)
429
481
 
@@ -432,8 +484,6 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
432
484
  - Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
433
485
  whose task is UNKNOWN and fails later when invoked.
434
486
 
435
- ### Behavior Changes
436
-
437
487
  ### New Features
438
488
 
439
489
  - Registry: Support asynchronous model inference service creation with the `block` option
@@ -453,8 +503,6 @@ signature inference.
453
503
  - Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
454
504
  - Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
455
505
 
456
- ### Behavior Changes
457
-
458
506
  ### New Features
459
507
 
460
508
  - Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
@@ -526,6 +574,10 @@ class ExamplePipelineModel(custom_model.CustomModel):
526
574
  - Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
527
575
  interoperability with PyTorch DataLoader.
528
576
  - Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
577
+ - Limitations:
578
+ - The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
579
+ Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
580
+ to preprocess the categorical datatype and log the pipeline with the XGBoost model.
529
581
  - Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
530
582
  data from explainablity and data lineage.
531
583
 
@@ -703,10 +755,6 @@ data from explainablity and data lineage.
703
755
  - Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
704
756
  dependency error.
705
757
 
706
- ### Behavior Changes
707
-
708
- ### New Features
709
-
710
758
  ## 1.5.1 (05-22-2024)
711
759
 
712
760
  ### Bug Fixes
@@ -53,7 +53,7 @@ If you don't have a Snowflake account yet, you can [sign up for a 30-day free tr
53
53
  Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
54
54
  in the Snowflake documentation.
55
55
 
56
- Python versions 3.9 to 3.11 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
56
+ Python versions 3.9 to 3.12 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
57
57
  [anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
58
58
  or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
59
59
 
@@ -5,10 +5,10 @@ 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.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "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.9, <3.12"
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
+ requires-python = ">=3.9, <3.13"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<4", "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,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "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.4,<1.6", "scipy>=1.9,<2", "snowflake-connector-python[pandas]>=3.5.0,<4", "snowflake-snowpark-python>=1.17.0,<2", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
11
+ dependencies = [ "absl-py>=0.15,<2", "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,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "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.4,<1.6", "scipy>=1.9,<2", "snowflake-connector-python[pandas]>=3.5.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "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"
@@ -24,15 +24,15 @@ Issues = "https://github.com/snowflakedb/snowflake-ml-python/issues"
24
24
  Changelog = "https://github.com/snowflakedb/snowflake-ml-python/blob/master/CHANGELOG.md"
25
25
 
26
26
  [project.optional-dependencies]
27
- all = [ "catboost>=1.2.0, <2", "huggingface_hub<0.26", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "peft>=0.5.0,<1", "sentence-transformers>=2.2.2,<3", "sentencepiece>=0.1.95,<1", "shap>=0.46.0,<1", "tensorflow>=2.12.0,<3", "tokenizers>=0.10,<1", "torch>=2.0.1,<2.3.0", "torchdata>=0.4,<1", "transformers>=4.32.1,<5",]
27
+ all = [ "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<3", "sentencepiece>=0.1.95,<0.2.0", "shap>=0.46.0,<1", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.37.2,<5",]
28
28
  catboost = [ "catboost>=1.2.0, <2",]
29
+ keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
29
30
  lightgbm = [ "lightgbm>=4.1.0, <5",]
30
- llm = [ "peft>=0.5.0,<1",]
31
31
  mlflow = [ "mlflow>=2.16.0, <3",]
32
32
  shap = [ "shap>=0.46.0,<1",]
33
- tensorflow = [ "tensorflow>=2.12.0,<3",]
34
- torch = [ "torch>=2.0.1,<2.3.0", "torchdata>=0.4,<1",]
35
- transformers = [ "huggingface_hub<0.26", "sentence-transformers>=2.2.2,<3", "sentencepiece>=0.1.95,<1", "tokenizers>=0.10,<1", "transformers>=4.32.1,<5",]
33
+ tensorflow = [ "tensorflow>=2.17.0,<3",]
34
+ torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
35
+ transformers = [ "sentence-transformers>=2.7.0,<3", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.37.2,<5",]
36
36
 
37
37
  [tool.setuptools.package-data]
38
38
  "*" = [ "*",]
@@ -49,6 +49,10 @@ class CompleteOptions(TypedDict):
49
49
  generally used as an alternative to temperature. The difference is that top_p restricts the set of possible tokens
50
50
  that the model outputs, while temperature influences which tokens are chosen at each step. """
51
51
 
52
+ guardrails: NotRequired[bool]
53
+ """ A boolean value that controls whether Cortex Guard filters unsafe or harmful responses
54
+ from the language model. """
55
+
52
56
 
53
57
  class ResponseParseException(Exception):
54
58
  """This exception is raised when the server response cannot be parsed."""
@@ -56,6 +60,15 @@ class ResponseParseException(Exception):
56
60
  pass
57
61
 
58
62
 
63
+ class GuardrailsOptions(TypedDict):
64
+ enabled: bool
65
+ """A boolean value that controls whether Cortex Guard filters unsafe or harmful responses
66
+ from the language model."""
67
+
68
+ response_when_unsafe: str
69
+ """The response to return when the language model generates unsafe or harmful content."""
70
+
71
+
59
72
  _MAX_RETRY_SECONDS = 30
60
73
 
61
74
 
@@ -117,6 +130,12 @@ def _make_request_body(
117
130
  data["temperature"] = options["temperature"]
118
131
  if "top_p" in options:
119
132
  data["top_p"] = options["top_p"]
133
+ if "guardrails" in options and options["guardrails"]:
134
+ guardrails_options: GuardrailsOptions = {
135
+ "enabled": True,
136
+ "response_when_unsafe": "Response filtered by Cortex Guard",
137
+ }
138
+ data["guardrails"] = guardrails_options
120
139
  return data
121
140
 
122
141
 
@@ -12,7 +12,7 @@ import yaml
12
12
  from packaging import requirements, specifiers, version
13
13
 
14
14
  import snowflake.connector
15
- from snowflake.ml._internal import env as snowml_env
15
+ from snowflake.ml._internal import env as snowml_env, relax_version_strategy
16
16
  from snowflake.ml._internal.utils import query_result_checker
17
17
  from snowflake.snowpark import context, exceptions, session
18
18
 
@@ -56,6 +56,8 @@ def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
56
56
 
57
57
  if r.name == "python":
58
58
  raise ValueError("Don't specify python as a dependency, use python version argument instead.")
59
+ if r.name == "cuda":
60
+ raise ValueError("Don't specify cuda as a dependency, use cuda version argument instead.")
59
61
  except requirements.InvalidRequirement:
60
62
  raise ValueError(f"Invalid package requirement {req_str} found.")
61
63
 
@@ -313,19 +315,14 @@ def get_package_spec_with_supported_ops_only(req: requirements.Requirement) -> r
313
315
  return new_req
314
316
 
315
317
 
316
- def relax_requirement_version(req: requirements.Requirement) -> requirements.Requirement:
317
- """Relax version specifier from a requirement. It detects any ==x.y.z in specifiers and replaced with
318
- >=x.y, <(x+1)
319
-
320
- Args:
321
- req: The requirement that version specifier to be removed.
322
-
323
- Returns:
324
- A new requirement object after relaxations.
325
- """
326
- new_req = copy.deepcopy(req)
318
+ def _relax_specifier_set(
319
+ specifier_set: specifiers.SpecifierSet, strategy: relax_version_strategy.RelaxVersionStrategy
320
+ ) -> specifiers.SpecifierSet:
321
+ if strategy == relax_version_strategy.RelaxVersionStrategy.NO_RELAX:
322
+ return specifier_set
323
+ specifier_set = copy.deepcopy(specifier_set)
327
324
  relaxed_specifier_set = set()
328
- for spec in new_req.specifier._specs:
325
+ for spec in specifier_set._specs:
329
326
  if spec.operator != "==":
330
327
  relaxed_specifier_set.add(spec)
331
328
  continue
@@ -337,9 +334,40 @@ def relax_requirement_version(req: requirements.Requirement) -> requirements.Req
337
334
  relaxed_specifier_set.add(spec)
338
335
  continue
339
336
  assert pinned_version is not None
340
- relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}.{pinned_version.minor}"))
341
- relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major + 1}"))
342
- new_req.specifier._specs = frozenset(relaxed_specifier_set)
337
+ if strategy == relax_version_strategy.RelaxVersionStrategy.PATCH:
338
+ relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}.{pinned_version.minor}"))
339
+ relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major}.{pinned_version.minor+1}"))
340
+ elif strategy == relax_version_strategy.RelaxVersionStrategy.MINOR:
341
+ relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}.{pinned_version.minor}"))
342
+ relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major + 1}"))
343
+ elif strategy == relax_version_strategy.RelaxVersionStrategy.MAJOR:
344
+ relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}"))
345
+ relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major + 1}"))
346
+ specifier_set._specs = frozenset(relaxed_specifier_set)
347
+ return specifier_set
348
+
349
+
350
+ def relax_requirement_version(req: requirements.Requirement) -> requirements.Requirement:
351
+ """Relax version specifier from a requirement. It detects any ==x.y.z in specifiers and replaced with relaxed
352
+ version specifier based on the strategy defined in RELAX_VERSION_STRATEGY_MAP.
353
+
354
+ NO_RELAX: No relaxation.
355
+ PATCH: >=x.y, <x.(y+1)
356
+ MINOR (default): >=x.y, <(x+1)
357
+ MAJOR: >=x, <(x+1)
358
+
359
+
360
+ Args:
361
+ req: The requirement that version specifier to be removed.
362
+
363
+ Returns:
364
+ A new requirement object after relaxations.
365
+ """
366
+ new_req = copy.deepcopy(req)
367
+ strategy = relax_version_strategy.RELAX_VERSION_STRATEGY_MAP.get(
368
+ req.name, relax_version_strategy.RelaxVersionStrategy.MINOR
369
+ )
370
+ new_req.specifier = _relax_specifier_set(new_req.specifier, strategy)
343
371
  return new_req
344
372
 
345
373
 
@@ -431,10 +459,11 @@ def save_conda_env_file(
431
459
  path: pathlib.Path,
432
460
  conda_chan_deps: DefaultDict[str, List[requirements.Requirement]],
433
461
  python_version: str,
462
+ cuda_version: Optional[str] = None,
434
463
  default_channel_override: str = SNOWFLAKE_CONDA_CHANNEL_URL,
435
464
  ) -> None:
436
465
  """Generate conda.yml file given a dict of dependencies after validation.
437
- The channels part of conda.yml file will contains Snowflake Anaconda Channel, nodefaults and all channel names
466
+ The channels part of conda.yml file will contain Snowflake Anaconda Channel, nodefaults and all channel names
438
467
  in keys of the dict, ordered by the number of the packages which belongs to.
439
468
  The dependencies part of conda.yml file will contains requirements specifications. If the requirements is in the
440
469
  value list whose key is DEFAULT_CHANNEL_NAME, then the channel won't be specified explicitly. Otherwise, it will be
@@ -443,7 +472,8 @@ def save_conda_env_file(
443
472
  Args:
444
473
  path: Path to the conda.yml file.
445
474
  conda_chan_deps: Dict of conda dependencies after validated.
446
- python_version: A string 'major.minor' showing python version relate to model.
475
+ python_version: A string 'major.minor' for the model's python version.
476
+ cuda_version: A string 'major.minor' for the model's cuda version.
447
477
  default_channel_override: The default channel to be put in the first place of the channels section.
448
478
  """
449
479
  assert path.suffix in [".yml", ".yaml"], "Conda environment file should have extension of yml or yaml."
@@ -461,6 +491,10 @@ def save_conda_env_file(
461
491
 
462
492
  env["channels"] = [default_channel_override] + channels + [_NODEFAULTS]
463
493
  env["dependencies"] = [f"python=={python_version}.*"]
494
+
495
+ if cuda_version is not None:
496
+ env["dependencies"].extend([f"nvidia::cuda=={cuda_version}.*"])
497
+
464
498
  for chan, reqs in conda_chan_deps.items():
465
499
  env["dependencies"].extend(
466
500
  [f"{chan}::{str(req)}" if chan != DEFAULT_CHANNEL_NAME else str(req) for req in reqs]
@@ -487,7 +521,12 @@ def save_requirements_file(path: pathlib.Path, pip_deps: List[requirements.Requi
487
521
 
488
522
  def load_conda_env_file(
489
523
  path: pathlib.Path,
490
- ) -> Tuple[DefaultDict[str, List[requirements.Requirement]], Optional[List[requirements.Requirement]], Optional[str]]:
524
+ ) -> Tuple[
525
+ DefaultDict[str, List[requirements.Requirement]],
526
+ Optional[List[requirements.Requirement]],
527
+ Optional[str],
528
+ Optional[str],
529
+ ]:
491
530
  """Read conda.yml file to get a dict of dependencies after validation.
492
531
  The channels part of conda.yml file will be processed with following rules:
493
532
  1. If it is Snowflake Anaconda Channel, ignore as it is default.
@@ -515,7 +554,7 @@ def load_conda_env_file(
515
554
  and a string 'major.minor.patchlevel' of python version.
516
555
  """
517
556
  if not path.exists():
518
- return collections.defaultdict(list), None, None
557
+ return collections.defaultdict(list), None, None, None
519
558
 
520
559
  with open(path, encoding="utf-8") as f:
521
560
  env = yaml.safe_load(stream=f)
@@ -526,6 +565,7 @@ def load_conda_env_file(
526
565
  pip_deps = []
527
566
 
528
567
  python_version = None
568
+ cuda_version = None
529
569
 
530
570
  channels = env.get("channels", [])
531
571
  if len(channels) >= 1:
@@ -541,6 +581,9 @@ def load_conda_env_file(
541
581
  # ver is str: python w/ specifier
542
582
  if ver:
543
583
  python_version = ver
584
+ elif dep.startswith("nvidia::cuda"):
585
+ r = requirements.Requirement(dep.split("nvidia::")[1])
586
+ cuda_version = list(r.specifier)[0].version.strip(".*")
544
587
  elif ver is None:
545
588
  deps.append(dep)
546
589
  elif isinstance(dep, dict) and "pip" in dep:
@@ -555,7 +598,7 @@ def load_conda_env_file(
555
598
  if channel not in conda_dep_dict:
556
599
  conda_dep_dict[channel] = []
557
600
 
558
- return conda_dep_dict, pip_deps_list if pip_deps_list else None, python_version
601
+ return conda_dep_dict, pip_deps_list if pip_deps_list else None, python_version, cuda_version
559
602
 
560
603
 
561
604
  def load_requirements_file(path: pathlib.Path) -> List[requirements.Requirement]: