snowflake-ml-python 1.31.0__tar.gz → 1.32.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.31.0 → snowflake_ml_python-1.32.0}/CHANGELOG.md +25 -2
- {snowflake_ml_python-1.31.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.32.0}/PKG-INFO +26 -3
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +3 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/experiment_tracking.py +48 -2
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/feature_store.py +48 -18
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/job.py +8 -1
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/model/model_version_impl.py +19 -1
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_env/model_env.py +15 -3
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +4 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +28 -1
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +25 -15
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/utils.py +118 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/custom_model.py +18 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/model_signature.py +24 -3
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0/snowflake_ml_python.egg-info}/PKG-INFO +26 -3
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/README.md +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/stream_source.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/job_definition.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/jobs/manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.31.0 → snowflake_ml_python-1.32.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.32.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Registry: Extended `ParamSpec` support to scikit-learn models. Parameters declared in the model signature
|
|
8
|
+
can now be passed at inference time, matching the existing support for custom models.
|
|
9
|
+
* Registry: `infer_signature()` now accepts a `dict` for the `params` argument (e.g.,
|
|
10
|
+
`params={"temperature": 0.7, "max_tokens": 100}`), automatically inferring `ParamSpec` objects
|
|
11
|
+
from the Python value types. The existing `Sequence[BaseParamSpec]` form is still supported.
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* Experiment Tracking live logging (PrPr): Fixed a bug where the tracebacks for uncaught exceptions were not logged
|
|
16
|
+
when the code was running inside Snowflake notebooks.
|
|
17
|
+
|
|
18
|
+
### Behavior Changes
|
|
19
|
+
|
|
20
|
+
* Registry: The models from `huggingface.TransformersPipeline` and `transformers.Pipeline` will default to safetensors
|
|
21
|
+
file format by default by using `safe_serialization=True` parameter to the `save_pretrained` call. This creates
|
|
22
|
+
safetensors files instead of PyTorch binaries or pt files, addressing security vulnerability CVE-2025-32434.
|
|
23
|
+
|
|
24
|
+
### Deprecations
|
|
25
|
+
|
|
26
|
+
## 1.31.0 (2026-03-19)
|
|
4
27
|
|
|
5
28
|
### New Features
|
|
6
29
|
|
|
@@ -18,7 +41,7 @@
|
|
|
18
41
|
* Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
|
|
19
42
|
were silently coerced instead of raising an error. Parameters are now strictly validated against their
|
|
20
43
|
declared types before inference. This may break code that relied on the silent coercion behavior
|
|
21
|
-
(e.g., `
|
|
44
|
+
(e.g., `mv.run(..., params={"max_tokens": "100"})` or `mv.run(..., params={"some_int_param": True})`).
|
|
22
45
|
* ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
|
|
23
46
|
repeatedly without job name collisions; the `generate_suffix` argument has been removed.
|
|
24
47
|
* Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
|
{snowflake_ml_python-1.31.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.32.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.32.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:
|
|
@@ -416,7 +416,30 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
416
416
|
|
|
417
417
|
# Release History
|
|
418
418
|
|
|
419
|
-
## 1.
|
|
419
|
+
## 1.32.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
* Registry: Extended `ParamSpec` support to scikit-learn models. Parameters declared in the model signature
|
|
424
|
+
can now be passed at inference time, matching the existing support for custom models.
|
|
425
|
+
* Registry: `infer_signature()` now accepts a `dict` for the `params` argument (e.g.,
|
|
426
|
+
`params={"temperature": 0.7, "max_tokens": 100}`), automatically inferring `ParamSpec` objects
|
|
427
|
+
from the Python value types. The existing `Sequence[BaseParamSpec]` form is still supported.
|
|
428
|
+
|
|
429
|
+
### Bug Fixes
|
|
430
|
+
|
|
431
|
+
* Experiment Tracking live logging (PrPr): Fixed a bug where the tracebacks for uncaught exceptions were not logged
|
|
432
|
+
when the code was running inside Snowflake notebooks.
|
|
433
|
+
|
|
434
|
+
### Behavior Changes
|
|
435
|
+
|
|
436
|
+
* Registry: The models from `huggingface.TransformersPipeline` and `transformers.Pipeline` will default to safetensors
|
|
437
|
+
file format by default by using `safe_serialization=True` parameter to the `save_pretrained` call. This creates
|
|
438
|
+
safetensors files instead of PyTorch binaries or pt files, addressing security vulnerability CVE-2025-32434.
|
|
439
|
+
|
|
440
|
+
### Deprecations
|
|
441
|
+
|
|
442
|
+
## 1.31.0 (2026-03-19)
|
|
420
443
|
|
|
421
444
|
### New Features
|
|
422
445
|
|
|
@@ -434,7 +457,7 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
434
457
|
* Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
|
|
435
458
|
were silently coerced instead of raising an error. Parameters are now strictly validated against their
|
|
436
459
|
declared types before inference. This may break code that relied on the silent coercion behavior
|
|
437
|
-
(e.g., `
|
|
460
|
+
(e.g., `mv.run(..., params={"max_tokens": "100"})` or `mv.run(..., params={"some_int_param": True})`).
|
|
438
461
|
* ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
|
|
439
462
|
repeatedly without job name collisions; the `generate_suffix` argument has been removed.
|
|
440
463
|
* Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import contextlib
|
|
2
2
|
from dataclasses import dataclass
|
|
3
|
+
from typing import Any, Callable, Optional
|
|
3
4
|
|
|
4
5
|
from snowflake.ml._internal.utils import tee
|
|
5
6
|
from snowflake.ml.experiment._logging.experiment_logger import ExperimentLogger
|
|
@@ -11,3 +12,5 @@ class ExperimentLoggingContext:
|
|
|
11
12
|
stderr_logger: ExperimentLogger
|
|
12
13
|
stdout_ctx: contextlib.redirect_stdout[tee.OutputTee]
|
|
13
14
|
stderr_ctx: contextlib.redirect_stderr[tee.OutputTee]
|
|
15
|
+
ipython_instance: Optional[Any]
|
|
16
|
+
original_showtraceback: Optional[Callable[..., None]]
|
|
@@ -3,6 +3,7 @@ import functools
|
|
|
3
3
|
import json
|
|
4
4
|
import sys
|
|
5
5
|
import warnings
|
|
6
|
+
from collections.abc import Callable
|
|
6
7
|
from typing import Any, Optional, Union
|
|
7
8
|
from urllib.parse import quote
|
|
8
9
|
|
|
@@ -617,6 +618,39 @@ class ExperimentTracking:
|
|
|
617
618
|
self._run = None
|
|
618
619
|
self._unpatch_stdout_and_stderr()
|
|
619
620
|
|
|
621
|
+
def _try_patch_ipython_showtraceback(
|
|
622
|
+
self, stderr_logger: experiment_logging.ExperimentLogger
|
|
623
|
+
) -> tuple[Any, Optional[Callable[..., None]]]:
|
|
624
|
+
try:
|
|
625
|
+
from IPython import get_ipython
|
|
626
|
+
|
|
627
|
+
ip = get_ipython()
|
|
628
|
+
if ip:
|
|
629
|
+
original_showtraceback = ip._showtraceback
|
|
630
|
+
|
|
631
|
+
def _patched_showtraceback(
|
|
632
|
+
etype: type[BaseException],
|
|
633
|
+
evalue: Optional[BaseException],
|
|
634
|
+
stb: list[str],
|
|
635
|
+
) -> None:
|
|
636
|
+
try:
|
|
637
|
+
text = ip.InteractiveTB.stb2text(stb)
|
|
638
|
+
stderr_logger.write(text + "\n")
|
|
639
|
+
stderr_logger.flush()
|
|
640
|
+
except Exception:
|
|
641
|
+
pass
|
|
642
|
+
if original_showtraceback is not None: # for mypy
|
|
643
|
+
original_showtraceback(etype, evalue, stb)
|
|
644
|
+
|
|
645
|
+
ip._showtraceback = _patched_showtraceback
|
|
646
|
+
|
|
647
|
+
return ip, original_showtraceback
|
|
648
|
+
|
|
649
|
+
except Exception:
|
|
650
|
+
pass # Never let IPython patching break logging setup
|
|
651
|
+
|
|
652
|
+
return None, None
|
|
653
|
+
|
|
620
654
|
def _patch_stdout_and_stderr(self) -> None:
|
|
621
655
|
if not self._live_logging_enabled:
|
|
622
656
|
return
|
|
@@ -626,6 +660,8 @@ class ExperimentTracking:
|
|
|
626
660
|
|
|
627
661
|
assert self._experiment is not None and self._run is not None # for mypy
|
|
628
662
|
stdout_logger, stderr_logger, stdout_ctx, stderr_ctx = None, None, None, None # for exception handling
|
|
663
|
+
ip: Any = None
|
|
664
|
+
original_showtraceback: Optional[Callable[..., None]] = None
|
|
629
665
|
try:
|
|
630
666
|
exp_id = self._sql_client.get_experiment_id(self._experiment.name)
|
|
631
667
|
run_id = self._sql_client.get_run_id(
|
|
@@ -636,15 +672,23 @@ class ExperimentTracking:
|
|
|
636
672
|
stderr_logger = experiment_logging.ExperimentLogger(exp_id=exp_id, run_id=run_id, stream="STDERR")
|
|
637
673
|
stdout_ctx = contextlib.redirect_stdout(tee.OutputTee(sys.stdout, stdout_logger))
|
|
638
674
|
stderr_ctx = contextlib.redirect_stderr(tee.OutputTee(sys.stderr, stderr_logger))
|
|
675
|
+
stdout_ctx.__enter__()
|
|
676
|
+
stderr_ctx.__enter__()
|
|
677
|
+
|
|
678
|
+
ip, original_showtraceback = self._try_patch_ipython_showtraceback(stderr_logger)
|
|
679
|
+
|
|
639
680
|
self._logging_context = experiment_logging.ExperimentLoggingContext(
|
|
640
681
|
stdout_logger=stdout_logger,
|
|
641
682
|
stderr_logger=stderr_logger,
|
|
642
683
|
stdout_ctx=stdout_ctx,
|
|
643
684
|
stderr_ctx=stderr_ctx,
|
|
685
|
+
ipython_instance=ip,
|
|
686
|
+
original_showtraceback=original_showtraceback,
|
|
644
687
|
)
|
|
645
|
-
|
|
646
|
-
stderr_ctx.__enter__()
|
|
688
|
+
|
|
647
689
|
except Exception as e:
|
|
690
|
+
if ip:
|
|
691
|
+
ip._showtraceback = original_showtraceback
|
|
648
692
|
if stdout_ctx:
|
|
649
693
|
stdout_ctx.__exit__(None, None, None)
|
|
650
694
|
if stderr_ctx:
|
|
@@ -661,6 +705,8 @@ class ExperimentTracking:
|
|
|
661
705
|
|
|
662
706
|
def _unpatch_stdout_and_stderr(self) -> None:
|
|
663
707
|
if self._logging_context:
|
|
708
|
+
if self._logging_context.ipython_instance:
|
|
709
|
+
self._logging_context.ipython_instance._showtraceback = self._logging_context.original_showtraceback
|
|
664
710
|
self._logging_context.stdout_ctx.__exit__(None, None, None)
|
|
665
711
|
self._logging_context.stderr_ctx.__exit__(None, None, None)
|
|
666
712
|
self._logging_context.stdout_logger.close()
|
|
@@ -2772,7 +2772,7 @@ class FeatureStore:
|
|
|
2772
2772
|
|
|
2773
2773
|
# Build SELECT and WHERE clauses using helper methods
|
|
2774
2774
|
select_clause = self._build_select_clause_and_validate(feature_view, feature_names, include_join_keys=True)
|
|
2775
|
-
where_clause = self._build_where_clause_for_keys(feature_view, keys)
|
|
2775
|
+
where_clause, _ = self._build_where_clause_for_keys(feature_view, keys)
|
|
2776
2776
|
|
|
2777
2777
|
query = f"SELECT {select_clause} FROM {table_name}{where_clause}"
|
|
2778
2778
|
return self._session.sql(query)
|
|
@@ -2804,7 +2804,7 @@ class FeatureStore:
|
|
|
2804
2804
|
quoted_keys_str = ", ".join(quoted_keys)
|
|
2805
2805
|
|
|
2806
2806
|
# Build WHERE clause for key filtering (if any)
|
|
2807
|
-
where_clause = self._build_where_clause_for_keys(feature_view, keys)
|
|
2807
|
+
where_clause, _ = self._build_where_clause_for_keys(feature_view, keys)
|
|
2808
2808
|
|
|
2809
2809
|
# Step 1: Create spine CTE with unique entities + CURRENT_TIMESTAMP
|
|
2810
2810
|
spine_cte = f"""
|
|
@@ -2850,10 +2850,27 @@ class FeatureStore:
|
|
|
2850
2850
|
return self._session.sql(full_query)
|
|
2851
2851
|
|
|
2852
2852
|
def _read_from_online_store(
|
|
2853
|
-
self,
|
|
2853
|
+
self,
|
|
2854
|
+
feature_view: FeatureView,
|
|
2855
|
+
keys: Optional[list[list[str]]],
|
|
2856
|
+
feature_names: Optional[list[str]],
|
|
2854
2857
|
) -> DataFrame:
|
|
2855
|
-
"""Read feature values from the online store with optional key filtering.
|
|
2856
|
-
|
|
2858
|
+
"""Read feature values from the online store with optional key filtering.
|
|
2859
|
+
|
|
2860
|
+
Uses bind variables for single-key lookups and literal interpolation
|
|
2861
|
+
for batch lookups.
|
|
2862
|
+
|
|
2863
|
+
Args:
|
|
2864
|
+
feature_view: The registered feature view to read from.
|
|
2865
|
+
keys: Optional list of key value lists to filter by.
|
|
2866
|
+
feature_names: Optional list of feature names to return.
|
|
2867
|
+
|
|
2868
|
+
Returns:
|
|
2869
|
+
Snowpark DataFrame containing the feature view data.
|
|
2870
|
+
|
|
2871
|
+
Raises:
|
|
2872
|
+
SnowflakeMLException: If online store is not enabled.
|
|
2873
|
+
"""
|
|
2857
2874
|
if not feature_view.online:
|
|
2858
2875
|
raise snowml_exceptions.SnowflakeMLException(
|
|
2859
2876
|
error_code=error_codes.INVALID_ARGUMENT,
|
|
@@ -2864,11 +2881,16 @@ class FeatureStore:
|
|
|
2864
2881
|
|
|
2865
2882
|
fully_qualified_online_name = feature_view.fully_qualified_online_table_name()
|
|
2866
2883
|
|
|
2867
|
-
# Build SELECT and WHERE clauses using helper methods
|
|
2868
2884
|
select_clause = self._build_select_clause_and_validate(feature_view, feature_names, include_join_keys=True)
|
|
2869
|
-
|
|
2885
|
+
# NOTE: We use snowflake sql query binds for single-point lookups to ensure the best performance.
|
|
2886
|
+
# We don't use binds for multi-point lookups because we don't have any evidence that it improves
|
|
2887
|
+
# performance, but we may need to revisit this in the future.
|
|
2888
|
+
use_binds = keys is not None and len(keys) == 1
|
|
2889
|
+
where_clause, params = self._build_where_clause_for_keys(feature_view, keys, use_binds=use_binds)
|
|
2870
2890
|
|
|
2871
2891
|
query = f"SELECT {select_clause} FROM {fully_qualified_online_name}{where_clause}"
|
|
2892
|
+
if params:
|
|
2893
|
+
return self._session.sql(query, params=params)
|
|
2872
2894
|
return self._session.sql(query)
|
|
2873
2895
|
|
|
2874
2896
|
@dispatch_decorator()
|
|
@@ -5050,28 +5072,31 @@ FROM SPINE{' '.join(join_clauses)}
|
|
|
5050
5072
|
# Select all columns
|
|
5051
5073
|
return "*"
|
|
5052
5074
|
|
|
5053
|
-
def _build_where_clause_for_keys(
|
|
5075
|
+
def _build_where_clause_for_keys(
|
|
5076
|
+
self, feature_view: FeatureView, keys: Optional[list[list[Any]]], use_binds: bool = False
|
|
5077
|
+
) -> tuple[str, list[Any]]:
|
|
5054
5078
|
"""Build WHERE clause for key filtering.
|
|
5055
5079
|
|
|
5056
5080
|
Args:
|
|
5057
|
-
feature_view: The feature view to build the clause for
|
|
5058
|
-
keys: Optional list of key value lists to filter by
|
|
5081
|
+
feature_view: The feature view to build the clause for.
|
|
5082
|
+
keys: Optional list of key value lists to filter by.
|
|
5083
|
+
use_binds: If True, use ``?`` placeholders and return bind params.
|
|
5084
|
+
If False, interpolate values as string literals.
|
|
5059
5085
|
|
|
5060
5086
|
Returns:
|
|
5061
|
-
WHERE clause string
|
|
5087
|
+
Tuple of (WHERE clause string, bind params list). Params is empty
|
|
5088
|
+
when use_binds is False or no keys are provided.
|
|
5062
5089
|
|
|
5063
5090
|
Raises:
|
|
5064
|
-
SnowflakeMLException: If key structure is invalid
|
|
5091
|
+
SnowflakeMLException: If key structure is invalid.
|
|
5065
5092
|
"""
|
|
5066
5093
|
if not keys:
|
|
5067
|
-
return ""
|
|
5094
|
+
return "", []
|
|
5068
5095
|
|
|
5069
|
-
# Get join keys from entities for key filtering
|
|
5070
5096
|
all_join_keys = []
|
|
5071
5097
|
for entity in feature_view.entities:
|
|
5072
5098
|
all_join_keys.extend([key.resolved() for key in entity.join_keys])
|
|
5073
5099
|
|
|
5074
|
-
# Validate key structure
|
|
5075
5100
|
for key_values in keys:
|
|
5076
5101
|
if len(key_values) != len(all_join_keys):
|
|
5077
5102
|
raise snowml_exceptions.SnowflakeMLException(
|
|
@@ -5082,15 +5107,20 @@ FROM SPINE{' '.join(join_clauses)}
|
|
|
5082
5107
|
),
|
|
5083
5108
|
)
|
|
5084
5109
|
|
|
5110
|
+
params: list[Any] = []
|
|
5085
5111
|
where_conditions = []
|
|
5086
5112
|
for key_values in keys:
|
|
5087
5113
|
key_conditions = []
|
|
5088
5114
|
for join_key, value in zip(all_join_keys, key_values):
|
|
5089
|
-
|
|
5090
|
-
|
|
5115
|
+
if use_binds:
|
|
5116
|
+
key_conditions.append(f'"{join_key}" = ?')
|
|
5117
|
+
params.append(value)
|
|
5118
|
+
else:
|
|
5119
|
+
safe_value = str(value).replace("'", "''")
|
|
5120
|
+
key_conditions.append(f"\"{join_key}\" = '{safe_value}'")
|
|
5091
5121
|
where_conditions.append(f"({' AND '.join(key_conditions)})")
|
|
5092
5122
|
|
|
5093
|
-
return f" WHERE {' OR '.join(where_conditions)}"
|
|
5123
|
+
return f" WHERE {' OR '.join(where_conditions)}", params
|
|
5094
5124
|
|
|
5095
5125
|
def _get_store_type(self, store_type: Union[fv_mod.StoreType, str]) -> fv_mod.StoreType:
|
|
5096
5126
|
"""Return a StoreType enum from a Union[StoreType, str].
|
|
@@ -287,10 +287,17 @@ class MLJob(Generic[T], SerializableSessionMixin):
|
|
|
287
287
|
Optional[str]: The Ray dashboard URL if the job is running and has a Ray dashboard endpoint,
|
|
288
288
|
None otherwise.
|
|
289
289
|
"""
|
|
290
|
+
pool_info = _get_compute_pool_info(self._session, self._compute_pool)
|
|
291
|
+
if pool_info["instance_family"] == "CPU_X64_XS":
|
|
292
|
+
logger.warning(
|
|
293
|
+
"Ray dashboard is not supported on XS compute pools."
|
|
294
|
+
" Please use a larger compute pool if you want to use Ray dashboard."
|
|
295
|
+
)
|
|
296
|
+
return None
|
|
290
297
|
if self.status != JOB_RUNNING_STATUS:
|
|
291
298
|
logger.warning("Ray dashboard is not available for non-running jobs")
|
|
292
299
|
return None
|
|
293
|
-
rows = self._session
|
|
300
|
+
rows = query_helper.run_query(self._session, "SHOW ENDPOINTS IN SERVICE IDENTIFIER(?)", params=(self.id,))
|
|
294
301
|
for row in rows:
|
|
295
302
|
if row["name"] == RAY_DASHBOARD_ENDPOINT_NAME:
|
|
296
303
|
ingress_url = row["ingress_url"]
|
|
@@ -20,7 +20,7 @@ from snowflake.ml.model._client.ops import metadata_ops, model_ops, service_ops
|
|
|
20
20
|
from snowflake.ml.model._model_composer import model_composer
|
|
21
21
|
from snowflake.ml.model._model_composer.model_manifest import model_manifest_schema
|
|
22
22
|
from snowflake.ml.model._model_composer.model_method import utils as model_method_utils
|
|
23
|
-
from snowflake.ml.model._packager.model_handlers import snowmlmodel
|
|
23
|
+
from snowflake.ml.model._packager.model_handlers import huggingface, snowmlmodel
|
|
24
24
|
from snowflake.ml.model._packager.model_meta import model_meta_schema
|
|
25
25
|
from snowflake.ml.model._signatures import core
|
|
26
26
|
from snowflake.snowpark import Session, async_job, dataframe
|
|
@@ -779,6 +779,14 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
779
779
|
column_handling = input_spec.column_handling
|
|
780
780
|
partition_columns = [input_spec.partition_column] if input_spec.partition_column is not None else None
|
|
781
781
|
|
|
782
|
+
if partition_columns is not None:
|
|
783
|
+
model_spec = self._get_model_spec(statement_params)
|
|
784
|
+
if model_spec.get("model_type") == huggingface.TransformersPipelineHandler.HANDLER_TYPE:
|
|
785
|
+
raise ValueError(
|
|
786
|
+
"partition_column is not supported for HuggingFace pipeline models in batch inference jobs. "
|
|
787
|
+
"Please remove the partition_column from InputSpec."
|
|
788
|
+
)
|
|
789
|
+
|
|
782
790
|
if job_spec is None:
|
|
783
791
|
job_spec = batch_inference_specs.JobSpec()
|
|
784
792
|
|
|
@@ -817,6 +825,16 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
817
825
|
|
|
818
826
|
target_function_info = self._get_function_info(function_name=job_spec.function_name)
|
|
819
827
|
|
|
828
|
+
if (
|
|
829
|
+
partition_columns is not None
|
|
830
|
+
and target_function_info["target_method_function_type"]
|
|
831
|
+
== model_manifest_schema.ModelMethodFunctionTypes.FUNCTION.value
|
|
832
|
+
):
|
|
833
|
+
raise ValueError(
|
|
834
|
+
"partition_column is not supported for FUNCTION type methods in batch inference jobs. "
|
|
835
|
+
"Only TABLE_FUNCTION type methods support partitioning."
|
|
836
|
+
)
|
|
837
|
+
|
|
820
838
|
return self._service_ops.invoke_batch_job_method(
|
|
821
839
|
# model version info
|
|
822
840
|
model_name=self._model_name,
|
|
@@ -243,14 +243,17 @@ class ModelEnv:
|
|
|
243
243
|
channel, spec = spec_conda
|
|
244
244
|
self._conda_dependencies[channel].remove(spec)
|
|
245
245
|
|
|
246
|
-
def
|
|
246
|
+
def _is_pip_only_path(self) -> bool:
|
|
247
|
+
"""Check if this model will use the pip-only packaging path."""
|
|
248
|
+
has_conda_deps = any(len(deps) > 0 for deps in self._conda_dependencies.values())
|
|
249
|
+
return self.prefer_pip and _ENABLE_PIP_ONLY_PACKAGING and not has_conda_deps
|
|
247
250
|
|
|
248
|
-
|
|
251
|
+
def _substitute_conda_gpu_packages(self) -> None:
|
|
252
|
+
"""Replace conda packages with their GPU variants (xgboost→py-xgboost-gpu, tensorflow→tensorflow-gpu)."""
|
|
249
253
|
xgboost_spec = env_utils.find_dep_spec(
|
|
250
254
|
self._conda_dependencies, self._pip_requirements, conda_pkg_name="xgboost", remove_spec=False
|
|
251
255
|
)
|
|
252
256
|
if xgboost_spec:
|
|
253
|
-
# Only handle explicitly pinned versions. Insert GPU variant iff pinned major < 3.
|
|
254
257
|
pinned_major: Optional[int] = None
|
|
255
258
|
for spec in xgboost_spec.specifier:
|
|
256
259
|
if spec.operator in ("==", "===", ">", ">="):
|
|
@@ -279,6 +282,15 @@ class ModelEnv:
|
|
|
279
282
|
check_local_version=False,
|
|
280
283
|
)
|
|
281
284
|
|
|
285
|
+
def generate_env_for_cuda(self) -> None:
|
|
286
|
+
# Conda-specific GPU substitutions only apply on the conda path, not the pip path.
|
|
287
|
+
include_conda_gpu_substitutions = not self._is_pip_only_path()
|
|
288
|
+
|
|
289
|
+
if include_conda_gpu_substitutions:
|
|
290
|
+
self._substitute_conda_gpu_packages()
|
|
291
|
+
|
|
292
|
+
# TODO: Implicit CAI for PyTorch (auto-add torch when needed) can be added on top of this flow later.
|
|
293
|
+
|
|
282
294
|
transformers_spec = env_utils.find_dep_spec(
|
|
283
295
|
self._conda_dependencies, self._pip_requirements, conda_pkg_name="transformers", remove_spec=False
|
|
284
296
|
)
|
|
@@ -136,6 +136,10 @@ def add_inferred_explain_method_signature(
|
|
|
136
136
|
output_feature_names=suffixed_output_names,
|
|
137
137
|
)
|
|
138
138
|
|
|
139
|
+
target_sig = model_meta.signatures.get(target_method)
|
|
140
|
+
if target_sig is not None and target_sig.params is not None:
|
|
141
|
+
sig = model_signature.ModelSignature(inputs=sig.inputs, outputs=sig.outputs, params=target_sig.params)
|
|
142
|
+
|
|
139
143
|
model_meta.signatures[explain_method] = sig
|
|
140
144
|
return model_meta
|
|
141
145
|
|
|
@@ -240,7 +240,8 @@ class TransformersPipelineHandler(
|
|
|
240
240
|
if type_utils.LazyType("transformers.Pipeline").isinstance(model):
|
|
241
241
|
save_path = os.path.join(model_blob_path, cls.MODEL_BLOB_FILE_OR_DIR)
|
|
242
242
|
model.save_pretrained( # type:ignore[attr-defined]
|
|
243
|
-
save_path
|
|
243
|
+
save_path,
|
|
244
|
+
safe_serialization=True, # creates safetensors instead of pytorch binaries or pt files
|
|
244
245
|
)
|
|
245
246
|
handlers_utils.save_transformers_config_with_auto_map(
|
|
246
247
|
save_path,
|
|
@@ -553,6 +554,31 @@ class TransformersPipelineHandler(
|
|
|
553
554
|
input_col = signature.inputs[0].name
|
|
554
555
|
images = [Image.open(io.BytesIO(img_bytes)) for img_bytes in X[input_col].to_list()]
|
|
555
556
|
temp_res = getattr(raw_model, target_method)(images)
|
|
557
|
+
elif isinstance(
|
|
558
|
+
raw_model,
|
|
559
|
+
(
|
|
560
|
+
transformers.ImageToTextPipeline,
|
|
561
|
+
transformers.ImageFeatureExtractionPipeline,
|
|
562
|
+
transformers.ObjectDetectionPipeline,
|
|
563
|
+
),
|
|
564
|
+
):
|
|
565
|
+
# Image pipelines that need bytes→PIL conversion.
|
|
566
|
+
# HuggingFace's load_image() does not accept raw bytes.
|
|
567
|
+
from PIL import Image
|
|
568
|
+
|
|
569
|
+
input_col = signature.inputs[0].name
|
|
570
|
+
if len(signature.inputs) > 1:
|
|
571
|
+
# Multi-input: convert image bytes to PIL, pass other columns as-is
|
|
572
|
+
def process_image_row(row: pd.Series) -> Any:
|
|
573
|
+
pil_image = Image.open(io.BytesIO(row[input_col]))
|
|
574
|
+
kwargs = {k: row[k] for k in row.index if k != input_col}
|
|
575
|
+
return getattr(raw_model, target_method)(pil_image, **kwargs)
|
|
576
|
+
|
|
577
|
+
temp_res = X.apply(process_image_row, axis=1).to_list()
|
|
578
|
+
else:
|
|
579
|
+
# Single-input: convert all image bytes to PIL
|
|
580
|
+
images = [Image.open(io.BytesIO(img_bytes)) for img_bytes in X[input_col].to_list()]
|
|
581
|
+
temp_res = getattr(raw_model, target_method)(images)
|
|
556
582
|
elif isinstance(raw_model, transformers.AutomaticSpeechRecognitionPipeline):
|
|
557
583
|
# ASR pipeline accepts a single audio input (bytes, str, np.ndarray, or dict),
|
|
558
584
|
# not a list. Process each audio input individually.
|
|
@@ -624,6 +650,7 @@ class TransformersPipelineHandler(
|
|
|
624
650
|
(
|
|
625
651
|
transformers.FillMaskPipeline,
|
|
626
652
|
transformers.QuestionAnsweringPipeline,
|
|
653
|
+
transformers.ObjectDetectionPipeline,
|
|
627
654
|
),
|
|
628
655
|
)
|
|
629
656
|
and X.shape[0] == 1
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import functools
|
|
1
2
|
import logging
|
|
2
3
|
import os
|
|
3
4
|
import warnings
|
|
4
5
|
from collections.abc import Sequence
|
|
5
|
-
from typing import TYPE_CHECKING, Callable, Optional, Union, cast, final
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Callable, Optional, Union, cast, final
|
|
6
7
|
|
|
7
8
|
import cloudpickle
|
|
8
9
|
import numpy as np
|
|
@@ -331,9 +332,9 @@ class SKLModelHandler(_base.BaseModelHandler[Union["sklearn.base.BaseEstimator",
|
|
|
331
332
|
target_method: str,
|
|
332
333
|
background_data: Optional[pd.DataFrame],
|
|
333
334
|
) -> Callable[[custom_model.CustomModel, pd.DataFrame], pd.DataFrame]:
|
|
334
|
-
@custom_model.
|
|
335
|
-
def fn(self: custom_model.CustomModel, X: pd.DataFrame) -> pd.DataFrame:
|
|
336
|
-
res = getattr(raw_model, target_method)(X)
|
|
335
|
+
@custom_model._internal_inference_api
|
|
336
|
+
def fn(self: custom_model.CustomModel, X: pd.DataFrame, **method_kwargs: Any) -> pd.DataFrame:
|
|
337
|
+
res = getattr(raw_model, target_method)(X, **method_kwargs)
|
|
337
338
|
|
|
338
339
|
if isinstance(res, list) and len(res) > 0 and isinstance(res[0], np.ndarray):
|
|
339
340
|
# In case of multi-output estimators, predict_proba(), decision_function(), etc., functions
|
|
@@ -344,24 +345,24 @@ class SKLModelHandler(_base.BaseModelHandler[Union["sklearn.base.BaseEstimator",
|
|
|
344
345
|
|
|
345
346
|
return model_signature_utils.rename_pandas_df(df, signature.outputs)
|
|
346
347
|
|
|
347
|
-
@custom_model.
|
|
348
|
-
def explain_fn(self: custom_model.CustomModel, X: pd.DataFrame) -> pd.DataFrame:
|
|
349
|
-
|
|
350
|
-
return model_signature_utils.rename_pandas_df(
|
|
348
|
+
@custom_model._internal_inference_api
|
|
349
|
+
def explain_fn(self: custom_model.CustomModel, X: pd.DataFrame, **method_kwargs: Any) -> pd.DataFrame:
|
|
350
|
+
explain = cls._build_explain_fn(raw_model, background_data, signature.inputs, **method_kwargs)
|
|
351
|
+
return model_signature_utils.rename_pandas_df(explain(X), signature.outputs)
|
|
351
352
|
|
|
352
353
|
if target_method == "explain":
|
|
353
354
|
return explain_fn
|
|
354
355
|
|
|
355
356
|
return fn
|
|
356
357
|
|
|
357
|
-
|
|
358
|
+
sklearn_type_dict: dict[str, Any] = {"_allows_kwargs": True}
|
|
358
359
|
for target_method_name, sig in model_meta.signatures.items():
|
|
359
|
-
|
|
360
|
+
sklearn_type_dict[target_method_name] = fn_factory(raw_model, sig, target_method_name, background_data)
|
|
360
361
|
|
|
361
362
|
_SKLModel = type(
|
|
362
363
|
"_SKLModel",
|
|
363
364
|
(custom_model.CustomModel,),
|
|
364
|
-
|
|
365
|
+
sklearn_type_dict,
|
|
365
366
|
)
|
|
366
367
|
|
|
367
368
|
return _SKLModel
|
|
@@ -377,17 +378,23 @@ class SKLModelHandler(_base.BaseModelHandler[Union["sklearn.base.BaseEstimator",
|
|
|
377
378
|
model: Union["sklearn.base.BaseEstimator", "sklearn.pipeline.Pipeline"],
|
|
378
379
|
background_data: model_types.SupportedDataType,
|
|
379
380
|
input_specs: Sequence[model_signature.BaseFeatureSpec],
|
|
381
|
+
**kwargs: dict[str, Any],
|
|
380
382
|
) -> Callable[[model_types.SupportedDataType], pd.DataFrame]:
|
|
381
383
|
import shap
|
|
382
384
|
import sklearn.pipeline
|
|
383
385
|
|
|
384
386
|
transformed_bg_data = _apply_transforms_up_to_last_step(model, background_data)
|
|
387
|
+
predictor = model[-1] if isinstance(model, sklearn.pipeline.Pipeline) else model
|
|
388
|
+
|
|
389
|
+
if kwargs:
|
|
390
|
+
predict_with_params = functools.partial(predictor.predict, **kwargs)
|
|
391
|
+
else:
|
|
392
|
+
predict_with_params = predictor
|
|
385
393
|
|
|
386
394
|
def explain_fn(data: model_types.SupportedDataType) -> pd.DataFrame:
|
|
387
395
|
transformed_data = _apply_transforms_up_to_last_step(model, data)
|
|
388
|
-
predictor = model[-1] if isinstance(model, sklearn.pipeline.Pipeline) else model
|
|
389
396
|
try:
|
|
390
|
-
explainer = shap.Explainer(
|
|
397
|
+
explainer = shap.Explainer(predict_with_params, transformed_bg_data)
|
|
391
398
|
return handlers_utils.convert_explanations_to_2D_df(model, explainer(transformed_data).values).astype(
|
|
392
399
|
np.float64, errors="ignore"
|
|
393
400
|
)
|
|
@@ -398,8 +405,11 @@ class SKLModelHandler(_base.BaseModelHandler[Union["sklearn.base.BaseEstimator",
|
|
|
398
405
|
for explain_target_method in cls.EXPLAIN_TARGET_METHODS:
|
|
399
406
|
if not hasattr(predictor, explain_target_method):
|
|
400
407
|
continue
|
|
401
|
-
|
|
402
|
-
|
|
408
|
+
if kwargs:
|
|
409
|
+
target_fn = functools.partial(getattr(predictor, explain_target_method), **kwargs)
|
|
410
|
+
else:
|
|
411
|
+
target_fn = getattr(predictor, explain_target_method)
|
|
412
|
+
explanations = shap.Explainer(target_fn, transformed_bg_data.values)(
|
|
403
413
|
transformed_data.to_numpy()
|
|
404
414
|
).values
|
|
405
415
|
return handlers_utils.convert_explanations_to_2D_df(model, explanations)
|