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.
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/CHANGELOG.md +26 -0
- {snowflake_ml_python-1.8.3/snowflake_ml_python.egg-info → snowflake_ml_python-1.8.4}/PKG-INFO +40 -8
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/pyproject.toml +5 -3
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/__init__.py +7 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/platform_capabilities.py +13 -11
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/identifier.py +2 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/constants.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/payload_utils.py +39 -30
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +4 -4
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/spec_utils.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/decorators.py +6 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/job.py +63 -16
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/manager.py +50 -16
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/model/model_version_impl.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/service_ops.py +26 -14
- snowflake_ml_python-1.8.4/snowflake/ml/model/_client/service/model_deployment_spec.py +410 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +25 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/service.py +4 -13
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_composer.py +41 -18
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/_utils.py +32 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/custom.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/pytorch.py +1 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/sklearn.py +100 -41
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +7 -4
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/torchscript.py +2 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/xgboost.py +16 -7
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_meta.py +2 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +1 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/dmatrix_handler.py +15 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/custom_model.py +17 -4
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/model_signature.py +3 -3
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/affinity_propagation.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/birch.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/bisecting_k_means.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/dbscan.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/feature_agglomeration.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/k_means.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/mean_shift.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/optics.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_biclustering.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_clustering.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/spectral_coclustering.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/column_transformer.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/transformed_target_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/elliptic_envelope.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/empirical_covariance.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/graphical_lasso.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/ledoit_wolf.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/min_cov_det.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/oas.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/shrunk_covariance.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/dictionary_learning.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/factor_analysis.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/fast_ica.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/incremental_pca.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/kernel_pca.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/pca.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/sparse_pca.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/truncated_svd.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/bagging_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/bagging_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/isolation_forest.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/stacking_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/voting_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/voting_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fdr.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fpr.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_fwe.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_k_best.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/select_percentile.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/variance_threshold.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/iterative_imputer.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/knn_imputer.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/missing_indicator.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/nystroem.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ard_regression.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/elastic_net.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/gamma_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/huber_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lars.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lars_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/linear_regression.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/logistic_regression.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +9 -1
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/perceptron.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/poisson_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ransac_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/ridge_cv.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/sgd_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/isomap.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/mds.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/spectral_embedding.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/tsne.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/gaussian_mixture.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/output_code_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/complement_nb.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/kernel_density.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/nearest_centroid.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/mlp_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/mlp_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/polynomial_features.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/label_propagation.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/label_spreading.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/linear_svc.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/linear_svr.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/nu_svc.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/nu_svr.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/svc.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/svr.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/decision_tree_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/decision_tree_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/extra_tree_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/extra_tree_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgb_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgb_regressor.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +9 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +9 -1
- snowflake_ml_python-1.8.4/snowflake/ml/monitoring/explain_visualize.py +286 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/_manager/model_manager.py +23 -2
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/registry.py +10 -9
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4/snowflake_ml_python.egg-info}/PKG-INFO +40 -8
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/requires.txt +15 -7
- snowflake_ml_python-1.8.3/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -240
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/README.md +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/setup.cfg +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {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
- {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
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {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
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {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
- {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
- {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
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {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
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/model_monitor_version.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {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
|
|
{snowflake_ml_python-1.8.3/snowflake_ml_python.egg-info → snowflake_ml_python-1.8.4}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: snowflake-ml-python
|
3
|
-
Version: 1.8.
|
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
|
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
|
253
|
+
Requires-Dist: scikit-learn<1.6
|
254
254
|
Requires-Dist: scipy<2,>=1.9
|
255
|
-
Requires-Dist:
|
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:
|
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:
|
285
|
-
Requires-Dist:
|
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
|
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", "
|
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
|
-
|
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
|
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.
|
22
|
-
#
|
23
|
-
print("
|
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
|
-
#
|
26
|
-
print("
|
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(
|
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(
|
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]:
|
{snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/_internal/utils/identifier.py
RENAMED
@@ -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
|
|
{snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/constants.py
RENAMED
@@ -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.
|
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
|
{snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/payload_utils.py
RENAMED
@@ -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(
|
295
|
+
session.sql("describe stage identifier(?)", params=[stage_name]).collect()
|
287
296
|
except sp_exceptions.SnowparkSQLException:
|
288
297
|
session.sql(
|
289
|
-
|
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
|
340
|
+
if pip_requirements:
|
329
341
|
# Upload requirements.txt to stage
|
330
342
|
session.file.put_stream(
|
331
|
-
io.BytesIO("\n".join(
|
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
|
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
|
-
|
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(
|
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
|
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:
|
{snowflake_ml_python-1.8.3 → snowflake_ml_python-1.8.4}/snowflake/ml/jobs/_utils/spec_utils.py
RENAMED
@@ -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(
|
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)}"
|