snowflake-ml-python 1.50.0__tar.gz → 1.52.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/CHANGELOG.md +32 -1
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/PKG-INFO +36 -5
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/pyproject.toml +3 -3
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/telemetry.py +1 -1
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_store.py +228 -46
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_view.py +21 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/stream_source.py +3 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/type_utils.py +1 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/decorators.py +2 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/job_definition.py +7 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/manager.py +6 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/batch_inference_task.py +13 -0
- snowflake_ml_python-1.52.0/snowflake/ml/model/_client/model/batch_inference_task_v2.py +156 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/model_version_impl.py +53 -18
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/service_ops.py +199 -54
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/service.py +68 -19
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_env/model_env.py +12 -6
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +122 -94
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/batch_inference/__init__.py +2 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/registry/_manager/model_manager.py +19 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/sparse.py +6 -1
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake_ml_python.egg-info/PKG-INFO +36 -5
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake_ml_python.egg-info/SOURCES.txt +1 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake_ml_python.egg-info/requires.txt +3 -3
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/README.md +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/_source_info.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_group.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/online_service.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/request_source.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/spec/models.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/stream_config.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/job.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.52.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
### Behavior Changes
|
|
10
|
+
|
|
11
|
+
### Deprecations
|
|
12
|
+
|
|
13
|
+
## 1.51.0 (2026-08-12)
|
|
14
|
+
|
|
15
|
+
### New Features
|
|
16
|
+
|
|
17
|
+
* ML Jobs: `artifact_repositories` now accepts a list of repositories, allowing multiple artifact
|
|
18
|
+
repositories to be specified for a job.
|
|
19
|
+
* Registry: Added support for logging and running MLflow 3.x models.
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* Registry: Fixed a bug where an MLflow model logged with
|
|
24
|
+
`target_platforms=["SNOWPARK_CONTAINER_SERVICES"]` could drop its pip dependencies, leaving the
|
|
25
|
+
deployed model missing required packages.
|
|
26
|
+
|
|
27
|
+
### Behavior Changes
|
|
28
|
+
|
|
29
|
+
* Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
|
|
30
|
+
`StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
|
|
31
|
+
|
|
32
|
+
### Deprecations
|
|
33
|
+
|
|
34
|
+
## 1.50.0 (2026-08-03)
|
|
4
35
|
|
|
5
36
|
### New Features
|
|
6
37
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.52.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:
|
|
@@ -264,7 +264,7 @@ Requires-Dist: altair<7,>=5; extra == "all"
|
|
|
264
264
|
Requires-Dist: catboost<2,>=1.2.0; extra == "all"
|
|
265
265
|
Requires-Dist: keras<4,>=2.0.0; extra == "all"
|
|
266
266
|
Requires-Dist: lightgbm<5,>=4.1.0; extra == "all"
|
|
267
|
-
Requires-Dist: mlflow<
|
|
267
|
+
Requires-Dist: mlflow<4,>=2.16.0; extra == "all"
|
|
268
268
|
Requires-Dist: prophet<2,>=1.1.0; extra == "all"
|
|
269
269
|
Requires-Dist: sentence-transformers<6,>=2.7.0; extra == "all"
|
|
270
270
|
Requires-Dist: sentencepiece<0.3,>=0.1.95; extra == "all"
|
|
@@ -285,7 +285,7 @@ Requires-Dist: torch<3,>=2.0.1; extra == "keras"
|
|
|
285
285
|
Provides-Extra: lightgbm
|
|
286
286
|
Requires-Dist: lightgbm<5,>=4.1.0; extra == "lightgbm"
|
|
287
287
|
Provides-Extra: llm
|
|
288
|
-
Requires-Dist: mlflow<
|
|
288
|
+
Requires-Dist: mlflow<4,>=2.16.0; extra == "llm"
|
|
289
289
|
Requires-Dist: sentence-transformers<6,>=2.7.0; extra == "llm"
|
|
290
290
|
Requires-Dist: sentencepiece<0.3,>=0.1.95; extra == "llm"
|
|
291
291
|
Requires-Dist: tokenizers<1,>=0.15.1; extra == "llm"
|
|
@@ -293,7 +293,7 @@ Requires-Dist: torch<3,>=2.0.1; extra == "llm"
|
|
|
293
293
|
Requires-Dist: torchdata<1,>=0.4; extra == "llm"
|
|
294
294
|
Requires-Dist: transformers!=4.51.3,<6,>=4.39.3; extra == "llm"
|
|
295
295
|
Provides-Extra: mlflow
|
|
296
|
-
Requires-Dist: mlflow<
|
|
296
|
+
Requires-Dist: mlflow<4,>=2.16.0; extra == "mlflow"
|
|
297
297
|
Provides-Extra: prophet
|
|
298
298
|
Requires-Dist: prophet<2,>=1.1.0; extra == "prophet"
|
|
299
299
|
Provides-Extra: streamlit
|
|
@@ -416,7 +416,38 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
416
416
|
|
|
417
417
|
# Release History
|
|
418
418
|
|
|
419
|
-
## 1.
|
|
419
|
+
## 1.52.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
### Bug Fixes
|
|
424
|
+
|
|
425
|
+
### Behavior Changes
|
|
426
|
+
|
|
427
|
+
### Deprecations
|
|
428
|
+
|
|
429
|
+
## 1.51.0 (2026-08-12)
|
|
430
|
+
|
|
431
|
+
### New Features
|
|
432
|
+
|
|
433
|
+
* ML Jobs: `artifact_repositories` now accepts a list of repositories, allowing multiple artifact
|
|
434
|
+
repositories to be specified for a job.
|
|
435
|
+
* Registry: Added support for logging and running MLflow 3.x models.
|
|
436
|
+
|
|
437
|
+
### Bug Fixes
|
|
438
|
+
|
|
439
|
+
* Registry: Fixed a bug where an MLflow model logged with
|
|
440
|
+
`target_platforms=["SNOWPARK_CONTAINER_SERVICES"]` could drop its pip dependencies, leaving the
|
|
441
|
+
deployed model missing required packages.
|
|
442
|
+
|
|
443
|
+
### Behavior Changes
|
|
444
|
+
|
|
445
|
+
* Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
|
|
446
|
+
`StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
|
|
447
|
+
|
|
448
|
+
### Deprecations
|
|
449
|
+
|
|
450
|
+
## 1.50.0 (2026-08-03)
|
|
420
451
|
|
|
421
452
|
### New Features
|
|
422
453
|
|
|
@@ -24,13 +24,13 @@ Issues = "https://github.com/snowflakedb/snowflake-ml-python/issues"
|
|
|
24
24
|
Changelog = "https://github.com/snowflakedb/snowflake-ml-python/blob/master/CHANGELOG.md"
|
|
25
25
|
|
|
26
26
|
[project.optional-dependencies]
|
|
27
|
-
all = [ "altair>=5,<7", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <
|
|
27
|
+
all = [ "altair>=5,<7", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <4", "prophet>=1.1.0, <2", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.3", "streamlit>=1.30.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
|
|
28
28
|
altair = [ "altair>=5,<7",]
|
|
29
29
|
catboost = [ "catboost>=1.2.0, <2",]
|
|
30
30
|
keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
|
|
31
31
|
lightgbm = [ "lightgbm>=4.1.0, <5",]
|
|
32
|
-
llm = [ "mlflow>=2.16.0, <
|
|
33
|
-
mlflow = [ "mlflow>=2.16.0, <
|
|
32
|
+
llm = [ "mlflow>=2.16.0, <4", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
|
|
33
|
+
mlflow = [ "mlflow>=2.16.0, <4",]
|
|
34
34
|
prophet = [ "prophet>=1.1.0, <2",]
|
|
35
35
|
streamlit = [ "streamlit>=1.30.0,<2",]
|
|
36
36
|
tensorflow = [ "tensorflow>=2.17.0,<3",]
|
{snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/_internal/telemetry.py
RENAMED
|
@@ -300,7 +300,7 @@ def add_statement_params_custom_tags(
|
|
|
300
300
|
"""
|
|
301
301
|
if not statement_params:
|
|
302
302
|
return {}
|
|
303
|
-
existing_custom_tags: dict[str, Any] = statement_params.
|
|
303
|
+
existing_custom_tags: dict[str, Any] = dict(statement_params.get(TelemetryField.KEY_CUSTOM_TAGS.value, {}))
|
|
304
304
|
existing_custom_tags.update(custom_tags)
|
|
305
305
|
# NOTE: This can be done with | operator after upgrade from py3.8
|
|
306
306
|
return {
|
|
@@ -49,6 +49,7 @@ from snowflake.ml.feature_store import (
|
|
|
49
49
|
feature_group as fg_mod,
|
|
50
50
|
feature_view_append_only_validation,
|
|
51
51
|
feature_view_refresh_freq,
|
|
52
|
+
interval_utils,
|
|
52
53
|
online_service,
|
|
53
54
|
online_service_http_client,
|
|
54
55
|
realtime_dataset as rtfv_dataset,
|
|
@@ -449,6 +450,59 @@ class _FeatureStoreConfig:
|
|
|
449
450
|
return f"{self.database}.{self.schema}"
|
|
450
451
|
|
|
451
452
|
|
|
453
|
+
def _canonicalize_operational_fields(payload: dict[str, Any]) -> dict[str, Any]:
|
|
454
|
+
"""Return a canonicalized copy of an FV operational-field payload (Plan section A4).
|
|
455
|
+
|
|
456
|
+
Closes Bug 2 (``UPDATE_FV`` operational drift on tiled online BFVs) by
|
|
457
|
+
coercing two fields to a single representation that the diff logic in
|
|
458
|
+
``decl/invariants.py`` and ``decl/planner.py`` consumes symmetrically:
|
|
459
|
+
|
|
460
|
+
* ``online_store_type`` — lowercased and whitespace-stripped. Snowflake
|
|
461
|
+
``DESCRIBE … TYPE = SPECIFICATION`` returns mixed-case enum values
|
|
462
|
+
with surrounding whitespace; the local compile emits the lowercase
|
|
463
|
+
form. Without canonicalization the diff observes cosmetic drift on
|
|
464
|
+
a clean re-plan.
|
|
465
|
+
* ``target_lag_sec`` — always an ``int`` computed from the deployed
|
|
466
|
+
string form (``payload["target_lag"]``) via
|
|
467
|
+
:func:`interval_utils.interval_to_seconds`. The OFT may return
|
|
468
|
+
either ``"5 minutes"`` or ``"300 SECONDS"`` for the same value;
|
|
469
|
+
diffing on seconds (not strings) makes the comparison stable.
|
|
470
|
+
|
|
471
|
+
The helper is pure: the input ``payload`` is not mutated. Absent or
|
|
472
|
+
``None`` keys are preserved as-is so callers can chain this through a
|
|
473
|
+
pipeline of canonicalizers without re-introducing fields.
|
|
474
|
+
|
|
475
|
+
The ``"DOWNSTREAM"`` sentinel (CRON-task target_lag) is silently
|
|
476
|
+
skipped: the planner recovers the cron expression via the companion
|
|
477
|
+
Task, and ``interval_to_seconds`` would otherwise crash trying to
|
|
478
|
+
parse it.
|
|
479
|
+
|
|
480
|
+
Args:
|
|
481
|
+
payload: Operational-field dictionary, typically the
|
|
482
|
+
``spec_payload["spec"]`` shape that ``decl/`` consumes.
|
|
483
|
+
|
|
484
|
+
Returns:
|
|
485
|
+
A new dict (caller's payload is not mutated) with
|
|
486
|
+
``online_store_type`` and ``target_lag_sec`` in canonical form.
|
|
487
|
+
"""
|
|
488
|
+
out = dict(payload)
|
|
489
|
+
|
|
490
|
+
if "online_store_type" in out:
|
|
491
|
+
value = out["online_store_type"]
|
|
492
|
+
if isinstance(value, str):
|
|
493
|
+
out["online_store_type"] = value.strip().lower()
|
|
494
|
+
|
|
495
|
+
if "target_lag" in out and out["target_lag"] is not None:
|
|
496
|
+
target_lag_str = str(out["target_lag"])
|
|
497
|
+
if target_lag_str.strip().upper() != "DOWNSTREAM":
|
|
498
|
+
try:
|
|
499
|
+
out["target_lag_sec"] = int(interval_utils.interval_to_seconds(target_lag_str))
|
|
500
|
+
except (KeyError, ValueError, TypeError):
|
|
501
|
+
pass
|
|
502
|
+
|
|
503
|
+
return out
|
|
504
|
+
|
|
505
|
+
|
|
452
506
|
def switch_warehouse(
|
|
453
507
|
f: Callable[Concatenate[FeatureStore, _Args], _RT],
|
|
454
508
|
) -> Callable[Concatenate[FeatureStore, _Args], _RT]:
|
|
@@ -862,7 +916,12 @@ class FeatureStore:
|
|
|
862
916
|
|
|
863
917
|
return self.get_entity(entity.name)
|
|
864
918
|
|
|
865
|
-
def update_entity(
|
|
919
|
+
def update_entity(
|
|
920
|
+
self,
|
|
921
|
+
name: str,
|
|
922
|
+
*,
|
|
923
|
+
desc: Optional[str] = None,
|
|
924
|
+
) -> Optional[Entity]:
|
|
866
925
|
"""Update a registered entity with provided information.
|
|
867
926
|
|
|
868
927
|
Args:
|
|
@@ -910,9 +969,9 @@ class FeatureStore:
|
|
|
910
969
|
return None
|
|
911
970
|
|
|
912
971
|
new_desc = desc if desc is not None else found_rows[0]["DESC"]
|
|
972
|
+
full_name = f"{self._config.full_schema_path}.{self._get_entity_name(name)}"
|
|
913
973
|
|
|
914
974
|
try:
|
|
915
|
-
full_name = f"{self._config.full_schema_path}.{self._get_entity_name(name)}"
|
|
916
975
|
self._session.sql(f"ALTER TAG {full_name} SET COMMENT = {_sql_string_literal(new_desc)}").collect(
|
|
917
976
|
statement_params=self._telemetry_stmp
|
|
918
977
|
)
|
|
@@ -3159,7 +3218,9 @@ class FeatureStore:
|
|
|
3159
3218
|
original_exception=ValueError(f"Cannot find StreamSource with name: {name_id}."),
|
|
3160
3219
|
)
|
|
3161
3220
|
|
|
3162
|
-
|
|
3221
|
+
stream_source = StreamSource._from_dict(metadata)
|
|
3222
|
+
self._hydrate_stream_source_online_service(stream_source)
|
|
3223
|
+
return stream_source
|
|
3163
3224
|
|
|
3164
3225
|
@dispatch_decorator()
|
|
3165
3226
|
def stream_ingest(
|
|
@@ -3200,20 +3261,26 @@ class FeatureStore:
|
|
|
3200
3261
|
src = self.get_stream_source(str(stream_source))
|
|
3201
3262
|
stream_name_wire = src.name.resolved()
|
|
3202
3263
|
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3264
|
+
# Reuse the ingest endpoint cached on the StreamSource by get_stream_source to
|
|
3265
|
+
# skip the per-call GS status lookup. Fall back to a live status fetch when the
|
|
3266
|
+
# URL is absent (manually constructed StreamSource, or hydrated before the
|
|
3267
|
+
# Online Service was RUNNING).
|
|
3268
|
+
ingest_base = getattr(src, "_postgres_online_ingest_url", None)
|
|
3269
|
+
if not ingest_base:
|
|
3270
|
+
stmp = self._telemetry_stmp if statement_params is None else statement_params
|
|
3271
|
+
st = online_service.assert_online_service_running_with_ingest_endpoint(
|
|
3272
|
+
self._session,
|
|
3273
|
+
self._config.database,
|
|
3274
|
+
self._config.schema,
|
|
3275
|
+
statement_params=stmp,
|
|
3215
3276
|
)
|
|
3216
|
-
|
|
3277
|
+
ingest_url = online_service.endpoint_url(st, "ingest", access=self._online_service_access)
|
|
3278
|
+
if not ingest_url:
|
|
3279
|
+
raise snowml_exceptions.SnowflakeMLException(
|
|
3280
|
+
error_code=error_codes.INVALID_ARGUMENT,
|
|
3281
|
+
original_exception=ValueError("Online Service returned no ingest endpoint."),
|
|
3282
|
+
)
|
|
3283
|
+
ingest_base = ingest_url
|
|
3217
3284
|
|
|
3218
3285
|
expected_cols = _stream_source_schema_field_names(src.schema)
|
|
3219
3286
|
rows = _normalize_stream_ingest_records(records)
|
|
@@ -7921,12 +7988,6 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
7921
7988
|
source_refs_meta = self._metadata_manager.get_feature_view_source_refs(name, version)
|
|
7922
7989
|
source_refs_json = json.dumps(source_refs_meta.sources) if source_refs_meta is not None else None
|
|
7923
7990
|
|
|
7924
|
-
# Surface the authored source-ref list (JSON-encoded) when a
|
|
7925
|
-
# ``FV_SOURCE_REFS`` row exists; otherwise leave the column null.
|
|
7926
|
-
# Verbose-only: goes into output_values_extra alongside backup_source.
|
|
7927
|
-
source_refs_meta = self._metadata_manager.get_feature_view_source_refs(name, version)
|
|
7928
|
-
source_refs_json = json.dumps(source_refs_meta.sources) if source_refs_meta is not None else None
|
|
7929
|
-
|
|
7930
7991
|
backup_source: Optional[str] = None
|
|
7931
7992
|
if fv_metadata.is_append_only:
|
|
7932
7993
|
append_only_meta = self._metadata_manager.get_append_only_metadata(name, version)
|
|
@@ -8110,11 +8171,6 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8110
8171
|
source_refs_meta = self._metadata_manager.get_feature_view_source_refs(name.identifier(), version)
|
|
8111
8172
|
restored_source_refs = source_refs_meta.sources if source_refs_meta is not None else None
|
|
8112
8173
|
|
|
8113
|
-
# Rehydrate the authored source-ref list onto the reconstructed
|
|
8114
|
-
# FV when a ``FV_SOURCE_REFS`` row was persisted at register time.
|
|
8115
|
-
source_refs_meta = self._metadata_manager.get_feature_view_source_refs(name.identifier(), version)
|
|
8116
|
-
restored_source_refs = source_refs_meta.sources if source_refs_meta is not None else None
|
|
8117
|
-
|
|
8118
8174
|
if obj_type == _FeatureStoreObjTypes.MANAGED_FEATURE_VIEW:
|
|
8119
8175
|
df = self._session.sql(query)
|
|
8120
8176
|
entities = [find_and_compose_entity(n) for n in fv_metadata.entities]
|
|
@@ -8272,21 +8328,28 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8272
8328
|
|
|
8273
8329
|
return fv
|
|
8274
8330
|
|
|
8275
|
-
def
|
|
8276
|
-
|
|
8331
|
+
def _resolve_postgres_online_endpoint_url(
|
|
8332
|
+
self, endpoint_name: str, *, log_label: str, warn: bool = True
|
|
8333
|
+
) -> Optional[str]:
|
|
8334
|
+
"""Fetch a Postgres OFT Online Service endpoint URL or return ``None``.
|
|
8277
8335
|
|
|
8278
8336
|
Failures (status not RUNNING, missing endpoint URL, transient
|
|
8279
|
-
SYSTEM$ errors) are downgraded to ``
|
|
8280
|
-
still construct the target object and
|
|
8281
|
-
RUNNING" error
|
|
8337
|
+
SYSTEM$ errors) are downgraded to a return value of ``None`` so callers
|
|
8338
|
+
can still construct the target object and surface the "Online Service
|
|
8339
|
+
not RUNNING" error at use time. When ``warn`` is ``True`` these
|
|
8340
|
+
failures also emit a ``UserWarning``.
|
|
8282
8341
|
|
|
8283
8342
|
Args:
|
|
8343
|
+
endpoint_name: Endpoint to resolve (``"query"`` or ``"ingest"``).
|
|
8284
8344
|
log_label: Caller name embedded in the warning log
|
|
8285
|
-
(e.g. ``"get_feature_view"``, ``"
|
|
8345
|
+
(e.g. ``"get_feature_view"``, ``"get_stream_source"``).
|
|
8346
|
+
warn: When ``True``, emit a ``UserWarning`` on failure. Callers that
|
|
8347
|
+
have their own use-time fallback (e.g. ``stream_ingest``) pass
|
|
8348
|
+
``False`` to avoid spurious warnings during metadata reads.
|
|
8286
8349
|
|
|
8287
8350
|
Returns:
|
|
8288
|
-
The
|
|
8289
|
-
|
|
8351
|
+
The endpoint URL when the Online Service is RUNNING or UPDATING and
|
|
8352
|
+
advertises the named endpoint; ``None`` otherwise.
|
|
8290
8353
|
"""
|
|
8291
8354
|
try:
|
|
8292
8355
|
st = online_service.fetch_online_service_status(
|
|
@@ -8297,30 +8360,62 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8297
8360
|
)
|
|
8298
8361
|
except Exception as ex:
|
|
8299
8362
|
logger.warning("Could not fetch Online Service status during %s: %s", log_label, ex)
|
|
8363
|
+
if warn:
|
|
8364
|
+
warnings.warn(
|
|
8365
|
+
online_service.online_service_not_ready_message(),
|
|
8366
|
+
category=UserWarning,
|
|
8367
|
+
stacklevel=4,
|
|
8368
|
+
)
|
|
8369
|
+
return None
|
|
8370
|
+
endpoint = online_service.endpoint_url(st, endpoint_name, access=self._online_service_access)
|
|
8371
|
+
# UPDATING (redeploy in progress) still serves endpoints, so accept it too.
|
|
8372
|
+
if st.status in ("RUNNING", "UPDATING") and endpoint:
|
|
8373
|
+
# Temporary: SYSTEM$ may return host-only URLs until server sends full https URLs.
|
|
8374
|
+
return endpoint
|
|
8375
|
+
if warn:
|
|
8300
8376
|
warnings.warn(
|
|
8301
8377
|
online_service.online_service_not_ready_message(),
|
|
8302
8378
|
category=UserWarning,
|
|
8303
8379
|
stacklevel=4,
|
|
8304
8380
|
)
|
|
8305
|
-
return None
|
|
8306
|
-
query_url = online_service.endpoint_url(st, "query", access=self._online_service_access)
|
|
8307
|
-
# UPDATING (redeploy in progress) still serves the query endpoint, so accept it too.
|
|
8308
|
-
if st.status in ("RUNNING", "UPDATING") and query_url:
|
|
8309
|
-
# Temporary: SYSTEM$ may return host-only query URLs until server sends full https URLs.
|
|
8310
|
-
return query_url
|
|
8311
|
-
warnings.warn(
|
|
8312
|
-
online_service.online_service_not_ready_message(),
|
|
8313
|
-
category=UserWarning,
|
|
8314
|
-
stacklevel=4,
|
|
8315
|
-
)
|
|
8316
8381
|
return None
|
|
8317
8382
|
|
|
8383
|
+
def _resolve_postgres_online_query_url(self, *, log_label: str) -> Optional[str]:
|
|
8384
|
+
"""Resolve the Postgres OFT ``query`` endpoint URL (thin wrapper).
|
|
8385
|
+
|
|
8386
|
+
Args:
|
|
8387
|
+
log_label: Caller name embedded in the warning log
|
|
8388
|
+
(e.g. ``"get_feature_view"``, ``"get_feature_group"``).
|
|
8389
|
+
|
|
8390
|
+
Returns:
|
|
8391
|
+
The query endpoint URL when the Online Service is RUNNING or
|
|
8392
|
+
UPDATING and advertises a ``query`` endpoint; ``None`` otherwise.
|
|
8393
|
+
"""
|
|
8394
|
+
return self._resolve_postgres_online_endpoint_url("query", log_label=log_label)
|
|
8395
|
+
|
|
8318
8396
|
def _hydrate_postgres_online_service(self, fv: FeatureView) -> None:
|
|
8319
8397
|
"""Set ``_postgres_online_query_url`` and warn when Postgres online reads are not ready."""
|
|
8320
8398
|
if not fv.online or fv.online_config is None or fv.online_config.store_type != OnlineStoreType.POSTGRES:
|
|
8321
8399
|
return
|
|
8322
8400
|
fv._postgres_online_query_url = self._resolve_postgres_online_query_url(log_label="get_feature_view")
|
|
8323
8401
|
|
|
8402
|
+
def _hydrate_stream_source_online_service(self, stream_source: StreamSource) -> None:
|
|
8403
|
+
"""Cache the Online Service ingest endpoint URL on a StreamSource for reuse.
|
|
8404
|
+
|
|
8405
|
+
Best-effort: resolves the ``ingest`` endpoint without emitting a
|
|
8406
|
+
``UserWarning`` (``warn=False``) because ``get_stream_source`` is a
|
|
8407
|
+
metadata read that also backs ``register_stream_source``; a not-yet-RUNNING
|
|
8408
|
+
service should not warn here. ``stream_ingest`` surfaces a clear,
|
|
8409
|
+
actionable error at ingest time via its live fallback when the URL is
|
|
8410
|
+
unavailable.
|
|
8411
|
+
|
|
8412
|
+
Args:
|
|
8413
|
+
stream_source: The StreamSource whose ingest URL should be populated.
|
|
8414
|
+
"""
|
|
8415
|
+
stream_source._postgres_online_ingest_url = self._resolve_postgres_online_endpoint_url(
|
|
8416
|
+
"ingest", log_label="get_stream_source", warn=False
|
|
8417
|
+
)
|
|
8418
|
+
|
|
8324
8419
|
def _hydrate_fg_postgres_online_service(self, fg: FeatureGroup) -> None:
|
|
8325
8420
|
"""Set ``FeatureGroup._postgres_online_query_url`` for read-time use.
|
|
8326
8421
|
|
|
@@ -8511,6 +8606,11 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8511
8606
|
else:
|
|
8512
8607
|
source_clause = f"FROM {source_table_name}"
|
|
8513
8608
|
|
|
8609
|
+
# A view-backed source only lets the OFT refresh incrementally when it has change tracking
|
|
8610
|
+
# enabled; otherwise the backend silently downgrades the OFT to a FULL refresh. Enable it
|
|
8611
|
+
# before issuing the CREATE so the refresh mode is derived correctly.
|
|
8612
|
+
self._enable_source_view_change_tracking_for_incremental_oft(feature_view, source_table_name)
|
|
8613
|
+
|
|
8514
8614
|
# Create online feature table
|
|
8515
8615
|
try:
|
|
8516
8616
|
query = fv_mod.build_oft_create_sql(
|
|
@@ -8536,6 +8636,88 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8536
8636
|
|
|
8537
8637
|
return online_table_name
|
|
8538
8638
|
|
|
8639
|
+
def _enable_source_view_change_tracking_for_incremental_oft(
|
|
8640
|
+
self,
|
|
8641
|
+
feature_view: FeatureView,
|
|
8642
|
+
fully_qualified_source_name: str,
|
|
8643
|
+
) -> None:
|
|
8644
|
+
"""Enable change tracking on a POSTGRES-backed OFT's source view so it can refresh incrementally.
|
|
8645
|
+
|
|
8646
|
+
The backend derives a spec-backed (POSTGRES) Online Feature Table's refresh mode from its
|
|
8647
|
+
source object. When that source is a plain View (static/external feature views), change
|
|
8648
|
+
tracking is off by default and the OFT silently falls back to a FULL refresh — an explicit
|
|
8649
|
+
``INCREMENTAL`` request even errors. Enabling change tracking on the view lets the OFT
|
|
8650
|
+
resolve to an incremental refresh.
|
|
8651
|
+
|
|
8652
|
+
This targets the object the OFT actually reads from at refresh time, and is a no-op
|
|
8653
|
+
otherwise:
|
|
8654
|
+
|
|
8655
|
+
- Managed feature views are backed by a Dynamic Table (change tracking is inherent to an
|
|
8656
|
+
incremental DT and cannot be enabled on a FULL one), so their OFT never reads from a
|
|
8657
|
+
plain view.
|
|
8658
|
+
- Streaming feature views may be backed offline by a view (a non-aggregated SFV with
|
|
8659
|
+
``refresh_freq is None`` materializes as a View), but their OFT is spec-backed by the
|
|
8660
|
+
UDF-transformed table / stream source (``FROM SPECIFICATION``) and refreshes
|
|
8661
|
+
continuously — it does not read from that offline view, so enabling change tracking on
|
|
8662
|
+
it would not affect the OFT.
|
|
8663
|
+
- Realtime feature views have no offline view at all.
|
|
8664
|
+
- HYBRID_TABLE-backed OFTs are out of scope. This targets the spec-backed refresh-mode
|
|
8665
|
+
derivation used by POSTGRES OFTs, and enabling change tracking has real side effects
|
|
8666
|
+
(it cascades to the view's base tables and requires ``OWNERSHIP`` on them), so we do not
|
|
8667
|
+
newly impose it on the legacy HYBRID_TABLE path — its behavior is left unchanged.
|
|
8668
|
+
|
|
8669
|
+
It is also skipped when the refresh mode is not one that benefits from change tracking
|
|
8670
|
+
(i.e., only AUTO, INCREMENTAL, and the default None proceed; FULL and unknown/future
|
|
8671
|
+
modes are conservatively skipped).
|
|
8672
|
+
|
|
8673
|
+
Args:
|
|
8674
|
+
feature_view: The FeatureView backing the online feature table.
|
|
8675
|
+
fully_qualified_source_name: ``DB.SCHEMA.SOURCE`` object the OFT reads from.
|
|
8676
|
+
|
|
8677
|
+
Raises:
|
|
8678
|
+
SnowflakeMLException: If enabling change tracking fails and the refresh mode is
|
|
8679
|
+
explicitly ``INCREMENTAL``. For ``AUTO`` or unset modes the failure is logged
|
|
8680
|
+
as a warning and the OFT falls back to FULL refresh.
|
|
8681
|
+
"""
|
|
8682
|
+
# Only POSTGRES-backed OFTs whose source is a plain View need this. The offline object is a
|
|
8683
|
+
# View exactly when refresh_freq is None (managed FVs are DT-backed); streaming/realtime FVs
|
|
8684
|
+
# are excluded because their OFT does not read from an offline view. HYBRID_TABLE is out of
|
|
8685
|
+
# scope: enabling change tracking has base-table side effects we don't impose on the legacy path.
|
|
8686
|
+
online_config = feature_view.online_config
|
|
8687
|
+
oft_reads_from_source_view = (
|
|
8688
|
+
online_config is not None
|
|
8689
|
+
and online_config.store_type == OnlineStoreType.POSTGRES
|
|
8690
|
+
and feature_view.refresh_freq is None
|
|
8691
|
+
and not feature_view.is_streaming
|
|
8692
|
+
and not feature_view.is_realtime_feature_view
|
|
8693
|
+
)
|
|
8694
|
+
if not oft_reads_from_source_view:
|
|
8695
|
+
return
|
|
8696
|
+
|
|
8697
|
+
refresh_mode = feature_view.refresh_mode
|
|
8698
|
+
if refresh_mode is not None and refresh_mode.upper() not in ("AUTO", "INCREMENTAL"):
|
|
8699
|
+
return
|
|
8700
|
+
|
|
8701
|
+
try:
|
|
8702
|
+
self._session.sql(fv_mod.build_enable_view_change_tracking_sql(fully_qualified_source_name)).collect(
|
|
8703
|
+
statement_params=self._telemetry_stmp
|
|
8704
|
+
)
|
|
8705
|
+
except SnowparkSQLException as e:
|
|
8706
|
+
if refresh_mode is not None and refresh_mode.upper() == "INCREMENTAL":
|
|
8707
|
+
raise snowml_exceptions.SnowflakeMLException(
|
|
8708
|
+
error_code=error_codes.SNOWML_CREATE_FAILED,
|
|
8709
|
+
original_exception=RuntimeError(
|
|
8710
|
+
f"Failed to enable change tracking on source view {fully_qualified_source_name}, "
|
|
8711
|
+
f"which the online feature table requires to refresh incrementally: {e}"
|
|
8712
|
+
),
|
|
8713
|
+
) from e
|
|
8714
|
+
logger.warning(
|
|
8715
|
+
"Could not enable change tracking on source view %s; "
|
|
8716
|
+
"the online feature table will use FULL refresh: %s",
|
|
8717
|
+
fully_qualified_source_name,
|
|
8718
|
+
e,
|
|
8719
|
+
)
|
|
8720
|
+
|
|
8539
8721
|
def _build_batch_feature_view_spec(
|
|
8540
8722
|
self,
|
|
8541
8723
|
feature_view: FeatureView,
|
{snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/feature_store/feature_view.py
RENAMED
|
@@ -2949,6 +2949,27 @@ def build_oft_warehouse_clause(
|
|
|
2949
2949
|
return ""
|
|
2950
2950
|
|
|
2951
2951
|
|
|
2952
|
+
def build_enable_view_change_tracking_sql(fully_qualified_view_name: str) -> str:
|
|
2953
|
+
"""Build ``ALTER VIEW ... SET CHANGE_TRACKING = TRUE`` for an OFT source view.
|
|
2954
|
+
|
|
2955
|
+
An Online Feature Table can only resolve to an incremental refresh when the
|
|
2956
|
+
object it reads from exposes change tracking. Managed feature views are
|
|
2957
|
+
backed by a Dynamic Table (change tracking is inherent to an incremental DT
|
|
2958
|
+
and cannot be enabled on a FULL one), but static/external feature views are
|
|
2959
|
+
backed by a plain View that has change tracking disabled by default. Without
|
|
2960
|
+
it the backend silently downgrades the OFT to a FULL refresh. This statement
|
|
2961
|
+
is a no-op when change tracking is already enabled.
|
|
2962
|
+
|
|
2963
|
+
Args:
|
|
2964
|
+
fully_qualified_view_name: ``DB.SCHEMA.VIEW`` the Online Feature Table
|
|
2965
|
+
reads from.
|
|
2966
|
+
|
|
2967
|
+
Returns:
|
|
2968
|
+
The ``ALTER VIEW ... SET CHANGE_TRACKING = TRUE`` SQL.
|
|
2969
|
+
"""
|
|
2970
|
+
return f"ALTER VIEW {fully_qualified_view_name} SET CHANGE_TRACKING = TRUE"
|
|
2971
|
+
|
|
2972
|
+
|
|
2952
2973
|
def build_oft_create_sql(
|
|
2953
2974
|
*,
|
|
2954
2975
|
fully_qualified_oft_name: str,
|
|
@@ -179,6 +179,9 @@ class StreamSource:
|
|
|
179
179
|
self.schema: StructType = schema
|
|
180
180
|
self.owner: Optional[str] = None
|
|
181
181
|
self.desc: str = desc
|
|
182
|
+
# Runtime-only cache of the Online Service ingest endpoint URL, populated by
|
|
183
|
+
# FeatureStore.get_stream_source. Not persisted to metadata.
|
|
184
|
+
self._postgres_online_ingest_url: Optional[str] = None
|
|
182
185
|
|
|
183
186
|
def _validate(self, name: str, schema: StructType) -> None:
|
|
184
187
|
if len(name) > _STREAM_SOURCE_NAME_LENGTH_LIMIT:
|
|
@@ -48,6 +48,8 @@ def remote(
|
|
|
48
48
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
49
49
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
50
50
|
it should contain image repository, image name and image tag.
|
|
51
|
+
artifact_repositories (list[str]): (Public Preview) A list of artifact repositories to use for
|
|
52
|
+
resolving pip requirements. Each entry is the name of a Snowflake artifact repository.
|
|
51
53
|
name (str): The name of the job. If not specified, a name will be generated based on the
|
|
52
54
|
entrypoint file name or function name. A unique suffix is appended to the final name.
|
|
53
55
|
|
{snowflake_ml_python-1.50.0 → snowflake_ml_python-1.52.0}/snowflake/ml/jobs/job_definition.py
RENAMED
|
@@ -102,6 +102,7 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
102
102
|
database: Optional[str] = None,
|
|
103
103
|
schema: Optional[str] = None,
|
|
104
104
|
payload: Optional[payload_utils.JobPayload] = None,
|
|
105
|
+
artifact_repositories: Optional[list[str]] = None,
|
|
105
106
|
) -> None:
|
|
106
107
|
self.source = source
|
|
107
108
|
self.compute_pool = identifier.resolve_identifier(compute_pool)
|
|
@@ -122,6 +123,7 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
122
123
|
self.runtime_environment = runtime_environment
|
|
123
124
|
self.overwrite = overwrite
|
|
124
125
|
self.payload = payload
|
|
126
|
+
self.artifact_repositories = artifact_repositories
|
|
125
127
|
|
|
126
128
|
self._is_registered = False
|
|
127
129
|
|
|
@@ -197,6 +199,7 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
197
199
|
spec_overrides=self.spec_overrides,
|
|
198
200
|
runtime=self.runtime_environment if self.runtime_environment else None,
|
|
199
201
|
enable_stage_mount_v2=feature_flags.FeatureFlags.ENABLE_STAGE_MOUNT_V2.is_enabled(),
|
|
202
|
+
artifact_repositories=self.artifact_repositories if self.artifact_repositories else None,
|
|
200
203
|
)
|
|
201
204
|
|
|
202
205
|
self.job_options = type_utils.JobOptions(
|
|
@@ -304,6 +307,9 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
304
307
|
target_instances = kwargs.pop("target_instances", 1)
|
|
305
308
|
min_instances = kwargs.pop("min_instances", target_instances)
|
|
306
309
|
pip_requirements = kwargs.pop("pip_requirements", None)
|
|
310
|
+
artifact_repositories = kwargs.pop("artifact_repositories", None)
|
|
311
|
+
if artifact_repositories is not None:
|
|
312
|
+
logger.warning("'artifact_repositories' is in public preview since 1.50.0.")
|
|
307
313
|
external_access_integrations = kwargs.pop("external_access_integrations", None)
|
|
308
314
|
env_vars = kwargs.pop("env_vars", None)
|
|
309
315
|
spec_overrides = kwargs.pop("spec_overrides", None)
|
|
@@ -368,6 +374,7 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
368
374
|
database=database,
|
|
369
375
|
schema=schema,
|
|
370
376
|
payload=payload,
|
|
377
|
+
artifact_repositories=artifact_repositories,
|
|
371
378
|
)
|
|
372
379
|
|
|
373
380
|
@classmethod
|
|
@@ -235,6 +235,8 @@ def submit_file(
|
|
|
235
235
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
236
236
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
237
237
|
it should contain image repository, image name and image tag.
|
|
238
|
+
artifact_repositories (list[str]): (Public Preview) A list of artifact repositories to use for
|
|
239
|
+
resolving pip requirements. Each entry is the name of a Snowflake artifact repository.
|
|
238
240
|
name (str): The name of the job. If not specified, a name will be generated based on the
|
|
239
241
|
entrypoint file name or function name. A unique suffix is appended to the final name.
|
|
240
242
|
|
|
@@ -298,6 +300,8 @@ def submit_directory(
|
|
|
298
300
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
299
301
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
300
302
|
it should contain image repository, image name and image tag.
|
|
303
|
+
artifact_repositories (list[str]): (Public Preview) A list of artifact repositories to use for
|
|
304
|
+
resolving pip requirements. Each entry is the name of a Snowflake artifact repository.
|
|
301
305
|
name (str): The name of the job. If not specified, a name will be generated based on the
|
|
302
306
|
entrypoint file name or function name. A unique suffix is appended to the final name.
|
|
303
307
|
|
|
@@ -363,6 +367,8 @@ def submit_from_stage(
|
|
|
363
367
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
364
368
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
365
369
|
it should contain image repository, image name and image tag.
|
|
370
|
+
artifact_repositories (list[str]): (Public Preview) A list of artifact repositories to use for
|
|
371
|
+
resolving pip requirements. Each entry is the name of a Snowflake artifact repository.
|
|
366
372
|
name (str): The name of the job. If not specified, a name will be generated based on the
|
|
367
373
|
entrypoint file name or function name. A unique suffix is appended to the final name.
|
|
368
374
|
|