snowflake-ml-python 1.8.1__tar.gz → 1.8.3__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.1 → snowflake_ml_python-1.8.3}/CHANGELOG.md +43 -5
- {snowflake_ml_python-1.8.1/snowflake_ml_python.egg-info → snowflake_ml_python-1.8.3}/PKG-INFO +46 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/pyproject.toml +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_classify_text.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_complete.py +64 -31
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_embed_text_1024.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_embed_text_768.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_finetune.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_util.py +8 -12
- snowflake_ml_python-1.8.3/snowflake/ml/_internal/env.py +9 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/env_utils.py +63 -34
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/file_utils.py +10 -21
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +5 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/init_utils.py +2 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/lineage/lineage_utils.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/platform_capabilities.py +41 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/telemetry.py +39 -52
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/type_utils.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/db_utils.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/identifier.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/import_utils.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/parallelize.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/pkg_version_utils.py +11 -11
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/query_result_checker.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/snowflake_env.py +28 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/sql_identifier.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/table_manager.py +9 -9
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/_internal/arrow_ingestor.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/data_connector.py +40 -36
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/data_ingestor.py +4 -15
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/data_source.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/ingestor_utils.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/torch_utils.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/dataset/dataset.py +11 -11
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/dataset/dataset_metadata.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/dataset/dataset_reader.py +12 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/access_manager.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/entity.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/airline_features/entities.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/example_helper.py +16 -16
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +1 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/feature_store.py +52 -64
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/feature_view.py +24 -24
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/fileset/embedded_stage_fs.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/fileset/fileset.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/fileset/sfcfs.py +13 -13
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/fileset/stage_fs.py +15 -15
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/_utils/constants.py +2 -4
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/interop_utils.py +442 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/_utils/payload_utils.py +86 -62
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/scripts/constants.py +4 -0
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +136 -0
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +181 -0
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/scripts/signal_workers.py +203 -0
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +242 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/_utils/spec_utils.py +22 -36
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/_utils/types.py +8 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/decorators.py +7 -8
- snowflake_ml_python-1.8.3/snowflake/ml/jobs/job.py +245 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/manager.py +78 -30
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/lineage/lineage_node.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/model/model_impl.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/model/model_version_impl.py +103 -35
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/ops/metadata_ops.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/ops/model_ops.py +41 -41
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/ops/service_ops.py +230 -50
- snowflake_ml_python-1.8.3/snowflake/ml/model/_client/service/model_deployment_spec.py +240 -0
- snowflake_ml_python-1.8.3/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +53 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/model.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/model_version.py +26 -26
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/service.py +22 -18
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/stage.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/tag.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_composer.py +46 -25
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +20 -16
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +14 -13
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/model_method.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_env/model_env.py +35 -26
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handler.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/_base.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/_utils.py +15 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/catboost.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/custom.py +8 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +7 -21
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/keras.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +4 -14
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/mlflow.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/pytorch.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/sklearn.py +5 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/torchscript.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers/xgboost.py +5 -15
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta/model_meta.py +42 -37
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +13 -11
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +3 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_packager.py +12 -8
- snowflake_ml_python-1.8.3/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +32 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +4 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/core.py +16 -24
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/dmatrix_handler.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/utils.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/custom_model.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/model_signature.py +9 -20
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/models/huggingface_pipeline.py +7 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/type_hints.py +5 -3
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/estimator_utils.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/model_specifications.py +8 -10
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/model_trainer.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/model_trainer_builder.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +30 -30
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +13 -13
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +31 -31
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +19 -19
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/transformer_protocols.py +17 -17
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/framework/_utils.py +10 -10
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/framework/base.py +32 -32
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/impute/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/impute/simple_imputer.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/classification.py +39 -39
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/metrics_utils.py +12 -12
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/ranking.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/regression.py +13 -13
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/model_selection/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/model_selection/grid_search_cv.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/pipeline/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/pipeline/pipeline.py +18 -18
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/__init__.py +1 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +13 -13
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +4 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +8 -8
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +28 -28
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +9 -9
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/robust_scaler.py +7 -7
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/standard_scaler.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +26 -26
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/entities/model_monitor_config.py +6 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/registry/_manager/model_manager.py +50 -29
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/registry/registry.py +34 -23
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/utils/authentication.py +2 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/utils/connection_params.py +5 -5
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/utils/sparse.py +5 -4
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/utils/sql_client.py +1 -2
- snowflake_ml_python-1.8.3/snowflake/ml/version.py +2 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3/snowflake_ml_python.egg-info}/PKG-INFO +46 -6
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake_ml_python.egg-info/SOURCES.txt +6 -2
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake_ml_python.egg-info/requires.txt +2 -0
- snowflake_ml_python-1.8.1/snowflake/ml/_internal/env.py +0 -8
- snowflake_ml_python-1.8.1/snowflake/ml/jobs/job.py +0 -113
- snowflake_ml_python-1.8.1/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -113
- snowflake_ml_python-1.8.1/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -33
- snowflake_ml_python-1.8.1/snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +0 -1
- snowflake_ml_python-1.8.1/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -1
- snowflake_ml_python-1.8.1/snowflake/ml/modeling/_internal/constants.py +0 -2
- snowflake_ml_python-1.8.1/snowflake/ml/version.py +0 -1
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/README.md +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/setup.cfg +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/model_monitor_version.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,47 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
-
## 1.8.
|
3
|
+
## 1.8.3
|
4
|
+
|
5
|
+
### Bug Fixes
|
6
|
+
|
7
|
+
### Behavior Change
|
8
|
+
|
9
|
+
### New Features
|
10
|
+
|
11
|
+
- Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
|
12
|
+
- ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
13
|
+
as a list of strings
|
14
|
+
- Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
|
15
|
+
- DataConnector: Removed PrPr decorators
|
16
|
+
|
17
|
+
## 1.8.2
|
18
|
+
|
19
|
+
### New Features
|
20
|
+
|
21
|
+
- ML Job now available as a PuPr feature
|
22
|
+
- ML Job: Add ability to retrieve results for `@remote` decorated functions using
|
23
|
+
new `MLJobWithResult.result()` API, which will return the unpickled result
|
24
|
+
or raise an exception if the job execution failed.
|
25
|
+
- ML Job: Pre-created Snowpark Session is now available inside job payloads using
|
26
|
+
`snowflake.snowpark.context.get_active_session()`
|
27
|
+
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
28
|
+
User's can provide the path to write the model version's files that get stored in Snowflake's stage.
|
29
|
+
|
30
|
+
```python
|
31
|
+
reg.log_model(
|
32
|
+
model=...,
|
33
|
+
model_name=...,
|
34
|
+
version_name=...,
|
35
|
+
...,
|
36
|
+
options={"save_location": "./model_directory"},
|
37
|
+
)
|
38
|
+
```
|
39
|
+
|
40
|
+
- Registry: Include model dependencies in pip requirements by default when logging in Container Runtime.
|
41
|
+
- Multi-node ML Job (PrPr): Add `instance_id` argument to `get_logs` and `show_logs` method to support multi node log retrieval
|
42
|
+
- Multi-node ML Job (PrPr): Add `job.get_instance_status(instance_id=...)` API to support multi node status retrieval
|
43
|
+
|
44
|
+
## 1.8.1 (03-26-2025)
|
4
45
|
|
5
46
|
### Bug Fixes
|
6
47
|
|
@@ -8,8 +49,6 @@
|
|
8
49
|
inference method.
|
9
50
|
- Registry: Fix a bug that model inference service creation fails on an existing and suspended service.
|
10
51
|
|
11
|
-
### Behavior Change
|
12
|
-
|
13
52
|
### New Features
|
14
53
|
|
15
54
|
- ML Job (PrPr): Update Container Runtime image version to `1.0.1`
|
@@ -20,7 +59,7 @@
|
|
20
59
|
for cost implications.
|
21
60
|
- Registry: When creating a copy of a `ModelVersion` with `log_model`, raise an exception if unsupported arguments are provided.
|
22
61
|
|
23
|
-
## 1.8.0
|
62
|
+
## 1.8.0 (03-20-2025)
|
24
63
|
|
25
64
|
### Bug Fixes
|
26
65
|
|
@@ -321,7 +360,6 @@
|
|
321
360
|
|
322
361
|
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
|
323
362
|
- Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
|
324
|
-
- ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
|
325
363
|
|
326
364
|
## 1.7.4 (01-28-2025)
|
327
365
|
|
{snowflake_ml_python-1.8.1/snowflake_ml_python.egg-info → snowflake_ml_python-1.8.3}/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.3
|
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:
|
@@ -244,6 +244,7 @@ Requires-Dist: numpy<2,>=1.23
|
|
244
244
|
Requires-Dist: packaging<25,>=20.9
|
245
245
|
Requires-Dist: pandas<3,>=1.0.0
|
246
246
|
Requires-Dist: pyarrow
|
247
|
+
Requires-Dist: pydantic<3,>=2.8.2
|
247
248
|
Requires-Dist: pyjwt<3,>=2.0.0
|
248
249
|
Requires-Dist: pytimeparse<2,>=1.1.8
|
249
250
|
Requires-Dist: pyyaml<7,>=6.0
|
@@ -253,6 +254,7 @@ Requires-Dist: scikit-learn<1.6,>=1.4
|
|
253
254
|
Requires-Dist: scipy<2,>=1.9
|
254
255
|
Requires-Dist: snowflake-connector-python[pandas]<4,>=3.12.0
|
255
256
|
Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
|
257
|
+
Requires-Dist: snowflake.core<2,>=1.0.2
|
256
258
|
Requires-Dist: sqlparse<1,>=0.4
|
257
259
|
Requires-Dist: typing-extensions<5,>=4.1.0
|
258
260
|
Requires-Dist: xgboost<3,>=1.7.3
|
@@ -402,7 +404,48 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
402
404
|
|
403
405
|
# Release History
|
404
406
|
|
405
|
-
## 1.8.
|
407
|
+
## 1.8.3
|
408
|
+
|
409
|
+
### Bug Fixes
|
410
|
+
|
411
|
+
### Behavior Change
|
412
|
+
|
413
|
+
### New Features
|
414
|
+
|
415
|
+
- Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
|
416
|
+
- ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
417
|
+
as a list of strings
|
418
|
+
- Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
|
419
|
+
- DataConnector: Removed PrPr decorators
|
420
|
+
|
421
|
+
## 1.8.2
|
422
|
+
|
423
|
+
### New Features
|
424
|
+
|
425
|
+
- ML Job now available as a PuPr feature
|
426
|
+
- ML Job: Add ability to retrieve results for `@remote` decorated functions using
|
427
|
+
new `MLJobWithResult.result()` API, which will return the unpickled result
|
428
|
+
or raise an exception if the job execution failed.
|
429
|
+
- ML Job: Pre-created Snowpark Session is now available inside job payloads using
|
430
|
+
`snowflake.snowpark.context.get_active_session()`
|
431
|
+
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
432
|
+
User's can provide the path to write the model version's files that get stored in Snowflake's stage.
|
433
|
+
|
434
|
+
```python
|
435
|
+
reg.log_model(
|
436
|
+
model=...,
|
437
|
+
model_name=...,
|
438
|
+
version_name=...,
|
439
|
+
...,
|
440
|
+
options={"save_location": "./model_directory"},
|
441
|
+
)
|
442
|
+
```
|
443
|
+
|
444
|
+
- Registry: Include model dependencies in pip requirements by default when logging in Container Runtime.
|
445
|
+
- Multi-node ML Job (PrPr): Add `instance_id` argument to `get_logs` and `show_logs` method to support multi node log retrieval
|
446
|
+
- Multi-node ML Job (PrPr): Add `job.get_instance_status(instance_id=...)` API to support multi node status retrieval
|
447
|
+
|
448
|
+
## 1.8.1 (03-26-2025)
|
406
449
|
|
407
450
|
### Bug Fixes
|
408
451
|
|
@@ -410,8 +453,6 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
410
453
|
inference method.
|
411
454
|
- Registry: Fix a bug that model inference service creation fails on an existing and suspended service.
|
412
455
|
|
413
|
-
### Behavior Change
|
414
|
-
|
415
456
|
### New Features
|
416
457
|
|
417
458
|
- ML Job (PrPr): Update Container Runtime image version to `1.0.1`
|
@@ -422,7 +463,7 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
422
463
|
for cost implications.
|
423
464
|
- Registry: When creating a copy of a `ModelVersion` with `log_model`, raise an exception if unsupported arguments are provided.
|
424
465
|
|
425
|
-
## 1.8.0
|
466
|
+
## 1.8.0 (03-20-2025)
|
426
467
|
|
427
468
|
### Bug Fixes
|
428
469
|
|
@@ -723,7 +764,6 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
723
764
|
|
724
765
|
- Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
|
725
766
|
- Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
|
726
|
-
- ML Job (PrPr): Support any serializable (pickleable) argument for `@remote` decorated functions
|
727
767
|
|
728
768
|
## 1.7.4 (01-28-2025)
|
729
769
|
|
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
|
|
8
8
|
classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
|
9
9
|
requires-python = ">=3.9, <3.13"
|
10
10
|
dynamic = [ "version", "readme",]
|
11
|
-
dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0,<3", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn>=1.4,<1.6", "scipy>=1.9,<2", "snowflake-connector-python[pandas]>=3.12.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
|
11
|
+
dependencies = [ "absl-py>=0.15,<2", "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0,<3", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<2", "packaging>=20.9,<25", "pandas>=1.0.0,<3", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn>=1.4,<1.6", "scipy>=1.9,<2", "snowflake-connector-python[pandas]>=3.12.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
|
12
12
|
[[project.authors]]
|
13
13
|
name = "Snowflake, Inc"
|
14
14
|
email = "support@snowflake.com"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import
|
1
|
+
from typing import Optional, Union, cast
|
2
2
|
|
3
3
|
from typing_extensions import deprecated
|
4
4
|
|
@@ -12,7 +12,7 @@ from snowflake.ml._internal import telemetry
|
|
12
12
|
)
|
13
13
|
def classify_text(
|
14
14
|
str_input: Union[str, snowpark.Column],
|
15
|
-
categories: Union[
|
15
|
+
categories: Union[list[str], snowpark.Column],
|
16
16
|
session: Optional[snowpark.Session] = None,
|
17
17
|
) -> Union[str, snowpark.Column]:
|
18
18
|
"""Use the LLM inference service to classify the INPUT text into one of the target CATEGORIES.
|
@@ -32,7 +32,7 @@ def classify_text(
|
|
32
32
|
def _classify_text_impl(
|
33
33
|
function: str,
|
34
34
|
str_input: Union[str, snowpark.Column],
|
35
|
-
categories: Union[
|
35
|
+
categories: Union[list[str], snowpark.Column],
|
36
36
|
session: Optional[snowpark.Session] = None,
|
37
37
|
) -> Union[str, snowpark.Column]:
|
38
38
|
return cast(Union[str, snowpark.Column], call_sql_function(function, session, str_input, categories))
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import json
|
2
2
|
import logging
|
3
3
|
import time
|
4
|
+
import typing
|
4
5
|
from io import BytesIO
|
5
|
-
from typing import Any, Callable,
|
6
|
+
from typing import Any, Callable, Iterator, Optional, TypedDict, Union, cast
|
6
7
|
from urllib.parse import urlunparse
|
7
8
|
|
8
9
|
import requests
|
10
|
+
from snowflake.core.rest import RESTResponse
|
9
11
|
from typing_extensions import NotRequired, deprecated
|
10
12
|
|
11
13
|
from snowflake import snowpark
|
@@ -28,7 +30,7 @@ class ResponseFormat(TypedDict):
|
|
28
30
|
|
29
31
|
type: str
|
30
32
|
"""The response format type (e.g. "json")"""
|
31
|
-
schema:
|
33
|
+
schema: dict[str, Any]
|
32
34
|
"""The schema defining the structure of the response. For json it should be a valid json schema object"""
|
33
35
|
|
34
36
|
|
@@ -69,7 +71,27 @@ class CompleteOptions(TypedDict):
|
|
69
71
|
class ResponseParseException(Exception):
|
70
72
|
"""This exception is raised when the server response cannot be parsed."""
|
71
73
|
|
72
|
-
|
74
|
+
|
75
|
+
class MidStreamException(Exception):
|
76
|
+
"""The SSE (Server-sent Event) stream can contain error messages in the middle of the stream,
|
77
|
+
using the “error” event type. This exception is raised when there is such a mid-stream error.
|
78
|
+
"""
|
79
|
+
|
80
|
+
def __init__(
|
81
|
+
self,
|
82
|
+
reason: typing.Optional[str] = None,
|
83
|
+
http_resp: typing.Optional["RESTResponse"] = None,
|
84
|
+
request_id: typing.Optional[str] = None,
|
85
|
+
) -> None:
|
86
|
+
message = ""
|
87
|
+
if reason is not None:
|
88
|
+
message = reason
|
89
|
+
if http_resp:
|
90
|
+
message = f"Error in stream (HTTP Response: {http_resp.status}) - {http_resp.reason}"
|
91
|
+
if request_id != "":
|
92
|
+
# add request_id to error message
|
93
|
+
message += f" (Request ID: {request_id})"
|
94
|
+
super().__init__(message)
|
73
95
|
|
74
96
|
|
75
97
|
class GuardrailsOptions(TypedDict):
|
@@ -112,7 +134,7 @@ def retry(func: Callable[..., requests.Response]) -> Callable[..., requests.Resp
|
|
112
134
|
return inner
|
113
135
|
|
114
136
|
|
115
|
-
def _make_common_request_headers() ->
|
137
|
+
def _make_common_request_headers() -> dict[str, str]:
|
116
138
|
headers = {
|
117
139
|
"Content-Type": "application/json",
|
118
140
|
"Accept": "application/json, text/event-stream",
|
@@ -120,6 +142,18 @@ def _make_common_request_headers() -> Dict[str, str]:
|
|
120
142
|
return headers
|
121
143
|
|
122
144
|
|
145
|
+
def _get_request_id(resp: dict[str, Any]) -> Optional[Any]:
|
146
|
+
request_id = None
|
147
|
+
if "headers" in resp:
|
148
|
+
for key, value in resp["headers"].items():
|
149
|
+
# Note: There is some whitespace in the headers making it not possible
|
150
|
+
# to directly index the header reliably.
|
151
|
+
if key.strip().lower() == "x-snowflake-request-id":
|
152
|
+
request_id = value
|
153
|
+
break
|
154
|
+
return request_id
|
155
|
+
|
156
|
+
|
123
157
|
def _validate_response_format_object(options: CompleteOptions) -> None:
|
124
158
|
"""Validate the response format object for structured-output mode.
|
125
159
|
|
@@ -148,14 +182,14 @@ def _validate_response_format_object(options: CompleteOptions) -> None:
|
|
148
182
|
|
149
183
|
def _make_request_body(
|
150
184
|
model: str,
|
151
|
-
prompt: Union[str,
|
185
|
+
prompt: Union[str, list[ConversationMessage]],
|
152
186
|
options: Optional[CompleteOptions] = None,
|
153
|
-
) ->
|
187
|
+
) -> dict[str, Any]:
|
154
188
|
data = {
|
155
189
|
"model": model,
|
156
190
|
"stream": True,
|
157
191
|
}
|
158
|
-
if isinstance(prompt,
|
192
|
+
if isinstance(prompt, list):
|
159
193
|
data["messages"] = prompt
|
160
194
|
else:
|
161
195
|
data["messages"] = [{"content": prompt}]
|
@@ -182,19 +216,13 @@ def _make_request_body(
|
|
182
216
|
|
183
217
|
# XP endpoint returns a dict response which needs to be converted to a format which can
|
184
218
|
# be consumed by the SSEClient. This method does that.
|
185
|
-
def _xp_dict_to_response(raw_resp:
|
219
|
+
def _xp_dict_to_response(raw_resp: dict[str, Any]) -> requests.Response:
|
186
220
|
|
187
221
|
response = requests.Response()
|
188
222
|
response.status_code = int(raw_resp["status"])
|
189
223
|
response.headers = raw_resp["headers"]
|
190
224
|
|
191
|
-
request_id =
|
192
|
-
for key, value in raw_resp["headers"].items():
|
193
|
-
# Note: there is some whitespace in the headers making it not possible
|
194
|
-
# to directly index the header reliably.
|
195
|
-
if key.strip().lower() == "x-snowflake-request-id":
|
196
|
-
request_id = value
|
197
|
-
break
|
225
|
+
request_id = _get_request_id(raw_resp)
|
198
226
|
|
199
227
|
data = raw_resp["content"]
|
200
228
|
try:
|
@@ -222,9 +250,9 @@ def _xp_dict_to_response(raw_resp: Dict[str, Any]) -> requests.Response:
|
|
222
250
|
|
223
251
|
@retry
|
224
252
|
def _call_complete_xp(
|
225
|
-
snow_api_xp_request_handler: Optional[Callable[...,
|
253
|
+
snow_api_xp_request_handler: Optional[Callable[..., dict[str, Any]]],
|
226
254
|
model: str,
|
227
|
-
prompt: Union[str,
|
255
|
+
prompt: Union[str, list[ConversationMessage]],
|
228
256
|
options: Optional[CompleteOptions] = None,
|
229
257
|
deadline: Optional[float] = None,
|
230
258
|
) -> requests.Response:
|
@@ -238,7 +266,7 @@ def _call_complete_xp(
|
|
238
266
|
@retry
|
239
267
|
def _call_complete_rest(
|
240
268
|
model: str,
|
241
|
-
prompt: Union[str,
|
269
|
+
prompt: Union[str, list[ConversationMessage]],
|
242
270
|
options: Optional[CompleteOptions] = None,
|
243
271
|
session: Optional[snowpark.Session] = None,
|
244
272
|
) -> requests.Response:
|
@@ -276,7 +304,12 @@ def _call_complete_rest(
|
|
276
304
|
)
|
277
305
|
|
278
306
|
|
279
|
-
def _return_stream_response(
|
307
|
+
def _return_stream_response(
|
308
|
+
response: requests.Response,
|
309
|
+
deadline: Optional[float],
|
310
|
+
session: Optional[snowpark.Session] = None,
|
311
|
+
) -> Iterator[str]:
|
312
|
+
request_id = _get_request_id(dict(response.headers))
|
280
313
|
client = SSEClient(response)
|
281
314
|
for event in client.events():
|
282
315
|
if deadline is not None and time.time() > deadline:
|
@@ -294,7 +327,7 @@ def _return_stream_response(response: requests.Response, deadline: Optional[floa
|
|
294
327
|
# This is the case of midstream errors which were introduced specifically for structured output.
|
295
328
|
# TODO: discuss during code review
|
296
329
|
if parsed_resp.get("error"):
|
297
|
-
|
330
|
+
raise MidStreamException(reason=response.text, request_id=request_id)
|
298
331
|
else:
|
299
332
|
pass
|
300
333
|
|
@@ -306,9 +339,9 @@ def _complete_call_sql_function_snowpark(
|
|
306
339
|
|
307
340
|
|
308
341
|
def _complete_non_streaming_immediate(
|
309
|
-
snow_api_xp_request_handler: Optional[Callable[...,
|
342
|
+
snow_api_xp_request_handler: Optional[Callable[..., dict[str, Any]]],
|
310
343
|
model: str,
|
311
|
-
prompt: Union[str,
|
344
|
+
prompt: Union[str, list[ConversationMessage]],
|
312
345
|
options: Optional[CompleteOptions],
|
313
346
|
session: Optional[snowpark.Session] = None,
|
314
347
|
deadline: Optional[float] = None,
|
@@ -325,10 +358,10 @@ def _complete_non_streaming_immediate(
|
|
325
358
|
|
326
359
|
|
327
360
|
def _complete_non_streaming_impl(
|
328
|
-
snow_api_xp_request_handler: Optional[Callable[...,
|
361
|
+
snow_api_xp_request_handler: Optional[Callable[..., dict[str, Any]]],
|
329
362
|
function: str,
|
330
363
|
model: Union[str, snowpark.Column],
|
331
|
-
prompt: Union[str,
|
364
|
+
prompt: Union[str, list[ConversationMessage], snowpark.Column],
|
332
365
|
options: Optional[Union[CompleteOptions, snowpark.Column]],
|
333
366
|
session: Optional[snowpark.Session] = None,
|
334
367
|
deadline: Optional[float] = None,
|
@@ -355,9 +388,9 @@ def _complete_non_streaming_impl(
|
|
355
388
|
|
356
389
|
|
357
390
|
def _complete_rest(
|
358
|
-
snow_api_xp_request_handler: Optional[Callable[...,
|
391
|
+
snow_api_xp_request_handler: Optional[Callable[..., dict[str, Any]]],
|
359
392
|
model: str,
|
360
|
-
prompt: Union[str,
|
393
|
+
prompt: Union[str, list[ConversationMessage]],
|
361
394
|
options: Optional[CompleteOptions] = None,
|
362
395
|
session: Optional[snowpark.Session] = None,
|
363
396
|
deadline: Optional[float] = None,
|
@@ -375,13 +408,13 @@ def _complete_rest(
|
|
375
408
|
else:
|
376
409
|
response = _call_complete_rest(model=model, prompt=prompt, options=options, session=session, deadline=deadline)
|
377
410
|
assert response.status_code >= 200 and response.status_code < 300
|
378
|
-
return _return_stream_response(response, deadline)
|
411
|
+
return _return_stream_response(response, deadline, session)
|
379
412
|
|
380
413
|
|
381
414
|
def _complete_impl(
|
382
415
|
model: Union[str, snowpark.Column],
|
383
|
-
prompt: Union[str,
|
384
|
-
snow_api_xp_request_handler: Optional[Callable[...,
|
416
|
+
prompt: Union[str, list[ConversationMessage], snowpark.Column],
|
417
|
+
snow_api_xp_request_handler: Optional[Callable[..., dict[str, Any]]] = None,
|
385
418
|
function: str = "snowflake.cortex.complete",
|
386
419
|
options: Optional[CompleteOptions] = None,
|
387
420
|
session: Optional[snowpark.Session] = None,
|
@@ -396,7 +429,7 @@ def _complete_impl(
|
|
396
429
|
if stream:
|
397
430
|
if not isinstance(model, str):
|
398
431
|
raise ValueError("in REST mode, 'model' must be a string")
|
399
|
-
if not isinstance(prompt, str) and not isinstance(prompt,
|
432
|
+
if not isinstance(prompt, str) and not isinstance(prompt, list):
|
400
433
|
raise ValueError("in REST mode, 'prompt' must be a string or a list of ConversationMessage")
|
401
434
|
return _complete_rest(
|
402
435
|
snow_api_xp_request_handler=snow_api_xp_request_handler,
|
@@ -422,7 +455,7 @@ def _complete_impl(
|
|
422
455
|
)
|
423
456
|
def complete(
|
424
457
|
model: Union[str, snowpark.Column],
|
425
|
-
prompt: Union[str,
|
458
|
+
prompt: Union[str, list[ConversationMessage], snowpark.Column],
|
426
459
|
*,
|
427
460
|
options: Optional[CompleteOptions] = None,
|
428
461
|
session: Optional[snowpark.Session] = None,
|
{snowflake_ml_python-1.8.1 → snowflake_ml_python-1.8.3}/snowflake/cortex/_embed_text_1024.py
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import
|
1
|
+
from typing import Optional, Union, cast
|
2
2
|
|
3
3
|
from typing_extensions import deprecated
|
4
4
|
|
@@ -14,7 +14,7 @@ def embed_text_1024(
|
|
14
14
|
model: Union[str, snowpark.Column],
|
15
15
|
text: Union[str, snowpark.Column],
|
16
16
|
session: Optional[snowpark.Session] = None,
|
17
|
-
) -> Union[
|
17
|
+
) -> Union[list[float], snowpark.Column]:
|
18
18
|
"""Calls into the LLM inference service to embed the text.
|
19
19
|
|
20
20
|
Args:
|
@@ -35,8 +35,8 @@ def _embed_text_1024_impl(
|
|
35
35
|
model: Union[str, snowpark.Column],
|
36
36
|
text: Union[str, snowpark.Column],
|
37
37
|
session: Optional[snowpark.Session] = None,
|
38
|
-
) -> Union[
|
39
|
-
return cast(Union[
|
38
|
+
) -> Union[list[float], snowpark.Column]:
|
39
|
+
return cast(Union[list[float], snowpark.Column], call_sql_function(function, session, model, text))
|
40
40
|
|
41
41
|
|
42
42
|
EmbedText1024 = deprecated(
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import
|
1
|
+
from typing import Optional, Union, cast
|
2
2
|
|
3
3
|
from typing_extensions import deprecated
|
4
4
|
|
@@ -14,7 +14,7 @@ def embed_text_768(
|
|
14
14
|
model: Union[str, snowpark.Column],
|
15
15
|
text: Union[str, snowpark.Column],
|
16
16
|
session: Optional[snowpark.Session] = None,
|
17
|
-
) -> Union[
|
17
|
+
) -> Union[list[float], snowpark.Column]:
|
18
18
|
"""Calls into the LLM inference service to embed the text.
|
19
19
|
|
20
20
|
Args:
|
@@ -35,8 +35,8 @@ def _embed_text_768_impl(
|
|
35
35
|
model: Union[str, snowpark.Column],
|
36
36
|
text: Union[str, snowpark.Column],
|
37
37
|
session: Optional[snowpark.Session] = None,
|
38
|
-
) -> Union[
|
39
|
-
return cast(Union[
|
38
|
+
) -> Union[list[float], snowpark.Column]:
|
39
|
+
return cast(Union[list[float], snowpark.Column], call_sql_function(function, session, model, text))
|
40
40
|
|
41
41
|
|
42
42
|
EmbedText768 = deprecated(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import json
|
2
2
|
from dataclasses import dataclass
|
3
|
-
from typing import Any,
|
3
|
+
from typing import Any, Optional, Union, cast
|
4
4
|
|
5
5
|
from snowflake import snowpark
|
6
6
|
from snowflake.cortex._util import (
|
@@ -53,7 +53,7 @@ class FinetuneStatus:
|
|
53
53
|
created_on: Optional[int] = None
|
54
54
|
"""Creation timestamp of the Fine-tuning job in milliseconds."""
|
55
55
|
|
56
|
-
error: Optional[
|
56
|
+
error: Optional[dict[str, Any]] = None
|
57
57
|
"""Error message propagated from the job."""
|
58
58
|
|
59
59
|
finished_on: Optional[int] = None
|
@@ -62,7 +62,7 @@ class FinetuneStatus:
|
|
62
62
|
progress: Optional[float] = None
|
63
63
|
"""Progress made as a fraction of total [0.0,1.0]."""
|
64
64
|
|
65
|
-
training_result: Optional[
|
65
|
+
training_result: Optional[list[dict[str, Any]]] = None
|
66
66
|
"""Detailed metrics report for a completed training."""
|
67
67
|
|
68
68
|
trained_tokens: Optional[int] = None
|
@@ -135,7 +135,7 @@ class FinetuneJob:
|
|
135
135
|
"""
|
136
136
|
result_string = _finetune_impl(operation="DESCRIBE", session=self._session, function_args=[self.status.id])
|
137
137
|
|
138
|
-
result = FinetuneStatus(**cast(
|
138
|
+
result = FinetuneStatus(**cast(dict[str, Any], _try_load_json(result_string)))
|
139
139
|
return result
|
140
140
|
|
141
141
|
|
@@ -167,7 +167,7 @@ class Finetune:
|
|
167
167
|
base_model: str,
|
168
168
|
training_data: Union[str, snowpark.DataFrame],
|
169
169
|
validation_data: Optional[Union[str, snowpark.DataFrame]] = None,
|
170
|
-
options: Optional[
|
170
|
+
options: Optional[dict[str, Any]] = None,
|
171
171
|
) -> FinetuneJob:
|
172
172
|
"""Create a new fine-tuning runs.
|
173
173
|
|
@@ -240,7 +240,7 @@ class Finetune:
|
|
240
240
|
project=CORTEX_FUNCTIONS_TELEMETRY_PROJECT,
|
241
241
|
subproject=CORTEX_FINETUNE_TELEMETRY_SUBPROJECT,
|
242
242
|
)
|
243
|
-
def list_jobs(self) ->
|
243
|
+
def list_jobs(self) -> list["FinetuneJob"]:
|
244
244
|
"""Show current and past fine-tuning runs.
|
245
245
|
|
246
246
|
Returns:
|
@@ -253,7 +253,7 @@ class Finetune:
|
|
253
253
|
return [FinetuneJob(session=self._session, status=FinetuneStatus(**run_status)) for run_status in result]
|
254
254
|
|
255
255
|
|
256
|
-
def _try_load_json(json_string: str) -> Union[
|
256
|
+
def _try_load_json(json_string: str) -> Union[dict[Any, Any], list[Any]]:
|
257
257
|
try:
|
258
258
|
result = json.loads(str(json_string))
|
259
259
|
except json.JSONDecodeError as e:
|
@@ -269,5 +269,5 @@ def _try_load_json(json_string: str) -> Union[Dict[Any, Any], List[Any]]:
|
|
269
269
|
return result
|
270
270
|
|
271
271
|
|
272
|
-
def _finetune_impl(operation: str, session: Optional[snowpark.Session], function_args:
|
272
|
+
def _finetune_impl(operation: str, session: Optional[snowpark.Session], function_args: list[Any]) -> str:
|
273
273
|
return call_sql_function_literals(_CORTEX_FINETUNE_SYSTEM_FUNCTION_NAME, session, operation, *function_args)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any,
|
1
|
+
from typing import Any, Optional, Union, cast
|
2
2
|
|
3
3
|
from snowflake import snowpark
|
4
4
|
from snowflake.ml._internal.exceptions import error_codes, exceptions
|
@@ -11,22 +11,18 @@ CORTEX_FUNCTIONS_TELEMETRY_PROJECT = "CortexFunctions"
|
|
11
11
|
class SnowflakeAuthenticationException(Exception):
|
12
12
|
"""This exception is raised when there is an issue with Snowflake's configuration."""
|
13
13
|
|
14
|
-
pass
|
15
|
-
|
16
14
|
|
17
15
|
class SnowflakeConfigurationException(Exception):
|
18
16
|
"""This exception is raised when there is an issue with Snowflake's configuration."""
|
19
17
|
|
20
|
-
pass
|
21
|
-
|
22
18
|
|
23
19
|
# Calls a sql function, handling both immediate (e.g. python types) and batch
|
24
20
|
# (e.g. snowpark column and literal type modes).
|
25
21
|
def call_sql_function(
|
26
22
|
function: str,
|
27
23
|
session: Optional[snowpark.Session],
|
28
|
-
*args: Union[str,
|
29
|
-
) -> Union[str,
|
24
|
+
*args: Union[str, list[str], snowpark.Column, dict[str, Union[int, float]]],
|
25
|
+
) -> Union[str, list[float], snowpark.Column]:
|
30
26
|
handle_as_column = False
|
31
27
|
|
32
28
|
for arg in args:
|
@@ -34,15 +30,15 @@ def call_sql_function(
|
|
34
30
|
handle_as_column = True
|
35
31
|
|
36
32
|
if handle_as_column:
|
37
|
-
return cast(Union[str,
|
33
|
+
return cast(Union[str, list[float], snowpark.Column], _call_sql_function_column(function, *args))
|
38
34
|
return cast(
|
39
|
-
Union[str,
|
35
|
+
Union[str, list[float], snowpark.Column],
|
40
36
|
_call_sql_function_immediate(function, session, *args),
|
41
37
|
)
|
42
38
|
|
43
39
|
|
44
40
|
def _call_sql_function_column(
|
45
|
-
function: str, *args: Union[str,
|
41
|
+
function: str, *args: Union[str, list[str], snowpark.Column, dict[str, Union[int, float]]]
|
46
42
|
) -> snowpark.Column:
|
47
43
|
return cast(snowpark.Column, functions.builtin(function)(*args))
|
48
44
|
|
@@ -50,8 +46,8 @@ def _call_sql_function_column(
|
|
50
46
|
def _call_sql_function_immediate(
|
51
47
|
function: str,
|
52
48
|
session: Optional[snowpark.Session],
|
53
|
-
*args: Union[str,
|
54
|
-
) -> Union[str,
|
49
|
+
*args: Union[str, list[str], snowpark.Column, dict[str, Union[int, float]]],
|
50
|
+
) -> Union[str, list[float]]:
|
55
51
|
session = session or context.get_active_session()
|
56
52
|
if session is None:
|
57
53
|
raise SnowflakeAuthenticationException(
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import os
|
2
|
+
import platform
|
3
|
+
|
4
|
+
SOURCE = "SnowML"
|
5
|
+
PYTHON_VERSION = platform.python_version()
|
6
|
+
OS = platform.system()
|
7
|
+
IN_ML_RUNTIME_ENV_VAR = "IN_SPCS_ML_RUNTIME"
|
8
|
+
IN_ML_RUNTIME = os.getenv(IN_ML_RUNTIME_ENV_VAR)
|
9
|
+
USE_OPTIMIZED_DATA_INGESTOR = "USE_OPTIMIZED_DATA_INGESTOR"
|