snowflake-ml-python 1.7.3__tar.gz → 1.7.5__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.7.3 → snowflake_ml_python-1.7.5}/CHANGELOG.md +57 -11
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/PKG-INFO +81 -33
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/README.md +1 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/pyproject.toml +8 -8
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_complete.py +19 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/env_utils.py +64 -21
- snowflake_ml_python-1.7.5/snowflake/ml/_internal/platform_capabilities.py +87 -0
- snowflake_ml_python-1.7.5/snowflake/ml/_internal/relax_version_strategy.py +16 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/telemetry.py +21 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/_internal/arrow_ingestor.py +1 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset.py +0 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/feature_store.py +18 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/feature_view.py +46 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/fileset.py +6 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/__init__.py +21 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/constants.py +57 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/payload_utils.py +438 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/spec_utils.py +296 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/_utils/types.py +39 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/decorators.py +71 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/job.py +113 -0
- snowflake_ml_python-1.7.5/snowflake/ml/jobs/manager.py +298 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/model_ops.py +11 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/service_ops.py +1 -11
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/service.py +13 -6
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_env/model_env.py +45 -28
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/_utils.py +19 -6
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/custom.py +1 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +17 -0
- snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_handlers/keras.py +230 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/pytorch.py +1 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/sklearn.py +28 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +74 -21
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +27 -49
- snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +48 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_meta.py +1 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +3 -0
- snowflake_ml_python-1.7.5/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +4 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_task/model_task_utils.py +5 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/base_handler.py +1 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/builtins_handler.py +2 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/core.py +2 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/numpy_handler.py +11 -12
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/pandas_handler.py +11 -9
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/pytorch_handler.py +3 -6
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/snowpark_handler.py +3 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/tensorflow_handler.py +2 -7
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/model_signature.py +25 -4
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/type_hints.py +15 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +14 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/affinity_propagation.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/birch.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/bisecting_k_means.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/dbscan.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/feature_agglomeration.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/k_means.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/mean_shift.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/optics.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_biclustering.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_clustering.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/spectral_coclustering.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/column_transformer.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/transformed_target_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/elliptic_envelope.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/empirical_covariance.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/graphical_lasso.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/ledoit_wolf.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/min_cov_det.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/oas.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/shrunk_covariance.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/dictionary_learning.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/factor_analysis.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/fast_ica.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/incremental_pca.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/kernel_pca.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/pca.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/sparse_pca.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/truncated_svd.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/bagging_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/bagging_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/isolation_forest.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/stacking_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/voting_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/voting_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fdr.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fpr.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_fwe.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_k_best.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/select_percentile.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/variance_threshold.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/iterative_imputer.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/knn_imputer.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/missing_indicator.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/nystroem.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ard_regression.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/elastic_net.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/gamma_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/huber_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lars.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lars_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/linear_regression.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/logistic_regression.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/perceptron.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/poisson_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ransac_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/ridge_cv.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/sgd_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/isomap.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/mds.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/spectral_embedding.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/tsne.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/gaussian_mixture.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/grid_search_cv.py +17 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +17 -2
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/output_code_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/complement_nb.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/kernel_density.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/nearest_centroid.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/mlp_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/mlp_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/pipeline/pipeline.py +28 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/polynomial_features.py +8 -5
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/label_propagation.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/label_spreading.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/linear_svc.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/linear_svr.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/nu_svc.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/nu_svr.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/svc.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/svr.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/decision_tree_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/decision_tree_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/extra_tree_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/extra_tree_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgb_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgb_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +6 -3
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/registry.py +34 -4
- snowflake_ml_python-1.7.5/snowflake/ml/version.py +1 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/PKG-INFO +81 -33
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/SOURCES.txt +12 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/requires.txt +21 -20
- snowflake_ml_python-1.7.3/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -2
- snowflake_ml_python-1.7.3/snowflake/ml/version.py +0 -1
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/setup.cfg +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/constants.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/model_monitor_version.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.7.3 → snowflake_ml_python-1.7.5}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,11 +1,61 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
-
## 1.7.
|
3
|
+
## 1.7.5
|
4
|
+
|
5
|
+
- Support Python 3.12.
|
6
|
+
- Explainability: Support native and snowml sklearn pipeline
|
7
|
+
|
8
|
+
### Bug Fixes
|
9
|
+
|
10
|
+
- Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
|
11
|
+
model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
|
12
|
+
is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
|
13
|
+
use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
|
14
|
+
Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
|
15
|
+
- Registry: Removed the validation that disallows data that does not have non-null values being passed to
|
16
|
+
`ModelVersion.run`.
|
17
|
+
- ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
|
18
|
+
- ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
|
19
|
+
combinations to be erroneously rejected with
|
20
|
+
`ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
|
21
|
+
- ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
|
22
|
+
|
23
|
+
### Behavior Change
|
24
|
+
|
25
|
+
### New Features
|
26
|
+
|
27
|
+
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
|
28
|
+
- Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
|
29
|
+
- ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
|
30
|
+
|
31
|
+
## 1.7.4 (01-28-2025)
|
32
|
+
|
33
|
+
- FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
|
34
|
+
Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
|
35
|
+
[snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
|
36
|
+
instead.
|
37
|
+
- Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
|
38
|
+
|
39
|
+
### Bug Fixes
|
40
|
+
|
41
|
+
- Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
|
42
|
+
- Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
|
43
|
+
|
44
|
+
### New Features
|
45
|
+
|
46
|
+
- Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
|
47
|
+
[Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
|
48
|
+
- Added `guardrails` option to Cortex `complete` function, enabling
|
49
|
+
[Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
|
50
|
+
- Model Monitoring: Expose Model Monitoring Python API by default.
|
51
|
+
|
52
|
+
## 1.7.3 (2025-01-08)
|
4
53
|
|
5
54
|
- Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
|
6
55
|
- Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
|
7
56
|
- Bumped the requirement of `mlflow` to `>=2.16.0, <3`
|
8
57
|
- Registry: Support 500+ features for model registry
|
58
|
+
- Feature Store: Add support for `cluster_by` for feature views.
|
9
59
|
|
10
60
|
### Bug Fixes
|
11
61
|
|
@@ -18,13 +68,13 @@
|
|
18
68
|
- Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
|
19
69
|
pipeline models due to default explainability enablement.
|
20
70
|
|
21
|
-
### Behavior Changes
|
22
|
-
|
23
71
|
### New Features
|
24
72
|
|
25
73
|
- Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
|
26
74
|
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
|
27
75
|
- DataConnector: Add new `DataConnector.from_sql()` constructor
|
76
|
+
- Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
|
77
|
+
to be used when inferring the signature.
|
28
78
|
|
29
79
|
## 1.7.2 (2024-11-21)
|
30
80
|
|
@@ -33,8 +83,6 @@
|
|
33
83
|
- Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
|
34
84
|
whose task is UNKNOWN and fails later when invoked.
|
35
85
|
|
36
|
-
### Behavior Changes
|
37
|
-
|
38
86
|
### New Features
|
39
87
|
|
40
88
|
- Registry: Support asynchronous model inference service creation with the `block` option
|
@@ -54,8 +102,6 @@ signature inference.
|
|
54
102
|
- Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
|
55
103
|
- Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
|
56
104
|
|
57
|
-
### Behavior Changes
|
58
|
-
|
59
105
|
### New Features
|
60
106
|
|
61
107
|
- Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
|
@@ -127,6 +173,10 @@ class ExamplePipelineModel(custom_model.CustomModel):
|
|
127
173
|
- Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
|
128
174
|
interoperability with PyTorch DataLoader.
|
129
175
|
- Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
|
176
|
+
- Limitations:
|
177
|
+
- The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
|
178
|
+
Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
|
179
|
+
to preprocess the categorical datatype and log the pipeline with the XGBoost model.
|
130
180
|
- Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
|
131
181
|
data from explainablity and data lineage.
|
132
182
|
|
@@ -304,10 +354,6 @@ data from explainablity and data lineage.
|
|
304
354
|
- Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
|
305
355
|
dependency error.
|
306
356
|
|
307
|
-
### Behavior Changes
|
308
|
-
|
309
|
-
### New Features
|
310
|
-
|
311
357
|
## 1.5.1 (05-22-2024)
|
312
358
|
|
313
359
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: snowflake-ml-python
|
3
|
-
Version: 1.7.
|
3
|
+
Version: 1.7.5
|
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:
|
@@ -223,17 +223,18 @@ Classifier: Operating System :: OS Independent
|
|
223
223
|
Classifier: Programming Language :: Python :: 3.9
|
224
224
|
Classifier: Programming Language :: Python :: 3.10
|
225
225
|
Classifier: Programming Language :: Python :: 3.11
|
226
|
+
Classifier: Programming Language :: Python :: 3.12
|
226
227
|
Classifier: Topic :: Database
|
227
228
|
Classifier: Topic :: Software Development
|
228
229
|
Classifier: Topic :: Software Development :: Libraries
|
229
230
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
230
231
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
231
232
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
232
|
-
Requires-Python: <3.
|
233
|
+
Requires-Python: <3.13,>=3.9
|
233
234
|
Description-Content-Type: text/markdown
|
234
235
|
License-File: LICENSE.txt
|
235
236
|
Requires-Dist: absl-py<2,>=0.15
|
236
|
-
Requires-Dist: anyio<
|
237
|
+
Requires-Dist: anyio<5,>=3.5.0
|
237
238
|
Requires-Dist: cachetools<6,>=3.1.1
|
238
239
|
Requires-Dist: cloudpickle>=2.0.0
|
239
240
|
Requires-Dist: cryptography
|
@@ -251,45 +252,46 @@ Requires-Dist: s3fs<2026,>=2024.6.1
|
|
251
252
|
Requires-Dist: scikit-learn<1.6,>=1.4
|
252
253
|
Requires-Dist: scipy<2,>=1.9
|
253
254
|
Requires-Dist: snowflake-connector-python[pandas]<4,>=3.5.0
|
254
|
-
Requires-Dist: snowflake-snowpark-python
|
255
|
+
Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
|
255
256
|
Requires-Dist: sqlparse<1,>=0.4
|
256
257
|
Requires-Dist: typing-extensions<5,>=4.1.0
|
257
258
|
Requires-Dist: xgboost<3,>=1.7.3
|
258
259
|
Provides-Extra: all
|
259
260
|
Requires-Dist: catboost<2,>=1.2.0; extra == "all"
|
260
|
-
Requires-Dist:
|
261
|
+
Requires-Dist: keras<4,>=2.0.0; extra == "all"
|
261
262
|
Requires-Dist: lightgbm<5,>=4.1.0; extra == "all"
|
262
263
|
Requires-Dist: mlflow<3,>=2.16.0; extra == "all"
|
263
|
-
Requires-Dist:
|
264
|
-
Requires-Dist:
|
265
|
-
Requires-Dist: sentencepiece<1,>=0.1.95; extra == "all"
|
264
|
+
Requires-Dist: sentence-transformers<3,>=2.7.0; extra == "all"
|
265
|
+
Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "all"
|
266
266
|
Requires-Dist: shap<1,>=0.46.0; extra == "all"
|
267
|
-
Requires-Dist: tensorflow<3,>=2.
|
268
|
-
Requires-Dist: tokenizers<1,>=0.
|
269
|
-
Requires-Dist: torch<
|
267
|
+
Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
|
268
|
+
Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
|
269
|
+
Requires-Dist: torch<3,>=2.0.1; extra == "all"
|
270
270
|
Requires-Dist: torchdata<1,>=0.4; extra == "all"
|
271
|
-
Requires-Dist: transformers<5,>=4.
|
271
|
+
Requires-Dist: transformers<5,>=4.37.2; extra == "all"
|
272
272
|
Provides-Extra: catboost
|
273
273
|
Requires-Dist: catboost<2,>=1.2.0; extra == "catboost"
|
274
|
+
Provides-Extra: keras
|
275
|
+
Requires-Dist: keras<4,>=2.0.0; extra == "keras"
|
276
|
+
Requires-Dist: tensorflow<3,>=2.17.0; extra == "keras"
|
277
|
+
Requires-Dist: torch<3,>=2.0.1; extra == "keras"
|
274
278
|
Provides-Extra: lightgbm
|
275
279
|
Requires-Dist: lightgbm<5,>=4.1.0; extra == "lightgbm"
|
276
|
-
Provides-Extra: llm
|
277
|
-
Requires-Dist: peft<1,>=0.5.0; extra == "llm"
|
278
280
|
Provides-Extra: mlflow
|
279
281
|
Requires-Dist: mlflow<3,>=2.16.0; extra == "mlflow"
|
280
282
|
Provides-Extra: shap
|
281
283
|
Requires-Dist: shap<1,>=0.46.0; extra == "shap"
|
282
284
|
Provides-Extra: tensorflow
|
283
|
-
Requires-Dist: tensorflow<3,>=2.
|
285
|
+
Requires-Dist: tensorflow<3,>=2.17.0; extra == "tensorflow"
|
284
286
|
Provides-Extra: torch
|
285
|
-
Requires-Dist: torch<
|
287
|
+
Requires-Dist: torch<3,>=2.0.1; extra == "torch"
|
286
288
|
Requires-Dist: torchdata<1,>=0.4; extra == "torch"
|
287
289
|
Provides-Extra: transformers
|
288
|
-
Requires-Dist:
|
289
|
-
Requires-Dist:
|
290
|
-
Requires-Dist:
|
291
|
-
Requires-Dist:
|
292
|
-
Requires-Dist: transformers<5,>=4.
|
290
|
+
Requires-Dist: sentence-transformers<3,>=2.7.0; extra == "transformers"
|
291
|
+
Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
|
292
|
+
Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
|
293
|
+
Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
|
294
|
+
Requires-Dist: transformers<5,>=4.37.2; extra == "transformers"
|
293
295
|
|
294
296
|
# Snowpark ML
|
295
297
|
|
@@ -346,7 +348,7 @@ If you don't have a Snowflake account yet, you can [sign up for a 30-day free tr
|
|
346
348
|
Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
|
347
349
|
in the Snowflake documentation.
|
348
350
|
|
349
|
-
Python versions 3.9 to 3.
|
351
|
+
Python versions 3.9 to 3.12 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
|
350
352
|
[anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
|
351
353
|
or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
|
352
354
|
|
@@ -399,12 +401,62 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
399
401
|
|
400
402
|
# Release History
|
401
403
|
|
402
|
-
## 1.7.
|
404
|
+
## 1.7.5
|
405
|
+
|
406
|
+
- Support Python 3.12.
|
407
|
+
- Explainability: Support native and snowml sklearn pipeline
|
408
|
+
|
409
|
+
### Bug Fixes
|
410
|
+
|
411
|
+
- Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
|
412
|
+
model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
|
413
|
+
is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
|
414
|
+
use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
|
415
|
+
Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
|
416
|
+
- Registry: Removed the validation that disallows data that does not have non-null values being passed to
|
417
|
+
`ModelVersion.run`.
|
418
|
+
- ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
|
419
|
+
- ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
|
420
|
+
combinations to be erroneously rejected with
|
421
|
+
`ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
|
422
|
+
- ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
|
423
|
+
|
424
|
+
### Behavior Change
|
425
|
+
|
426
|
+
### New Features
|
427
|
+
|
428
|
+
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
|
429
|
+
- Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
|
430
|
+
- ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
|
431
|
+
|
432
|
+
## 1.7.4 (01-28-2025)
|
433
|
+
|
434
|
+
- FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
|
435
|
+
Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
|
436
|
+
[snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
|
437
|
+
instead.
|
438
|
+
- Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
|
439
|
+
|
440
|
+
### Bug Fixes
|
441
|
+
|
442
|
+
- Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
|
443
|
+
- Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
|
444
|
+
|
445
|
+
### New Features
|
446
|
+
|
447
|
+
- Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
|
448
|
+
[Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
|
449
|
+
- Added `guardrails` option to Cortex `complete` function, enabling
|
450
|
+
[Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
|
451
|
+
- Model Monitoring: Expose Model Monitoring Python API by default.
|
452
|
+
|
453
|
+
## 1.7.3 (2025-01-08)
|
403
454
|
|
404
455
|
- Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
|
405
456
|
- Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
|
406
457
|
- Bumped the requirement of `mlflow` to `>=2.16.0, <3`
|
407
458
|
- Registry: Support 500+ features for model registry
|
459
|
+
- Feature Store: Add support for `cluster_by` for feature views.
|
408
460
|
|
409
461
|
### Bug Fixes
|
410
462
|
|
@@ -417,13 +469,13 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
417
469
|
- Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
|
418
470
|
pipeline models due to default explainability enablement.
|
419
471
|
|
420
|
-
### Behavior Changes
|
421
|
-
|
422
472
|
### New Features
|
423
473
|
|
424
474
|
- Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
|
425
475
|
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
|
426
476
|
- DataConnector: Add new `DataConnector.from_sql()` constructor
|
477
|
+
- Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
|
478
|
+
to be used when inferring the signature.
|
427
479
|
|
428
480
|
## 1.7.2 (2024-11-21)
|
429
481
|
|
@@ -432,8 +484,6 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
432
484
|
- Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
|
433
485
|
whose task is UNKNOWN and fails later when invoked.
|
434
486
|
|
435
|
-
### Behavior Changes
|
436
|
-
|
437
487
|
### New Features
|
438
488
|
|
439
489
|
- Registry: Support asynchronous model inference service creation with the `block` option
|
@@ -453,8 +503,6 @@ signature inference.
|
|
453
503
|
- Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
|
454
504
|
- Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
|
455
505
|
|
456
|
-
### Behavior Changes
|
457
|
-
|
458
506
|
### New Features
|
459
507
|
|
460
508
|
- Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
|
@@ -526,6 +574,10 @@ class ExamplePipelineModel(custom_model.CustomModel):
|
|
526
574
|
- Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
|
527
575
|
interoperability with PyTorch DataLoader.
|
528
576
|
- Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
|
577
|
+
- Limitations:
|
578
|
+
- The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
|
579
|
+
Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
|
580
|
+
to preprocess the categorical datatype and log the pipeline with the XGBoost model.
|
529
581
|
- Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
|
530
582
|
data from explainablity and data lineage.
|
531
583
|
|
@@ -703,10 +755,6 @@ data from explainablity and data lineage.
|
|
703
755
|
- Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
|
704
756
|
dependency error.
|
705
757
|
|
706
|
-
### Behavior Changes
|
707
|
-
|
708
|
-
### New Features
|
709
|
-
|
710
758
|
## 1.5.1 (05-22-2024)
|
711
759
|
|
712
760
|
### Bug Fixes
|
@@ -53,7 +53,7 @@ If you don't have a Snowflake account yet, you can [sign up for a 30-day free tr
|
|
53
53
|
Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
|
54
54
|
in the Snowflake documentation.
|
55
55
|
|
56
|
-
Python versions 3.9 to 3.
|
56
|
+
Python versions 3.9 to 3.12 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
|
57
57
|
[anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
|
58
58
|
or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
|
59
59
|
|
@@ -5,10 +5,10 @@ build-backend = "setuptools.build_meta"
|
|
5
5
|
[project]
|
6
6
|
name = "snowflake-ml-python"
|
7
7
|
description = "The machine learning client library that is used for interacting with Snowflake to build machine learning solutions."
|
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", "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
|
-
requires-python = ">=3.9, <3.
|
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
|
+
requires-python = ">=3.9, <3.13"
|
10
10
|
dynamic = [ "version", "readme",]
|
11
|
-
dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.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", "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.5.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
|
12
12
|
[[project.authors]]
|
13
13
|
name = "Snowflake, Inc"
|
14
14
|
email = "support@snowflake.com"
|
@@ -24,15 +24,15 @@ 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", "
|
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,<3", "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.37.2,<5",]
|
28
28
|
catboost = [ "catboost>=1.2.0, <2",]
|
29
|
+
keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
|
29
30
|
lightgbm = [ "lightgbm>=4.1.0, <5",]
|
30
|
-
llm = [ "peft>=0.5.0,<1",]
|
31
31
|
mlflow = [ "mlflow>=2.16.0, <3",]
|
32
32
|
shap = [ "shap>=0.46.0,<1",]
|
33
|
-
tensorflow = [ "tensorflow>=2.
|
34
|
-
torch = [ "torch>=2.0.1,<
|
35
|
-
transformers = [ "
|
33
|
+
tensorflow = [ "tensorflow>=2.17.0,<3",]
|
34
|
+
torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
|
35
|
+
transformers = [ "sentence-transformers>=2.7.0,<3", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.37.2,<5",]
|
36
36
|
|
37
37
|
[tool.setuptools.package-data]
|
38
38
|
"*" = [ "*",]
|
@@ -49,6 +49,10 @@ class CompleteOptions(TypedDict):
|
|
49
49
|
generally used as an alternative to temperature. The difference is that top_p restricts the set of possible tokens
|
50
50
|
that the model outputs, while temperature influences which tokens are chosen at each step. """
|
51
51
|
|
52
|
+
guardrails: NotRequired[bool]
|
53
|
+
""" A boolean value that controls whether Cortex Guard filters unsafe or harmful responses
|
54
|
+
from the language model. """
|
55
|
+
|
52
56
|
|
53
57
|
class ResponseParseException(Exception):
|
54
58
|
"""This exception is raised when the server response cannot be parsed."""
|
@@ -56,6 +60,15 @@ class ResponseParseException(Exception):
|
|
56
60
|
pass
|
57
61
|
|
58
62
|
|
63
|
+
class GuardrailsOptions(TypedDict):
|
64
|
+
enabled: bool
|
65
|
+
"""A boolean value that controls whether Cortex Guard filters unsafe or harmful responses
|
66
|
+
from the language model."""
|
67
|
+
|
68
|
+
response_when_unsafe: str
|
69
|
+
"""The response to return when the language model generates unsafe or harmful content."""
|
70
|
+
|
71
|
+
|
59
72
|
_MAX_RETRY_SECONDS = 30
|
60
73
|
|
61
74
|
|
@@ -117,6 +130,12 @@ def _make_request_body(
|
|
117
130
|
data["temperature"] = options["temperature"]
|
118
131
|
if "top_p" in options:
|
119
132
|
data["top_p"] = options["top_p"]
|
133
|
+
if "guardrails" in options and options["guardrails"]:
|
134
|
+
guardrails_options: GuardrailsOptions = {
|
135
|
+
"enabled": True,
|
136
|
+
"response_when_unsafe": "Response filtered by Cortex Guard",
|
137
|
+
}
|
138
|
+
data["guardrails"] = guardrails_options
|
120
139
|
return data
|
121
140
|
|
122
141
|
|
@@ -12,7 +12,7 @@ import yaml
|
|
12
12
|
from packaging import requirements, specifiers, version
|
13
13
|
|
14
14
|
import snowflake.connector
|
15
|
-
from snowflake.ml._internal import env as snowml_env
|
15
|
+
from snowflake.ml._internal import env as snowml_env, relax_version_strategy
|
16
16
|
from snowflake.ml._internal.utils import query_result_checker
|
17
17
|
from snowflake.snowpark import context, exceptions, session
|
18
18
|
|
@@ -56,6 +56,8 @@ def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
|
|
56
56
|
|
57
57
|
if r.name == "python":
|
58
58
|
raise ValueError("Don't specify python as a dependency, use python version argument instead.")
|
59
|
+
if r.name == "cuda":
|
60
|
+
raise ValueError("Don't specify cuda as a dependency, use cuda version argument instead.")
|
59
61
|
except requirements.InvalidRequirement:
|
60
62
|
raise ValueError(f"Invalid package requirement {req_str} found.")
|
61
63
|
|
@@ -313,19 +315,14 @@ def get_package_spec_with_supported_ops_only(req: requirements.Requirement) -> r
|
|
313
315
|
return new_req
|
314
316
|
|
315
317
|
|
316
|
-
def
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
Returns:
|
324
|
-
A new requirement object after relaxations.
|
325
|
-
"""
|
326
|
-
new_req = copy.deepcopy(req)
|
318
|
+
def _relax_specifier_set(
|
319
|
+
specifier_set: specifiers.SpecifierSet, strategy: relax_version_strategy.RelaxVersionStrategy
|
320
|
+
) -> specifiers.SpecifierSet:
|
321
|
+
if strategy == relax_version_strategy.RelaxVersionStrategy.NO_RELAX:
|
322
|
+
return specifier_set
|
323
|
+
specifier_set = copy.deepcopy(specifier_set)
|
327
324
|
relaxed_specifier_set = set()
|
328
|
-
for spec in
|
325
|
+
for spec in specifier_set._specs:
|
329
326
|
if spec.operator != "==":
|
330
327
|
relaxed_specifier_set.add(spec)
|
331
328
|
continue
|
@@ -337,9 +334,40 @@ def relax_requirement_version(req: requirements.Requirement) -> requirements.Req
|
|
337
334
|
relaxed_specifier_set.add(spec)
|
338
335
|
continue
|
339
336
|
assert pinned_version is not None
|
340
|
-
|
341
|
-
|
342
|
-
|
337
|
+
if strategy == relax_version_strategy.RelaxVersionStrategy.PATCH:
|
338
|
+
relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}.{pinned_version.minor}"))
|
339
|
+
relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major}.{pinned_version.minor+1}"))
|
340
|
+
elif strategy == relax_version_strategy.RelaxVersionStrategy.MINOR:
|
341
|
+
relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}.{pinned_version.minor}"))
|
342
|
+
relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major + 1}"))
|
343
|
+
elif strategy == relax_version_strategy.RelaxVersionStrategy.MAJOR:
|
344
|
+
relaxed_specifier_set.add(specifiers.Specifier(f">={pinned_version.major}"))
|
345
|
+
relaxed_specifier_set.add(specifiers.Specifier(f"<{pinned_version.major + 1}"))
|
346
|
+
specifier_set._specs = frozenset(relaxed_specifier_set)
|
347
|
+
return specifier_set
|
348
|
+
|
349
|
+
|
350
|
+
def relax_requirement_version(req: requirements.Requirement) -> requirements.Requirement:
|
351
|
+
"""Relax version specifier from a requirement. It detects any ==x.y.z in specifiers and replaced with relaxed
|
352
|
+
version specifier based on the strategy defined in RELAX_VERSION_STRATEGY_MAP.
|
353
|
+
|
354
|
+
NO_RELAX: No relaxation.
|
355
|
+
PATCH: >=x.y, <x.(y+1)
|
356
|
+
MINOR (default): >=x.y, <(x+1)
|
357
|
+
MAJOR: >=x, <(x+1)
|
358
|
+
|
359
|
+
|
360
|
+
Args:
|
361
|
+
req: The requirement that version specifier to be removed.
|
362
|
+
|
363
|
+
Returns:
|
364
|
+
A new requirement object after relaxations.
|
365
|
+
"""
|
366
|
+
new_req = copy.deepcopy(req)
|
367
|
+
strategy = relax_version_strategy.RELAX_VERSION_STRATEGY_MAP.get(
|
368
|
+
req.name, relax_version_strategy.RelaxVersionStrategy.MINOR
|
369
|
+
)
|
370
|
+
new_req.specifier = _relax_specifier_set(new_req.specifier, strategy)
|
343
371
|
return new_req
|
344
372
|
|
345
373
|
|
@@ -431,10 +459,11 @@ def save_conda_env_file(
|
|
431
459
|
path: pathlib.Path,
|
432
460
|
conda_chan_deps: DefaultDict[str, List[requirements.Requirement]],
|
433
461
|
python_version: str,
|
462
|
+
cuda_version: Optional[str] = None,
|
434
463
|
default_channel_override: str = SNOWFLAKE_CONDA_CHANNEL_URL,
|
435
464
|
) -> None:
|
436
465
|
"""Generate conda.yml file given a dict of dependencies after validation.
|
437
|
-
The channels part of conda.yml file will
|
466
|
+
The channels part of conda.yml file will contain Snowflake Anaconda Channel, nodefaults and all channel names
|
438
467
|
in keys of the dict, ordered by the number of the packages which belongs to.
|
439
468
|
The dependencies part of conda.yml file will contains requirements specifications. If the requirements is in the
|
440
469
|
value list whose key is DEFAULT_CHANNEL_NAME, then the channel won't be specified explicitly. Otherwise, it will be
|
@@ -443,7 +472,8 @@ def save_conda_env_file(
|
|
443
472
|
Args:
|
444
473
|
path: Path to the conda.yml file.
|
445
474
|
conda_chan_deps: Dict of conda dependencies after validated.
|
446
|
-
python_version: A string 'major.minor'
|
475
|
+
python_version: A string 'major.minor' for the model's python version.
|
476
|
+
cuda_version: A string 'major.minor' for the model's cuda version.
|
447
477
|
default_channel_override: The default channel to be put in the first place of the channels section.
|
448
478
|
"""
|
449
479
|
assert path.suffix in [".yml", ".yaml"], "Conda environment file should have extension of yml or yaml."
|
@@ -461,6 +491,10 @@ def save_conda_env_file(
|
|
461
491
|
|
462
492
|
env["channels"] = [default_channel_override] + channels + [_NODEFAULTS]
|
463
493
|
env["dependencies"] = [f"python=={python_version}.*"]
|
494
|
+
|
495
|
+
if cuda_version is not None:
|
496
|
+
env["dependencies"].extend([f"nvidia::cuda=={cuda_version}.*"])
|
497
|
+
|
464
498
|
for chan, reqs in conda_chan_deps.items():
|
465
499
|
env["dependencies"].extend(
|
466
500
|
[f"{chan}::{str(req)}" if chan != DEFAULT_CHANNEL_NAME else str(req) for req in reqs]
|
@@ -487,7 +521,12 @@ def save_requirements_file(path: pathlib.Path, pip_deps: List[requirements.Requi
|
|
487
521
|
|
488
522
|
def load_conda_env_file(
|
489
523
|
path: pathlib.Path,
|
490
|
-
) -> Tuple[
|
524
|
+
) -> Tuple[
|
525
|
+
DefaultDict[str, List[requirements.Requirement]],
|
526
|
+
Optional[List[requirements.Requirement]],
|
527
|
+
Optional[str],
|
528
|
+
Optional[str],
|
529
|
+
]:
|
491
530
|
"""Read conda.yml file to get a dict of dependencies after validation.
|
492
531
|
The channels part of conda.yml file will be processed with following rules:
|
493
532
|
1. If it is Snowflake Anaconda Channel, ignore as it is default.
|
@@ -515,7 +554,7 @@ def load_conda_env_file(
|
|
515
554
|
and a string 'major.minor.patchlevel' of python version.
|
516
555
|
"""
|
517
556
|
if not path.exists():
|
518
|
-
return collections.defaultdict(list), None, None
|
557
|
+
return collections.defaultdict(list), None, None, None
|
519
558
|
|
520
559
|
with open(path, encoding="utf-8") as f:
|
521
560
|
env = yaml.safe_load(stream=f)
|
@@ -526,6 +565,7 @@ def load_conda_env_file(
|
|
526
565
|
pip_deps = []
|
527
566
|
|
528
567
|
python_version = None
|
568
|
+
cuda_version = None
|
529
569
|
|
530
570
|
channels = env.get("channels", [])
|
531
571
|
if len(channels) >= 1:
|
@@ -541,6 +581,9 @@ def load_conda_env_file(
|
|
541
581
|
# ver is str: python w/ specifier
|
542
582
|
if ver:
|
543
583
|
python_version = ver
|
584
|
+
elif dep.startswith("nvidia::cuda"):
|
585
|
+
r = requirements.Requirement(dep.split("nvidia::")[1])
|
586
|
+
cuda_version = list(r.specifier)[0].version.strip(".*")
|
544
587
|
elif ver is None:
|
545
588
|
deps.append(dep)
|
546
589
|
elif isinstance(dep, dict) and "pip" in dep:
|
@@ -555,7 +598,7 @@ def load_conda_env_file(
|
|
555
598
|
if channel not in conda_dep_dict:
|
556
599
|
conda_dep_dict[channel] = []
|
557
600
|
|
558
|
-
return conda_dep_dict, pip_deps_list if pip_deps_list else None, python_version
|
601
|
+
return conda_dep_dict, pip_deps_list if pip_deps_list else None, python_version, cuda_version
|
559
602
|
|
560
603
|
|
561
604
|
def load_requirements_file(path: pathlib.Path) -> List[requirements.Requirement]:
|