snowflake-ml-python 1.6.1__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 (434) hide show
  1. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/CHANGELOG.md +21 -2
  2. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/PKG-INFO +23 -4
  3. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/telemetry.py +142 -20
  5. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/identifier.py +48 -11
  6. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/snowflake_env.py +23 -13
  7. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/sql_identifier.py +1 -1
  8. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/table_manager.py +19 -1
  9. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/uri.py +2 -2
  10. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_connector.py +33 -7
  11. snowflake_ml_python-1.6.2/snowflake/ml/data/torch_utils.py +68 -0
  12. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset.py +1 -3
  13. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/feature_store.py +41 -17
  14. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/feature_view.py +2 -2
  15. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/embedded_stage_fs.py +1 -1
  16. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/fileset.py +1 -1
  17. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/sfcfs.py +9 -3
  18. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/model/model_version_impl.py +22 -7
  19. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/ops/model_ops.py +39 -3
  20. snowflake_ml_python-1.6.2/snowflake/ml/model/_client/ops/service_ops.py +312 -0
  21. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/service/model_deployment_spec.py +4 -5
  22. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -2
  23. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/service.py +85 -18
  24. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py +1 -1
  25. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/deploy.py +3 -3
  26. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_composer.py +2 -0
  27. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +3 -8
  28. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/_utils.py +46 -14
  29. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/catboost.py +17 -15
  30. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +23 -15
  31. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +15 -57
  32. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/llm.py +4 -2
  33. snowflake_ml_python-1.6.2/snowflake/ml/model/_packager/model_handlers/model_objective_utils.py +116 -0
  34. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/sklearn.py +36 -24
  35. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +119 -6
  36. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/torchscript.py +2 -2
  37. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/xgboost.py +48 -48
  38. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_meta.py +10 -7
  39. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -8
  40. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_packager.py +2 -0
  41. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/pytorch_handler.py +1 -1
  42. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/utils.py +9 -0
  43. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/models/llm.py +3 -1
  44. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/type_hints.py +9 -1
  45. snowflake_ml_python-1.6.2/snowflake/ml/modeling/_internal/constants.py +2 -0
  46. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +5 -5
  47. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +9 -6
  48. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_specifications.py +2 -0
  49. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_trainer.py +1 -0
  50. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +2 -2
  51. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +5 -5
  52. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +113 -160
  53. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +60 -21
  54. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/affinity_propagation.py +60 -21
  55. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +60 -21
  56. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/birch.py +60 -21
  57. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/bisecting_k_means.py +60 -21
  58. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/dbscan.py +60 -21
  59. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/feature_agglomeration.py +60 -21
  60. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/k_means.py +60 -21
  61. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/mean_shift.py +60 -21
  62. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +60 -21
  63. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/optics.py +60 -21
  64. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_biclustering.py +60 -21
  65. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_clustering.py +60 -21
  66. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/spectral_coclustering.py +60 -21
  67. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/column_transformer.py +60 -21
  68. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/transformed_target_regressor.py +60 -21
  69. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/elliptic_envelope.py +60 -21
  70. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/empirical_covariance.py +60 -21
  71. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/graphical_lasso.py +60 -21
  72. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +60 -21
  73. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/ledoit_wolf.py +60 -21
  74. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/min_cov_det.py +60 -21
  75. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/oas.py +60 -21
  76. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/shrunk_covariance.py +60 -21
  77. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/dictionary_learning.py +60 -21
  78. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/factor_analysis.py +60 -21
  79. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/fast_ica.py +60 -21
  80. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/incremental_pca.py +60 -21
  81. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/kernel_pca.py +60 -21
  82. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +60 -21
  83. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +60 -21
  84. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/pca.py +60 -21
  85. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/sparse_pca.py +60 -21
  86. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/truncated_svd.py +60 -21
  87. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +60 -21
  88. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +60 -21
  89. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +60 -21
  90. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +60 -21
  91. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/bagging_classifier.py +60 -21
  92. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/bagging_regressor.py +60 -21
  93. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +60 -21
  94. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +60 -21
  95. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +60 -21
  96. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +60 -21
  97. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +60 -21
  98. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +60 -21
  99. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/isolation_forest.py +60 -21
  100. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +60 -21
  101. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +60 -21
  102. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/stacking_regressor.py +60 -21
  103. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/voting_classifier.py +60 -21
  104. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/voting_regressor.py +60 -21
  105. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +60 -21
  106. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fdr.py +60 -21
  107. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fpr.py +60 -21
  108. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_fwe.py +60 -21
  109. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_k_best.py +60 -21
  110. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/select_percentile.py +60 -21
  111. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +60 -21
  112. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/variance_threshold.py +60 -21
  113. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +60 -21
  114. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +60 -21
  115. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/iterative_imputer.py +60 -21
  116. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/knn_imputer.py +60 -21
  117. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/missing_indicator.py +60 -21
  118. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +60 -21
  119. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/nystroem.py +60 -21
  120. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +60 -21
  121. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +60 -21
  122. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +60 -21
  123. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +60 -21
  124. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +60 -21
  125. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +60 -21
  126. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ard_regression.py +60 -21
  127. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +60 -21
  128. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/elastic_net.py +60 -21
  129. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +60 -21
  130. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/gamma_regressor.py +60 -21
  131. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/huber_regressor.py +60 -21
  132. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lars.py +60 -21
  133. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lars_cv.py +60 -21
  134. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso.py +60 -21
  135. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_cv.py +60 -21
  136. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars.py +60 -21
  137. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +60 -21
  138. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +60 -21
  139. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/linear_regression.py +60 -21
  140. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/logistic_regression.py +60 -21
  141. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +60 -21
  142. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +60 -21
  143. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +60 -21
  144. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +60 -21
  145. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +60 -21
  146. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +60 -21
  147. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +60 -21
  148. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +60 -21
  149. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/perceptron.py +60 -21
  150. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/poisson_regressor.py +60 -21
  151. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ransac_regressor.py +60 -21
  152. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge.py +60 -21
  153. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_classifier.py +60 -21
  154. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +60 -21
  155. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/ridge_cv.py +60 -21
  156. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_classifier.py +60 -21
  157. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +60 -21
  158. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/sgd_regressor.py +60 -21
  159. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +60 -21
  160. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +60 -21
  161. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/isomap.py +60 -21
  162. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/mds.py +60 -21
  163. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/spectral_embedding.py +60 -21
  164. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/tsne.py +60 -21
  165. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +60 -21
  166. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/gaussian_mixture.py +60 -21
  167. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +60 -21
  168. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +60 -21
  169. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/output_code_classifier.py +60 -21
  170. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +60 -21
  171. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +60 -21
  172. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/complement_nb.py +60 -21
  173. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +60 -21
  174. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +60 -21
  175. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +60 -21
  176. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +60 -21
  177. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/kernel_density.py +60 -21
  178. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +60 -21
  179. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/nearest_centroid.py +60 -21
  180. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +60 -21
  181. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +60 -21
  182. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +60 -21
  183. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +60 -21
  184. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +60 -21
  185. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/mlp_classifier.py +60 -21
  186. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/mlp_regressor.py +60 -21
  187. snowflake_ml_python-1.6.2/snowflake/ml/modeling/parameters/disable_model_tracer.py +5 -0
  188. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/pipeline/pipeline.py +1 -12
  189. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/polynomial_features.py +60 -21
  190. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/label_propagation.py +60 -21
  191. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/label_spreading.py +60 -21
  192. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/linear_svc.py +60 -21
  193. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/linear_svr.py +60 -21
  194. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/nu_svc.py +60 -21
  195. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/nu_svr.py +60 -21
  196. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/svc.py +60 -21
  197. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/svr.py +60 -21
  198. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/decision_tree_classifier.py +60 -21
  199. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/decision_tree_regressor.py +60 -21
  200. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/extra_tree_classifier.py +60 -21
  201. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/extra_tree_regressor.py +60 -21
  202. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgb_classifier.py +63 -23
  203. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgb_regressor.py +63 -23
  204. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +63 -23
  205. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +63 -23
  206. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_manager/model_manager.py +4 -0
  207. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/model_registry.py +1 -1
  208. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/registry.py +1 -2
  209. snowflake_ml_python-1.6.2/snowflake/ml/version.py +1 -0
  210. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/PKG-INFO +23 -4
  211. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/SOURCES.txt +3 -1
  212. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/requires.txt +1 -1
  213. snowflake_ml_python-1.6.1/snowflake/ml/data/torch_dataset.py +0 -33
  214. snowflake_ml_python-1.6.1/snowflake/ml/model/_client/ops/service_ops.py +0 -121
  215. snowflake_ml_python-1.6.1/snowflake/ml/modeling/_internal/constants.py +0 -1
  216. snowflake_ml_python-1.6.1/snowflake/ml/version.py +0 -1
  217. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/LICENSE.txt +0 -0
  218. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/README.md +0 -0
  219. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/setup.cfg +0 -0
  220. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/__init__.py +0 -0
  221. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_classify_text.py +0 -0
  222. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_complete.py +0 -0
  223. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_extract_answer.py +0 -0
  224. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_sentiment.py +0 -0
  225. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_sse_client.py +0 -0
  226. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_summarize.py +0 -0
  227. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_translate.py +0 -0
  228. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/cortex/_util.py +0 -0
  229. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/credential.py +0 -0
  230. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/http_client.py +0 -0
  231. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/imagelib.py +0 -0
  232. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/container_services/image_registry/registry_client.py +0 -0
  233. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/env.py +0 -0
  234. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/env_utils.py +0 -0
  235. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  236. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  237. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  238. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  239. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  240. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  241. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  242. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  243. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  244. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/file_utils.py +0 -0
  245. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  246. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  247. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  248. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  249. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/init_utils.py +0 -0
  250. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  251. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/migrator_utils.py +0 -0
  252. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/type_utils.py +0 -0
  253. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/formatting.py +0 -0
  254. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  255. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/log_stream_processor.py +0 -0
  256. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  257. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  258. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  259. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/result.py +0 -0
  260. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/retryable_http.py +0 -0
  261. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/session_token_manager.py +0 -0
  262. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  263. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/spcs_attribution_utils.py +0 -0
  264. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  265. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  266. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_ingestor.py +0 -0
  267. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/data/data_source.py +0 -0
  268. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/data/ingestor_utils.py +0 -0
  269. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/__init__.py +0 -0
  270. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_factory.py +0 -0
  271. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  272. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/dataset/dataset_reader.py +0 -0
  273. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/__init__.py +0 -0
  274. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/access_manager.py +0 -0
  275. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/entity.py +0 -0
  276. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  277. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  278. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  279. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  280. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  281. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  282. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  283. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  284. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  285. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  286. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  287. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  288. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  289. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  290. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  291. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  292. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  293. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  294. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  295. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  296. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  297. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  298. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/parquet_parser.py +0 -0
  299. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/snowfs.py +0 -0
  300. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/stage_fs.py +0 -0
  301. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/tf_dataset.py +0 -0
  302. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/fileset/torch_datapipe.py +0 -0
  303. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/lineage/__init__.py +0 -0
  304. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/lineage/lineage_node.py +0 -0
  305. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/__init__.py +0 -0
  306. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_api.py +0 -0
  307. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  308. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  309. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/_base.py +0 -0
  310. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/model.py +0 -0
  311. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  312. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/stage.py +0 -0
  313. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_client/sql/tag.py +0 -0
  314. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/base_image_builder.py +0 -0
  315. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/client_image_builder.py +0 -0
  316. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/docker_context.py +0 -0
  317. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/gunicorn_run.sh +0 -0
  318. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/inference_server/main.py +0 -0
  319. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/dockerfile_template +0 -0
  320. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/image_build_job_spec_template +0 -0
  321. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/image_builds/templates/kaniko_shell_script_template +0 -0
  322. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/deploy_options.py +0 -0
  323. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/instance_types.py +0 -0
  324. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template +0 -0
  325. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template_with_model +0 -0
  326. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/utils/constants.py +0 -0
  327. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/utils/snowservice_client.py +0 -0
  328. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/warehouse/deploy.py +0 -0
  329. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_deploy_client/warehouse/infer_template.py +0 -0
  330. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  331. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  332. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  333. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  334. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  335. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  336. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  337. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handler.py +0 -0
  338. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  339. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  340. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  341. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  342. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  343. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  344. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  345. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/_core_requirements.py +0 -0
  346. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -0
  347. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  348. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  349. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  350. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  351. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  352. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  353. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  354. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  355. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/core.py +0 -0
  356. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  357. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  358. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  359. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  360. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/custom_model.py +0 -0
  361. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/deploy_platforms.py +0 -0
  362. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/model_signature.py +0 -0
  363. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  364. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  365. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_handlers.py +0 -0
  366. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_trainer.py +0 -0
  367. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  368. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  369. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  370. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  371. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  372. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  373. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  374. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/compose/__init__.py +0 -0
  375. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  376. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  377. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  378. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  379. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  380. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/framework/_utils.py +0 -0
  381. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/framework/base.py +0 -0
  382. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  383. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/__init__.py +0 -0
  384. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  385. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  386. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  387. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  388. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  389. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  390. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  391. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/classification.py +0 -0
  392. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  393. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  394. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  395. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  396. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/metrics/regression.py +0 -0
  397. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  398. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  399. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  400. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  401. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  402. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  403. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  404. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  405. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  406. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  407. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  408. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  409. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  410. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  411. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  412. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  413. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  414. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  415. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  416. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  417. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  418. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  419. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  420. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/svm/__init__.py +0 -0
  421. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/tree/__init__.py +0 -0
  422. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  423. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/monitoring/monitor.py +0 -0
  424. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/monitoring/shap.py +0 -0
  425. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/__init__.py +0 -0
  426. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_initial_schema.py +0 -0
  427. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema.py +0 -0
  428. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema_upgrade_plans.py +0 -0
  429. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/registry/_schema_version_manager.py +0 -0
  430. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/utils/connection_params.py +0 -0
  431. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/utils/sparse.py +0 -0
  432. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake/ml/utils/sql_client.py +0 -0
  433. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  434. {snowflake_ml_python-1.6.1 → snowflake_ml_python-1.6.2}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,26 @@
1
1
  # Release History
2
2
 
3
- ## 1.6.1 (TBD)
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)
4
24
 
5
25
  ### Bug Fixes
6
26
 
@@ -17,7 +37,6 @@
17
37
  ### New Features
18
38
 
19
39
  - 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
40
  - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
22
41
  - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
23
42
  - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
@@ -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.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,27 @@ 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.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)
377
397
 
378
398
  ### Bug Fixes
379
399
 
@@ -390,7 +410,6 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
390
410
  ### New Features
391
411
 
392
412
  - 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
413
  - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
395
414
  - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
396
415
  - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
@@ -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"
@@ -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
@@ -10,9 +10,11 @@ SF_QUOTED_IDENTIFIER = '"(?:[^"]|"")*"'
10
10
  _SF_IDENTIFIER = f"({_SF_UNQUOTED_CASE_INSENSITIVE_IDENTIFIER}|{SF_QUOTED_IDENTIFIER})"
11
11
  SF_IDENTIFIER_RE = re.compile(_SF_IDENTIFIER)
12
12
  _SF_SCHEMA_LEVEL_OBJECT = (
13
- rf"(?:(?:(?P<db>{_SF_IDENTIFIER})\.)?(?P<schema>{_SF_IDENTIFIER})\.)?(?P<object>{_SF_IDENTIFIER})(?P<others>.*)"
13
+ rf"(?:(?:(?P<db>{_SF_IDENTIFIER})\.)?(?P<schema>{_SF_IDENTIFIER})\.)?(?P<object>{_SF_IDENTIFIER})"
14
14
  )
15
+ _SF_STAGE_PATH = rf"{_SF_SCHEMA_LEVEL_OBJECT}(?P<path>.*)"
15
16
  _SF_SCHEMA_LEVEL_OBJECT_RE = re.compile(_SF_SCHEMA_LEVEL_OBJECT)
17
+ _SF_STAGE_PATH_RE = re.compile(_SF_STAGE_PATH)
16
18
 
17
19
  UNQUOTED_CASE_INSENSITIVE_RE = re.compile(f"^({_SF_UNQUOTED_CASE_INSENSITIVE_IDENTIFIER})$")
18
20
  UNQUOTED_CASE_SENSITIVE_RE = re.compile(f"^({_SF_UNQUOTED_CASE_SENSITIVE_IDENTIFIER})$")
@@ -139,29 +141,61 @@ def rename_to_valid_snowflake_identifier(name: str) -> str:
139
141
 
140
142
 
141
143
  def parse_schema_level_object_identifier(
144
+ object_name: str,
145
+ ) -> Tuple[Union[str, Any], Union[str, Any], Union[str, Any]]:
146
+ """Parse a string which starts with schema level object.
147
+
148
+ Args:
149
+ object_name: A string starts with a schema level object path, which is in the format
150
+ '<db>.<schema>.<object_name>'. Here, '<db>', '<schema>' and '<object_name>' are all snowflake identifiers.
151
+
152
+ Returns:
153
+ A tuple of 3 strings in the form of (db, schema, object_name).
154
+
155
+ Raises:
156
+ ValueError: If the id is invalid.
157
+ """
158
+ res = _SF_SCHEMA_LEVEL_OBJECT_RE.fullmatch(object_name)
159
+ if not res:
160
+ raise ValueError(
161
+ "Invalid identifier because it does not follow the pattern. "
162
+ f"It should start with [[database.]schema.]object. Getting {object_name}"
163
+ )
164
+ return (
165
+ res.group("db"),
166
+ res.group("schema"),
167
+ res.group("object"),
168
+ )
169
+
170
+
171
+ def parse_snowflake_stage_path(
142
172
  path: str,
143
173
  ) -> Tuple[Union[str, Any], Union[str, Any], Union[str, Any], Union[str, Any]]:
144
- """Parse a string which starts with schema level object.
174
+ """Parse a string which represents a snowflake stage path.
145
175
 
146
176
  Args:
147
- path: A string starts with a schema level object path, which is in the format '<db>.<schema>.<object_name>'.
148
- Here, '<db>', '<schema>' and '<object_name>' are all snowflake identifiers.
177
+ path: A string starts with a schema level object path, which is in the format
178
+ '<db>.<schema>.<object_name><path>'. Here, '<db>', '<schema>' and '<object_name>' are all snowflake
179
+ identifiers.
149
180
 
150
181
  Returns:
151
- A tuple of 4 strings in the form of (db, schema, object_name, others). 'db', 'schema', 'object_name' are parsed
152
- from the schema level object and 'others' are all the content post to the object.
182
+ A tuple of 4 strings in the form of (db, schema, object_name, path). 'db', 'schema', 'object_name' are parsed
183
+ from the schema level object and 'path' are all the content post to the object.
153
184
 
154
185
  Raises:
155
186
  ValueError: If the id is invalid.
156
187
  """
157
- res = _SF_SCHEMA_LEVEL_OBJECT_RE.fullmatch(path)
188
+ res = _SF_STAGE_PATH_RE.fullmatch(path)
158
189
  if not res:
159
- raise ValueError(f"Invalid identifier. It should start with database.schema.object. Getting {path}")
190
+ raise ValueError(
191
+ "Invalid identifier because it does not follow the pattern. "
192
+ f"It should start with [[database.]schema.]object. Getting {path}"
193
+ )
160
194
  return (
161
195
  res.group("db"),
162
196
  res.group("schema"),
163
197
  res.group("object"),
164
- res.group("others"),
198
+ res.group("path"),
165
199
  )
166
200
 
167
201
 
@@ -175,8 +209,11 @@ def is_fully_qualified_name(name: str) -> bool:
175
209
  Returns:
176
210
  bool: True if the name is fully qualified, False otherwise.
177
211
  """
178
- res = parse_schema_level_object_identifier(name)
179
- return res[0] is not None and res[1] is not None and res[2] is not None and not res[3]
212
+ try:
213
+ res = parse_schema_level_object_identifier(name)
214
+ return all(res)
215
+ except ValueError:
216
+ return False
180
217
 
181
218
 
182
219
  def get_schema_level_object_identifier(
@@ -2,7 +2,7 @@ import enum
2
2
  from typing import Any, Dict, Optional, TypedDict, cast
3
3
 
4
4
  from packaging import version
5
- from typing_extensions import Required
5
+ from typing_extensions import NotRequired, Required
6
6
 
7
7
  from snowflake.ml._internal.utils import query_result_checker
8
8
  from snowflake.snowpark import session
@@ -52,7 +52,7 @@ class SnowflakeCloudType(enum.Enum):
52
52
 
53
53
 
54
54
  class SnowflakeRegion(TypedDict):
55
- region_group: Required[str]
55
+ region_group: NotRequired[str]
56
56
  snowflake_region: Required[str]
57
57
  cloud: Required[SnowflakeCloudType]
58
58
  region: Required[str]
@@ -64,23 +64,33 @@ def get_regions(
64
64
  ) -> Dict[str, SnowflakeRegion]:
65
65
  res = (
66
66
  query_result_checker.SqlResultValidator(sess, "SHOW REGIONS", statement_params=statement_params)
67
- .has_column("region_group")
68
67
  .has_column("snowflake_region")
69
68
  .has_column("cloud")
70
69
  .has_column("region")
71
70
  .has_column("display_name")
72
71
  .validate()
73
72
  )
74
- return {
75
- f"{r.region_group}.{r.snowflake_region}": SnowflakeRegion(
76
- region_group=r.region_group,
77
- snowflake_region=r.snowflake_region,
78
- cloud=SnowflakeCloudType.from_value(r.cloud),
79
- region=r.region,
80
- display_name=r.display_name,
81
- )
82
- for r in res
83
- }
73
+ res_dict = {}
74
+ for r in res:
75
+ if hasattr(r, "region_group") and r.region_group:
76
+ key = f"{r.region_group}.{r.snowflake_region}"
77
+ res_dict[key] = SnowflakeRegion(
78
+ region_group=r.region_group,
79
+ snowflake_region=r.snowflake_region,
80
+ cloud=SnowflakeCloudType.from_value(r.cloud),
81
+ region=r.region,
82
+ display_name=r.display_name,
83
+ )
84
+ else:
85
+ key = r.snowflake_region
86
+ res_dict[key] = SnowflakeRegion(
87
+ snowflake_region=r.snowflake_region,
88
+ cloud=SnowflakeCloudType.from_value(r.cloud),
89
+ region=r.region,
90
+ display_name=r.display_name,
91
+ )
92
+
93
+ return res_dict
84
94
 
85
95
 
86
96
  def get_current_region_id(sess: session.Session, *, statement_params: Optional[Dict[str, Any]] = None) -> str:
@@ -84,7 +84,7 @@ def to_sql_identifiers(list_of_str: List[str], *, case_sensitive: bool = False)
84
84
  def parse_fully_qualified_name(
85
85
  name: str,
86
86
  ) -> Tuple[Optional[SqlIdentifier], Optional[SqlIdentifier], SqlIdentifier]:
87
- db, schema, object, _ = identifier.parse_schema_level_object_identifier(name)
87
+ db, schema, object = identifier.parse_schema_level_object_identifier(name)
88
88
 
89
89
  assert name is not None, f"Unable parse the input name `{name}` as fully qualified."
90
90
  return (
@@ -1,7 +1,8 @@
1
1
  from typing import Any, Dict, List, Optional, Tuple
2
2
 
3
3
  from snowflake import snowpark
4
- from snowflake.ml._internal.utils import formatting, query_result_checker
4
+ from snowflake.ml._internal.utils import formatting, identifier, query_result_checker
5
+ from snowflake.snowpark import types
5
6
 
6
7
  """Table_manager is a set of utils that helps create tables.
7
8
 
@@ -104,3 +105,20 @@ def get_table_schema(session: snowpark.Session, table_name: str, qualified_schem
104
105
  for row in result:
105
106
  schema_dict[row["name"]] = row["type"]
106
107
  return schema_dict
108
+
109
+
110
+ def get_table_schema_types(
111
+ session: snowpark.Session,
112
+ database: str,
113
+ schema: str,
114
+ table_name: str,
115
+ ) -> Dict[str, types.DataType]:
116
+ fully_qualified_table_name = identifier.get_schema_level_object_identifier(
117
+ db=database, schema=schema, object_name=table_name
118
+ )
119
+ struct_fields: List[types.StructField] = session.table(fully_qualified_table_name).schema.fields
120
+
121
+ schema_dict: Dict[str, types.DataType] = {}
122
+ for field in struct_fields:
123
+ schema_dict[field.name] = field.datatype
124
+ return schema_dict
@@ -53,7 +53,7 @@ def get_uri_scheme(uri: str) -> str:
53
53
  def get_uri_from_snowflake_stage_path(stage_path: str) -> str:
54
54
  """Generates a URI from Snowflake stage path."""
55
55
  assert stage_path.startswith("@")
56
- (db, schema, stage, path) = identifier.parse_schema_level_object_identifier(
56
+ (db, schema, stage, path) = identifier.parse_snowflake_stage_path(
57
57
  posixpath.normpath(identifier.remove_prefix(stage_path, "@"))
58
58
  )
59
59
  return urlunparse(
@@ -70,7 +70,7 @@ def get_uri_from_snowflake_stage_path(stage_path: str) -> str:
70
70
 
71
71
  def get_stage_and_path(stage_path: str) -> Tuple[str, str]:
72
72
  assert stage_path.startswith("@"), f"stage path should start with @, actual: {stage_path}"
73
- (db, schema, stage, path) = identifier.parse_schema_level_object_identifier(
73
+ (db, schema, stage, path) = identifier.parse_snowflake_stage_path(
74
74
  posixpath.normpath(identifier.remove_prefix(stage_path, "@"))
75
75
  )
76
76
  full_qualified_stage = "@" + identifier.get_schema_level_object_identifier(db, schema, stage)
@@ -1,3 +1,4 @@
1
+ import os
1
2
  from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Type, TypeVar
2
3
 
3
4
  import numpy.typing as npt
@@ -7,6 +8,10 @@ from snowflake import snowpark
7
8
  from snowflake.ml._internal import telemetry
8
9
  from snowflake.ml.data import data_ingestor, data_source
9
10
  from snowflake.ml.data._internal.arrow_ingestor import ArrowIngestor
11
+ from snowflake.ml.modeling._internal.constants import (
12
+ IN_ML_RUNTIME_ENV_VAR,
13
+ USE_OPTIMIZED_DATA_INGESTOR,
14
+ )
10
15
 
11
16
  if TYPE_CHECKING:
12
17
  import pandas as pd
@@ -142,32 +147,41 @@ class DataConnector:
142
147
  Returns:
143
148
  A Pytorch iterable datapipe that yield data.
144
149
  """
145
- from torch.utils.data.datapipes import iter as torch_iter
150
+ from snowflake.ml.data import torch_utils
146
151
 
147
- return torch_iter.IterableWrapper( # type: ignore[no-untyped-call]
148
- self._ingestor.to_batches(batch_size, shuffle, drop_last_batch)
152
+ return torch_utils.TorchDataPipeWrapper(
153
+ self._ingestor, batch_size=batch_size, shuffle=shuffle, drop_last=drop_last_batch
149
154
  )
150
155
 
151
156
  @telemetry.send_api_usage_telemetry(
152
157
  project=_PROJECT,
153
158
  subproject_extractor=lambda self: type(self).__name__,
154
- func_params_to_log=["shuffle"],
159
+ func_params_to_log=["batch_size", "shuffle", "drop_last_batch"],
155
160
  )
156
- def to_torch_dataset(self, *, shuffle: bool = False) -> "torch_data.IterableDataset": # type: ignore[type-arg]
161
+ def to_torch_dataset(
162
+ self, *, batch_size: int = 1, shuffle: bool = False, drop_last_batch: bool = True
163
+ ) -> "torch_data.IterableDataset": # type: ignore[type-arg]
157
164
  """Transform the Snowflake data into a PyTorch Iterable Dataset to be used with a DataLoader.
158
165
 
159
166
  Return a PyTorch Dataset which iterates on rows of data.
160
167
 
161
168
  Args:
169
+ batch_size: It specifies the size of each data batch which will be yielded in the result dataset.
170
+ Batching is pushed down to data ingestion level which may be more performant than DataLoader
171
+ batching.
162
172
  shuffle: It specifies whether the data will be shuffled. If True, files will be shuffled, and
163
173
  rows in each file will also be shuffled.
174
+ drop_last_batch: Whether the last batch of data should be dropped. If set to be true,
175
+ then the last batch will get dropped if its size is smaller than the given batch_size.
164
176
 
165
177
  Returns:
166
178
  A PyTorch Iterable Dataset that yields data.
167
179
  """
168
- from snowflake.ml.data import torch_dataset
180
+ from snowflake.ml.data import torch_utils
169
181
 
170
- return torch_dataset.TorchDataset(self._ingestor, shuffle)
182
+ return torch_utils.TorchDatasetWrapper(
183
+ self._ingestor, batch_size=batch_size, shuffle=shuffle, drop_last=drop_last_batch
184
+ )
171
185
 
172
186
  @telemetry.send_api_usage_telemetry(
173
187
  project=_PROJECT,
@@ -184,3 +198,15 @@ class DataConnector:
184
198
  A Pandas DataFrame.
185
199
  """
186
200
  return self._ingestor.to_pandas(limit)
201
+
202
+
203
+ # Switch to use Runtime's Data Ingester if running in ML runtime
204
+ # Fail silently if the data ingester is not found
205
+ if os.getenv(IN_ML_RUNTIME_ENV_VAR) and os.getenv(USE_OPTIMIZED_DATA_INGESTOR):
206
+ try:
207
+ from runtime_external_entities import get_ingester_class
208
+
209
+ DataConnector.DEFAULT_INGESTOR_CLASS = get_ingester_class()
210
+ except ImportError:
211
+ """Runtime Default Ingester not found, ignore"""
212
+ pass