snowflake-ml-python 1.6.1__tar.gz → 1.6.3__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 (449) hide show
  1. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/CHANGELOG.md +38 -4
  2. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/PKG-INFO +43 -9
  3. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/pyproject.toml +3 -3
  4. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/__init__.py +4 -0
  5. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_classify_text.py +2 -2
  6. snowflake_ml_python-1.6.3/snowflake/cortex/_embed_text_1024.py +37 -0
  7. snowflake_ml_python-1.6.3/snowflake/cortex/_embed_text_768.py +37 -0
  8. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_extract_answer.py +2 -2
  9. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_sentiment.py +2 -2
  10. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_summarize.py +2 -2
  11. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_translate.py +2 -2
  12. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_util.py +4 -4
  13. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/env_utils.py +5 -5
  14. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/error_codes.py +2 -0
  15. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/telemetry.py +142 -20
  16. snowflake_ml_python-1.6.3/snowflake/ml/_internal/utils/db_utils.py +50 -0
  17. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/identifier.py +48 -11
  18. snowflake_ml_python-1.6.3/snowflake/ml/_internal/utils/service_logger.py +63 -0
  19. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/snowflake_env.py +23 -13
  20. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/sql_identifier.py +26 -2
  21. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/table_manager.py +19 -1
  22. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/data/_internal/arrow_ingestor.py +1 -11
  23. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/data/data_connector.py +33 -7
  24. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/data/ingestor_utils.py +20 -10
  25. snowflake_ml_python-1.6.3/snowflake/ml/data/torch_utils.py +68 -0
  26. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/dataset/dataset.py +1 -3
  27. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/access_manager.py +3 -3
  28. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/feature_store.py +60 -19
  29. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/feature_view.py +84 -30
  30. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/embedded_stage_fs.py +1 -1
  31. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/fileset.py +1 -1
  32. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/sfcfs.py +9 -3
  33. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/stage_fs.py +2 -1
  34. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/lineage/lineage_node.py +7 -2
  35. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/__init__.py +1 -2
  36. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/model/model_version_impl.py +96 -12
  37. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/ops/model_ops.py +124 -6
  38. snowflake_ml_python-1.6.3/snowflake/ml/model/_client/ops/service_ops.py +421 -0
  39. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/service/model_deployment_spec.py +8 -5
  40. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +2 -2
  41. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/sql/_base.py +5 -0
  42. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/sql/model.py +1 -0
  43. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/sql/model_version.py +9 -5
  44. snowflake_ml_python-1.6.3/snowflake/ml/model/_client/sql/service.py +230 -0
  45. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_composer.py +11 -39
  46. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +31 -11
  47. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_env/model_env.py +4 -38
  48. snowflake_ml_python-1.6.3/snowflake/ml/model/_packager/model_handlers/_utils.py +221 -0
  49. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/catboost.py +31 -30
  50. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +26 -18
  51. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +31 -58
  52. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/mlflow.py +3 -5
  53. snowflake_ml_python-1.6.3/snowflake/ml/model/_packager/model_handlers/model_objective_utils.py +169 -0
  54. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +15 -8
  55. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/sklearn.py +56 -60
  56. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +141 -9
  57. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/torchscript.py +2 -2
  58. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/xgboost.py +63 -48
  59. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta/model_meta.py +16 -42
  60. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +1 -14
  61. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_packager.py +14 -8
  62. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +11 -0
  63. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/pytorch_handler.py +1 -1
  64. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/snowpark_handler.py +3 -2
  65. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/utils.py +9 -0
  66. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/type_hints.py +12 -145
  67. snowflake_ml_python-1.6.3/snowflake/ml/modeling/_internal/constants.py +2 -0
  68. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +5 -5
  69. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +9 -6
  70. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/model_specifications.py +2 -0
  71. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/model_trainer.py +1 -0
  72. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +2 -4
  73. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +5 -5
  74. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +130 -166
  75. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -1
  76. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +61 -21
  77. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/affinity_propagation.py +61 -21
  78. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +61 -21
  79. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/birch.py +61 -21
  80. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/bisecting_k_means.py +61 -21
  81. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/dbscan.py +61 -21
  82. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/feature_agglomeration.py +61 -21
  83. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/k_means.py +61 -21
  84. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/mean_shift.py +61 -21
  85. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +61 -21
  86. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/optics.py +61 -21
  87. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/spectral_biclustering.py +61 -21
  88. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/spectral_clustering.py +61 -21
  89. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/spectral_coclustering.py +61 -21
  90. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/compose/column_transformer.py +61 -21
  91. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/compose/transformed_target_regressor.py +61 -21
  92. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/elliptic_envelope.py +61 -21
  93. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/empirical_covariance.py +61 -21
  94. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/graphical_lasso.py +61 -21
  95. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +61 -21
  96. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/ledoit_wolf.py +61 -21
  97. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/min_cov_det.py +61 -21
  98. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/oas.py +61 -21
  99. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/shrunk_covariance.py +61 -21
  100. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/dictionary_learning.py +61 -21
  101. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/factor_analysis.py +61 -21
  102. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/fast_ica.py +61 -21
  103. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/incremental_pca.py +61 -21
  104. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/kernel_pca.py +61 -21
  105. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +61 -21
  106. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +61 -21
  107. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/pca.py +61 -21
  108. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/sparse_pca.py +61 -21
  109. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/truncated_svd.py +61 -21
  110. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +61 -21
  111. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +61 -21
  112. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +61 -21
  113. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +61 -21
  114. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/bagging_classifier.py +61 -21
  115. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/bagging_regressor.py +61 -21
  116. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +61 -21
  117. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +61 -21
  118. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +61 -21
  119. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +61 -21
  120. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +61 -21
  121. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +61 -21
  122. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/isolation_forest.py +61 -21
  123. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +61 -21
  124. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +61 -21
  125. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/stacking_regressor.py +61 -21
  126. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/voting_classifier.py +61 -21
  127. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/voting_regressor.py +61 -21
  128. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +61 -21
  129. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/select_fdr.py +61 -21
  130. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/select_fpr.py +61 -21
  131. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/select_fwe.py +61 -21
  132. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/select_k_best.py +61 -21
  133. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/select_percentile.py +61 -21
  134. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +61 -21
  135. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/variance_threshold.py +61 -21
  136. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +61 -21
  137. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +61 -21
  138. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/impute/iterative_imputer.py +61 -21
  139. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/impute/knn_imputer.py +61 -21
  140. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/impute/missing_indicator.py +61 -21
  141. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +61 -21
  142. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/nystroem.py +61 -21
  143. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +61 -21
  144. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +61 -21
  145. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +61 -21
  146. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +61 -21
  147. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +61 -21
  148. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +61 -21
  149. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ard_regression.py +61 -21
  150. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +61 -21
  151. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/elastic_net.py +61 -21
  152. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +61 -21
  153. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/gamma_regressor.py +61 -21
  154. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/huber_regressor.py +61 -21
  155. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lars.py +61 -21
  156. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lars_cv.py +61 -21
  157. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lasso.py +61 -21
  158. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lasso_cv.py +61 -21
  159. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lasso_lars.py +61 -21
  160. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +61 -21
  161. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +61 -21
  162. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/linear_regression.py +61 -21
  163. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/logistic_regression.py +61 -21
  164. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +61 -21
  165. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +61 -21
  166. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +61 -21
  167. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +61 -21
  168. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +61 -21
  169. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +61 -21
  170. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +61 -21
  171. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +61 -21
  172. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/perceptron.py +61 -21
  173. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/poisson_regressor.py +61 -21
  174. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ransac_regressor.py +61 -21
  175. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ridge.py +61 -21
  176. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ridge_classifier.py +61 -21
  177. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +61 -21
  178. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/ridge_cv.py +61 -21
  179. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/sgd_classifier.py +61 -21
  180. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +61 -21
  181. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/sgd_regressor.py +61 -21
  182. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +61 -21
  183. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +61 -21
  184. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/manifold/isomap.py +61 -21
  185. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/manifold/mds.py +61 -21
  186. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/manifold/spectral_embedding.py +61 -21
  187. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/manifold/tsne.py +61 -21
  188. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/metrics_utils.py +2 -2
  189. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/ranking.py +0 -3
  190. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/regression.py +0 -3
  191. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +61 -21
  192. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/mixture/gaussian_mixture.py +61 -21
  193. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +61 -21
  194. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +61 -21
  195. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/multiclass/output_code_classifier.py +61 -21
  196. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +61 -21
  197. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +61 -21
  198. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/complement_nb.py +61 -21
  199. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +61 -21
  200. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +61 -21
  201. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +61 -21
  202. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +61 -21
  203. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/kernel_density.py +61 -21
  204. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +61 -21
  205. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/nearest_centroid.py +61 -21
  206. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +61 -21
  207. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +61 -21
  208. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +61 -21
  209. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +61 -21
  210. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +61 -21
  211. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neural_network/mlp_classifier.py +61 -21
  212. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neural_network/mlp_regressor.py +61 -21
  213. snowflake_ml_python-1.6.3/snowflake/ml/modeling/parameters/disable_model_tracer.py +5 -0
  214. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/pipeline/pipeline.py +1 -13
  215. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/polynomial_features.py +61 -21
  216. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/semi_supervised/label_propagation.py +61 -21
  217. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/semi_supervised/label_spreading.py +61 -21
  218. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/linear_svc.py +61 -21
  219. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/linear_svr.py +61 -21
  220. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/nu_svc.py +61 -21
  221. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/nu_svr.py +61 -21
  222. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/svc.py +61 -21
  223. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/svr.py +61 -21
  224. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/tree/decision_tree_classifier.py +61 -21
  225. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/tree/decision_tree_regressor.py +61 -21
  226. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/tree/extra_tree_classifier.py +61 -21
  227. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/tree/extra_tree_regressor.py +61 -21
  228. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/xgboost/xgb_classifier.py +64 -23
  229. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/xgboost/xgb_regressor.py +64 -23
  230. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +64 -23
  231. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +64 -23
  232. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/model_monitor.py +126 -0
  233. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/model_monitor_manager.py +361 -0
  234. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/model_monitor_version.py +1 -0
  235. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/monitor_sql_client.py +1335 -0
  236. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/queries/record_count.ssql +14 -0
  237. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/_client/queries/rmse.ssql +28 -0
  238. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/entities/model_monitor_config.py +28 -0
  239. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/entities/model_monitor_interval.py +46 -0
  240. snowflake_ml_python-1.6.3/snowflake/ml/monitoring/entities/output_score_type.py +90 -0
  241. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/registry/_manager/model_manager.py +4 -0
  242. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/registry/registry.py +166 -8
  243. snowflake_ml_python-1.6.3/snowflake/ml/version.py +1 -0
  244. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake_ml_python.egg-info/PKG-INFO +43 -9
  245. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake_ml_python.egg-info/SOURCES.txt +16 -38
  246. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake_ml_python.egg-info/requires.txt +4 -4
  247. snowflake_ml_python-1.6.1/snowflake/ml/_internal/container_services/image_registry/credential.py +0 -84
  248. snowflake_ml_python-1.6.1/snowflake/ml/_internal/container_services/image_registry/http_client.py +0 -127
  249. snowflake_ml_python-1.6.1/snowflake/ml/_internal/container_services/image_registry/imagelib.py +0 -400
  250. snowflake_ml_python-1.6.1/snowflake/ml/_internal/container_services/image_registry/registry_client.py +0 -212
  251. snowflake_ml_python-1.6.1/snowflake/ml/_internal/utils/log_stream_processor.py +0 -30
  252. snowflake_ml_python-1.6.1/snowflake/ml/_internal/utils/session_token_manager.py +0 -46
  253. snowflake_ml_python-1.6.1/snowflake/ml/_internal/utils/spcs_attribution_utils.py +0 -122
  254. snowflake_ml_python-1.6.1/snowflake/ml/_internal/utils/uri.py +0 -77
  255. snowflake_ml_python-1.6.1/snowflake/ml/data/torch_dataset.py +0 -33
  256. snowflake_ml_python-1.6.1/snowflake/ml/model/_api.py +0 -568
  257. snowflake_ml_python-1.6.1/snowflake/ml/model/_client/ops/service_ops.py +0 -121
  258. snowflake_ml_python-1.6.1/snowflake/ml/model/_client/sql/service.py +0 -129
  259. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/base_image_builder.py +0 -12
  260. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/client_image_builder.py +0 -249
  261. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/docker_context.py +0 -130
  262. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/gunicorn_run.sh +0 -36
  263. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/inference_server/main.py +0 -268
  264. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py +0 -215
  265. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/templates/dockerfile_template +0 -53
  266. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/templates/image_build_job_spec_template +0 -38
  267. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/image_builds/templates/kaniko_shell_script_template +0 -105
  268. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/snowservice/deploy.py +0 -611
  269. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/snowservice/deploy_options.py +0 -116
  270. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/snowservice/instance_types.py +0 -10
  271. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template +0 -28
  272. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template_with_model +0 -21
  273. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/utils/constants.py +0 -48
  274. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/utils/snowservice_client.py +0 -280
  275. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/warehouse/deploy.py +0 -202
  276. snowflake_ml_python-1.6.1/snowflake/ml/model/_deploy_client/warehouse/infer_template.py +0 -99
  277. snowflake_ml_python-1.6.1/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -115
  278. snowflake_ml_python-1.6.1/snowflake/ml/model/_packager/model_handlers/llm.py +0 -267
  279. snowflake_ml_python-1.6.1/snowflake/ml/model/_packager/model_meta/_core_requirements.py +0 -11
  280. snowflake_ml_python-1.6.1/snowflake/ml/model/deploy_platforms.py +0 -6
  281. snowflake_ml_python-1.6.1/snowflake/ml/model/models/llm.py +0 -104
  282. snowflake_ml_python-1.6.1/snowflake/ml/modeling/_internal/constants.py +0 -1
  283. snowflake_ml_python-1.6.1/snowflake/ml/monitoring/monitor.py +0 -203
  284. snowflake_ml_python-1.6.1/snowflake/ml/registry/_initial_schema.py +0 -142
  285. snowflake_ml_python-1.6.1/snowflake/ml/registry/_schema.py +0 -82
  286. snowflake_ml_python-1.6.1/snowflake/ml/registry/_schema_upgrade_plans.py +0 -116
  287. snowflake_ml_python-1.6.1/snowflake/ml/registry/_schema_version_manager.py +0 -163
  288. snowflake_ml_python-1.6.1/snowflake/ml/registry/model_registry.py +0 -2048
  289. snowflake_ml_python-1.6.1/snowflake/ml/version.py +0 -1
  290. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/LICENSE.txt +0 -0
  291. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/README.md +0 -0
  292. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/setup.cfg +0 -0
  293. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_complete.py +0 -0
  294. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/cortex/_sse_client.py +0 -0
  295. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/env.py +0 -0
  296. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  297. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  298. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  299. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  300. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  301. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  302. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  303. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  304. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/file_utils.py +0 -0
  305. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  306. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  307. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  308. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  309. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/init_utils.py +0 -0
  310. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  311. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/migrator_utils.py +0 -0
  312. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/type_utils.py +0 -0
  313. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/formatting.py +0 -0
  314. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  315. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  316. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  317. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  318. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/result.py +0 -0
  319. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/retryable_http.py +0 -0
  320. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  321. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  322. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/data/data_ingestor.py +0 -0
  323. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/data/data_source.py +0 -0
  324. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/dataset/__init__.py +0 -0
  325. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/dataset/dataset_factory.py +0 -0
  326. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  327. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/dataset/dataset_reader.py +0 -0
  328. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/__init__.py +0 -0
  329. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/entity.py +0 -0
  330. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  331. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  332. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  333. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  334. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  335. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  336. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  337. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  338. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  339. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  340. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  341. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  342. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  343. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  344. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  345. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  346. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  347. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  348. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  349. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  350. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  351. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  352. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/parquet_parser.py +0 -0
  353. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/snowfs.py +0 -0
  354. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/tf_dataset.py +0 -0
  355. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/fileset/torch_datapipe.py +0 -0
  356. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/lineage/__init__.py +0 -0
  357. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  358. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  359. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/sql/stage.py +0 -0
  360. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_client/sql/tag.py +0 -0
  361. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  362. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  363. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  364. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  365. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  366. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  367. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handler.py +0 -0
  368. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  369. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  370. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  371. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  372. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  373. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -0
  374. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  375. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  376. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  377. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  378. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  379. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  380. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  381. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/core.py +0 -0
  382. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  383. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  384. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  385. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/custom_model.py +0 -0
  386. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/model_signature.py +0 -0
  387. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  388. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  389. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_handlers.py +0 -0
  390. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_trainer.py +0 -0
  391. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  392. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  393. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  394. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  395. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  396. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  397. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/compose/__init__.py +0 -0
  398. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  399. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  400. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  401. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  402. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  403. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/framework/_utils.py +0 -0
  404. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/framework/base.py +0 -0
  405. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  406. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/impute/__init__.py +0 -0
  407. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  408. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  409. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  410. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  411. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  412. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  413. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  414. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/classification.py +0 -0
  415. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  416. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  417. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  418. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  419. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  420. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  421. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  422. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  423. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  424. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  425. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  426. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  427. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  428. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  429. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  430. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  431. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  432. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  433. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  434. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  435. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  436. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  437. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  438. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  439. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  440. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/svm/__init__.py +0 -0
  441. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/tree/__init__.py +0 -0
  442. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  443. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/monitoring/shap.py +0 -0
  444. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/registry/__init__.py +0 -0
  445. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/utils/connection_params.py +0 -0
  446. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/utils/sparse.py +0 -0
  447. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake/ml/utils/sql_client.py +0 -0
  448. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  449. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.3}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,43 @@
1
1
  # Release History
2
2
 
3
- ## 1.6.1 (TBD)
3
+ ## 1.6.3
4
+
5
+ - Model Registry (PrPr) has been removed.
6
+
7
+ ### Bug Fixes
8
+
9
+ - Registry: Fix a bug that when package whose name does not follow PEP-508 is provided when logging the model,
10
+ an unexpected normalization is happening.
11
+ - Registry: Fix `not a valid remote uri` error when logging mlflow models.
12
+ - Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
13
+ - Registry: Fix an issue that leads to `log_model` failure when local package version contains parts other than
14
+ base version.
15
+
16
+ ### New Features
17
+
18
+ - Data: Improve `DataConnector.to_pandas()` performance when loading from Snowpark DataFrames.
19
+ - Model Registry: Allow users to set a model task while using `log_model`.
20
+ - Feature Store: FeatureView supports ON_CREATE or ON_SCHEDULE initialize mode.
21
+
22
+ ## 1.6.2 (2024-09-04)
23
+
24
+ ### Bug Fixes
25
+
26
+ - Modeling: Support XGBoost version that is larger than 2.
27
+
28
+ - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
29
+ - Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
30
+ be parsed wrongly. Now it raises an exception correctly.
31
+ - Model Explainability: Handle explanations for multiclass XGBoost classification models
32
+ - Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
33
+
34
+ ### New Features
35
+
36
+ - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
37
+ - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
38
+ - Feature Store: update_feature_view() supports taking feature view object as argument.
39
+
40
+ ## 1.6.1 (2024-08-12)
4
41
 
5
42
  ### Bug Fixes
6
43
 
@@ -17,14 +54,11 @@
17
54
  ### New Features
18
55
 
19
56
  - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
20
- - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
21
57
  - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
22
58
  - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
23
59
  - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
24
60
  - Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
25
61
 
26
- ### Behavior Changes
27
-
28
62
  ## 1.6.0 (2024-07-29)
29
63
 
30
64
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: snowflake-ml-python
3
- Version: 1.6.1
3
+ Version: 1.6.3
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:
@@ -247,13 +247,13 @@ Requires-Dist: pytimeparse<2,>=1.1.8
247
247
  Requires-Dist: pyyaml<7,>=6.0
248
248
  Requires-Dist: retrying<2,>=1.3.3
249
249
  Requires-Dist: s3fs<2024,>=2022.11
250
- Requires-Dist: scikit-learn<1.4,>=1.2.1
250
+ Requires-Dist: scikit-learn<1.6,>=1.2.1
251
251
  Requires-Dist: scipy<2,>=1.9
252
252
  Requires-Dist: snowflake-connector-python[pandas]<4,>=3.5.0
253
253
  Requires-Dist: snowflake-snowpark-python<2,>=1.17.0
254
254
  Requires-Dist: sqlparse<1,>=0.4
255
255
  Requires-Dist: typing-extensions<5,>=4.1.0
256
- Requires-Dist: xgboost<2,>=1.7.3
256
+ Requires-Dist: xgboost<2.1,>=1.7.3
257
257
  Provides-Extra: all
258
258
  Requires-Dist: catboost<2,>=1.2.0; extra == "all"
259
259
  Requires-Dist: lightgbm<5,>=3.3.5; extra == "all"
@@ -261,7 +261,7 @@ Requires-Dist: mlflow<2.4,>=2.1.0; extra == "all"
261
261
  Requires-Dist: peft<1,>=0.5.0; extra == "all"
262
262
  Requires-Dist: sentence-transformers<3,>=2.2.2; extra == "all"
263
263
  Requires-Dist: sentencepiece<1,>=0.1.95; extra == "all"
264
- Requires-Dist: shap==0.42.1; extra == "all"
264
+ Requires-Dist: shap<1,>=0.42.0; extra == "all"
265
265
  Requires-Dist: tensorflow<3,>=2.10; extra == "all"
266
266
  Requires-Dist: tokenizers<1,>=0.10; extra == "all"
267
267
  Requires-Dist: torch<2.3.0,>=2.0.1; extra == "all"
@@ -276,7 +276,7 @@ Requires-Dist: peft<1,>=0.5.0; extra == "llm"
276
276
  Provides-Extra: mlflow
277
277
  Requires-Dist: mlflow<2.4,>=2.1.0; extra == "mlflow"
278
278
  Provides-Extra: shap
279
- Requires-Dist: shap==0.42.1; extra == "shap"
279
+ Requires-Dist: shap<1,>=0.42.0; extra == "shap"
280
280
  Provides-Extra: tensorflow
281
281
  Requires-Dist: tensorflow<3,>=2.10; extra == "tensorflow"
282
282
  Provides-Extra: torch
@@ -373,7 +373,44 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
373
373
 
374
374
  # Release History
375
375
 
376
- ## 1.6.1 (TBD)
376
+ ## 1.6.3
377
+
378
+ - Model Registry (PrPr) has been removed.
379
+
380
+ ### Bug Fixes
381
+
382
+ - Registry: Fix a bug that when package whose name does not follow PEP-508 is provided when logging the model,
383
+ an unexpected normalization is happening.
384
+ - Registry: Fix `not a valid remote uri` error when logging mlflow models.
385
+ - Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
386
+ - Registry: Fix an issue that leads to `log_model` failure when local package version contains parts other than
387
+ base version.
388
+
389
+ ### New Features
390
+
391
+ - Data: Improve `DataConnector.to_pandas()` performance when loading from Snowpark DataFrames.
392
+ - Model Registry: Allow users to set a model task while using `log_model`.
393
+ - Feature Store: FeatureView supports ON_CREATE or ON_SCHEDULE initialize mode.
394
+
395
+ ## 1.6.2 (2024-09-04)
396
+
397
+ ### Bug Fixes
398
+
399
+ - Modeling: Support XGBoost version that is larger than 2.
400
+
401
+ - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
402
+ - Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
403
+ be parsed wrongly. Now it raises an exception correctly.
404
+ - Model Explainability: Handle explanations for multiclass XGBoost classification models
405
+ - Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
406
+
407
+ ### New Features
408
+
409
+ - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
410
+ - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
411
+ - Feature Store: update_feature_view() supports taking feature view object as argument.
412
+
413
+ ## 1.6.1 (2024-08-12)
377
414
 
378
415
  ### Bug Fixes
379
416
 
@@ -390,14 +427,11 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
390
427
  ### New Features
391
428
 
392
429
  - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
393
- - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
394
430
  - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
395
431
  - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
396
432
  - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
397
433
  - Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
398
434
 
399
- ### Behavior Changes
400
-
401
435
  ## 1.6.0 (2024-07-29)
402
436
 
403
437
  ### Bug Fixes
@@ -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.8", "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
9
  requires-python = ">=3.8, <3.12"
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", "fsspec[http]>=2022.11,<2024", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<24", "pandas>=1.0.0,<3", "pyarrow", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2022.11,<2024", "scikit-learn>=1.2.1,<1.4", "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,<2",]
11
+ dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<4", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "fsspec[http]>=2022.11,<2024", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<24", "pandas>=1.0.0,<3", "pyarrow", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2022.11,<2024", "scikit-learn>=1.2.1,<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,<2.1",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -24,12 +24,12 @@ 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", "lightgbm>=3.3.5,<5", "mlflow>=2.1.0,<2.4", "peft>=0.5.0,<1", "sentence-transformers>=2.2.2,<3", "sentencepiece>=0.1.95,<1", "shap==0.42.1", "tensorflow>=2.10,<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", "lightgbm>=3.3.5,<5", "mlflow>=2.1.0,<2.4", "peft>=0.5.0,<1", "sentence-transformers>=2.2.2,<3", "sentencepiece>=0.1.95,<1", "shap>=0.42.0,<1", "tensorflow>=2.10,<3", "tokenizers>=0.10,<1", "torch>=2.0.1,<2.3.0", "torchdata>=0.4,<1", "transformers>=4.32.1,<5",]
28
28
  catboost = [ "catboost>=1.2.0, <2",]
29
29
  lightgbm = [ "lightgbm>=3.3.5,<5",]
30
30
  llm = [ "peft>=0.5.0,<1",]
31
31
  mlflow = [ "mlflow>=2.1.0,<2.4",]
32
- shap = [ "shap==0.42.1",]
32
+ shap = [ "shap>=0.42.0,<1",]
33
33
  tensorflow = [ "tensorflow>=2.10,<3",]
34
34
  torch = [ "torch>=2.0.1,<2.3.0", "torchdata>=0.4,<1",]
35
35
  transformers = [ "sentence-transformers>=2.2.2,<3", "sentencepiece>=0.1.95,<1", "tokenizers>=0.10,<1", "transformers>=4.32.1,<5",]
@@ -1,5 +1,7 @@
1
1
  from snowflake.cortex._classify_text import ClassifyText
2
2
  from snowflake.cortex._complete import Complete, CompleteOptions
3
+ from snowflake.cortex._embed_text_768 import EmbedText768
4
+ from snowflake.cortex._embed_text_1024 import EmbedText1024
3
5
  from snowflake.cortex._extract_answer import ExtractAnswer
4
6
  from snowflake.cortex._sentiment import Sentiment
5
7
  from snowflake.cortex._summarize import Summarize
@@ -9,6 +11,8 @@ __all__ = [
9
11
  "ClassifyText",
10
12
  "Complete",
11
13
  "CompleteOptions",
14
+ "EmbedText768",
15
+ "EmbedText1024",
12
16
  "ExtractAnswer",
13
17
  "Sentiment",
14
18
  "Summarize",
@@ -1,4 +1,4 @@
1
- from typing import List, Optional, Union
1
+ from typing import List, Optional, Union, cast
2
2
 
3
3
  from snowflake import snowpark
4
4
  from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
@@ -33,4 +33,4 @@ def _classify_text_impl(
33
33
  categories: Union[List[str], snowpark.Column],
34
34
  session: Optional[snowpark.Session] = None,
35
35
  ) -> Union[str, snowpark.Column]:
36
- return call_sql_function(function, session, str_input, categories)
36
+ return cast(Union[str, snowpark.Column], call_sql_function(function, session, str_input, categories))
@@ -0,0 +1,37 @@
1
+ from typing import List, Optional, Union, cast
2
+
3
+ from snowflake import snowpark
4
+ from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
5
+ from snowflake.ml._internal import telemetry
6
+
7
+
8
+ @telemetry.send_api_usage_telemetry(
9
+ project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
10
+ )
11
+ def EmbedText1024(
12
+ model: Union[str, snowpark.Column],
13
+ text: Union[str, snowpark.Column],
14
+ session: Optional[snowpark.Session] = None,
15
+ ) -> Union[List[float], snowpark.Column]:
16
+ """TextEmbed calls into the LLM inference service to embed the text.
17
+
18
+ Args:
19
+ model: A Column of strings representing the model to use for embedding. The value
20
+ of the strings must be within the SUPPORTED_MODELS list.
21
+ text: A Column of strings representing input text.
22
+ session: The snowpark session to use. Will be inferred by context if not specified.
23
+
24
+ Returns:
25
+ A column of vectors containing embeddings.
26
+ """
27
+
28
+ return _embed_text_1024_impl("snowflake.cortex.embed_text_1024", model, text, session=session)
29
+
30
+
31
+ def _embed_text_1024_impl(
32
+ function: str,
33
+ model: Union[str, snowpark.Column],
34
+ text: Union[str, snowpark.Column],
35
+ session: Optional[snowpark.Session] = None,
36
+ ) -> Union[List[float], snowpark.Column]:
37
+ return cast(Union[List[float], snowpark.Column], call_sql_function(function, session, model, text))
@@ -0,0 +1,37 @@
1
+ from typing import List, Optional, Union, cast
2
+
3
+ from snowflake import snowpark
4
+ from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
5
+ from snowflake.ml._internal import telemetry
6
+
7
+
8
+ @telemetry.send_api_usage_telemetry(
9
+ project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
10
+ )
11
+ def EmbedText768(
12
+ model: Union[str, snowpark.Column],
13
+ text: Union[str, snowpark.Column],
14
+ session: Optional[snowpark.Session] = None,
15
+ ) -> Union[List[float], snowpark.Column]:
16
+ """TextEmbed calls into the LLM inference service to embed the text.
17
+
18
+ Args:
19
+ model: A Column of strings representing the model to use for embedding. The value
20
+ of the strings must be within the SUPPORTED_MODELS list.
21
+ text: A Column of strings representing input text.
22
+ session: The snowpark session to use. Will be inferred by context if not specified.
23
+
24
+ Returns:
25
+ A column of vectors containing embeddings.
26
+ """
27
+
28
+ return _embed_text_768_impl("snowflake.cortex.embed_text_768", model, text, session=session)
29
+
30
+
31
+ def _embed_text_768_impl(
32
+ function: str,
33
+ model: Union[str, snowpark.Column],
34
+ text: Union[str, snowpark.Column],
35
+ session: Optional[snowpark.Session] = None,
36
+ ) -> Union[List[float], snowpark.Column]:
37
+ return cast(Union[List[float], snowpark.Column], call_sql_function(function, session, model, text))
@@ -1,4 +1,4 @@
1
- from typing import Optional, Union
1
+ from typing import Optional, Union, cast
2
2
 
3
3
  from snowflake import snowpark
4
4
  from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
@@ -33,4 +33,4 @@ def _extract_answer_impl(
33
33
  question: Union[str, snowpark.Column],
34
34
  session: Optional[snowpark.Session] = None,
35
35
  ) -> Union[str, snowpark.Column]:
36
- return call_sql_function(function, session, from_text, question)
36
+ return cast(Union[str, snowpark.Column], call_sql_function(function, session, from_text, question))
@@ -1,4 +1,4 @@
1
- from typing import Optional, Union
1
+ from typing import Optional, Union, cast
2
2
 
3
3
  from snowflake import snowpark
4
4
  from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
@@ -30,4 +30,4 @@ def _sentiment_impl(
30
30
  output = call_sql_function(function, session, text)
31
31
  if isinstance(output, snowpark.Column):
32
32
  return output
33
- return float(output)
33
+ return float(cast(str, output))
@@ -1,4 +1,4 @@
1
- from typing import Optional, Union
1
+ from typing import Optional, Union, cast
2
2
 
3
3
  from snowflake import snowpark
4
4
  from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
@@ -30,4 +30,4 @@ def _summarize_impl(
30
30
  text: Union[str, snowpark.Column],
31
31
  session: Optional[snowpark.Session] = None,
32
32
  ) -> Union[str, snowpark.Column]:
33
- return call_sql_function(function, session, text)
33
+ return cast(Union[str, snowpark.Column], call_sql_function(function, session, text))
@@ -1,4 +1,4 @@
1
- from typing import Optional, Union
1
+ from typing import Optional, Union, cast
2
2
 
3
3
  from snowflake import snowpark
4
4
  from snowflake.cortex._util import CORTEX_FUNCTIONS_TELEMETRY_PROJECT, call_sql_function
@@ -36,4 +36,4 @@ def _translate_impl(
36
36
  to_language: Union[str, snowpark.Column],
37
37
  session: Optional[snowpark.Session] = None,
38
38
  ) -> Union[str, snowpark.Column]:
39
- return call_sql_function(function, session, text, from_language, to_language)
39
+ return cast(Union[str, snowpark.Column], call_sql_function(function, session, text, from_language, to_language))
@@ -24,7 +24,7 @@ def call_sql_function(
24
24
  function: str,
25
25
  session: Optional[snowpark.Session],
26
26
  *args: Union[str, List[str], snowpark.Column, Dict[str, Union[int, float]]],
27
- ) -> Union[str, snowpark.Column]:
27
+ ) -> Union[str, List[float], snowpark.Column]:
28
28
  handle_as_column = False
29
29
 
30
30
  for arg in args:
@@ -32,9 +32,9 @@ def call_sql_function(
32
32
  handle_as_column = True
33
33
 
34
34
  if handle_as_column:
35
- return cast(Union[str, snowpark.Column], _call_sql_function_column(function, *args))
35
+ return cast(Union[str, List[float], snowpark.Column], _call_sql_function_column(function, *args))
36
36
  return cast(
37
- Union[str, snowpark.Column],
37
+ Union[str, List[float], snowpark.Column],
38
38
  _call_sql_function_immediate(function, session, *args),
39
39
  )
40
40
 
@@ -49,7 +49,7 @@ def _call_sql_function_immediate(
49
49
  function: str,
50
50
  session: Optional[snowpark.Session],
51
51
  *args: Union[str, List[str], snowpark.Column, Dict[str, Union[int, float]]],
52
- ) -> str:
52
+ ) -> Union[str, List[float]]:
53
53
  session = session or context.get_active_session()
54
54
  if session is None:
55
55
  raise SnowflakeAuthenticationException(
@@ -9,7 +9,7 @@ from importlib import metadata as importlib_metadata
9
9
  from typing import Any, DefaultDict, Dict, List, Optional, Tuple
10
10
 
11
11
  import yaml
12
- from packaging import requirements, specifiers, utils as packaging_utils, version
12
+ from packaging import requirements, specifiers, version
13
13
 
14
14
  import snowflake.connector
15
15
  from snowflake.ml._internal import env as snowml_env
@@ -54,15 +54,12 @@ def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
54
54
  """
55
55
  try:
56
56
  r = requirements.Requirement(req_str)
57
- r.name = packaging_utils.canonicalize_name(r.name)
58
57
 
59
58
  if r.name == "python":
60
59
  raise ValueError("Don't specify python as a dependency, use python version argument instead.")
61
60
  except requirements.InvalidRequirement:
62
61
  raise ValueError(f"Invalid package requirement {req_str} found.")
63
62
 
64
- if r.marker:
65
- raise ValueError("Markers is not supported in conda dependency.")
66
63
  return r
67
64
 
68
65
 
@@ -84,6 +81,8 @@ def _validate_conda_dependency_string(dep_str: str) -> Tuple[str, requirements.R
84
81
  channel_str, _, requirement_str = dep_str.rpartition("::")
85
82
  r = _validate_pip_requirement_string(requirement_str)
86
83
  if channel_str != "pip":
84
+ if r.marker:
85
+ raise ValueError("Markers is not supported in conda dependency.")
87
86
  if r.extras:
88
87
  raise ValueError("Extras is not supported in conda dependency.")
89
88
  if r.url:
@@ -221,7 +220,7 @@ def get_local_installed_version_of_pip_package(pip_req: requirements.Requirement
221
220
  else:
222
221
  return pip_req
223
222
  new_pip_req = copy.deepcopy(pip_req)
224
- new_pip_req.specifier = specifiers.SpecifierSet(specifiers=f"=={local_dist_version}")
223
+ new_pip_req.specifier = specifiers.SpecifierSet(specifiers=f"=={version.parse(local_dist_version).base_version}")
225
224
  if not pip_req.specifier.contains(local_dist_version):
226
225
  warnings.warn(
227
226
  f"Package requirement {str(pip_req)} specified, while version {local_dist_version} is installed. "
@@ -513,6 +512,7 @@ def save_conda_env_file(
513
512
  )
514
513
 
515
514
  with open(path, "w", encoding="utf-8") as f:
515
+ yaml.SafeDumper.ignore_aliases = lambda *args: True # type: ignore[method-assign]
516
516
  yaml.safe_dump(env, stream=f, default_flow_style=False)
517
517
 
518
518
 
@@ -58,6 +58,8 @@ NOT_FOUND = "2101"
58
58
  METHOD_NOT_ALLOWED = "2102"
59
59
  # Not implemented.
60
60
  NOT_IMPLEMENTED = "2103"
61
+ # User needs to opt in to use a feature.
62
+ OPT_IN_REQUIRED = "2104"
61
63
 
62
64
  # Calling an API with unsupported keywords/values.
63
65
  INVALID_ARGUMENT = "2110"
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env python3
2
+ import contextvars
2
3
  import enum
3
4
  import functools
4
5
  import inspect
@@ -12,6 +13,7 @@ from typing import (
12
13
  List,
13
14
  Mapping,
14
15
  Optional,
16
+ Set,
15
17
  Tuple,
16
18
  TypeVar,
17
19
  Union,
@@ -28,7 +30,7 @@ from snowflake.ml._internal.exceptions import (
28
30
  exceptions as snowml_exceptions,
29
31
  )
30
32
  from snowflake.snowpark import dataframe, exceptions as snowpark_exceptions, session
31
- from snowflake.snowpark._internal import utils
33
+ from snowflake.snowpark._internal import server_connection, utils
32
34
 
33
35
  _log_counter = 0
34
36
  _FLUSH_SIZE = 10
@@ -85,6 +87,122 @@ class TelemetryField(enum.Enum):
85
87
  FUNC_CAT_USAGE = "usage"
86
88
 
87
89
 
90
+ class _TelemetrySourceType(enum.Enum):
91
+ # Automatically inferred telemetry/statement parameters
92
+ AUTO_TELEMETRY = "SNOWML_AUTO_TELEMETRY"
93
+ # Mixture of manual and automatic telemetry/statement parameters
94
+ AUGMENT_TELEMETRY = "SNOWML_AUGMENT_TELEMETRY"
95
+
96
+
97
+ _statement_params_context_var: contextvars.ContextVar[Dict[str, str]] = contextvars.ContextVar("statement_params")
98
+
99
+
100
+ class _StatementParamsPatchManager:
101
+ def __init__(self) -> None:
102
+ self._patch_cache: Set[server_connection.ServerConnection] = set()
103
+ self._context_var: contextvars.ContextVar[Dict[str, str]] = _statement_params_context_var
104
+
105
+ def apply_patches(self) -> None:
106
+ try:
107
+ # Apply patching to all active sessions in case of multiple
108
+ for sess in session._get_active_sessions():
109
+ # Check patch cache here to avoid unnecessary context switches
110
+ if self._get_target(sess) not in self._patch_cache:
111
+ self._patch_session(sess)
112
+ except snowpark_exceptions.SnowparkSessionException:
113
+ pass
114
+
115
+ def set_statement_params(self, statement_params: Dict[str, str]) -> None:
116
+ # Only set value if not already set in context
117
+ if not self._context_var.get({}):
118
+ self._context_var.set(statement_params)
119
+
120
+ def _get_target(self, session: session.Session) -> server_connection.ServerConnection:
121
+ return cast(server_connection.ServerConnection, session._conn)
122
+
123
+ def _patch_session(self, session: session.Session, throw_on_patch_fail: bool = False) -> None:
124
+ # Extract target
125
+ try:
126
+ target = self._get_target(session)
127
+ except AttributeError:
128
+ if throw_on_patch_fail:
129
+ raise
130
+ # TODO: Log a warning, this probably means there was a breaking change in Snowpark/SnowflakeConnection
131
+ return
132
+
133
+ # Check if session has already been patched
134
+ if target in self._patch_cache:
135
+ return
136
+ self._patch_cache.add(target)
137
+
138
+ functions = [
139
+ ("execute_and_notify_query_listener", "_statement_params"),
140
+ ("execute_async_and_notify_query_listener", "_statement_params"),
141
+ ]
142
+
143
+ for func, param_name in functions:
144
+ try:
145
+ self._patch_with_statement_params(target, func, param_name=param_name)
146
+ except AttributeError:
147
+ if throw_on_patch_fail: # primarily used for testing
148
+ raise
149
+ # TODO: Log a warning, this probably means there was a breaking change in Snowpark/SnowflakeConnection
150
+ pass
151
+
152
+ def _patch_with_statement_params(
153
+ self, target: object, function_name: str, param_name: str = "statement_params"
154
+ ) -> None:
155
+ func = getattr(target, function_name)
156
+ assert callable(func)
157
+
158
+ @functools.wraps(func)
159
+ def wrapper(*args: Any, **kwargs: Any) -> Any:
160
+ # Retrieve context level statement parameters
161
+ context_params = self._context_var.get(dict())
162
+ if not context_params:
163
+ # Exit early if not in SnowML (decorator) context
164
+ return func(*args, **kwargs)
165
+
166
+ # Extract any explicitly provided statement parameters
167
+ orig_kwargs = dict(kwargs)
168
+ in_params = kwargs.pop(param_name, None) or {}
169
+
170
+ # Inject a special flag to statement parameters so we can filter out these patched logs if necessary
171
+ # Calls that include SnowML telemetry are tagged with "SNOWML_AUGMENT_TELEMETRY"
172
+ # and calls without SnowML telemetry are tagged with "SNOWML_AUTO_TELEMETRY"
173
+ if TelemetryField.KEY_PROJECT.value in in_params:
174
+ context_params["snowml_telemetry_type"] = _TelemetrySourceType.AUGMENT_TELEMETRY.value
175
+ else:
176
+ context_params["snowml_telemetry_type"] = _TelemetrySourceType.AUTO_TELEMETRY.value
177
+
178
+ # Apply any explicitly provided statement parameters and result into function call
179
+ context_params.update(in_params)
180
+ kwargs[param_name] = context_params
181
+
182
+ try:
183
+ return func(*args, **kwargs)
184
+ except TypeError as e:
185
+ if str(e).endswith(f"unexpected keyword argument '{param_name}'"):
186
+ # TODO: Log warning that this patch is invalid
187
+ # Unwrap function for future invocations
188
+ setattr(target, function_name, func)
189
+ return func(*args, **orig_kwargs)
190
+ else:
191
+ raise
192
+
193
+ setattr(target, function_name, wrapper)
194
+
195
+ def __getstate__(self) -> Dict[str, Any]:
196
+ return {}
197
+
198
+ def __setstate__(self, state: Dict[str, Any]) -> None:
199
+ # unpickling does not call __init__ by default, do it manually here
200
+ self.__init__() # type: ignore[misc]
201
+
202
+
203
+ _patch_manager = _StatementParamsPatchManager()
204
+
205
+
88
206
  def get_statement_params(
89
207
  project: str, subproject: Optional[str] = None, class_name: Optional[str] = None
90
208
  ) -> Dict[str, Any]:
@@ -375,7 +493,18 @@ def send_api_usage_telemetry(
375
493
  obj._statement_params = statement_params # type: ignore[assignment]
376
494
  return obj
377
495
 
496
+ # Set up framework-level credit usage instrumentation
497
+ ctx = contextvars.copy_context()
498
+ _patch_manager.apply_patches()
499
+
500
+ # This function should be executed with ctx.run()
501
+ def execute_func_with_statement_params() -> _ReturnValue:
502
+ _patch_manager.set_statement_params(statement_params)
503
+ result = func(*args, **kwargs)
504
+ return update_stmt_params_if_snowpark_df(result, statement_params)
505
+
378
506
  # prioritize `conn_attr_name` over the active session
507
+ telemetry_enabled = True
379
508
  if conn_attr_name:
380
509
  # raise AttributeError if conn attribute does not exist in `self`
381
510
  conn = operator.attrgetter(conn_attr_name)(args[0])
@@ -387,22 +516,17 @@ def send_api_usage_telemetry(
387
516
  else:
388
517
  try:
389
518
  active_session = next(iter(session._get_active_sessions()))
390
- # server no default session
519
+ conn = active_session._conn._conn
520
+ telemetry_enabled = active_session.telemetry_enabled
391
521
  except snowpark_exceptions.SnowparkSessionException:
392
- try:
393
- return update_stmt_params_if_snowpark_df(func(*args, **kwargs), statement_params)
394
- except Exception as e:
395
- if isinstance(e, snowml_exceptions.SnowflakeMLException):
396
- raise e.original_exception.with_traceback(e.__traceback__) from None
397
- # suppress SnowparkSessionException from telemetry in the stack trace
398
- raise e from None
399
-
400
- conn = active_session._conn._conn
401
- if (not active_session.telemetry_enabled) or (conn is None):
402
- try:
403
- return update_stmt_params_if_snowpark_df(func(*args, **kwargs), statement_params)
404
- except snowml_exceptions.SnowflakeMLException as e:
405
- raise e.original_exception from e
522
+ conn = None
523
+
524
+ if conn is None or not telemetry_enabled:
525
+ # Telemetry not enabled, just execute without our additional telemetry logic
526
+ try:
527
+ return ctx.run(execute_func_with_statement_params)
528
+ except snowml_exceptions.SnowflakeMLException as e:
529
+ raise e.original_exception from e
406
530
 
407
531
  # TODO(hayu): [SNOW-750287] Optimize telemetry client to a singleton.
408
532
  telemetry = _SourceTelemetryClient(conn=conn, project=project, subproject=subproject_name)
@@ -415,11 +539,11 @@ def send_api_usage_telemetry(
415
539
  custom_tags=custom_tags,
416
540
  )
417
541
  try:
418
- res = func(*args, **kwargs)
542
+ return ctx.run(execute_func_with_statement_params)
419
543
  except Exception as e:
420
544
  if not isinstance(e, snowml_exceptions.SnowflakeMLException):
421
545
  # already handled via a nested decorated function
422
- if hasattr(e, "_snowflake_ml_handled") and e._snowflake_ml_handled:
546
+ if getattr(e, "_snowflake_ml_handled", False):
423
547
  raise e
424
548
  if isinstance(e, snowpark_exceptions.SnowparkClientException):
425
549
  me = snowml_exceptions.SnowflakeMLException(
@@ -438,8 +562,6 @@ def send_api_usage_telemetry(
438
562
  raise me.original_exception from None
439
563
  else:
440
564
  raise me.original_exception from e
441
- else:
442
- return update_stmt_params_if_snowpark_df(res, statement_params)
443
565
  finally:
444
566
  telemetry.send_function_usage_telemetry(**telemetry_args)
445
567
  global _log_counter