snowflake-ml-python 2.2.0__tar.gz → 2.3.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-2.2.0 → snowflake_ml_python-2.3.0}/CHANGELOG.md +28 -10
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/PKG-INFO +29 -11
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/experiment_tracking.py +30 -17
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/tile_sql_generator.py +40 -31
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/job.py +19 -3
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/model_ops.py +253 -6
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/model.py +11 -3
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/registry/_manager/model_manager.py +78 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake_ml_python.egg-info/PKG-INFO +29 -11
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/README.md +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/pyproject.toml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/setup.cfg +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/_source_info.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature_group.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/online_service.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/request_source.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/spec/models.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/stream_config.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/stream_source.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/job_definition.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/jobs/manager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/_loaded_model_telemetry.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model/telemetry_params.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model_spec/legacy_model_spec.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model_spec/model_extension_spec.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model_spec/model_extension_spec_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model_spec/model_spec.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/model_spec/model_spec_parser.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/peft_adapter.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/batch_inference/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/optional_dependency.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 2.
|
|
3
|
+
## 2.3.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Experiment Tracking: `ExperimentTracking` accepts an optional `model_registry` parameter. When provided,
|
|
8
|
+
`log_model` stores models in the registry's database and schema instead of the experiment's, so experiments
|
|
9
|
+
and models can live in separate schemas.
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Feature Store: Offline reads of a feature view with several list aggregations or several secondary-key
|
|
14
|
+
aggregation windows used to return incomplete results in some scenarios. The bug has been fixed
|
|
15
|
+
and the existing feature views pick up the fix on their next read, with no re-registration or backfill required.
|
|
16
|
+
|
|
17
|
+
### Behavior Changes
|
|
18
|
+
|
|
19
|
+
### Deprecations
|
|
20
|
+
|
|
21
|
+
## 2.2.0 (2026-09-21)
|
|
4
22
|
|
|
5
23
|
### New Features
|
|
6
24
|
|
|
@@ -14,8 +32,17 @@
|
|
|
14
32
|
|
|
15
33
|
### Bug Fixes
|
|
16
34
|
|
|
35
|
+
* Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
|
|
36
|
+
executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
|
|
37
|
+
`EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
|
|
38
|
+
primary role is not the owner.
|
|
39
|
+
|
|
17
40
|
### Behavior Changes
|
|
18
41
|
|
|
42
|
+
* Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
|
|
43
|
+
installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
|
|
44
|
+
in `snowflake.ml.modeling.preprocessing` already requires that extra.
|
|
45
|
+
|
|
19
46
|
### Deprecations
|
|
20
47
|
|
|
21
48
|
## 2.1.0 (2026-09-14)
|
|
@@ -37,21 +64,12 @@
|
|
|
37
64
|
|
|
38
65
|
### Bug Fixes
|
|
39
66
|
|
|
40
|
-
* Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
|
|
41
|
-
executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
|
|
42
|
-
`EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
|
|
43
|
-
primary role is not the owner.
|
|
44
|
-
|
|
45
67
|
* Registry: Fixed logging of MLflow models created with `mlflow.sklearn.save_model()`. The model is
|
|
46
68
|
now re-logged from the scikit-learn estimator using the serialization format it was saved with,
|
|
47
69
|
instead of from MLflow's PyFunc wrapper with the version-dependent default format.
|
|
48
70
|
|
|
49
71
|
### Behavior Changes
|
|
50
72
|
|
|
51
|
-
* Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
|
|
52
|
-
installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
|
|
53
|
-
in `snowflake.ml.modeling.preprocessing` already requires that extra.
|
|
54
|
-
|
|
55
73
|
### Deprecations
|
|
56
74
|
|
|
57
75
|
## 2.0.0 (2026-09-09)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.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:
|
|
@@ -424,7 +424,25 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
424
424
|
|
|
425
425
|
# Release History
|
|
426
426
|
|
|
427
|
-
## 2.
|
|
427
|
+
## 2.3.0
|
|
428
|
+
|
|
429
|
+
### New Features
|
|
430
|
+
|
|
431
|
+
* Experiment Tracking: `ExperimentTracking` accepts an optional `model_registry` parameter. When provided,
|
|
432
|
+
`log_model` stores models in the registry's database and schema instead of the experiment's, so experiments
|
|
433
|
+
and models can live in separate schemas.
|
|
434
|
+
|
|
435
|
+
### Bug Fixes
|
|
436
|
+
|
|
437
|
+
* Feature Store: Offline reads of a feature view with several list aggregations or several secondary-key
|
|
438
|
+
aggregation windows used to return incomplete results in some scenarios. The bug has been fixed
|
|
439
|
+
and the existing feature views pick up the fix on their next read, with no re-registration or backfill required.
|
|
440
|
+
|
|
441
|
+
### Behavior Changes
|
|
442
|
+
|
|
443
|
+
### Deprecations
|
|
444
|
+
|
|
445
|
+
## 2.2.0 (2026-09-21)
|
|
428
446
|
|
|
429
447
|
### New Features
|
|
430
448
|
|
|
@@ -438,8 +456,17 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
438
456
|
|
|
439
457
|
### Bug Fixes
|
|
440
458
|
|
|
459
|
+
* Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
|
|
460
|
+
executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
|
|
461
|
+
`EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
|
|
462
|
+
primary role is not the owner.
|
|
463
|
+
|
|
441
464
|
### Behavior Changes
|
|
442
465
|
|
|
466
|
+
* Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
|
|
467
|
+
installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
|
|
468
|
+
in `snowflake.ml.modeling.preprocessing` already requires that extra.
|
|
469
|
+
|
|
443
470
|
### Deprecations
|
|
444
471
|
|
|
445
472
|
## 2.1.0 (2026-09-14)
|
|
@@ -461,21 +488,12 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
461
488
|
|
|
462
489
|
### Bug Fixes
|
|
463
490
|
|
|
464
|
-
* Registry: `ModelVersion.load()` now compares the model owner to `CURRENT_ROLE()` (the role that
|
|
465
|
-
executes SQL) instead of `Session.get_current_role()`. Owner's-rights Streamlit apps and
|
|
466
|
-
`EXECUTE AS OWNER` procedures can load when statements run as the owner even if the caller's
|
|
467
|
-
primary role is not the owner.
|
|
468
|
-
|
|
469
491
|
* Registry: Fixed logging of MLflow models created with `mlflow.sklearn.save_model()`. The model is
|
|
470
492
|
now re-logged from the scikit-learn estimator using the serialization format it was saved with,
|
|
471
493
|
instead of from MLflow's PyFunc wrapper with the version-dependent default format.
|
|
472
494
|
|
|
473
495
|
### Behavior Changes
|
|
474
496
|
|
|
475
|
-
* Dependencies: `scipy` is no longer a required dependency of `snowflake-ml-python`. It is still
|
|
476
|
-
installed transitively with `pip install snowflake-ml-python[scikit-learn]`. Direct `scipy` usage
|
|
477
|
-
in `snowflake.ml.modeling.preprocessing` already requires that extra.
|
|
478
|
-
|
|
479
497
|
### Deprecations
|
|
480
498
|
|
|
481
499
|
## 2.0.0 (2026-09-09)
|
|
@@ -52,6 +52,7 @@ class ExperimentTracking:
|
|
|
52
52
|
database_name: str | None = None,
|
|
53
53
|
schema_name: str | None = None,
|
|
54
54
|
capture_source_info: bool = True,
|
|
55
|
+
model_registry: registry.Registry | None = None,
|
|
55
56
|
) -> None:
|
|
56
57
|
"""
|
|
57
58
|
Initializes experiment tracking within a pre-created schema.
|
|
@@ -68,6 +69,12 @@ class ExperimentTracking:
|
|
|
68
69
|
of the enclosing ML job when running inside one. Set to False to skip collection
|
|
69
70
|
entirely. Collection is always non-fatal and never blocks run creation. Defaults to
|
|
70
71
|
True.
|
|
72
|
+
model_registry: An optional Registry instance to use for ``log_model``. When provided,
|
|
73
|
+
models are logged to the database and schema owned by this registry instead of the
|
|
74
|
+
experiment's database and schema. This is useful when the experiment lives in one
|
|
75
|
+
schema (e.g. ``analytics.experiments``) but models should be stored in another
|
|
76
|
+
(e.g. ``ml.models``). If None, models are logged to the same location as the
|
|
77
|
+
experiment. Defaults to None.
|
|
71
78
|
|
|
72
79
|
Raises:
|
|
73
80
|
ValueError: If no database is provided and no active database exists in the session.
|
|
@@ -109,11 +116,7 @@ class ExperimentTracking:
|
|
|
109
116
|
database_name=self._database_name,
|
|
110
117
|
schema_name=self._schema_name,
|
|
111
118
|
)
|
|
112
|
-
self._registry =
|
|
113
|
-
session=session,
|
|
114
|
-
database_name=self._database_name,
|
|
115
|
-
schema_name=self._schema_name,
|
|
116
|
-
)
|
|
119
|
+
self._registry = model_registry
|
|
117
120
|
self._session = session
|
|
118
121
|
|
|
119
122
|
# The experiment in context
|
|
@@ -139,7 +142,10 @@ class ExperimentTracking:
|
|
|
139
142
|
else:
|
|
140
143
|
state = dict(self.__dict__)
|
|
141
144
|
|
|
142
|
-
# Remove unpicklable attributes
|
|
145
|
+
# Remove unpicklable attributes; save registry coordinates for reconstruction.
|
|
146
|
+
if self._registry is not None:
|
|
147
|
+
state["_registry_database_name"] = self._registry._database_name
|
|
148
|
+
state["_registry_schema_name"] = self._registry._schema_name
|
|
143
149
|
state["_session"] = None
|
|
144
150
|
state["_sql_client"] = None
|
|
145
151
|
state["_registry"] = None
|
|
@@ -168,11 +174,14 @@ class ExperimentTracking:
|
|
|
168
174
|
database_name=self._database_name,
|
|
169
175
|
schema_name=self._schema_name,
|
|
170
176
|
)
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
177
|
+
registry_db = state.pop("_registry_database_name", None)
|
|
178
|
+
registry_schema = state.pop("_registry_schema_name", None)
|
|
179
|
+
if registry_db is not None:
|
|
180
|
+
self._registry = registry.Registry(
|
|
181
|
+
session=self._session,
|
|
182
|
+
database_name=registry_db,
|
|
183
|
+
schema_name=registry_schema,
|
|
184
|
+
)
|
|
176
185
|
if self._run:
|
|
177
186
|
self._patch_stdout_and_stderr()
|
|
178
187
|
# _patch_stdout_and_stderr sets _logging_context if live logging is enabled
|
|
@@ -277,8 +286,17 @@ class ExperimentTracking:
|
|
|
277
286
|
**kwargs: Any,
|
|
278
287
|
) -> ml_model.ModelVersion:
|
|
279
288
|
run = self._get_or_start_run()
|
|
289
|
+
target_registry = (
|
|
290
|
+
self._registry
|
|
291
|
+
if self._registry is not None
|
|
292
|
+
else registry.Registry(
|
|
293
|
+
session=self._session,
|
|
294
|
+
database_name=self._database_name,
|
|
295
|
+
schema_name=self._schema_name,
|
|
296
|
+
)
|
|
297
|
+
)
|
|
280
298
|
with experiment_info.ExperimentInfoPatcher(experiment_info=run._get_experiment_info()):
|
|
281
|
-
return
|
|
299
|
+
return target_registry.log_model(model, model_name=model_name, **kwargs)
|
|
282
300
|
|
|
283
301
|
def list_model_versions(self, run_name: str | None = None) -> list[ml_model.ModelVersion]:
|
|
284
302
|
"""
|
|
@@ -784,11 +802,6 @@ class ExperimentTracking:
|
|
|
784
802
|
database_name=database_name,
|
|
785
803
|
schema_name=schema_name,
|
|
786
804
|
)
|
|
787
|
-
self._registry = registry.Registry(
|
|
788
|
-
session=self._session,
|
|
789
|
-
database_name=database_name,
|
|
790
|
-
schema_name=schema_name,
|
|
791
|
-
)
|
|
792
805
|
|
|
793
806
|
def _print_urls(
|
|
794
807
|
self,
|
|
@@ -1143,6 +1143,34 @@ class MergingSqlGenerator:
|
|
|
1143
1143
|
|
|
1144
1144
|
return cte_name, cte_body.strip()
|
|
1145
1145
|
|
|
1146
|
+
def _left_join_subqueries_on_bounds(self, subqueries: list[tuple[str, list[str]]]) -> str:
|
|
1147
|
+
"""LEFT JOIN each per-subquery result onto the unique (entity, boundary) rows.
|
|
1148
|
+
|
|
1149
|
+
Driving from UNIQUE_BOUNDS rather than from the first subquery keeps row
|
|
1150
|
+
presence independent of any single window or feature: each subquery applies
|
|
1151
|
+
its own row-level filter, so one with no qualifying tiles must contribute
|
|
1152
|
+
NULLs for its own columns instead of dropping the entity from the CTE and
|
|
1153
|
+
taking every other subquery's results with it.
|
|
1154
|
+
|
|
1155
|
+
Args:
|
|
1156
|
+
subqueries: One (subquery_sql, output_columns) pair per window group or
|
|
1157
|
+
feature. Each subquery must be grouped by the join keys plus
|
|
1158
|
+
TILE_BOUNDARY so the joins stay one-to-one.
|
|
1159
|
+
|
|
1160
|
+
Returns:
|
|
1161
|
+
SQL string selecting the join keys plus every subquery's output columns.
|
|
1162
|
+
"""
|
|
1163
|
+
group_by_cols = list(self._join_keys) + [_TILE_BOUNDARY_COL]
|
|
1164
|
+
projected = [f"UB.{col}" for col in group_by_cols]
|
|
1165
|
+
for index, (_, output_cols) in enumerate(subqueries):
|
|
1166
|
+
projected.extend(f"sq{index}.{col}" for col in output_cols)
|
|
1167
|
+
|
|
1168
|
+
result = f"SELECT {', '.join(projected)}\n FROM UNIQUE_BOUNDS_FV{self._fv_index} UB"
|
|
1169
|
+
for index, (query, _) in enumerate(subqueries):
|
|
1170
|
+
join_cond = " AND ".join(f"UB.{col} = sq{index}.{col}" for col in group_by_cols)
|
|
1171
|
+
result += f"\n LEFT JOIN {query} sq{index}\n ON {join_cond}"
|
|
1172
|
+
return result
|
|
1173
|
+
|
|
1146
1174
|
def _generate_secondary_key_merged_cte(self) -> tuple[str, str]:
|
|
1147
1175
|
"""Generate the CTE for secondary-key aggregations.
|
|
1148
1176
|
|
|
@@ -1315,22 +1343,13 @@ class MergingSqlGenerator:
|
|
|
1315
1343
|
if len(subqueries) == 1:
|
|
1316
1344
|
cte_body = subqueries[0][2].strip()
|
|
1317
1345
|
else:
|
|
1318
|
-
# Multiple (sk, window) groups
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
projected.append(f"sq{i}.{keys_col}")
|
|
1326
|
-
for col in value_cols:
|
|
1327
|
-
projected.append(f"sq{i}.{col}")
|
|
1328
|
-
|
|
1329
|
-
result = f"SELECT {', '.join(projected)}\n FROM {first_query} sq0"
|
|
1330
|
-
for i, (_, _, query) in enumerate(subqueries[1:], 1):
|
|
1331
|
-
join_cond = " AND ".join(f"sq0.{col} = sq{i}.{col}" for col in group_by_cols)
|
|
1332
|
-
result += f"\n LEFT JOIN {query} sq{i}\n ON {join_cond}"
|
|
1333
|
-
cte_body = result
|
|
1346
|
+
# Multiple (sk, window) groups: a group whose window covers no tiles
|
|
1347
|
+
# emits no row, so the chain is driven from the unique (entity,
|
|
1348
|
+
# boundary) rows to keep each group's arrays independent. Missing
|
|
1349
|
+
# groups surface as [] via the combined CTE's COALESCE.
|
|
1350
|
+
cte_body = self._left_join_subqueries_on_bounds(
|
|
1351
|
+
[(query, [keys_col, *value_cols]) for keys_col, value_cols, query in subqueries]
|
|
1352
|
+
)
|
|
1334
1353
|
|
|
1335
1354
|
return cte_name, cte_body.strip()
|
|
1336
1355
|
|
|
@@ -1574,21 +1593,11 @@ class MergingSqlGenerator:
|
|
|
1574
1593
|
if len(feature_subqueries) == 1:
|
|
1575
1594
|
return feature_subqueries[0][1]
|
|
1576
1595
|
|
|
1577
|
-
# Multiple list features:
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
if i < len(feature_subqueries) - 1:
|
|
1583
|
-
result += ", "
|
|
1584
|
-
|
|
1585
|
-
result += f"\n FROM {first_query} sq0"
|
|
1586
|
-
|
|
1587
|
-
for i, (_name, query) in enumerate(feature_subqueries[1:], 1):
|
|
1588
|
-
join_cond = " AND ".join(f"sq0.{col} = sq{i}.{col}" for col in group_by_cols)
|
|
1589
|
-
result += f"\n LEFT JOIN {query} sq{i}\n ON {join_cond}"
|
|
1590
|
-
|
|
1591
|
-
return result
|
|
1596
|
+
# Multiple list features: a feature with no non-NULL values in the window
|
|
1597
|
+
# emits no row, so the chain is driven from the unique (entity, boundary)
|
|
1598
|
+
# rows to keep each feature's array independent of the others. A missing
|
|
1599
|
+
# feature stays NULL, which is this path's "no data" encoding.
|
|
1600
|
+
return self._left_join_subqueries_on_bounds([(query, [name]) for name, query in feature_subqueries])
|
|
1592
1601
|
|
|
1593
1602
|
def _generate_combined_cte(self) -> tuple[str, str]:
|
|
1594
1603
|
"""Generate the final CTE that combines and expands results.
|
|
@@ -362,13 +362,29 @@ class MLJob(Generic[T], SerializableSessionMixin):
|
|
|
362
362
|
"""
|
|
363
363
|
if self._result is None:
|
|
364
364
|
self.wait(timeout)
|
|
365
|
+
# Retrying would push the call past the caller's timeout, so only retry when unbounded.
|
|
366
|
+
remaining = _INSTANCE_RECORD_TIMEOUT_SECONDS if timeout < 0 else 0
|
|
365
367
|
try:
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
368
|
+
while True:
|
|
369
|
+
try:
|
|
370
|
+
self._result = interop_utils.load(
|
|
371
|
+
self._result_path, session=self._session, path_transform=self._transform_path
|
|
372
|
+
)
|
|
373
|
+
break
|
|
374
|
+
except (OSError, json.JSONDecodeError) as error:
|
|
375
|
+
if remaining <= 0:
|
|
376
|
+
raise
|
|
377
|
+
logger.warning(
|
|
378
|
+
"job result retrieval: result is not yet readable: %s; retrying in %d second(s)",
|
|
379
|
+
error,
|
|
380
|
+
_INSTANCE_RECORD_POLL_INTERVAL_SECONDS,
|
|
381
|
+
)
|
|
382
|
+
time.sleep(_INSTANCE_RECORD_POLL_INTERVAL_SECONDS)
|
|
383
|
+
remaining -= _INSTANCE_RECORD_POLL_INTERVAL_SECONDS
|
|
369
384
|
except Exception as e:
|
|
370
385
|
raise RuntimeError(f"Failed to retrieve result for job, error: {e!r}") from e
|
|
371
386
|
|
|
387
|
+
assert self._result is not None
|
|
372
388
|
return cast(T, self._result.get_value())
|
|
373
389
|
|
|
374
390
|
@telemetry.send_api_usage_telemetry(project=_PROJECT, func_params_to_log=["timeout"])
|
{snowflake_ml_python-2.2.0 → snowflake_ml_python-2.3.0}/snowflake/ml/model/_client/ops/model_ops.py
RENAMED
|
@@ -5,7 +5,7 @@ import os
|
|
|
5
5
|
import pathlib
|
|
6
6
|
import tempfile
|
|
7
7
|
import warnings
|
|
8
|
-
from typing import Any, Literal, TypedDict, cast, overload
|
|
8
|
+
from typing import Any, Literal, NoReturn, TypedDict, cast, overload
|
|
9
9
|
|
|
10
10
|
import yaml
|
|
11
11
|
from typing_extensions import NotRequired
|
|
@@ -31,7 +31,13 @@ from snowflake.ml.model._packager.model_env import model_env
|
|
|
31
31
|
from snowflake.ml.model._packager.model_meta import model_meta
|
|
32
32
|
from snowflake.ml.model._packager.model_runtime import model_runtime
|
|
33
33
|
from snowflake.ml.model._signatures import snowpark_handler
|
|
34
|
-
from snowflake.snowpark import
|
|
34
|
+
from snowflake.snowpark import (
|
|
35
|
+
dataframe,
|
|
36
|
+
exceptions as snowpark_exceptions,
|
|
37
|
+
functions as F,
|
|
38
|
+
row,
|
|
39
|
+
session,
|
|
40
|
+
)
|
|
35
41
|
from snowflake.snowpark._internal import utils as snowpark_utils
|
|
36
42
|
|
|
37
43
|
logger = logging.getLogger(__name__)
|
|
@@ -986,6 +992,220 @@ class ModelOperator:
|
|
|
986
992
|
task_val = model_attributes.get("task", type_hints.Task.UNKNOWN.value)
|
|
987
993
|
return type_hints.Task(task_val)
|
|
988
994
|
|
|
995
|
+
@staticmethod
|
|
996
|
+
def _is_peft_adapter_spec(parsed_model_spec: model_spec.ModelSpec) -> bool:
|
|
997
|
+
"""Return whether the specification describes a PEFT adapter version.
|
|
998
|
+
|
|
999
|
+
Args:
|
|
1000
|
+
parsed_model_spec: Parsed model specification from SHOW VERSIONS.
|
|
1001
|
+
|
|
1002
|
+
Returns:
|
|
1003
|
+
True when the model type is peft_adapter or blob options name a pin.
|
|
1004
|
+
"""
|
|
1005
|
+
try:
|
|
1006
|
+
if parsed_model_spec.model_type == "peft_adapter":
|
|
1007
|
+
return True
|
|
1008
|
+
except (KeyError, ValueError):
|
|
1009
|
+
pass
|
|
1010
|
+
return any(
|
|
1011
|
+
isinstance(options.get("base_model_name"), str)
|
|
1012
|
+
and options.get("base_model_name")
|
|
1013
|
+
and isinstance(options.get("base_model_version"), str)
|
|
1014
|
+
and options.get("base_model_version")
|
|
1015
|
+
for options in parsed_model_spec.model_options.values()
|
|
1016
|
+
)
|
|
1017
|
+
|
|
1018
|
+
def _peft_pin_identity_from_lineage(
|
|
1019
|
+
self,
|
|
1020
|
+
*,
|
|
1021
|
+
database_name: sql_identifier.SqlIdentifier | None,
|
|
1022
|
+
schema_name: sql_identifier.SqlIdentifier | None,
|
|
1023
|
+
model_name: sql_identifier.SqlIdentifier,
|
|
1024
|
+
version_name: sql_identifier.SqlIdentifier,
|
|
1025
|
+
) -> tuple[str, str] | Literal["absent", "blocked"]:
|
|
1026
|
+
"""Resolve the adapter pin's current name from upstream model lineage.
|
|
1027
|
+
|
|
1028
|
+
Args:
|
|
1029
|
+
database_name: Database of the adapter version.
|
|
1030
|
+
schema_name: Schema of the adapter version.
|
|
1031
|
+
model_name: Adapter model name.
|
|
1032
|
+
version_name: Adapter version name.
|
|
1033
|
+
|
|
1034
|
+
Returns:
|
|
1035
|
+
Current pin fully-qualified name and version when exactly one ACTIVE
|
|
1036
|
+
upstream model exists; ``absent`` when lineage has no model upstream
|
|
1037
|
+
or cannot be read; ``blocked`` when the pin is MASKED, DELETED, incomplete,
|
|
1038
|
+
or not unique.
|
|
1039
|
+
"""
|
|
1040
|
+
try:
|
|
1041
|
+
trace_df = self._session.lineage.trace(
|
|
1042
|
+
self._model_client.fully_qualified_object_name(database_name, schema_name, model_name),
|
|
1043
|
+
"MODEL",
|
|
1044
|
+
object_version=version_name.identifier(),
|
|
1045
|
+
direction="upstream",
|
|
1046
|
+
distance=1,
|
|
1047
|
+
)
|
|
1048
|
+
rows = trace_df.collect()
|
|
1049
|
+
model_nodes: list[tuple[str, str, str]] = []
|
|
1050
|
+
for lineage_row in rows:
|
|
1051
|
+
lineage_object = json.loads(lineage_row["SOURCE_OBJECT"])
|
|
1052
|
+
if str(lineage_object.get("domain", "")).lower() != "model":
|
|
1053
|
+
continue
|
|
1054
|
+
raw_name = lineage_object.get("name")
|
|
1055
|
+
raw_version = lineage_object.get("version")
|
|
1056
|
+
status = str(lineage_object.get("status", ""))
|
|
1057
|
+
if not isinstance(raw_name, str) or not raw_name:
|
|
1058
|
+
model_nodes.append(("", "", status))
|
|
1059
|
+
continue
|
|
1060
|
+
parsed_name = ".".join(
|
|
1061
|
+
identifier.rename_to_valid_snowflake_identifier(part)
|
|
1062
|
+
for part in identifier.parse_schema_level_object_identifier(raw_name)
|
|
1063
|
+
if part is not None
|
|
1064
|
+
)
|
|
1065
|
+
pin_version = raw_version if isinstance(raw_version, str) else ""
|
|
1066
|
+
model_nodes.append((parsed_name, pin_version, status))
|
|
1067
|
+
except (
|
|
1068
|
+
AttributeError,
|
|
1069
|
+
KeyError,
|
|
1070
|
+
TypeError,
|
|
1071
|
+
ValueError,
|
|
1072
|
+
json.JSONDecodeError,
|
|
1073
|
+
snowpark_exceptions.SnowparkSQLException,
|
|
1074
|
+
) as err:
|
|
1075
|
+
logger.debug("adapter model: could not read pin lineage: %s", err)
|
|
1076
|
+
return "absent"
|
|
1077
|
+
if not model_nodes:
|
|
1078
|
+
return "absent"
|
|
1079
|
+
if len(model_nodes) != 1:
|
|
1080
|
+
return "blocked"
|
|
1081
|
+
pin_name, pin_version, status = model_nodes[0]
|
|
1082
|
+
if status.upper() != "ACTIVE" or not pin_name or not pin_version:
|
|
1083
|
+
return "blocked"
|
|
1084
|
+
return pin_name, pin_version
|
|
1085
|
+
|
|
1086
|
+
@staticmethod
|
|
1087
|
+
def _peft_pin_identity_from_blob_options(
|
|
1088
|
+
parsed_model_spec: model_spec.ModelSpec,
|
|
1089
|
+
) -> tuple[str, str] | None:
|
|
1090
|
+
"""Return the pin name and version from adapter blob options.
|
|
1091
|
+
|
|
1092
|
+
Args:
|
|
1093
|
+
parsed_model_spec: Adapter specification whose blob options may name the pin.
|
|
1094
|
+
|
|
1095
|
+
Returns:
|
|
1096
|
+
Pin fully-qualified name and version, or None when those options are missing.
|
|
1097
|
+
"""
|
|
1098
|
+
for options in parsed_model_spec.model_options.values():
|
|
1099
|
+
name = options.get("base_model_name")
|
|
1100
|
+
version = options.get("base_model_version")
|
|
1101
|
+
if isinstance(name, str) and name and isinstance(version, str) and version:
|
|
1102
|
+
return name, version
|
|
1103
|
+
return None
|
|
1104
|
+
|
|
1105
|
+
def _fetch_model_spec_for_pin(
|
|
1106
|
+
self,
|
|
1107
|
+
pin_name: str,
|
|
1108
|
+
pin_version: str,
|
|
1109
|
+
*,
|
|
1110
|
+
statement_params: dict[str, Any] | None = None,
|
|
1111
|
+
) -> model_spec.ModelSpec | None:
|
|
1112
|
+
"""Load a pin specification by fully-qualified name and version.
|
|
1113
|
+
|
|
1114
|
+
Args:
|
|
1115
|
+
pin_name: Fully-qualified pin model name.
|
|
1116
|
+
pin_version: Pin version name.
|
|
1117
|
+
statement_params: Optional dictionary of statement parameters.
|
|
1118
|
+
|
|
1119
|
+
Returns:
|
|
1120
|
+
The pin specification, or None when the name is unparsable or the pin cannot be loaded.
|
|
1121
|
+
"""
|
|
1122
|
+
try:
|
|
1123
|
+
database_name, schema_name, model_name = sql_identifier.parse_fully_qualified_name(pin_name)
|
|
1124
|
+
except ValueError:
|
|
1125
|
+
return None
|
|
1126
|
+
if database_name is None or schema_name is None:
|
|
1127
|
+
return None
|
|
1128
|
+
try:
|
|
1129
|
+
return self._fetch_model_spec(
|
|
1130
|
+
database_name=database_name,
|
|
1131
|
+
schema_name=schema_name,
|
|
1132
|
+
model_name=model_name,
|
|
1133
|
+
version_name=sql_identifier.SqlIdentifier(pin_version),
|
|
1134
|
+
statement_params=statement_params,
|
|
1135
|
+
)
|
|
1136
|
+
except (
|
|
1137
|
+
IndexError,
|
|
1138
|
+
KeyError,
|
|
1139
|
+
TypeError,
|
|
1140
|
+
ValueError,
|
|
1141
|
+
yaml.YAMLError,
|
|
1142
|
+
snowpark_exceptions.SnowparkSQLException,
|
|
1143
|
+
) as err:
|
|
1144
|
+
logger.debug("adapter model: could not load pin specification: %s", err)
|
|
1145
|
+
return None
|
|
1146
|
+
|
|
1147
|
+
def _fetch_peft_pin_spec(
|
|
1148
|
+
self,
|
|
1149
|
+
parsed_model_spec: model_spec.ModelSpec,
|
|
1150
|
+
*,
|
|
1151
|
+
database_name: sql_identifier.SqlIdentifier | None,
|
|
1152
|
+
schema_name: sql_identifier.SqlIdentifier | None,
|
|
1153
|
+
model_name: sql_identifier.SqlIdentifier,
|
|
1154
|
+
version_name: sql_identifier.SqlIdentifier,
|
|
1155
|
+
statement_params: dict[str, Any] | None = None,
|
|
1156
|
+
) -> model_spec.ModelSpec | None:
|
|
1157
|
+
"""Load the pin model specification for an adapter version.
|
|
1158
|
+
|
|
1159
|
+
Prefers the current names from the adapter's upstream model lineage so a pin
|
|
1160
|
+
rename still resolves. Blob options are used only when lineage has no model
|
|
1161
|
+
upstream (the pin edge is not visible yet).
|
|
1162
|
+
|
|
1163
|
+
Args:
|
|
1164
|
+
parsed_model_spec: Adapter specification whose blob options may name the pin.
|
|
1165
|
+
database_name: Database of the adapter version.
|
|
1166
|
+
schema_name: Schema of the adapter version.
|
|
1167
|
+
model_name: Adapter model name.
|
|
1168
|
+
version_name: Adapter version name.
|
|
1169
|
+
statement_params: Optional dictionary of statement parameters.
|
|
1170
|
+
|
|
1171
|
+
Returns:
|
|
1172
|
+
The pin specification, or None when the pin cannot be resolved or loaded.
|
|
1173
|
+
"""
|
|
1174
|
+
lineage_pin = self._peft_pin_identity_from_lineage(
|
|
1175
|
+
database_name=database_name,
|
|
1176
|
+
schema_name=schema_name,
|
|
1177
|
+
model_name=model_name,
|
|
1178
|
+
version_name=version_name,
|
|
1179
|
+
)
|
|
1180
|
+
if lineage_pin == "blocked":
|
|
1181
|
+
return None
|
|
1182
|
+
if lineage_pin == "absent":
|
|
1183
|
+
blob_pin = ModelOperator._peft_pin_identity_from_blob_options(parsed_model_spec)
|
|
1184
|
+
if blob_pin is None:
|
|
1185
|
+
return None
|
|
1186
|
+
pin_name, pin_version = blob_pin
|
|
1187
|
+
else:
|
|
1188
|
+
pin_name, pin_version = lineage_pin
|
|
1189
|
+
return self._fetch_model_spec_for_pin(
|
|
1190
|
+
pin_name,
|
|
1191
|
+
pin_version,
|
|
1192
|
+
statement_params=statement_params,
|
|
1193
|
+
)
|
|
1194
|
+
|
|
1195
|
+
@staticmethod
|
|
1196
|
+
def _raise_unresolved_adapter_pin_signatures() -> NoReturn:
|
|
1197
|
+
"""Raise when adapter catalog methods cannot be mapped onto pin signatures.
|
|
1198
|
+
|
|
1199
|
+
Raises:
|
|
1200
|
+
SnowflakeMLException: Always. Catalog methods exist but pin signatures could not be used.
|
|
1201
|
+
"""
|
|
1202
|
+
raise exceptions.SnowflakeMLException(
|
|
1203
|
+
error_code=error_codes.INVALID_ARGUMENT,
|
|
1204
|
+
original_exception=ValueError(
|
|
1205
|
+
"adapter model: catalog methods exist but method signatures could not be resolved from the pin."
|
|
1206
|
+
),
|
|
1207
|
+
)
|
|
1208
|
+
|
|
989
1209
|
def get_functions(
|
|
990
1210
|
self,
|
|
991
1211
|
*,
|
|
@@ -1058,20 +1278,47 @@ class ModelOperator:
|
|
|
1058
1278
|
)
|
|
1059
1279
|
|
|
1060
1280
|
signatures = parsed_model_spec.signatures
|
|
1281
|
+
signature_spec = parsed_model_spec
|
|
1282
|
+
is_peft_adapter = False
|
|
1283
|
+
if not signatures and function_names_and_types:
|
|
1284
|
+
is_peft_adapter = ModelOperator._is_peft_adapter_spec(parsed_model_spec)
|
|
1285
|
+
if is_peft_adapter:
|
|
1286
|
+
pin_spec = self._fetch_peft_pin_spec(
|
|
1287
|
+
parsed_model_spec,
|
|
1288
|
+
database_name=database_name,
|
|
1289
|
+
schema_name=schema_name,
|
|
1290
|
+
model_name=model_name,
|
|
1291
|
+
version_name=version_name,
|
|
1292
|
+
statement_params=statement_params,
|
|
1293
|
+
)
|
|
1294
|
+
if pin_spec is None or not pin_spec.signatures:
|
|
1295
|
+
ModelOperator._raise_unresolved_adapter_pin_signatures()
|
|
1296
|
+
signatures = pin_spec.signatures
|
|
1297
|
+
signature_spec = pin_spec
|
|
1298
|
+
|
|
1061
1299
|
function_names = [name for name, _, _ in function_names_and_types]
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1300
|
+
try:
|
|
1301
|
+
function_name_mapping = ModelOperator._match_model_spec_with_sql_functions(
|
|
1302
|
+
function_names, list(signatures.keys())
|
|
1303
|
+
)
|
|
1304
|
+
except AssertionError:
|
|
1305
|
+
if is_peft_adapter:
|
|
1306
|
+
ModelOperator._raise_unresolved_adapter_pin_signatures()
|
|
1307
|
+
raise
|
|
1065
1308
|
|
|
1066
1309
|
model_func_info = []
|
|
1067
1310
|
|
|
1068
1311
|
for function_name, function_type, is_object_output in function_names_and_types:
|
|
1312
|
+
if function_name not in function_name_mapping:
|
|
1313
|
+
if is_peft_adapter:
|
|
1314
|
+
ModelOperator._raise_unresolved_adapter_pin_signatures()
|
|
1315
|
+
raise KeyError(function_name)
|
|
1069
1316
|
target_method = function_name_mapping[function_name]
|
|
1070
1317
|
|
|
1071
1318
|
is_partitioned = False
|
|
1072
1319
|
if function_type == model_manifest_schema.ModelMethodFunctionTypes.TABLE_FUNCTION.value:
|
|
1073
1320
|
# better to set default True here because worse case it will be slow but not error out
|
|
1074
|
-
is_partitioned =
|
|
1321
|
+
is_partitioned = signature_spec.is_partitioned(target_method)
|
|
1075
1322
|
|
|
1076
1323
|
model_func_info.append(
|
|
1077
1324
|
model_manifest_schema.ModelFunctionInfo(
|