snowflake-ml-python 1.6.0__tar.gz → 1.6.2__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 (437) hide show
  1. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/CHANGELOG.md +53 -1
  2. {snowflake_ml_python-1.6.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.6.2}/PKG-INFO +55 -3
  3. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_complete.py +7 -33
  5. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/env_utils.py +11 -5
  6. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +4 -1
  7. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/telemetry.py +156 -20
  8. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/identifier.py +48 -11
  9. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/pkg_version_utils.py +8 -22
  10. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/snowflake_env.py +23 -13
  11. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/sql_identifier.py +1 -1
  12. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/table_manager.py +19 -1
  13. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/uri.py +2 -2
  14. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/data/_internal/arrow_ingestor.py +66 -10
  15. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_connector.py +88 -9
  16. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_ingestor.py +18 -1
  17. {snowflake_ml_python-1.6.0/snowflake/ml/data/_internal → snowflake_ml_python-1.6.2/snowflake/ml/data}/ingestor_utils.py +5 -1
  18. snowflake_ml_python-1.6.2/snowflake/ml/data/torch_utils.py +68 -0
  19. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset.py +1 -3
  20. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_metadata.py +3 -1
  21. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_reader.py +9 -3
  22. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/airline_features/entities.py +16 -0
  23. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +31 -0
  24. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +42 -0
  25. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/airline_features/source.yaml +7 -0
  26. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +10 -4
  27. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +6 -0
  28. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +7 -0
  29. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/example_helper.py +69 -31
  30. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +12 -0
  31. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/new_york_taxi_features/features/dropoff_features.py → snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +14 -9
  32. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +36 -0
  33. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +9 -0
  34. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/source_data/airline.yaml +4 -0
  35. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +1 -1
  36. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +3 -3
  37. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +13 -6
  38. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +8 -5
  39. snowflake_ml_python-1.6.2/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +8 -0
  40. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/feature_store.py +100 -41
  41. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/feature_view.py +149 -5
  42. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/embedded_stage_fs.py +1 -1
  43. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/fileset.py +1 -1
  44. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/sfcfs.py +9 -3
  45. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/model/model_impl.py +11 -2
  46. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/model/model_version_impl.py +186 -20
  47. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/ops/model_ops.py +144 -30
  48. snowflake_ml_python-1.6.2/snowflake/ml/model/_client/ops/service_ops.py +312 -0
  49. snowflake_ml_python-1.6.2/snowflake/ml/model/_client/service/model_deployment_spec.py +94 -0
  50. snowflake_ml_python-1.6.2/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +30 -0
  51. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/model_version.py +13 -4
  52. snowflake_ml_python-1.6.2/snowflake/ml/model/_client/sql/service.py +196 -0
  53. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py +1 -1
  54. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/deploy.py +3 -3
  55. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_composer.py +5 -0
  56. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +13 -10
  57. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +3 -0
  58. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_env/model_env.py +7 -2
  59. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/_base.py +29 -12
  60. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/_utils.py +46 -14
  61. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/catboost.py +25 -16
  62. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/custom.py +6 -2
  63. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +32 -20
  64. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +23 -56
  65. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/llm.py +11 -5
  66. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/mlflow.py +8 -3
  67. snowflake_ml_python-1.6.2/snowflake/ml/model/_packager/model_handlers/model_objective_utils.py +116 -0
  68. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/pytorch.py +8 -3
  69. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +8 -3
  70. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/sklearn.py +99 -4
  71. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +123 -5
  72. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +9 -4
  73. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/torchscript.py +10 -5
  74. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/xgboost.py +56 -47
  75. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_meta.py +35 -2
  76. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +11 -0
  77. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_packager.py +4 -1
  78. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +4 -2
  79. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/pytorch_handler.py +1 -1
  80. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/utils.py +9 -0
  81. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/models/llm.py +3 -1
  82. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/type_hints.py +10 -4
  83. snowflake_ml_python-1.6.2/snowflake/ml/modeling/_internal/constants.py +2 -0
  84. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +5 -5
  85. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +9 -6
  86. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_specifications.py +2 -0
  87. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_trainer.py +1 -0
  88. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +2 -2
  89. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +5 -5
  90. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +113 -160
  91. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +60 -21
  92. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/affinity_propagation.py +60 -21
  93. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +60 -21
  94. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/birch.py +60 -21
  95. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/bisecting_k_means.py +60 -21
  96. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/dbscan.py +60 -21
  97. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/feature_agglomeration.py +60 -21
  98. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/k_means.py +60 -21
  99. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/mean_shift.py +60 -21
  100. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +60 -21
  101. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/optics.py +60 -21
  102. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_biclustering.py +60 -21
  103. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_clustering.py +60 -21
  104. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_coclustering.py +60 -21
  105. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/column_transformer.py +60 -21
  106. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/transformed_target_regressor.py +60 -21
  107. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/elliptic_envelope.py +60 -21
  108. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/empirical_covariance.py +60 -21
  109. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/graphical_lasso.py +60 -21
  110. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +60 -21
  111. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/ledoit_wolf.py +60 -21
  112. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/min_cov_det.py +60 -21
  113. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/oas.py +60 -21
  114. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/shrunk_covariance.py +60 -21
  115. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/dictionary_learning.py +60 -21
  116. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/factor_analysis.py +60 -21
  117. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/fast_ica.py +60 -21
  118. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/incremental_pca.py +60 -21
  119. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/kernel_pca.py +60 -21
  120. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +60 -21
  121. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +60 -21
  122. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/pca.py +60 -21
  123. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/sparse_pca.py +60 -21
  124. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/truncated_svd.py +60 -21
  125. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +60 -21
  126. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +60 -21
  127. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +60 -21
  128. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +60 -21
  129. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/bagging_classifier.py +60 -21
  130. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/bagging_regressor.py +60 -21
  131. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +60 -21
  132. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +60 -21
  133. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +60 -21
  134. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +60 -21
  135. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +60 -21
  136. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +60 -21
  137. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/isolation_forest.py +60 -21
  138. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +60 -21
  139. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +60 -21
  140. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/stacking_regressor.py +60 -21
  141. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/voting_classifier.py +60 -21
  142. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/voting_regressor.py +60 -21
  143. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +60 -21
  144. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fdr.py +60 -21
  145. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fpr.py +60 -21
  146. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fwe.py +60 -21
  147. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_k_best.py +60 -21
  148. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_percentile.py +60 -21
  149. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +60 -21
  150. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/variance_threshold.py +60 -21
  151. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/framework/base.py +28 -19
  152. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +60 -21
  153. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +60 -21
  154. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/iterative_imputer.py +60 -21
  155. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/knn_imputer.py +60 -21
  156. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/missing_indicator.py +60 -21
  157. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +60 -21
  158. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/nystroem.py +60 -21
  159. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +60 -21
  160. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +60 -21
  161. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +60 -21
  162. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +60 -21
  163. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +60 -21
  164. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +60 -21
  165. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ard_regression.py +60 -21
  166. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +60 -21
  167. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/elastic_net.py +60 -21
  168. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +60 -21
  169. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/gamma_regressor.py +60 -21
  170. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/huber_regressor.py +60 -21
  171. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lars.py +60 -21
  172. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lars_cv.py +60 -21
  173. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso.py +60 -21
  174. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_cv.py +60 -21
  175. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars.py +60 -21
  176. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +60 -21
  177. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +60 -21
  178. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/linear_regression.py +60 -21
  179. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/logistic_regression.py +60 -21
  180. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +60 -21
  181. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +60 -21
  182. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +60 -21
  183. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +60 -21
  184. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +60 -21
  185. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +60 -21
  186. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +60 -21
  187. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +60 -21
  188. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/perceptron.py +60 -21
  189. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/poisson_regressor.py +60 -21
  190. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ransac_regressor.py +60 -21
  191. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge.py +60 -21
  192. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_classifier.py +60 -21
  193. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +60 -21
  194. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_cv.py +60 -21
  195. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_classifier.py +60 -21
  196. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +60 -21
  197. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_regressor.py +60 -21
  198. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +60 -21
  199. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +60 -21
  200. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/isomap.py +60 -21
  201. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/mds.py +60 -21
  202. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/spectral_embedding.py +60 -21
  203. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/tsne.py +60 -21
  204. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +60 -21
  205. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/gaussian_mixture.py +60 -21
  206. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +60 -21
  207. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +60 -21
  208. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/output_code_classifier.py +60 -21
  209. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +60 -21
  210. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +60 -21
  211. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/complement_nb.py +60 -21
  212. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +60 -21
  213. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +60 -21
  214. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +60 -21
  215. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +60 -21
  216. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/kernel_density.py +60 -21
  217. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +60 -21
  218. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/nearest_centroid.py +60 -21
  219. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +60 -21
  220. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +60 -21
  221. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +60 -21
  222. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +60 -21
  223. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +60 -21
  224. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/mlp_classifier.py +60 -21
  225. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/mlp_regressor.py +60 -21
  226. snowflake_ml_python-1.6.2/snowflake/ml/modeling/parameters/disable_model_tracer.py +5 -0
  227. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/pipeline/pipeline.py +4 -12
  228. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/polynomial_features.py +60 -21
  229. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/label_propagation.py +60 -21
  230. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/label_spreading.py +60 -21
  231. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/linear_svc.py +60 -21
  232. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/linear_svr.py +60 -21
  233. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/nu_svc.py +60 -21
  234. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/nu_svr.py +60 -21
  235. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/svc.py +60 -21
  236. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/svr.py +60 -21
  237. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/decision_tree_classifier.py +60 -21
  238. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/decision_tree_regressor.py +60 -21
  239. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/extra_tree_classifier.py +60 -21
  240. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/extra_tree_regressor.py +60 -21
  241. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgb_classifier.py +63 -23
  242. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgb_regressor.py +63 -23
  243. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +63 -23
  244. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +63 -23
  245. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_manager/model_manager.py +20 -2
  246. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/model_registry.py +1 -1
  247. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/registry.py +1 -2
  248. snowflake_ml_python-1.6.2/snowflake/ml/utils/sql_client.py +22 -0
  249. snowflake_ml_python-1.6.2/snowflake/ml/version.py +1 -0
  250. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2/snowflake_ml_python.egg-info}/PKG-INFO +55 -3
  251. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/SOURCES.txt +16 -3
  252. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/requires.txt +1 -1
  253. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -4
  254. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -12
  255. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/new_york_taxi_features/features/pickup_features.py +0 -58
  256. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -5
  257. snowflake_ml_python-1.6.0/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -5
  258. snowflake_ml_python-1.6.0/snowflake/ml/modeling/_internal/constants.py +0 -1
  259. snowflake_ml_python-1.6.0/snowflake/ml/version.py +0 -1
  260. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/LICENSE.txt +0 -0
  261. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/README.md +0 -0
  262. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/setup.cfg +0 -0
  263. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/__init__.py +0 -0
  264. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_classify_text.py +0 -0
  265. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_extract_answer.py +0 -0
  266. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_sentiment.py +0 -0
  267. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_sse_client.py +0 -0
  268. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_summarize.py +0 -0
  269. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_translate.py +0 -0
  270. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/cortex/_util.py +0 -0
  271. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/credential.py +0 -0
  272. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/http_client.py +0 -0
  273. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/imagelib.py +0 -0
  274. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/registry_client.py +0 -0
  275. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/env.py +0 -0
  276. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  277. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  278. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  279. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  280. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  281. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  282. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  283. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  284. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/file_utils.py +0 -0
  285. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  286. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  287. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  288. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  289. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/init_utils.py +0 -0
  290. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  291. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/migrator_utils.py +0 -0
  292. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/type_utils.py +0 -0
  293. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/formatting.py +0 -0
  294. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  295. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/log_stream_processor.py +0 -0
  296. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  297. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  298. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/result.py +0 -0
  299. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/retryable_http.py +0 -0
  300. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/session_token_manager.py +0 -0
  301. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  302. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/spcs_attribution_utils.py +0 -0
  303. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  304. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_source.py +0 -0
  305. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/__init__.py +0 -0
  306. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_factory.py +0 -0
  307. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/__init__.py +0 -0
  308. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/access_manager.py +0 -0
  309. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/entity.py +0 -0
  310. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  311. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  312. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  313. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  314. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/parquet_parser.py +0 -0
  315. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/snowfs.py +0 -0
  316. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/stage_fs.py +0 -0
  317. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/tf_dataset.py +0 -0
  318. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/torch_datapipe.py +0 -0
  319. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/lineage/__init__.py +0 -0
  320. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/lineage/lineage_node.py +0 -0
  321. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/__init__.py +0 -0
  322. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_api.py +0 -0
  323. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  324. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/_base.py +0 -0
  325. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/model.py +0 -0
  326. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/stage.py +0 -0
  327. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/tag.py +0 -0
  328. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/base_image_builder.py +0 -0
  329. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/client_image_builder.py +0 -0
  330. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/docker_context.py +0 -0
  331. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/gunicorn_run.sh +0 -0
  332. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/inference_server/main.py +0 -0
  333. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/dockerfile_template +0 -0
  334. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/image_build_job_spec_template +0 -0
  335. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/kaniko_shell_script_template +0 -0
  336. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/deploy_options.py +0 -0
  337. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/instance_types.py +0 -0
  338. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template +0 -0
  339. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template_with_model +0 -0
  340. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/utils/constants.py +0 -0
  341. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/utils/snowservice_client.py +0 -0
  342. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/warehouse/deploy.py +0 -0
  343. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/warehouse/infer_template.py +0 -0
  344. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  345. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  346. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  347. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  348. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  349. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handler.py +0 -0
  350. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  351. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/_core_requirements.py +0 -0
  352. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -0
  353. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  354. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  355. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  356. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  357. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  358. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  359. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  360. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/core.py +0 -0
  361. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  362. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  363. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  364. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  365. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/custom_model.py +0 -0
  366. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/deploy_platforms.py +0 -0
  367. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/model_signature.py +0 -0
  368. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  369. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  370. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_handlers.py +0 -0
  371. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_trainer.py +0 -0
  372. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  373. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  374. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  375. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  376. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  377. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  378. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  379. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/__init__.py +0 -0
  380. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  381. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  382. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  383. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  384. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  385. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/framework/_utils.py +0 -0
  386. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  387. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/__init__.py +0 -0
  388. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  389. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  390. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  391. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  392. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  393. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  394. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  395. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/classification.py +0 -0
  396. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  397. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  398. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  399. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  400. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/regression.py +0 -0
  401. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  402. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  403. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  404. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  405. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  406. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  407. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  408. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  409. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  410. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  411. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  412. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  413. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  414. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  415. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  416. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  417. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  418. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  419. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  420. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  421. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  422. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  423. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  424. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/__init__.py +0 -0
  425. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/__init__.py +0 -0
  426. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  427. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/monitoring/monitor.py +0 -0
  428. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/monitoring/shap.py +0 -0
  429. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/__init__.py +0 -0
  430. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_initial_schema.py +0 -0
  431. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema.py +0 -0
  432. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema_upgrade_plans.py +0 -0
  433. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema_version_manager.py +0 -0
  434. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/utils/connection_params.py +0 -0
  435. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake/ml/utils/sparse.py +0 -0
  436. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  437. {snowflake_ml_python-1.6.0 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,50 @@
1
1
  # Release History
2
2
 
3
- ## 1.6.0
3
+ ## 1.6.2 (TBD)
4
+
5
+ ### Bug Fixes
6
+
7
+ - Modeling: Support XGBoost version that is larger than 2.
8
+
9
+ - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
10
+ - Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
11
+ be parsed wrongly. Now it raises an exception correctly.
12
+ - Model Explainability: Handle explanations for multiclass XGBoost classification models
13
+ - Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
14
+
15
+ ### New Features
16
+
17
+ - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
18
+ - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
19
+ - Feature Store: update_feature_view() supports taking feature view object as argument.
20
+
21
+ ### Behavior Changes
22
+
23
+ ## 1.6.1 (2024-08-12)
24
+
25
+ ### Bug Fixes
26
+
27
+ - Feature Store: Support large metadata blob when generating dataset
28
+ - Feature Store: Added a hidden knob in FeatureView as kargs for setting customized
29
+ refresh_mode
30
+ - Registry: Fix an error message in Model Version `run` when `function_name` is not mentioned and model has multiple
31
+ target methods.
32
+ - Cortex inference: snowflake.cortex.Complete now only uses the REST API for streaming and the use_rest_api_experimental
33
+ is no longer needed.
34
+ - Feature Store: Add a new API: FeatureView.list_columns() which list all column information.
35
+ - Data: Fix `DataFrame` ingestion with `ArrowIngestor`.
36
+
37
+ ### New Features
38
+
39
+ - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
40
+ - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
41
+ - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
42
+ - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
43
+ - Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
44
+
45
+ ### Behavior Changes
46
+
47
+ ## 1.6.0 (2024-07-29)
4
48
 
5
49
  ### Bug Fixes
6
50
 
@@ -29,6 +73,14 @@
29
73
  distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
30
74
  `
31
75
  - Registry: Option to `enable_explainability` when registering LightGBM models as a pre-PuPr feature.
76
+ - Data: Add new `snowflake.ml.data` preview module which contains data reading utilities like `DataConnector`
77
+ - `DataConnector` provides efficient connectors from Snowpark `DataFrame`
78
+ and Snowpark ML `Dataset` to external frameworks like PyTorch, TensorFlow, and Pandas. Create `DataConnector`
79
+ instances using the classmethod constructors `DataConnector.from_dataset()` and `DataConnector.from_dataframe()`.
80
+ - Data: Add new `DataConnector.from_sources()` classmethod constructor for constructing from `DataSource` objects.
81
+ - Data: Add new `ingestor_class` arg to `DataConnector` classmethod constructors for easier `DataIngestor` injection.
82
+ - Dataset: `DatasetReader` now subclasses new `DataConnector` class.
83
+ - Add optional `limit` arg to `DatasetReader.to_pandas()`
32
84
 
33
85
  ### Behavior Changes
34
86
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: snowflake-ml-python
3
- Version: 1.6.0
3
+ Version: 1.6.2
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:
@@ -253,7 +253,7 @@ 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"
@@ -373,7 +373,51 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
373
373
 
374
374
  # Release History
375
375
 
376
- ## 1.6.0
376
+ ## 1.6.2 (TBD)
377
+
378
+ ### Bug Fixes
379
+
380
+ - Modeling: Support XGBoost version that is larger than 2.
381
+
382
+ - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
383
+ - Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
384
+ be parsed wrongly. Now it raises an exception correctly.
385
+ - Model Explainability: Handle explanations for multiclass XGBoost classification models
386
+ - Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
387
+
388
+ ### New Features
389
+
390
+ - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
391
+ - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
392
+ - Feature Store: update_feature_view() supports taking feature view object as argument.
393
+
394
+ ### Behavior Changes
395
+
396
+ ## 1.6.1 (2024-08-12)
397
+
398
+ ### Bug Fixes
399
+
400
+ - Feature Store: Support large metadata blob when generating dataset
401
+ - Feature Store: Added a hidden knob in FeatureView as kargs for setting customized
402
+ refresh_mode
403
+ - Registry: Fix an error message in Model Version `run` when `function_name` is not mentioned and model has multiple
404
+ target methods.
405
+ - Cortex inference: snowflake.cortex.Complete now only uses the REST API for streaming and the use_rest_api_experimental
406
+ is no longer needed.
407
+ - Feature Store: Add a new API: FeatureView.list_columns() which list all column information.
408
+ - Data: Fix `DataFrame` ingestion with `ArrowIngestor`.
409
+
410
+ ### New Features
411
+
412
+ - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
413
+ - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
414
+ - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
415
+ - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
416
+ - Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
417
+
418
+ ### Behavior Changes
419
+
420
+ ## 1.6.0 (2024-07-29)
377
421
 
378
422
  ### Bug Fixes
379
423
 
@@ -402,6 +446,14 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
402
446
  distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
403
447
  `
404
448
  - Registry: Option to `enable_explainability` when registering LightGBM models as a pre-PuPr feature.
449
+ - Data: Add new `snowflake.ml.data` preview module which contains data reading utilities like `DataConnector`
450
+ - `DataConnector` provides efficient connectors from Snowpark `DataFrame`
451
+ and Snowpark ML `Dataset` to external frameworks like PyTorch, TensorFlow, and Pandas. Create `DataConnector`
452
+ instances using the classmethod constructors `DataConnector.from_dataset()` and `DataConnector.from_dataframe()`.
453
+ - Data: Add new `DataConnector.from_sources()` classmethod constructor for constructing from `DataSource` objects.
454
+ - Data: Add new `ingestor_class` arg to `DataConnector` classmethod constructors for easier `DataIngestor` injection.
455
+ - Dataset: `DatasetReader` now subclasses new `DataConnector` class.
456
+ - Add optional `limit` arg to `DatasetReader.to_pandas()`
405
457
 
406
458
  ### Behavior Changes
407
459
 
@@ -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.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.1",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -90,7 +90,6 @@ def _call_complete_rest(
90
90
  prompt: Union[str, List[ConversationMessage]],
91
91
  options: Optional[CompleteOptions] = None,
92
92
  session: Optional[snowpark.Session] = None,
93
- stream: bool = False,
94
93
  ) -> requests.Response:
95
94
  session = session or context.get_active_session()
96
95
  if session is None:
@@ -121,7 +120,7 @@ def _call_complete_rest(
121
120
 
122
121
  data = {
123
122
  "model": model,
124
- "stream": stream,
123
+ "stream": True,
125
124
  }
126
125
  if isinstance(prompt, List):
127
126
  data["messages"] = prompt
@@ -137,32 +136,15 @@ def _call_complete_rest(
137
136
  if "top_p" in options:
138
137
  data["top_p"] = options["top_p"]
139
138
 
140
- logger.debug(f"making POST request to {url} (model={model}, stream={stream})")
139
+ logger.debug(f"making POST request to {url} (model={model})")
141
140
  return requests.post(
142
141
  url,
143
142
  json=data,
144
143
  headers=headers,
145
- stream=stream,
144
+ stream=True,
146
145
  )
147
146
 
148
147
 
149
- def _process_rest_response(
150
- response: requests.Response,
151
- stream: bool = False,
152
- deadline: Optional[float] = None,
153
- ) -> Union[str, Iterator[str]]:
154
- if stream:
155
- return _return_stream_response(response, deadline)
156
-
157
- try:
158
- content = response.json()["choices"][0]["message"]["content"]
159
- assert isinstance(content, str)
160
- return content
161
- except (KeyError, IndexError, AssertionError) as e:
162
- # Unlike the streaming case, errors are not ignored because a message must be returned.
163
- raise ResponseParseException("Failed to parse message from response.") from e
164
-
165
-
166
148
  def _return_stream_response(response: requests.Response, deadline: Optional[float]) -> Iterator[str]:
167
149
  client = SSEClient(response)
168
150
  for event in client.events():
@@ -243,7 +225,6 @@ def _complete_impl(
243
225
  prompt: Union[str, List[ConversationMessage], snowpark.Column],
244
226
  options: Optional[CompleteOptions] = None,
245
227
  session: Optional[snowpark.Session] = None,
246
- use_rest_api_experimental: bool = False,
247
228
  stream: bool = False,
248
229
  function: str = "snowflake.cortex.complete",
249
230
  timeout: Optional[float] = None,
@@ -253,16 +234,14 @@ def _complete_impl(
253
234
  raise ValueError('only one of "timeout" and "deadline" must be set')
254
235
  if timeout is not None:
255
236
  deadline = time.time() + timeout
256
- if use_rest_api_experimental:
237
+ if stream:
257
238
  if not isinstance(model, str):
258
239
  raise ValueError("in REST mode, 'model' must be a string")
259
240
  if not isinstance(prompt, str) and not isinstance(prompt, List):
260
241
  raise ValueError("in REST mode, 'prompt' must be a string or a list of ConversationMessage")
261
- response = _call_complete_rest(model, prompt, options, session=session, stream=stream, deadline=deadline)
242
+ response = _call_complete_rest(model, prompt, options, session=session, deadline=deadline)
262
243
  assert response.status_code >= 200 and response.status_code < 300
263
- return _process_rest_response(response, stream=stream)
264
- if stream is True:
265
- raise ValueError("streaming can only be enabled in REST mode, set use_rest_api_experimental=True")
244
+ return _return_stream_response(response, deadline)
266
245
  return _complete_sql_impl(function, model, prompt, options, session)
267
246
 
268
247
 
@@ -275,7 +254,6 @@ def Complete(
275
254
  *,
276
255
  options: Optional[CompleteOptions] = None,
277
256
  session: Optional[snowpark.Session] = None,
278
- use_rest_api_experimental: bool = False,
279
257
  stream: bool = False,
280
258
  timeout: Optional[float] = None,
281
259
  deadline: Optional[float] = None,
@@ -287,16 +265,13 @@ def Complete(
287
265
  prompt: A Column of prompts to send to the LLM.
288
266
  options: A instance of snowflake.cortex.CompleteOptions
289
267
  session: The snowpark session to use. Will be inferred by context if not specified.
290
- use_rest_api_experimental (bool): Toggles between the use of SQL and REST implementation. This feature is
291
- experimental and can be removed at any time.
292
268
  stream (bool): Enables streaming. When enabled, a generator function is returned that provides the streaming
293
269
  output as it is received. Each update is a string containing the new text content since the previous update.
294
- The use of streaming requires the experimental use_rest_api_experimental flag to be enabled.
295
270
  timeout (float): Timeout in seconds to retry failed REST requests.
296
271
  deadline (float): Time in seconds since the epoch (as returned by time.time()) to retry failed REST requests.
297
272
 
298
273
  Raises:
299
- ValueError: If `stream` is set to True and `use_rest_api_experimental` is set to False.
274
+ ValueError: incorrect argument.
300
275
 
301
276
  Returns:
302
277
  A column of string responses.
@@ -307,7 +282,6 @@ def Complete(
307
282
  prompt,
308
283
  options=options,
309
284
  session=session,
310
- use_rest_api_experimental=use_rest_api_experimental,
311
285
  stream=stream,
312
286
  timeout=timeout,
313
287
  deadline=deadline,
@@ -27,7 +27,6 @@ class CONDA_OS(Enum):
27
27
  NO_ARCH = "noarch"
28
28
 
29
29
 
30
- _SNOWFLAKE_CONDA_CHANNEL_URL = "https://repo.anaconda.com/pkgs/snowflake"
31
30
  _NODEFAULTS = "nodefaults"
32
31
  _SNOWFLAKE_INFO_SCHEMA_PACKAGE_CACHE: Dict[str, List[version.Version]] = {}
33
32
  _SNOWFLAKE_CONDA_PACKAGE_CACHE: Dict[str, List[version.Version]] = {}
@@ -36,6 +35,7 @@ _SUPPORTED_PACKAGE_SPEC_OPS = ["==", ">=", "<=", ">", "<"]
36
35
  DEFAULT_CHANNEL_NAME = ""
37
36
  SNOWML_SPROC_ENV = "IN_SNOWML_SPROC"
38
37
  SNOWPARK_ML_PKG_NAME = "snowflake-ml-python"
38
+ SNOWFLAKE_CONDA_CHANNEL_URL = "https://repo.anaconda.com/pkgs/snowflake"
39
39
 
40
40
 
41
41
  def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
@@ -370,7 +370,7 @@ def get_matched_package_versions_in_snowflake_conda_channel(
370
370
 
371
371
  assert not snowpark_utils.is_in_stored_procedure() # type: ignore[no-untyped-call]
372
372
 
373
- url = f"{_SNOWFLAKE_CONDA_CHANNEL_URL}/{conda_os.value}/repodata.json"
373
+ url = f"{SNOWFLAKE_CONDA_CHANNEL_URL}/{conda_os.value}/repodata.json"
374
374
 
375
375
  if req.name not in _SNOWFLAKE_CONDA_PACKAGE_CACHE:
376
376
  try:
@@ -477,6 +477,7 @@ def save_conda_env_file(
477
477
  path: pathlib.Path,
478
478
  conda_chan_deps: DefaultDict[str, List[requirements.Requirement]],
479
479
  python_version: str,
480
+ default_channel_override: str = SNOWFLAKE_CONDA_CHANNEL_URL,
480
481
  ) -> None:
481
482
  """Generate conda.yml file given a dict of dependencies after validation.
482
483
  The channels part of conda.yml file will contains Snowflake Anaconda Channel, nodefaults and all channel names
@@ -489,6 +490,7 @@ def save_conda_env_file(
489
490
  path: Path to the conda.yml file.
490
491
  conda_chan_deps: Dict of conda dependencies after validated.
491
492
  python_version: A string 'major.minor' showing python version relate to model.
493
+ default_channel_override: The default channel to be put in the first place of the channels section.
492
494
  """
493
495
  assert path.suffix in [".yml", ".yaml"], "Conda environment file should have extension of yml or yaml."
494
496
  path.parent.mkdir(parents=True, exist_ok=True)
@@ -499,7 +501,11 @@ def save_conda_env_file(
499
501
  channels = list(dict(sorted(conda_chan_deps.items(), key=lambda item: len(item[1]), reverse=True)).keys())
500
502
  if DEFAULT_CHANNEL_NAME in channels:
501
503
  channels.remove(DEFAULT_CHANNEL_NAME)
502
- env["channels"] = [_SNOWFLAKE_CONDA_CHANNEL_URL] + channels + [_NODEFAULTS]
504
+
505
+ if default_channel_override in channels:
506
+ channels.remove(default_channel_override)
507
+
508
+ env["channels"] = [default_channel_override] + channels + [_NODEFAULTS]
503
509
  env["dependencies"] = [f"python=={python_version}.*"]
504
510
  for chan, reqs in conda_chan_deps.items():
505
511
  env["dependencies"].extend(
@@ -567,8 +573,8 @@ def load_conda_env_file(
567
573
  python_version = None
568
574
 
569
575
  channels = env.get("channels", [])
570
- if _SNOWFLAKE_CONDA_CHANNEL_URL in channels:
571
- channels.remove(_SNOWFLAKE_CONDA_CHANNEL_URL)
576
+ if len(channels) >= 1:
577
+ channels = channels[1:] # Skip the first channel which is the default channel
572
578
  if _NODEFAULTS in channels:
573
579
  channels.remove(_NODEFAULTS)
574
580
 
@@ -4,7 +4,10 @@ ATTRIBUTE_NOT_SET = (
4
4
  "-differences."
5
5
  )
6
6
  SIZE_MISMATCH = "Size mismatch: {}={}, {}={}."
7
- INVALID_MODEL_PARAM = "Invalid parameter {} for model {}. Valid parameters: {}."
7
+ INVALID_MODEL_PARAM = (
8
+ "Invalid parameter {} for model {}. Valid parameters: {}."
9
+ "Note: Scikit learn params cannot be set until the model has been fit."
10
+ )
8
11
  UNSUPPORTED_MODEL_CONVERSION = "Object doesn't support {}. Please use {}."
9
12
  INCOMPATIBLE_NEW_SKLEARN_PARAM = "Incompatible scikit-learn version: {} requires scikit-learn>={}. Installed: {}."
10
13
  REMOVED_SKLEARN_PARAM = "Incompatible scikit-learn version: {} is removed in scikit-learn>={}. Installed: {}."
@@ -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
@@ -44,6 +46,20 @@ _Args = ParamSpec("_Args")
44
46
  _ReturnValue = TypeVar("_ReturnValue")
45
47
 
46
48
 
49
+ @enum.unique
50
+ class TelemetryProject(enum.Enum):
51
+ MLOPS = "MLOps"
52
+ MODELING = "ModelDevelopment"
53
+ # TODO: Update with remaining projects.
54
+
55
+
56
+ @enum.unique
57
+ class TelemetrySubProject(enum.Enum):
58
+ MONITORING = "Monitoring"
59
+ REGISTRY = "ModelManagement"
60
+ # TODO: Update with remaining subprojects.
61
+
62
+
47
63
  @enum.unique
48
64
  class TelemetryField(enum.Enum):
49
65
  # constants
@@ -71,6 +87,122 @@ class TelemetryField(enum.Enum):
71
87
  FUNC_CAT_USAGE = "usage"
72
88
 
73
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
+
74
206
  def get_statement_params(
75
207
  project: str, subproject: Optional[str] = None, class_name: Optional[str] = None
76
208
  ) -> Dict[str, Any]:
@@ -361,7 +493,18 @@ def send_api_usage_telemetry(
361
493
  obj._statement_params = statement_params # type: ignore[assignment]
362
494
  return obj
363
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
+
364
506
  # prioritize `conn_attr_name` over the active session
507
+ telemetry_enabled = True
365
508
  if conn_attr_name:
366
509
  # raise AttributeError if conn attribute does not exist in `self`
367
510
  conn = operator.attrgetter(conn_attr_name)(args[0])
@@ -373,22 +516,17 @@ def send_api_usage_telemetry(
373
516
  else:
374
517
  try:
375
518
  active_session = next(iter(session._get_active_sessions()))
376
- # server no default session
519
+ conn = active_session._conn._conn
520
+ telemetry_enabled = active_session.telemetry_enabled
377
521
  except snowpark_exceptions.SnowparkSessionException:
378
- try:
379
- return update_stmt_params_if_snowpark_df(func(*args, **kwargs), statement_params)
380
- except Exception as e:
381
- if isinstance(e, snowml_exceptions.SnowflakeMLException):
382
- raise e.original_exception.with_traceback(e.__traceback__) from None
383
- # suppress SnowparkSessionException from telemetry in the stack trace
384
- raise e from None
385
-
386
- conn = active_session._conn._conn
387
- if (not active_session.telemetry_enabled) or (conn is None):
388
- try:
389
- return update_stmt_params_if_snowpark_df(func(*args, **kwargs), statement_params)
390
- except snowml_exceptions.SnowflakeMLException as e:
391
- 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
392
530
 
393
531
  # TODO(hayu): [SNOW-750287] Optimize telemetry client to a singleton.
394
532
  telemetry = _SourceTelemetryClient(conn=conn, project=project, subproject=subproject_name)
@@ -401,11 +539,11 @@ def send_api_usage_telemetry(
401
539
  custom_tags=custom_tags,
402
540
  )
403
541
  try:
404
- res = func(*args, **kwargs)
542
+ return ctx.run(execute_func_with_statement_params)
405
543
  except Exception as e:
406
544
  if not isinstance(e, snowml_exceptions.SnowflakeMLException):
407
545
  # already handled via a nested decorated function
408
- if hasattr(e, "_snowflake_ml_handled") and e._snowflake_ml_handled:
546
+ if getattr(e, "_snowflake_ml_handled", False):
409
547
  raise e
410
548
  if isinstance(e, snowpark_exceptions.SnowparkClientException):
411
549
  me = snowml_exceptions.SnowflakeMLException(
@@ -424,8 +562,6 @@ def send_api_usage_telemetry(
424
562
  raise me.original_exception from None
425
563
  else:
426
564
  raise me.original_exception from e
427
- else:
428
- return update_stmt_params_if_snowpark_df(res, statement_params)
429
565
  finally:
430
566
  telemetry.send_function_usage_telemetry(**telemetry_args)
431
567
  global _log_counter