snowflake-ml-python 1.19.0__tar.gz → 1.21.0__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.19.0 → snowflake_ml_python-1.21.0}/CHANGELOG.md +89 -4
- {snowflake_ml_python-1.19.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.21.0}/PKG-INFO +94 -7
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/pyproject.toml +3 -3
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/env_utils.py +16 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/platform_capabilities.py +36 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/telemetry.py +56 -7
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/_internal/arrow_ingestor.py +67 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/data_connector.py +103 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +8 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_entities/run.py +15 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/callback/keras.py +25 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/callback/lightgbm.py +27 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/callback/xgboost.py +25 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/experiment_tracking.py +123 -13
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/utils.py +6 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/access_manager.py +1 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/feature_store.py +1 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/feature_view.py +34 -24
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/protocols.py +3 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/feature_flags.py +1 -0
- snowflake_ml_python-1.21.0/snowflake/ml/jobs/_utils/payload_utils.py +761 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +95 -8
- snowflake_ml_python-1.21.0/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +92 -0
- snowflake_ml_python-1.21.0/snowflake/ml/jobs/_utils/scripts/startup.sh +112 -0
- snowflake_ml_python-1.21.0/snowflake/ml/jobs/_utils/spec_utils.py +53 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/stage_utils.py +22 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/types.py +14 -7
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/job.py +8 -9
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/manager.py +64 -129
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +8 -4
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/model/model_version_impl.py +109 -28
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/ops/model_ops.py +32 -6
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/ops/service_ops.py +9 -4
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/service.py +69 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handler.py +8 -2
- snowflake_ml_python-1.19.0/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py → snowflake_ml_python-1.21.0/snowflake/ml/model/_packager/model_handlers/huggingface.py +203 -76
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +6 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +1 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/core.py +305 -8
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/utils.py +13 -4
- snowflake_ml_python-1.21.0/snowflake/ml/model/compute_pool.py +2 -0
- snowflake_ml_python-1.21.0/snowflake/ml/model/models/huggingface.py +285 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/models/huggingface_pipeline.py +25 -215
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/type_hints.py +5 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +2 -2
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +12 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +12 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +5 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/utils/html_utils.py +67 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0/snowflake_ml_python.egg-info}/PKG-INFO +94 -7
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake_ml_python.egg-info/SOURCES.txt +5 -1
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake_ml_python.egg-info/requires.txt +3 -1
- snowflake_ml_python-1.19.0/snowflake/ml/jobs/_utils/payload_utils.py +0 -758
- snowflake_ml_python-1.19.0/snowflake/ml/jobs/_utils/spec_utils.py +0 -457
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/README.md +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,10 +1,97 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.21.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Inference Autocapture (Preview): The `create_service` API will now accept `autocapture` as a new argument to indicate
|
|
8
|
+
whether inference data will be captured.
|
|
9
|
+
* DataConnector: Added `to_huggingface_dataset()` method for converting Snowflake data to HuggingFace datasets.
|
|
10
|
+
Supports both in-memory `Dataset` (streaming=False) and streaming `IterableDataset` (streaming=True) modes.
|
|
11
|
+
* Introducing `snowflake.ml.model.models.huggingface.TransformersPipeline` model which will replace object
|
|
12
|
+
`snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel`. This is a wrapper class to
|
|
13
|
+
`transformers.Pipeline` model. Currently, following tasks
|
|
14
|
+
are supported to log without manually specifying model signatures:
|
|
15
|
+
* "fill-mask"
|
|
16
|
+
* "question-answering"
|
|
17
|
+
* "summarization"
|
|
18
|
+
* "table-question-answering"
|
|
19
|
+
* "text2text-generation"
|
|
20
|
+
* "text-classification" (alias "sentiment-analysis" available)
|
|
21
|
+
* "text-generation"
|
|
22
|
+
* "token-classification" (alias "ner" available)
|
|
23
|
+
* "translation"
|
|
24
|
+
* "translation_xx_to_yy"
|
|
25
|
+
* "zero-shot-classification"
|
|
26
|
+
which provides utility to log the model without loading the model in memory.
|
|
4
27
|
|
|
5
28
|
### Bug Fixes
|
|
6
29
|
|
|
7
|
-
* Experiment Tracking (
|
|
30
|
+
* Experiment Tracking (PuPr): Reaching the run metadata size limit in `log_metrics` or `log_params` will warn the user
|
|
31
|
+
instead of raising an exception.
|
|
32
|
+
* Registry: `ModelVersion.run()` will now raise a `ValueError` if the model does not support running on warehouse
|
|
33
|
+
(e.g. SPCS-only models) and `service_name` is not provided.
|
|
34
|
+
|
|
35
|
+
### Behavior Changes
|
|
36
|
+
|
|
37
|
+
* ML Job: The `additional_payloads` (Preview API) behavior is changing.
|
|
38
|
+
Use the `imports` argument to declare additional dependencies, such as zip files and Python modules.
|
|
39
|
+
Local directories and Python files are automatically compressed, and their internal layout is determined by the
|
|
40
|
+
specified import path. The import path applies only to local directories, Python files and staged python files;
|
|
41
|
+
it has no effect on other import types. When referencing files in a stage, only individual files
|
|
42
|
+
are supported—not directories.
|
|
43
|
+
* Online Inference (PuPr): `list_services()` now shows internal endpoint that does not need EAI to call from another
|
|
44
|
+
SPCS node or Notebook.
|
|
45
|
+
* Inference Autocapture (Preview): `list_services()` now shows if model service has autocapture enabled.
|
|
46
|
+
* Experiment Tracking (PuPr): `ExperimentTracking` is now a singleton class.
|
|
47
|
+
|
|
48
|
+
### Deprecations
|
|
49
|
+
|
|
50
|
+
* Deprecating `snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel` and will be removed in later
|
|
51
|
+
version with a notice.
|
|
52
|
+
|
|
53
|
+
## 1.20.0
|
|
54
|
+
|
|
55
|
+
### Bug Fixes
|
|
56
|
+
|
|
57
|
+
* Experiment Tracking (PuPr): Reaching the run metadata size limit in `log_metrics` or `log_params` will warn the user
|
|
58
|
+
instead of raising an exception.
|
|
59
|
+
|
|
60
|
+
### New Features
|
|
61
|
+
|
|
62
|
+
* Registry (PrPr): Introducing vLLM as a backend inference engine. The `create_service` API will now
|
|
63
|
+
accept `inference_engine_options` as an argument.
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
from snowflake.ml.model.inference_engine import InferenceEngine
|
|
67
|
+
|
|
68
|
+
mv = snowflake_registry.log_model(
|
|
69
|
+
model=generator,
|
|
70
|
+
model_name=...,
|
|
71
|
+
...,
|
|
72
|
+
# Specifying OPENAI_CHAT_SIGNATURE is necessary to use vLLM inference engine
|
|
73
|
+
signatures=openai_signatures.OPENAI_CHAT_SIGNATURE,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
mv.create_service(
|
|
77
|
+
service_name=my_serv,
|
|
78
|
+
service_compute_pool=...,
|
|
79
|
+
...,
|
|
80
|
+
inference_engine_options={
|
|
81
|
+
"engine": InferenceEngine.VLLM,
|
|
82
|
+
"engine_args_override": [
|
|
83
|
+
"--max-model-len=2048",
|
|
84
|
+
"--gpu-memory-utilization=0.9"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 1.19.0 (11-13-2025)
|
|
91
|
+
|
|
92
|
+
### Bug Fixes
|
|
93
|
+
|
|
94
|
+
* Experiment Tracking (PuPr): No longer throw an exception in `list_artifacts` when run does not have artifacts.
|
|
8
95
|
* Registry: Fix `get_version_by_alias`: now requires an exact match of snowflake identifier.
|
|
9
96
|
|
|
10
97
|
### Behavior Changes
|
|
@@ -106,8 +193,6 @@ options = {
|
|
|
106
193
|
* Registry: Dropping support for deprecated `conversational` task type for Huggingface models.
|
|
107
194
|
To read more <https://github.com/huggingface/transformers/pull/31165>
|
|
108
195
|
|
|
109
|
-
### New Features
|
|
110
|
-
|
|
111
196
|
## 1.14.0 (09-18-2025)
|
|
112
197
|
|
|
113
198
|
### Bug Fixes
|
{snowflake_ml_python-1.19.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.21.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.21.0
|
|
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:
|
|
@@ -230,7 +230,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
230
230
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
231
231
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
232
232
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
233
|
-
Requires-Python: <3.
|
|
233
|
+
Requires-Python: <3.14,>=3.9
|
|
234
234
|
Description-Content-Type: text/markdown
|
|
235
235
|
License-File: LICENSE.txt
|
|
236
236
|
Requires-Dist: anyio<5,>=3.5.0
|
|
@@ -240,7 +240,7 @@ Requires-Dist: cryptography
|
|
|
240
240
|
Requires-Dist: fsspec[http]<2026,>=2024.6.1
|
|
241
241
|
Requires-Dist: importlib_resources<7,>=6.1.1
|
|
242
242
|
Requires-Dist: numpy<3,>=1.23
|
|
243
|
-
Requires-Dist: packaging<
|
|
243
|
+
Requires-Dist: packaging<26,>=20.9
|
|
244
244
|
Requires-Dist: pandas<3,>=2.1.4
|
|
245
245
|
Requires-Dist: platformdirs<5
|
|
246
246
|
Requires-Dist: pyarrow<19.0.0
|
|
@@ -307,7 +307,9 @@ Requires-Dist: torchdata<1,>=0.4; extra == "torch"
|
|
|
307
307
|
Provides-Extra: transformers
|
|
308
308
|
Requires-Dist: sentence-transformers<4,>=2.7.0; extra == "transformers"
|
|
309
309
|
Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
|
|
310
|
+
Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
|
|
310
311
|
Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
|
|
312
|
+
Requires-Dist: transformers!=4.51.3,<5,>=4.39.3; extra == "transformers"
|
|
311
313
|
Dynamic: license-file
|
|
312
314
|
|
|
313
315
|
# Snowflake ML Python
|
|
@@ -415,11 +417,98 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
415
417
|
|
|
416
418
|
# Release History
|
|
417
419
|
|
|
418
|
-
## 1.
|
|
420
|
+
## 1.21.0
|
|
421
|
+
|
|
422
|
+
### New Features
|
|
423
|
+
|
|
424
|
+
* Inference Autocapture (Preview): The `create_service` API will now accept `autocapture` as a new argument to indicate
|
|
425
|
+
whether inference data will be captured.
|
|
426
|
+
* DataConnector: Added `to_huggingface_dataset()` method for converting Snowflake data to HuggingFace datasets.
|
|
427
|
+
Supports both in-memory `Dataset` (streaming=False) and streaming `IterableDataset` (streaming=True) modes.
|
|
428
|
+
* Introducing `snowflake.ml.model.models.huggingface.TransformersPipeline` model which will replace object
|
|
429
|
+
`snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel`. This is a wrapper class to
|
|
430
|
+
`transformers.Pipeline` model. Currently, following tasks
|
|
431
|
+
are supported to log without manually specifying model signatures:
|
|
432
|
+
* "fill-mask"
|
|
433
|
+
* "question-answering"
|
|
434
|
+
* "summarization"
|
|
435
|
+
* "table-question-answering"
|
|
436
|
+
* "text2text-generation"
|
|
437
|
+
* "text-classification" (alias "sentiment-analysis" available)
|
|
438
|
+
* "text-generation"
|
|
439
|
+
* "token-classification" (alias "ner" available)
|
|
440
|
+
* "translation"
|
|
441
|
+
* "translation_xx_to_yy"
|
|
442
|
+
* "zero-shot-classification"
|
|
443
|
+
which provides utility to log the model without loading the model in memory.
|
|
419
444
|
|
|
420
445
|
### Bug Fixes
|
|
421
446
|
|
|
422
|
-
* Experiment Tracking (
|
|
447
|
+
* Experiment Tracking (PuPr): Reaching the run metadata size limit in `log_metrics` or `log_params` will warn the user
|
|
448
|
+
instead of raising an exception.
|
|
449
|
+
* Registry: `ModelVersion.run()` will now raise a `ValueError` if the model does not support running on warehouse
|
|
450
|
+
(e.g. SPCS-only models) and `service_name` is not provided.
|
|
451
|
+
|
|
452
|
+
### Behavior Changes
|
|
453
|
+
|
|
454
|
+
* ML Job: The `additional_payloads` (Preview API) behavior is changing.
|
|
455
|
+
Use the `imports` argument to declare additional dependencies, such as zip files and Python modules.
|
|
456
|
+
Local directories and Python files are automatically compressed, and their internal layout is determined by the
|
|
457
|
+
specified import path. The import path applies only to local directories, Python files and staged python files;
|
|
458
|
+
it has no effect on other import types. When referencing files in a stage, only individual files
|
|
459
|
+
are supported—not directories.
|
|
460
|
+
* Online Inference (PuPr): `list_services()` now shows internal endpoint that does not need EAI to call from another
|
|
461
|
+
SPCS node or Notebook.
|
|
462
|
+
* Inference Autocapture (Preview): `list_services()` now shows if model service has autocapture enabled.
|
|
463
|
+
* Experiment Tracking (PuPr): `ExperimentTracking` is now a singleton class.
|
|
464
|
+
|
|
465
|
+
### Deprecations
|
|
466
|
+
|
|
467
|
+
* Deprecating `snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel` and will be removed in later
|
|
468
|
+
version with a notice.
|
|
469
|
+
|
|
470
|
+
## 1.20.0
|
|
471
|
+
|
|
472
|
+
### Bug Fixes
|
|
473
|
+
|
|
474
|
+
* Experiment Tracking (PuPr): Reaching the run metadata size limit in `log_metrics` or `log_params` will warn the user
|
|
475
|
+
instead of raising an exception.
|
|
476
|
+
|
|
477
|
+
### New Features
|
|
478
|
+
|
|
479
|
+
* Registry (PrPr): Introducing vLLM as a backend inference engine. The `create_service` API will now
|
|
480
|
+
accept `inference_engine_options` as an argument.
|
|
481
|
+
|
|
482
|
+
```python
|
|
483
|
+
from snowflake.ml.model.inference_engine import InferenceEngine
|
|
484
|
+
|
|
485
|
+
mv = snowflake_registry.log_model(
|
|
486
|
+
model=generator,
|
|
487
|
+
model_name=...,
|
|
488
|
+
...,
|
|
489
|
+
# Specifying OPENAI_CHAT_SIGNATURE is necessary to use vLLM inference engine
|
|
490
|
+
signatures=openai_signatures.OPENAI_CHAT_SIGNATURE,
|
|
491
|
+
)
|
|
492
|
+
|
|
493
|
+
mv.create_service(
|
|
494
|
+
service_name=my_serv,
|
|
495
|
+
service_compute_pool=...,
|
|
496
|
+
...,
|
|
497
|
+
inference_engine_options={
|
|
498
|
+
"engine": InferenceEngine.VLLM,
|
|
499
|
+
"engine_args_override": [
|
|
500
|
+
"--max-model-len=2048",
|
|
501
|
+
"--gpu-memory-utilization=0.9"
|
|
502
|
+
]
|
|
503
|
+
}
|
|
504
|
+
)
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
## 1.19.0 (11-13-2025)
|
|
508
|
+
|
|
509
|
+
### Bug Fixes
|
|
510
|
+
|
|
511
|
+
* Experiment Tracking (PuPr): No longer throw an exception in `list_artifacts` when run does not have artifacts.
|
|
423
512
|
* Registry: Fix `get_version_by_alias`: now requires an exact match of snowflake identifier.
|
|
424
513
|
|
|
425
514
|
### Behavior Changes
|
|
@@ -521,8 +610,6 @@ options = {
|
|
|
521
610
|
* Registry: Dropping support for deprecated `conversational` task type for Huggingface models.
|
|
522
611
|
To read more <https://github.com/huggingface/transformers/pull/31165>
|
|
523
612
|
|
|
524
|
-
### New Features
|
|
525
|
-
|
|
526
613
|
## 1.14.0 (09-18-2025)
|
|
527
614
|
|
|
528
615
|
### Bug Fixes
|
|
@@ -6,9 +6,9 @@ build-backend = "setuptools.build_meta"
|
|
|
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
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.
|
|
9
|
+
requires-python = ">=3.9, <3.14"
|
|
10
10
|
dynamic = [ "version", "readme",]
|
|
11
|
-
dependencies = [ "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,<3", "packaging>=20.9,<
|
|
11
|
+
dependencies = [ "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,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "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.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
|
|
12
12
|
[[project.authors]]
|
|
13
13
|
name = "Snowflake, Inc"
|
|
14
14
|
email = "support@snowflake.com"
|
|
@@ -35,7 +35,7 @@ prophet = [ "prophet>=1.1.0, <2",]
|
|
|
35
35
|
streamlit = [ "streamlit>=1.30.0,<2",]
|
|
36
36
|
tensorflow = [ "tensorflow>=2.17.0,<3",]
|
|
37
37
|
torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
|
|
38
|
-
transformers = [ "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "torch>=2.0.1,<3",]
|
|
38
|
+
transformers = [ "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,<5,!=4.51.3",]
|
|
39
39
|
|
|
40
40
|
[tool.setuptools.package-data]
|
|
41
41
|
"*" = [ "*",]
|
{snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/env_utils.py
RENAMED
|
@@ -16,6 +16,7 @@ from snowflake.ml import version as snowml_version
|
|
|
16
16
|
from snowflake.ml._internal import env as snowml_env, relax_version_strategy
|
|
17
17
|
from snowflake.ml._internal.utils import query_result_checker
|
|
18
18
|
from snowflake.snowpark import context, exceptions, session
|
|
19
|
+
from snowflake.snowpark._internal import utils as snowpark_utils
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class CONDA_OS(Enum):
|
|
@@ -38,6 +39,21 @@ SNOWPARK_ML_PKG_NAME = "snowflake-ml-python"
|
|
|
38
39
|
SNOWFLAKE_CONDA_CHANNEL_URL = "https://repo.anaconda.com/pkgs/snowflake"
|
|
39
40
|
|
|
40
41
|
|
|
42
|
+
def get_execution_context() -> str:
|
|
43
|
+
"""Detect execution context: EXTERNAL, SPCS, or SPROC.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
str: The execution context - "SPROC" if running in a stored procedure,
|
|
47
|
+
"SPCS" if running in SPCS ML runtime, "EXTERNAL" otherwise.
|
|
48
|
+
"""
|
|
49
|
+
if snowpark_utils.is_in_stored_procedure(): # type: ignore[no-untyped-call]
|
|
50
|
+
return "SPROC"
|
|
51
|
+
elif snowml_env.IN_ML_RUNTIME:
|
|
52
|
+
return "SPCS"
|
|
53
|
+
else:
|
|
54
|
+
return "EXTERNAL"
|
|
55
|
+
|
|
56
|
+
|
|
41
57
|
def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
|
|
42
58
|
"""Validate the input pip requirement string according to PEP 508.
|
|
43
59
|
|
|
@@ -18,6 +18,8 @@ logger = logging.getLogger(__name__)
|
|
|
18
18
|
LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
|
|
19
19
|
INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
|
|
20
20
|
SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
|
|
21
|
+
ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
|
|
22
|
+
FEATURE_MODEL_INFERENCE_AUTOCAPTURE = "FEATURE_MODEL_INFERENCE_AUTOCAPTURE"
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
class PlatformCapabilities:
|
|
@@ -80,6 +82,12 @@ class PlatformCapabilities:
|
|
|
80
82
|
def is_live_commit_enabled(self) -> bool:
|
|
81
83
|
return self._get_bool_feature(LIVE_COMMIT_PARAMETER, False)
|
|
82
84
|
|
|
85
|
+
def is_model_method_signature_parameters_enabled(self) -> bool:
|
|
86
|
+
return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
|
|
87
|
+
|
|
88
|
+
def is_inference_autocapture_enabled(self) -> bool:
|
|
89
|
+
return self._is_feature_enabled(FEATURE_MODEL_INFERENCE_AUTOCAPTURE)
|
|
90
|
+
|
|
83
91
|
@staticmethod
|
|
84
92
|
def _get_features(session: snowpark_session.Session) -> dict[str, Any]:
|
|
85
93
|
try:
|
|
@@ -182,3 +190,31 @@ class PlatformCapabilities:
|
|
|
182
190
|
f"current={current_version}, feature={feature_version}, enabled={result}"
|
|
183
191
|
)
|
|
184
192
|
return result
|
|
193
|
+
|
|
194
|
+
def _is_feature_enabled(self, feature_name: str) -> bool:
|
|
195
|
+
"""Check if the feature parameter value belongs to enabled values.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
feature_name: The name of the feature to retrieve.
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
bool: True if the value is "ENABLED" or "ENABLED_PUBLIC_PREVIEW",
|
|
202
|
+
False if the value is "DISABLED", "DISABLED_PRIVATE_PREVIEW", or not set.
|
|
203
|
+
|
|
204
|
+
Raises:
|
|
205
|
+
ValueError: If the feature value is set but not one of the recognized values.
|
|
206
|
+
"""
|
|
207
|
+
value = self.features.get(feature_name)
|
|
208
|
+
if value is None:
|
|
209
|
+
logger.debug(f"Feature {feature_name} not found.")
|
|
210
|
+
return False
|
|
211
|
+
|
|
212
|
+
if isinstance(value, str):
|
|
213
|
+
value_str = str(value)
|
|
214
|
+
if value_str.upper() in ["ENABLED", "ENABLED_PUBLIC_PREVIEW"]:
|
|
215
|
+
return True
|
|
216
|
+
elif value_str.upper() in ["DISABLED", "DISABLED_PRIVATE_PREVIEW"]:
|
|
217
|
+
return False
|
|
218
|
+
else:
|
|
219
|
+
raise ValueError(f"Invalid feature parameter value: {value} for feature {feature_name}")
|
|
220
|
+
raise ValueError(f"Invalid feature parameter string value: {value} for feature {feature_name}")
|
{snowflake_ml_python-1.19.0 → snowflake_ml_python-1.21.0}/snowflake/ml/_internal/telemetry.py
RENAMED
|
@@ -16,7 +16,7 @@ from typing_extensions import ParamSpec
|
|
|
16
16
|
from snowflake import connector
|
|
17
17
|
from snowflake.connector import connect, telemetry as connector_telemetry, time_util
|
|
18
18
|
from snowflake.ml import version as snowml_version
|
|
19
|
-
from snowflake.ml._internal import env
|
|
19
|
+
from snowflake.ml._internal import env, env_utils
|
|
20
20
|
from snowflake.ml._internal.exceptions import (
|
|
21
21
|
error_codes,
|
|
22
22
|
exceptions as snowml_exceptions,
|
|
@@ -37,6 +37,22 @@ _CONNECTION_TYPES = {
|
|
|
37
37
|
_Args = ParamSpec("_Args")
|
|
38
38
|
_ReturnValue = TypeVar("_ReturnValue")
|
|
39
39
|
|
|
40
|
+
_conn: Optional[connector.SnowflakeConnection] = None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def clear_cached_conn() -> None:
|
|
44
|
+
"""Clear the cached Snowflake connection. Primarily for testing purposes."""
|
|
45
|
+
global _conn
|
|
46
|
+
if _conn is not None and _conn.is_valid():
|
|
47
|
+
_conn.close()
|
|
48
|
+
_conn = None
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def get_cached_conn() -> Optional[connector.SnowflakeConnection]:
|
|
52
|
+
"""Get the cached Snowflake connection. Primarily for testing purposes."""
|
|
53
|
+
global _conn
|
|
54
|
+
return _conn
|
|
55
|
+
|
|
40
56
|
|
|
41
57
|
def _get_login_token() -> Union[str, bytes]:
|
|
42
58
|
with open("/snowflake/session/token") as f:
|
|
@@ -44,7 +60,11 @@ def _get_login_token() -> Union[str, bytes]:
|
|
|
44
60
|
|
|
45
61
|
|
|
46
62
|
def _get_snowflake_connection() -> Optional[connector.SnowflakeConnection]:
|
|
47
|
-
|
|
63
|
+
global _conn
|
|
64
|
+
if _conn is not None and _conn.is_valid():
|
|
65
|
+
return _conn
|
|
66
|
+
|
|
67
|
+
conn: Optional[connector.SnowflakeConnection] = None
|
|
48
68
|
if os.getenv("SNOWFLAKE_HOST") is not None and os.getenv("SNOWFLAKE_ACCOUNT") is not None:
|
|
49
69
|
try:
|
|
50
70
|
conn = connect(
|
|
@@ -66,6 +86,13 @@ def _get_snowflake_connection() -> Optional[connector.SnowflakeConnection]:
|
|
|
66
86
|
# Failed to get an active session. No connection available.
|
|
67
87
|
pass
|
|
68
88
|
|
|
89
|
+
# cache the connection if it's a SnowflakeConnection. there is a behavior at runtime where it could be a
|
|
90
|
+
# StoredProcConnection perhaps incorrect type hinting somewhere
|
|
91
|
+
if isinstance(conn, connector.SnowflakeConnection):
|
|
92
|
+
# if _conn was expired, we need to copy telemetry data to new connection
|
|
93
|
+
if _conn is not None and conn is not None:
|
|
94
|
+
conn._telemetry._log_batch.extend(_conn._telemetry._log_batch)
|
|
95
|
+
_conn = conn
|
|
69
96
|
return conn
|
|
70
97
|
|
|
71
98
|
|
|
@@ -113,6 +140,13 @@ class TelemetryField(enum.Enum):
|
|
|
113
140
|
FUNC_CAT_USAGE = "usage"
|
|
114
141
|
|
|
115
142
|
|
|
143
|
+
@enum.unique
|
|
144
|
+
class CustomTagKey(enum.Enum):
|
|
145
|
+
"""Keys for custom tags in telemetry."""
|
|
146
|
+
|
|
147
|
+
EXECUTION_CONTEXT = "execution_context"
|
|
148
|
+
|
|
149
|
+
|
|
116
150
|
class _TelemetrySourceType(enum.Enum):
|
|
117
151
|
# Automatically inferred telemetry/statement parameters
|
|
118
152
|
AUTO_TELEMETRY = "SNOWML_AUTO_TELEMETRY"
|
|
@@ -441,6 +475,7 @@ def send_api_usage_telemetry(
|
|
|
441
475
|
sfqids_extractor: Optional[Callable[..., list[str]]] = None,
|
|
442
476
|
subproject_extractor: Optional[Callable[[Any], str]] = None,
|
|
443
477
|
custom_tags: Optional[dict[str, Union[bool, int, str, float]]] = None,
|
|
478
|
+
log_execution_context: bool = True,
|
|
444
479
|
) -> Callable[[Callable[_Args, _ReturnValue]], Callable[_Args, _ReturnValue]]:
|
|
445
480
|
"""
|
|
446
481
|
Decorator that sends API usage telemetry and adds function usage statement parameters to the dataframe returned by
|
|
@@ -455,6 +490,8 @@ def send_api_usage_telemetry(
|
|
|
455
490
|
sfqids_extractor: Extract sfqids from `self`.
|
|
456
491
|
subproject_extractor: Extract subproject at runtime from `self`.
|
|
457
492
|
custom_tags: Custom tags.
|
|
493
|
+
log_execution_context: If True, automatically detect and log execution context
|
|
494
|
+
(EXTERNAL, SPCS, or SPROC) in custom_tags.
|
|
458
495
|
|
|
459
496
|
Returns:
|
|
460
497
|
Decorator that sends function usage telemetry for any call to the decorated function.
|
|
@@ -495,6 +532,11 @@ def send_api_usage_telemetry(
|
|
|
495
532
|
if subproject_extractor is not None:
|
|
496
533
|
subproject_name = subproject_extractor(args[0])
|
|
497
534
|
|
|
535
|
+
# Add execution context if enabled
|
|
536
|
+
final_custom_tags = {**custom_tags} if custom_tags is not None else {}
|
|
537
|
+
if log_execution_context:
|
|
538
|
+
final_custom_tags[CustomTagKey.EXECUTION_CONTEXT.value] = env_utils.get_execution_context()
|
|
539
|
+
|
|
498
540
|
statement_params = get_function_usage_statement_params(
|
|
499
541
|
project=project,
|
|
500
542
|
subproject=subproject_name,
|
|
@@ -502,7 +544,7 @@ def send_api_usage_telemetry(
|
|
|
502
544
|
function_name=_get_full_func_name(func),
|
|
503
545
|
function_parameters=params,
|
|
504
546
|
api_calls=api_calls,
|
|
505
|
-
custom_tags=
|
|
547
|
+
custom_tags=final_custom_tags,
|
|
506
548
|
)
|
|
507
549
|
|
|
508
550
|
def update_stmt_params_if_snowpark_df(obj: _ReturnValue, statement_params: dict[str, Any]) -> _ReturnValue:
|
|
@@ -538,7 +580,10 @@ def send_api_usage_telemetry(
|
|
|
538
580
|
if conn_attr_name:
|
|
539
581
|
# raise AttributeError if conn attribute does not exist in `self`
|
|
540
582
|
conn = operator.attrgetter(conn_attr_name)(args[0])
|
|
541
|
-
if not isinstance(
|
|
583
|
+
if not isinstance(
|
|
584
|
+
conn,
|
|
585
|
+
_CONNECTION_TYPES.get(type(conn).__name__, connector.SnowflakeConnection),
|
|
586
|
+
):
|
|
542
587
|
raise TypeError(
|
|
543
588
|
f"Expected a conn object of type {' or '.join(_CONNECTION_TYPES.keys())} but got {type(conn)}"
|
|
544
589
|
)
|
|
@@ -560,7 +605,7 @@ def send_api_usage_telemetry(
|
|
|
560
605
|
func_params=params,
|
|
561
606
|
api_calls=api_calls,
|
|
562
607
|
sfqids=sfqids,
|
|
563
|
-
custom_tags=
|
|
608
|
+
custom_tags=final_custom_tags,
|
|
564
609
|
)
|
|
565
610
|
try:
|
|
566
611
|
return ctx.run(execute_func_with_statement_params)
|
|
@@ -571,7 +616,8 @@ def send_api_usage_telemetry(
|
|
|
571
616
|
raise
|
|
572
617
|
if isinstance(e, snowpark_exceptions.SnowparkClientException):
|
|
573
618
|
me = snowml_exceptions.SnowflakeMLException(
|
|
574
|
-
error_code=error_codes.INTERNAL_SNOWPARK_ERROR,
|
|
619
|
+
error_code=error_codes.INTERNAL_SNOWPARK_ERROR,
|
|
620
|
+
original_exception=e,
|
|
575
621
|
)
|
|
576
622
|
else:
|
|
577
623
|
me = snowml_exceptions.SnowflakeMLException(
|
|
@@ -627,7 +673,10 @@ def _get_full_func_name(func: Callable[..., Any]) -> str:
|
|
|
627
673
|
|
|
628
674
|
|
|
629
675
|
def _get_func_params(
|
|
630
|
-
func: Callable[..., Any],
|
|
676
|
+
func: Callable[..., Any],
|
|
677
|
+
func_params_to_log: Optional[Iterable[str]],
|
|
678
|
+
args: Any,
|
|
679
|
+
kwargs: Any,
|
|
631
680
|
) -> dict[str, Any]:
|
|
632
681
|
"""
|
|
633
682
|
Get function parameters.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import base64
|
|
1
2
|
import collections
|
|
2
3
|
import logging
|
|
3
4
|
import os
|
|
5
|
+
import re
|
|
4
6
|
import time
|
|
5
7
|
from typing import TYPE_CHECKING, Any, Deque, Iterator, Optional, Sequence, Union
|
|
6
8
|
|
|
@@ -165,8 +167,71 @@ class ArrowIngestor(data_ingestor.DataIngestor, mixins.SerializableSessionMixin)
|
|
|
165
167
|
# Re-shuffle input files on each iteration start
|
|
166
168
|
if shuffle:
|
|
167
169
|
np.random.shuffle(sources)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
+
try:
|
|
171
|
+
pa_dataset: pds.Dataset = pds.dataset(sources, format=format, **self._kwargs)
|
|
172
|
+
return pa_dataset
|
|
173
|
+
except Exception as e:
|
|
174
|
+
self._tmp_debug_parquet_invalid(e, sources)
|
|
175
|
+
|
|
176
|
+
def _tmp_debug_parquet_invalid(self, e: Exception, sources: list[Any]) -> None:
|
|
177
|
+
# Attach rich debug info to help diagnose intermittent Parquet footer/magic byte errors
|
|
178
|
+
debug_parts: list[str] = []
|
|
179
|
+
debug_parts.append("SNOWML DEBUG: Failed to construct Arrow Dataset")
|
|
180
|
+
debug_parts.append(
|
|
181
|
+
"SNOWML DEBUG: " f"data_sources_count={len(self._data_sources)} " f"resolved_sources_count={len(sources)}"
|
|
182
|
+
)
|
|
183
|
+
# Try to include the exact file path mentioned by pyarrow, if present
|
|
184
|
+
error_text = str(e)
|
|
185
|
+
snow_paths: list[str] = []
|
|
186
|
+
try:
|
|
187
|
+
# Extract snow://... tokens possibly wrapped in quotes
|
|
188
|
+
for match in re.finditer(r'(snow://[^\s\'"]+)', error_text):
|
|
189
|
+
token = match.group(1).rstrip(").,;]")
|
|
190
|
+
snow_paths.append(token)
|
|
191
|
+
except Exception:
|
|
192
|
+
pass
|
|
193
|
+
fs = self._kwargs.get("filesystem")
|
|
194
|
+
if fs is not None:
|
|
195
|
+
# Always include a directory listing with sizes for context
|
|
196
|
+
try:
|
|
197
|
+
debug_parts.append("SNOWML DEBUG: Listing resolved sources with sizes:")
|
|
198
|
+
for s in sources:
|
|
199
|
+
try:
|
|
200
|
+
info = fs.info(s)
|
|
201
|
+
size = info.get("size", None)
|
|
202
|
+
md5 = info.get("md5", None)
|
|
203
|
+
debug_parts.append(f" - {s} size={size} md5={md5}")
|
|
204
|
+
except Exception as le:
|
|
205
|
+
debug_parts.append(f" - {s} info_failed={le}")
|
|
206
|
+
except Exception as le:
|
|
207
|
+
debug_parts.append(f"SNOWML DEBUG: listing sources failed: {le}")
|
|
208
|
+
# If pyarrow referenced a specific file, dump its full contents (base64) for inspection
|
|
209
|
+
for path in snow_paths[:1]: # usually only one path appears in the message
|
|
210
|
+
try:
|
|
211
|
+
info = fs.info(path)
|
|
212
|
+
size = info.get("size", None)
|
|
213
|
+
debug_parts.append(f"SNOWML DEBUG: Inspecting referenced file: {path} size={size}")
|
|
214
|
+
with fs.open(path, "rb") as f:
|
|
215
|
+
content = f.read()
|
|
216
|
+
magic_head = content[:4]
|
|
217
|
+
magic_tail = content[-4:] if content else b""
|
|
218
|
+
looks_like_parquet = (magic_head == b"PAR1") and (magic_tail == b"PAR1")
|
|
219
|
+
debug_parts.append(
|
|
220
|
+
"SNOWML DEBUG: "
|
|
221
|
+
f"file_magic_head={magic_head!r} "
|
|
222
|
+
f"file_magic_tail={magic_tail!r} "
|
|
223
|
+
f"parquet_magic_detected={looks_like_parquet}"
|
|
224
|
+
)
|
|
225
|
+
b64 = base64.b64encode(content).decode("ascii")
|
|
226
|
+
debug_parts.append("SNOWML DEBUG: file_content_base64 (entire file):")
|
|
227
|
+
debug_parts.append(b64)
|
|
228
|
+
except Exception as fe:
|
|
229
|
+
debug_parts.append(f"SNOWML DEBUG: failed to read referenced file {path}: {fe}")
|
|
230
|
+
else:
|
|
231
|
+
debug_parts.append("SNOWML DEBUG: No filesystem available; cannot inspect files")
|
|
232
|
+
debug_message = "\n".join(debug_parts)
|
|
233
|
+
# Re-raise with augmented message to surface in stacktrace
|
|
234
|
+
raise RuntimeError(f"{e}\n{debug_message}") from e
|
|
170
235
|
|
|
171
236
|
def _get_batches_from_buffer(self, batch_size: int) -> dict[str, npt.NDArray[Any]]:
|
|
172
237
|
"""Generate new batches from the existing record batch buffer."""
|