snowflake-ml-python 1.8.3__tar.gz → 1.8.4__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 (426) hide show
  1. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/CHANGELOG.md +26 -0
  2. {snowflake_ml_python-1.8.3/snowflake_ml_python.egg-info → snowflake_ml_python-1.8.4}/PKG-INFO +40 -8
  3. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/pyproject.toml +5 -3
  4. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/__init__.py +7 -1
  5. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/platform_capabilities.py +13 -11
  6. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/identifier.py +2 -2
  7. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/constants.py +1 -1
  8. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/payload_utils.py +39 -30
  9. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +4 -4
  10. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +1 -1
  11. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/spec_utils.py +1 -1
  12. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/decorators.py +6 -0
  13. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/job.py +63 -16
  14. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/manager.py +50 -16
  15. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/model/model_version_impl.py +1 -1
  16. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/service_ops.py +26 -14
  17. snowflake_ml_python-1.8.4/snowflake/ml/model/_client/service/model_deployment_spec.py +410 -0
  18. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +25 -0
  19. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/service.py +4 -13
  20. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_composer.py +41 -18
  21. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/_utils.py +32 -2
  22. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/custom.py +1 -1
  23. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/pytorch.py +1 -2
  24. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/sklearn.py +100 -41
  25. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +7 -4
  26. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/torchscript.py +2 -2
  27. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/xgboost.py +16 -7
  28. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_meta.py +2 -1
  29. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +1 -0
  30. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +4 -4
  31. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/dmatrix_handler.py +15 -2
  32. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/custom_model.py +17 -4
  33. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/model_signature.py +3 -3
  34. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +9 -1
  35. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/affinity_propagation.py +9 -1
  36. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +9 -1
  37. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/birch.py +9 -1
  38. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/bisecting_k_means.py +9 -1
  39. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/dbscan.py +9 -1
  40. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/feature_agglomeration.py +9 -1
  41. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/k_means.py +9 -1
  42. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/mean_shift.py +9 -1
  43. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +9 -1
  44. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/optics.py +9 -1
  45. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_biclustering.py +9 -1
  46. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_clustering.py +9 -1
  47. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_coclustering.py +9 -1
  48. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/column_transformer.py +9 -1
  49. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/transformed_target_regressor.py +9 -1
  50. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/elliptic_envelope.py +9 -1
  51. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/empirical_covariance.py +9 -1
  52. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/graphical_lasso.py +9 -1
  53. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +9 -1
  54. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/ledoit_wolf.py +9 -1
  55. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/min_cov_det.py +9 -1
  56. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/oas.py +9 -1
  57. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/shrunk_covariance.py +9 -1
  58. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/dictionary_learning.py +9 -1
  59. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/factor_analysis.py +9 -1
  60. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/fast_ica.py +9 -1
  61. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/incremental_pca.py +9 -1
  62. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/kernel_pca.py +9 -1
  63. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +9 -1
  64. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +9 -1
  65. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/pca.py +9 -1
  66. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/sparse_pca.py +9 -1
  67. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/truncated_svd.py +9 -1
  68. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +9 -1
  69. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +9 -1
  70. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +9 -1
  71. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +9 -1
  72. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/bagging_classifier.py +9 -1
  73. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/bagging_regressor.py +9 -1
  74. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +9 -1
  75. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +9 -1
  76. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +9 -1
  77. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +9 -1
  78. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +9 -1
  79. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +9 -1
  80. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/isolation_forest.py +9 -1
  81. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +9 -1
  82. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +9 -1
  83. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/stacking_regressor.py +9 -1
  84. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/voting_classifier.py +9 -1
  85. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/voting_regressor.py +9 -1
  86. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +9 -1
  87. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fdr.py +9 -1
  88. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fpr.py +9 -1
  89. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fwe.py +9 -1
  90. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_k_best.py +9 -1
  91. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_percentile.py +9 -1
  92. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +9 -1
  93. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/variance_threshold.py +9 -1
  94. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +9 -1
  95. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +9 -1
  96. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/iterative_imputer.py +9 -1
  97. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/knn_imputer.py +9 -1
  98. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/missing_indicator.py +9 -1
  99. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +9 -1
  100. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/nystroem.py +9 -1
  101. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +9 -1
  102. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +9 -1
  103. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +9 -1
  104. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +9 -1
  105. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +9 -1
  106. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +9 -1
  107. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ard_regression.py +9 -1
  108. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +9 -1
  109. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/elastic_net.py +9 -1
  110. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +9 -1
  111. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/gamma_regressor.py +9 -1
  112. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/huber_regressor.py +9 -1
  113. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lars.py +9 -1
  114. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lars_cv.py +9 -1
  115. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso.py +9 -1
  116. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_cv.py +9 -1
  117. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars.py +9 -1
  118. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +9 -1
  119. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +9 -1
  120. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/linear_regression.py +9 -1
  121. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/logistic_regression.py +9 -1
  122. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +9 -1
  123. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +9 -1
  124. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +9 -1
  125. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +9 -1
  126. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +9 -1
  127. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +9 -1
  128. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +9 -1
  129. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +9 -1
  130. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/perceptron.py +9 -1
  131. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/poisson_regressor.py +9 -1
  132. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ransac_regressor.py +9 -1
  133. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge.py +9 -1
  134. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_classifier.py +9 -1
  135. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +9 -1
  136. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_cv.py +9 -1
  137. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_classifier.py +9 -1
  138. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +9 -1
  139. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_regressor.py +9 -1
  140. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +9 -1
  141. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +9 -1
  142. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/isomap.py +9 -1
  143. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/mds.py +9 -1
  144. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/spectral_embedding.py +9 -1
  145. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/tsne.py +9 -1
  146. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +9 -1
  147. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/gaussian_mixture.py +9 -1
  148. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +9 -1
  149. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +9 -1
  150. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/output_code_classifier.py +9 -1
  151. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +9 -1
  152. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +9 -1
  153. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/complement_nb.py +9 -1
  154. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +9 -1
  155. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +9 -1
  156. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +9 -1
  157. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +9 -1
  158. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/kernel_density.py +9 -1
  159. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +9 -1
  160. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/nearest_centroid.py +9 -1
  161. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +9 -1
  162. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +9 -1
  163. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +9 -1
  164. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +9 -1
  165. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +9 -1
  166. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/mlp_classifier.py +9 -1
  167. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/mlp_regressor.py +9 -1
  168. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/polynomial_features.py +9 -1
  169. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/label_propagation.py +9 -1
  170. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/label_spreading.py +9 -1
  171. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/linear_svc.py +9 -1
  172. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/linear_svr.py +9 -1
  173. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/nu_svc.py +9 -1
  174. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/nu_svr.py +9 -1
  175. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/svc.py +9 -1
  176. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/svr.py +9 -1
  177. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/decision_tree_classifier.py +9 -1
  178. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/decision_tree_regressor.py +9 -1
  179. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/extra_tree_classifier.py +9 -1
  180. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/extra_tree_regressor.py +9 -1
  181. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgb_classifier.py +9 -1
  182. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgb_regressor.py +9 -1
  183. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +9 -1
  184. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +9 -1
  185. snowflake_ml_python-1.8.4/snowflake/ml/monitoring/explain_visualize.py +286 -0
  186. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/_manager/model_manager.py +23 -2
  187. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/registry.py +10 -9
  188. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/version.py +1 -1
  189. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4/snowflake_ml_python.egg-info}/PKG-INFO +40 -8
  190. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
  191. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/requires.txt +15 -7
  192. snowflake_ml_python-1.8.3/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -240
  193. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/LICENSE.txt +0 -0
  194. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/README.md +0 -0
  195. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/setup.cfg +0 -0
  196. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_classify_text.py +0 -0
  197. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_complete.py +0 -0
  198. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_embed_text_1024.py +0 -0
  199. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_embed_text_768.py +0 -0
  200. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_extract_answer.py +0 -0
  201. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_finetune.py +0 -0
  202. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_sentiment.py +0 -0
  203. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_sse_client.py +0 -0
  204. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_summarize.py +0 -0
  205. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_translate.py +0 -0
  206. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_util.py +0 -0
  207. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/env.py +0 -0
  208. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/env_utils.py +0 -0
  209. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  210. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  211. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  212. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  213. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  214. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  215. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  216. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  217. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  218. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/file_utils.py +0 -0
  219. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  220. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  221. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  222. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  223. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/init_utils.py +0 -0
  224. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  225. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/migrator_utils.py +0 -0
  226. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  227. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/telemetry.py +0 -0
  228. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/type_utils.py +0 -0
  229. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  230. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/formatting.py +0 -0
  231. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  232. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  233. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  234. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  235. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  236. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/result.py +0 -0
  237. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  238. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  239. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  240. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  241. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  242. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  243. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/__init__.py +0 -0
  244. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  245. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_connector.py +0 -0
  246. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_ingestor.py +0 -0
  247. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_source.py +0 -0
  248. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/ingestor_utils.py +0 -0
  249. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/torch_utils.py +0 -0
  250. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/__init__.py +0 -0
  251. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset.py +0 -0
  252. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_factory.py +0 -0
  253. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  254. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_reader.py +0 -0
  255. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/__init__.py +0 -0
  256. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/access_manager.py +0 -0
  257. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/entity.py +0 -0
  258. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  259. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  260. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  261. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  262. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  263. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  264. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  265. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  266. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  267. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  268. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  269. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  270. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  271. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  272. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  273. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  274. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  275. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  276. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  277. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  278. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  279. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  280. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/feature_store.py +0 -0
  281. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/feature_view.py +0 -0
  282. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  283. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/fileset.py +0 -0
  284. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/sfcfs.py +0 -0
  285. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/snowfs.py +0 -0
  286. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/stage_fs.py +0 -0
  287. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/__init__.py +0 -0
  288. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
  289. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  290. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  291. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  292. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/types.py +0 -0
  293. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/lineage/__init__.py +0 -0
  294. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/lineage/lineage_node.py +0 -0
  295. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/__init__.py +0 -0
  296. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  297. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  298. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  299. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/_base.py +0 -0
  300. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/model.py +0 -0
  301. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  302. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/stage.py +0 -0
  303. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/tag.py +0 -0
  304. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  305. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  306. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  307. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  308. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  309. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  310. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  311. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  312. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  313. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  314. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handler.py +0 -0
  315. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  316. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  317. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +0 -0
  318. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  319. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  320. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  321. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  322. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  323. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  324. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  325. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  326. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  327. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  328. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  329. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  330. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  331. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  332. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_packager.py +0 -0
  333. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  334. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  335. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  336. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  337. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/core.py +0 -0
  338. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  339. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  340. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  341. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  342. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  343. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/utils.py +0 -0
  344. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  345. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/type_hints.py +0 -0
  346. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  347. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  348. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  349. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  350. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  351. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  352. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  353. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  354. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  355. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  356. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  357. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  358. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  359. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  360. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  361. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/__init__.py +0 -0
  362. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  363. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  364. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  365. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  366. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  367. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/framework/_utils.py +0 -0
  368. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/framework/base.py +0 -0
  369. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  370. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/__init__.py +0 -0
  371. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  372. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  373. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  374. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  375. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  376. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  377. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  378. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/classification.py +0 -0
  379. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  380. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  381. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  382. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  383. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/regression.py +0 -0
  384. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  385. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  386. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  387. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  388. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  389. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  390. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  391. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  392. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  393. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  394. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  395. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  396. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  397. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  398. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  399. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  400. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  401. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  402. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  403. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  404. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  405. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  406. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  407. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  408. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  409. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/__init__.py +0 -0
  410. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/__init__.py +0 -0
  411. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  412. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  413. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  414. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  415. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  416. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  417. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/model_monitor.py +0 -0
  418. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/model_monitor_version.py +0 -0
  419. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/shap.py +0 -0
  420. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/__init__.py +0 -0
  421. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/authentication.py +0 -0
  422. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/connection_params.py +0 -0
  423. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/sparse.py +0 -0
  424. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/sql_client.py +0 -0
  425. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  426. {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,5 +1,30 @@
1
1
  # Release History
2
2
 
3
+ ## 1.8.4
4
+
5
+ ### Bug Fixes
6
+
7
+ - Registry: Default `enable_explainability` to True when the model can be deployed to Warehouse.
8
+ - Registry: Add `custom_model.partitioned_api` decorator and deprecate `partitioned_inference_api`.
9
+ - Registry: Fixed a bug when logging pytroch and tensorflow models that caused
10
+ `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
11
+
12
+ ### Breaking change
13
+
14
+ - ML Job: Updated property `id` to be fully qualified name; Introduced new property `name` to represent the ML Job name
15
+ - ML Job: Modified `list_jobs()` to return ML Job `name` instead of `id`
16
+ - Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
17
+ Snowpark Container Services, instead of just user warning.
18
+
19
+ ### New Features
20
+
21
+ - ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
22
+ `schema` parameters
23
+ - ML Job: Support querying by fully qualified name in `get_job()`
24
+ - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
25
+ - Explainability: Support explain for categorical transforms for sklearn pipeline
26
+ - Support categorical type for `xgboost.DMatrix` inputs.
27
+
3
28
  ## 1.8.3
4
29
 
5
30
  ### Bug Fixes
@@ -13,6 +38,7 @@
13
38
  as a list of strings
14
39
  - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
15
40
  - DataConnector: Removed PrPr decorators
41
+ - Registry: Default the target platform to warehouse when logging a partitioned model.
16
42
 
17
43
  ## 1.8.2
18
44
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.8.3
3
+ Version: 1.8.4
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:
@@ -236,7 +236,7 @@ License-File: LICENSE.txt
236
236
  Requires-Dist: absl-py<2,>=0.15
237
237
  Requires-Dist: anyio<5,>=3.5.0
238
238
  Requires-Dist: cachetools<6,>=3.1.1
239
- Requires-Dist: cloudpickle<3,>=2.0.0
239
+ Requires-Dist: cloudpickle>=2.0.0
240
240
  Requires-Dist: cryptography
241
241
  Requires-Dist: fsspec[http]<2026,>=2024.6.1
242
242
  Requires-Dist: importlib_resources<7,>=6.1.1
@@ -250,27 +250,31 @@ Requires-Dist: pytimeparse<2,>=1.1.8
250
250
  Requires-Dist: pyyaml<7,>=6.0
251
251
  Requires-Dist: retrying<2,>=1.3.3
252
252
  Requires-Dist: s3fs<2026,>=2024.6.1
253
- Requires-Dist: scikit-learn<1.6,>=1.4
253
+ Requires-Dist: scikit-learn<1.6
254
254
  Requires-Dist: scipy<2,>=1.9
255
- Requires-Dist: snowflake-connector-python[pandas]<4,>=3.12.0
255
+ Requires-Dist: shap<1,>=0.46.0
256
+ Requires-Dist: snowflake-connector-python[pandas]<4,>=3.14.0
256
257
  Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
257
258
  Requires-Dist: snowflake.core<2,>=1.0.2
258
259
  Requires-Dist: sqlparse<1,>=0.4
259
260
  Requires-Dist: typing-extensions<5,>=4.1.0
260
- Requires-Dist: xgboost<3,>=1.7.3
261
261
  Provides-Extra: all
262
+ Requires-Dist: altair<6,>=5; extra == "all"
262
263
  Requires-Dist: catboost<2,>=1.2.0; extra == "all"
263
264
  Requires-Dist: keras<4,>=2.0.0; extra == "all"
264
265
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "all"
265
266
  Requires-Dist: mlflow<3,>=2.16.0; extra == "all"
266
267
  Requires-Dist: sentence-transformers<4,>=2.7.0; extra == "all"
267
268
  Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "all"
268
- Requires-Dist: shap<1,>=0.46.0; extra == "all"
269
+ Requires-Dist: streamlit<2,>=1.44.0; extra == "all"
269
270
  Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
270
271
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
271
272
  Requires-Dist: torch<3,>=2.0.1; extra == "all"
272
273
  Requires-Dist: torchdata<1,>=0.4; extra == "all"
273
274
  Requires-Dist: transformers<5,>=4.39.3; extra == "all"
275
+ Requires-Dist: xgboost<3,>=1.7.3; extra == "all"
276
+ Provides-Extra: altair
277
+ Requires-Dist: altair<6,>=5; extra == "altair"
274
278
  Provides-Extra: catboost
275
279
  Requires-Dist: catboost<2,>=1.2.0; extra == "catboost"
276
280
  Provides-Extra: keras
@@ -281,8 +285,8 @@ Provides-Extra: lightgbm
281
285
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "lightgbm"
282
286
  Provides-Extra: mlflow
283
287
  Requires-Dist: mlflow<3,>=2.16.0; extra == "mlflow"
284
- Provides-Extra: shap
285
- Requires-Dist: shap<1,>=0.46.0; extra == "shap"
288
+ Provides-Extra: streamlit
289
+ Requires-Dist: streamlit<2,>=1.44.0; extra == "streamlit"
286
290
  Provides-Extra: tensorflow
287
291
  Requires-Dist: tensorflow<3,>=2.17.0; extra == "tensorflow"
288
292
  Provides-Extra: torch
@@ -294,6 +298,8 @@ Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
294
298
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
295
299
  Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
296
300
  Requires-Dist: transformers<5,>=4.39.3; extra == "transformers"
301
+ Provides-Extra: xgboost
302
+ Requires-Dist: xgboost<3,>=1.7.3; extra == "xgboost"
297
303
  Dynamic: license-file
298
304
 
299
305
  # Snowpark ML
@@ -404,6 +410,31 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
404
410
 
405
411
  # Release History
406
412
 
413
+ ## 1.8.4
414
+
415
+ ### Bug Fixes
416
+
417
+ - Registry: Default `enable_explainability` to True when the model can be deployed to Warehouse.
418
+ - Registry: Add `custom_model.partitioned_api` decorator and deprecate `partitioned_inference_api`.
419
+ - Registry: Fixed a bug when logging pytroch and tensorflow models that caused
420
+ `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
421
+
422
+ ### Breaking change
423
+
424
+ - ML Job: Updated property `id` to be fully qualified name; Introduced new property `name` to represent the ML Job name
425
+ - ML Job: Modified `list_jobs()` to return ML Job `name` instead of `id`
426
+ - Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
427
+ Snowpark Container Services, instead of just user warning.
428
+
429
+ ### New Features
430
+
431
+ - ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
432
+ `schema` parameters
433
+ - ML Job: Support querying by fully qualified name in `get_job()`
434
+ - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
435
+ - Explainability: Support explain for categorical transforms for sklearn pipeline
436
+ - Support categorical type for `xgboost.DMatrix` inputs.
437
+
407
438
  ## 1.8.3
408
439
 
409
440
  ### Bug Fixes
@@ -417,6 +448,7 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
448
  as a list of strings
418
449
  - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
419
450
  - DataConnector: Removed PrPr decorators
451
+ - Registry: Default the target platform to warehouse when logging a partitioned model.
420
452
 
421
453
  ## 1.8.2
422
454
 
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
8
8
  classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
9
9
  requires-python = ">=3.9, <3.13"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0,<3", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn>=1.4,<1.6", "scipy>=1.9,<2", "snowflake-connector-python[pandas]>=3.12.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
11
+ dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.6", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.14.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -24,15 +24,17 @@ Issues = "https://github.com/snowflakedb/snowflake-ml-python/issues"
24
24
  Changelog = "https://github.com/snowflakedb/snowflake-ml-python/blob/master/CHANGELOG.md"
25
25
 
26
26
  [project.optional-dependencies]
27
- all = [ "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "shap>=0.46.0,<1", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,<5",]
27
+ all = [ "altair>=5,<6", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "streamlit>=1.44.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,<5", "xgboost>=1.7.3,<3",]
28
+ altair = [ "altair>=5,<6",]
28
29
  catboost = [ "catboost>=1.2.0, <2",]
29
30
  keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
30
31
  lightgbm = [ "lightgbm>=4.1.0, <5",]
31
32
  mlflow = [ "mlflow>=2.16.0, <3",]
32
- shap = [ "shap>=0.46.0,<1",]
33
+ streamlit = [ "streamlit>=1.44.0,<2",]
33
34
  tensorflow = [ "tensorflow>=2.17.0,<3",]
34
35
  torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
35
36
  transformers = [ "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,<5",]
37
+ xgboost = [ "xgboost>=1.7.3,<3",]
36
38
 
37
39
  [tool.setuptools.package-data]
38
40
  "*" = [ "*",]
@@ -1,5 +1,10 @@
1
1
  from snowflake.cortex._classify_text import ClassifyText, classify_text
2
- from snowflake.cortex._complete import Complete, CompleteOptions, complete
2
+ from snowflake.cortex._complete import (
3
+ Complete,
4
+ CompleteOptions,
5
+ ConversationMessage,
6
+ complete,
7
+ )
3
8
  from snowflake.cortex._embed_text_768 import EmbedText768, embed_text_768
4
9
  from snowflake.cortex._embed_text_1024 import EmbedText1024, embed_text_1024
5
10
  from snowflake.cortex._extract_answer import ExtractAnswer, extract_answer
@@ -14,6 +19,7 @@ __all__ = [
14
19
  "Complete",
15
20
  "complete",
16
21
  "CompleteOptions",
22
+ "ConversationMessage",
17
23
  "EmbedText768",
18
24
  "embed_text_768",
19
25
  "EmbedText1024",
@@ -11,6 +11,9 @@ from snowflake.snowpark import (
11
11
  session as snowpark_session,
12
12
  )
13
13
 
14
+ LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
15
+ INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC"
16
+
14
17
 
15
18
  class PlatformCapabilities:
16
19
  """Class that retrieves platform feature values for the currently running server.
@@ -18,12 +21,12 @@ class PlatformCapabilities:
18
21
  Example usage:
19
22
  ```
20
23
  pc = PlatformCapabilities.get_instance(session)
21
- if pc.is_nested_function_enabled():
22
- # Nested functions are enabled.
23
- print("Nested functions are enabled.")
24
+ if pc.is_inlined_deployment_spec_enabled():
25
+ # Inline deployment spec is enabled.
26
+ print("Inline deployment spec is enabled.")
24
27
  else:
25
- # Nested functions are disabled.
26
- print("Nested functions are disabled or not supported.")
28
+ # Inline deployment spec is disabled.
29
+ print("Inline deployment spec is disabled or not supported.")
27
30
  ```
28
31
  """
29
32
 
@@ -50,9 +53,11 @@ class PlatformCapabilities:
50
53
 
51
54
  # For contextmanager, we need to have return type Iterator[Never]. However, Never type is introduced only in
52
55
  # Python 3.11. So, we are ignoring the type for this method.
56
+ _dummy_features: dict[str, Any] = {"dummy": "dummy"}
57
+
53
58
  @classmethod # type: ignore[arg-type]
54
59
  @contextmanager
55
- def mock_features(cls, features: dict[str, Any]) -> None: # type: ignore[misc]
60
+ def mock_features(cls, features: dict[str, Any] = _dummy_features) -> None: # type: ignore[misc]
56
61
  logging.debug(f"Setting mock features: {features}")
57
62
  cls.set_mock_features(features)
58
63
  try:
@@ -61,14 +66,11 @@ class PlatformCapabilities:
61
66
  logging.debug(f"Clearing mock features: {features}")
62
67
  cls.clear_mock_features()
63
68
 
64
- def is_nested_function_enabled(self) -> bool:
65
- return self._get_bool_feature("SPCS_MODEL_ENABLE_EMBEDDED_SERVICE_FUNCTIONS", False)
66
-
67
69
  def is_inlined_deployment_spec_enabled(self) -> bool:
68
- return self._get_bool_feature("ENABLE_INLINE_DEPLOYMENT_SPEC", False)
70
+ return self._get_bool_feature(INLINE_DEPLOYMENT_SPEC_PARAMETER, False)
69
71
 
70
72
  def is_live_commit_enabled(self) -> bool:
71
- return self._get_bool_feature("ENABLE_BUNDLE_MODULE_CHECKOUT", False)
73
+ return self._get_bool_feature(LIVE_COMMIT_PARAMETER, False)
72
74
 
73
75
  @staticmethod
74
76
  def _get_features(session: snowpark_session.Session) -> dict[str, Any]:
@@ -12,7 +12,7 @@ SF_IDENTIFIER_RE = re.compile(_SF_IDENTIFIER)
12
12
  _SF_SCHEMA_LEVEL_OBJECT = (
13
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
+ _SF_STAGE_PATH = rf"@?{_SF_SCHEMA_LEVEL_OBJECT}(?P<path>/.*)?"
16
16
  _SF_SCHEMA_LEVEL_OBJECT_RE = re.compile(_SF_SCHEMA_LEVEL_OBJECT)
17
17
  _SF_STAGE_PATH_RE = re.compile(_SF_STAGE_PATH)
18
18
 
@@ -197,7 +197,7 @@ def parse_snowflake_stage_path(
197
197
  res.group("db"),
198
198
  res.group("schema"),
199
199
  res.group("object"),
200
- res.group("path"),
200
+ res.group("path") or "",
201
201
  )
202
202
 
203
203
 
@@ -13,7 +13,7 @@ STAGE_VOLUME_MOUNT_PATH = "/mnt/app"
13
13
  DEFAULT_IMAGE_REPO = "/snowflake/images/snowflake_images"
14
14
  DEFAULT_IMAGE_CPU = "st_plat/runtime/x86/runtime_image/snowbooks"
15
15
  DEFAULT_IMAGE_GPU = "st_plat/runtime/x86/generic_gpu/runtime_image/snowbooks"
16
- DEFAULT_IMAGE_TAG = "1.0.1"
16
+ DEFAULT_IMAGE_TAG = "1.2.3"
17
17
  DEFAULT_ENTRYPOINT_PATH = "func.py"
18
18
 
19
19
  # Percent of container memory to allocate for /dev/shm volume
@@ -9,6 +9,7 @@ from pathlib import Path, PurePath
9
9
  from typing import Any, Callable, Optional, Union, cast, get_args, get_origin
10
10
 
11
11
  import cloudpickle as cp
12
+ from packaging import version
12
13
 
13
14
  from snowflake import snowpark
14
15
  from snowflake.ml.jobs._utils import constants, types
@@ -97,11 +98,18 @@ _STARTUP_SCRIPT_CODE = textwrap.dedent(
97
98
  head_info=$(python3 get_instance_ip.py "$SNOWFLAKE_SERVICE_NAME" --head)
98
99
  if [ $? -eq 0 ]; then
99
100
  # Parse the output using read
100
- read head_index head_ip <<< "$head_info"
101
+ read head_index head_ip head_status<<< "$head_info"
101
102
 
102
103
  # Use the parsed variables
103
104
  echo "Head Instance Index: $head_index"
104
105
  echo "Head Instance IP: $head_ip"
106
+ echo "Head Instance Status: $head_status"
107
+
108
+ # If the head status is not "READY" or "PENDING", exit early
109
+ if [ "$head_status" != "READY" ] && [ "$head_status" != "PENDING" ]; then
110
+ echo "Head instance status is not READY or PENDING. Exiting."
111
+ exit 0
112
+ fi
105
113
 
106
114
  else
107
115
  echo "Error: Failed to get head instance information."
@@ -278,17 +286,19 @@ class JobPayload:
278
286
  stage_path = PurePath(stage_path) if isinstance(stage_path, str) else stage_path
279
287
  source = resolve_source(self.source)
280
288
  entrypoint = resolve_entrypoint(source, self.entrypoint)
289
+ pip_requirements = self.pip_requirements or []
281
290
 
282
291
  # Create stage if necessary
283
292
  stage_name = stage_path.parts[0].lstrip("@")
284
293
  # Explicitly check if stage exists first since we may not have CREATE STAGE privilege
285
294
  try:
286
- session.sql(f"describe stage {stage_name}").collect()
295
+ session.sql("describe stage identifier(?)", params=[stage_name]).collect()
287
296
  except sp_exceptions.SnowparkSQLException:
288
297
  session.sql(
289
- f"create stage if not exists {stage_name}"
298
+ "create stage if not exists identifier(?)"
290
299
  " encryption = ( type = 'SNOWFLAKE_SSE' )"
291
- " comment = 'Created by snowflake.ml.jobs Python API'"
300
+ " comment = 'Created by snowflake.ml.jobs Python API'",
301
+ params=[stage_name],
292
302
  ).collect()
293
303
 
294
304
  # Upload payload to stage
@@ -301,6 +311,8 @@ class JobPayload:
301
311
  overwrite=True,
302
312
  )
303
313
  source = Path(entrypoint.file_path.parent)
314
+ if not any(r.startswith("cloudpickle") for r in pip_requirements):
315
+ pip_requirements.append(f"cloudpickle~={version.parse(cp.__version__).major}.0")
304
316
  elif source.is_dir():
305
317
  # Manually traverse the directory and upload each file, since Snowflake PUT
306
318
  # can't handle directories. Reduce the number of PUT operations by using
@@ -325,10 +337,10 @@ class JobPayload:
325
337
 
326
338
  # Upload requirements
327
339
  # TODO: Check if payload includes both a requirements.txt file and pip_requirements
328
- if self.pip_requirements:
340
+ if pip_requirements:
329
341
  # Upload requirements.txt to stage
330
342
  session.file.put_stream(
331
- io.BytesIO("\n".join(self.pip_requirements).encode()),
343
+ io.BytesIO("\n".join(pip_requirements).encode()),
332
344
  stage_location=stage_path.joinpath("requirements.txt").as_posix(),
333
345
  auto_compress=False,
334
346
  overwrite=True,
@@ -495,13 +507,6 @@ def generate_python_code(func: Callable[..., Any], source_code_display: bool = F
495
507
  # https://github.com/snowflakedb/snowpark-python/blob/main/src/snowflake/snowpark/_internal/udf_utils.py
496
508
  source_code_comment = _generate_source_code_comment(func) if source_code_display else ""
497
509
 
498
- func_code = f"""
499
- {source_code_comment}
500
-
501
- import pickle
502
- {_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(func).hex()}'))
503
- """
504
-
505
510
  arg_dict_name = "kwargs"
506
511
  if getattr(func, constants.IS_MLJOB_REMOTE_ATTR, None):
507
512
  param_code = f"{arg_dict_name} = {{}}"
@@ -509,25 +514,29 @@ import pickle
509
514
  param_code = _generate_param_handler_code(signature, arg_dict_name)
510
515
 
511
516
  return f"""
512
- ### Version guard to check compatibility across Python versions ###
513
- import os
514
517
  import sys
515
- import warnings
516
-
517
- if sys.version_info.major != {sys.version_info.major} or sys.version_info.minor != {sys.version_info.minor}:
518
- warnings.warn(
519
- "Python version mismatch: job was created using"
520
- " python{sys.version_info.major}.{sys.version_info.minor}"
521
- f" but runtime environment uses python{{sys.version_info.major}}.{{sys.version_info.minor}}."
522
- " Compatibility across Python versions is not guaranteed and may result in unexpected behavior."
523
- " This will be fixed in a future release; for now, please use Python version"
524
- f" {{sys.version_info.major}}.{{sys.version_info.minor}}.",
525
- RuntimeWarning,
526
- stacklevel=0,
527
- )
528
- ### End version guard ###
518
+ import pickle
529
519
 
530
- {func_code.strip()}
520
+ try:
521
+ {textwrap.indent(source_code_comment, ' ')}
522
+ {_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(func).hex()}'))
523
+ except (TypeError, pickle.PickleError):
524
+ if sys.version_info.major != {sys.version_info.major} or sys.version_info.minor != {sys.version_info.minor}:
525
+ raise RuntimeError(
526
+ "Failed to deserialize function due to Python version mismatch."
527
+ f" Runtime environment is Python {{sys.version_info.major}}.{{sys.version_info.minor}}"
528
+ " but function was serialized using Python {sys.version_info.major}.{sys.version_info.minor}."
529
+ ) from None
530
+ raise
531
+ except AttributeError as e:
532
+ if 'cloudpickle' in str(e):
533
+ import cloudpickle as cp
534
+ raise RuntimeError(
535
+ "Failed to deserialize function due to cloudpickle version mismatch."
536
+ f" Runtime environment uses cloudpickle=={{cp.__version__}}"
537
+ " but job was serialized using cloudpickle=={cp.__version__}."
538
+ ) from e
539
+ raise
531
540
 
532
541
  if __name__ == '__main__':
533
542
  {textwrap.indent(param_code, ' ')}
@@ -29,7 +29,7 @@ def get_self_ip() -> Optional[str]:
29
29
  return None
30
30
 
31
31
 
32
- def get_first_instance(service_name: str) -> Optional[tuple[str, str]]:
32
+ def get_first_instance(service_name: str) -> Optional[tuple[str, str, str]]:
33
33
  """Get the first instance of a batch job based on start time and instance ID.
34
34
 
35
35
  Args:
@@ -42,7 +42,7 @@ def get_first_instance(service_name: str) -> Optional[tuple[str, str]]:
42
42
 
43
43
  session = session_utils.get_session()
44
44
  df = session.sql(f"show service instances in service {service_name}")
45
- result = df.select('"instance_id"', '"ip_address"', '"start_time"').collect()
45
+ result = df.select('"instance_id"', '"ip_address"', '"start_time"', '"status"').collect()
46
46
 
47
47
  if not result:
48
48
  return None
@@ -57,7 +57,7 @@ def get_first_instance(service_name: str) -> Optional[tuple[str, str]]:
57
57
  ip_address = head_instance["ip_address"]
58
58
  try:
59
59
  socket.inet_aton(ip_address) # Validate IPv4 address
60
- return (head_instance["instance_id"], ip_address)
60
+ return (head_instance["instance_id"], ip_address, head_instance["status"])
61
61
  except OSError:
62
62
  logger.error(f"Error: Invalid IP address format: {ip_address}")
63
63
  return None
@@ -110,7 +110,7 @@ def main():
110
110
  head_info = get_first_instance(args.service_name)
111
111
  if head_info:
112
112
  # Print to stdout to allow capture but don't use logger
113
- sys.stdout.write(f"{head_info[0]} {head_info[1]}\n")
113
+ sys.stdout.write(" ".join(head_info) + "\n")
114
114
  sys.exit(0)
115
115
  time.sleep(args.retry_interval)
116
116
  # If we get here, we've timed out
@@ -59,7 +59,7 @@ class SimpleJSONEncoder(json.JSONEncoder):
59
59
  try:
60
60
  return super().default(obj)
61
61
  except TypeError:
62
- return str(obj)
62
+ return f"Unserializable object: {repr(obj)}"
63
63
 
64
64
 
65
65
  def run_script(script_path: str, *script_args: Any, main_func: Optional[str] = None) -> Any:
@@ -11,7 +11,7 @@ from snowflake.ml.jobs._utils import constants, types
11
11
  def _get_node_resources(session: snowpark.Session, compute_pool: str) -> types.ComputeResources:
12
12
  """Extract resource information for the specified compute pool"""
13
13
  # Get the instance family
14
- rows = session.sql(f"show compute pools like '{compute_pool}'").collect()
14
+ rows = session.sql("show compute pools like ?", params=[compute_pool]).collect()
15
15
  if not rows:
16
16
  raise ValueError(f"Compute pool '{compute_pool}' not found")
17
17
  instance_family: str = rows[0]["instance_family"]
@@ -26,6 +26,8 @@ def remote(
26
26
  env_vars: Optional[dict[str, str]] = None,
27
27
  num_instances: Optional[int] = None,
28
28
  enable_metrics: bool = False,
29
+ database: Optional[str] = None,
30
+ schema: Optional[str] = None,
29
31
  session: Optional[snowpark.Session] = None,
30
32
  ) -> Callable[[Callable[_Args, _ReturnValue]], Callable[_Args, jb.MLJob[_ReturnValue]]]:
31
33
  """
@@ -40,6 +42,8 @@ def remote(
40
42
  env_vars: Environment variables to set in container
41
43
  num_instances: The number of nodes in the job. If none specified, create a single node job.
42
44
  enable_metrics: Whether to enable metrics publishing for the job.
45
+ database: The database to use for the job.
46
+ schema: The schema to use for the job.
43
47
  session: The Snowpark session to use. If none specified, uses active session.
44
48
 
45
49
  Returns:
@@ -67,6 +71,8 @@ def remote(
67
71
  env_vars=env_vars,
68
72
  num_instances=num_instances,
69
73
  enable_metrics=enable_metrics,
74
+ database=database,
75
+ schema=schema,
70
76
  session=session,
71
77
  )
72
78
  assert isinstance(job, jb.MLJob), f"Unexpected job type: {type(job)}"