snowflake-ml-python 1.51.0__tar.gz → 1.53.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.51.0 → snowflake_ml_python-1.53.0}/CHANGELOG.md +51 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/PKG-INFO +52 -2
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/exceptions.py +8 -2
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/platform_capabilities.py +17 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/telemetry.py +1 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_store.py +225 -38
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view.py +29 -9
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/online_service.py +6 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/stream_source.py +3 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/__init__.py +3 -0
- snowflake_ml_python-1.53.0/snowflake/ml/jobs/_interop/results.py +99 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/constants.py +8 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/payload_utils.py +1 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +5 -21
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/job.py +297 -2
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/job_definition.py +38 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/manager.py +15 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/model_version_impl.py +4 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/model_ops.py +26 -5
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/model_version.py +10 -2
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/service.py +10 -2
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +4 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +2 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +6 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +6 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +31 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/_manager/model_manager.py +19 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/sparse.py +6 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/PKG-INFO +52 -2
- snowflake_ml_python-1.51.0/snowflake/ml/jobs/_interop/results.py +0 -51
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/README.md +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/_source_info.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_group.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/request_source.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/models.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/stream_config.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/batch_inference_task_v2.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/batch_inference/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.53.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `parallel` kwarg (default `False`).
|
|
8
|
+
With `parallel=True`, the entrypoint is executed directly on every instance with the job topology injected into the
|
|
9
|
+
environment (`SNOWFLAKE_JOB_INDEX`, `SNOWFLAKE_JOBS_COUNT`, `MLRS_HEAD_IP`, `MLRS_RDZV_PORT`, `MLRS_NODE_IPS`).
|
|
10
|
+
Not supported for callable (`@remote`) payloads.
|
|
11
|
+
|
|
12
|
+
* ML Jobs: added `MLJob.distributed_result()`, the result API for distributed (e.g. `parallel=True`) jobs, which
|
|
13
|
+
have no single head result. On full success it returns a `DistributedResult` (`success`, per-instance `exit_codes`,
|
|
14
|
+
`failed_instance`, and instance 0's `return_value`); if any instance failed it raises `DistributedJobError`, which
|
|
15
|
+
carries that `DistributedResult` as `.result` and the earliest-failing instance's reconstructed exception as its
|
|
16
|
+
cause. `DistributedResult` and `DistributedJobError` are exported from `snowflake.ml.jobs`.
|
|
17
|
+
|
|
18
|
+
* ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `preflight` kwarg, supported only
|
|
19
|
+
together with `parallel=True`. It takes the name of a check level, run on every instance before the entrypoint:
|
|
20
|
+
`"wiring"` checks the rendezvous plus a small collective, and `"reference"` additionally times a short synthetic
|
|
21
|
+
DDP step and reports its step times from instance 0. If a requested check fails, the job aborts without running
|
|
22
|
+
the entrypoint and the failure surfaces through `distributed_result()`. A check that does not apply to the job
|
|
23
|
+
(`"reference"` on a CPU pool or a single instance) is reported as skipped and the job continues. Covers only the
|
|
24
|
+
PyTorch c10d rendezvous backend.
|
|
25
|
+
|
|
26
|
+
* Feature Store: Iceberg-backed feature views can enable online storage when using the Postgres online store
|
|
27
|
+
(`OnlineConfig(store_type=OnlineStoreType.POSTGRES)`). Online storage with Iceberg remains unsupported for
|
|
28
|
+
other store types.
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
### Behavior Changes
|
|
33
|
+
|
|
34
|
+
* Feature Store: `register_feature_view` now records `FV_SOURCE_REFS` metadata for managed batch
|
|
35
|
+
feature views (derived from the `feature_df` schema) when the caller does not supply
|
|
36
|
+
`source_refs`. Streaming and realtime feature views are unaffected.
|
|
37
|
+
|
|
38
|
+
### Deprecations
|
|
39
|
+
|
|
40
|
+
## 1.52.0 (2026-08-20)
|
|
41
|
+
|
|
42
|
+
### New Features
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
### Behavior Changes
|
|
47
|
+
|
|
48
|
+
* Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
|
|
49
|
+
`StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
|
|
50
|
+
|
|
51
|
+
### Deprecations
|
|
52
|
+
|
|
53
|
+
## 1.51.0 (2026-08-12)
|
|
4
54
|
|
|
5
55
|
### New Features
|
|
6
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.53.0
|
|
4
4
|
Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
|
|
5
5
|
Author-email: "Snowflake, Inc" <support@snowflake.com>
|
|
6
6
|
License:
|
|
@@ -416,7 +416,57 @@ 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.53.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
* ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `parallel` kwarg (default `False`).
|
|
424
|
+
With `parallel=True`, the entrypoint is executed directly on every instance with the job topology injected into the
|
|
425
|
+
environment (`SNOWFLAKE_JOB_INDEX`, `SNOWFLAKE_JOBS_COUNT`, `MLRS_HEAD_IP`, `MLRS_RDZV_PORT`, `MLRS_NODE_IPS`).
|
|
426
|
+
Not supported for callable (`@remote`) payloads.
|
|
427
|
+
|
|
428
|
+
* ML Jobs: added `MLJob.distributed_result()`, the result API for distributed (e.g. `parallel=True`) jobs, which
|
|
429
|
+
have no single head result. On full success it returns a `DistributedResult` (`success`, per-instance `exit_codes`,
|
|
430
|
+
`failed_instance`, and instance 0's `return_value`); if any instance failed it raises `DistributedJobError`, which
|
|
431
|
+
carries that `DistributedResult` as `.result` and the earliest-failing instance's reconstructed exception as its
|
|
432
|
+
cause. `DistributedResult` and `DistributedJobError` are exported from `snowflake.ml.jobs`.
|
|
433
|
+
|
|
434
|
+
* ML Jobs: `submit_file`, `submit_directory`, and `submit_from_stage` accept a `preflight` kwarg, supported only
|
|
435
|
+
together with `parallel=True`. It takes the name of a check level, run on every instance before the entrypoint:
|
|
436
|
+
`"wiring"` checks the rendezvous plus a small collective, and `"reference"` additionally times a short synthetic
|
|
437
|
+
DDP step and reports its step times from instance 0. If a requested check fails, the job aborts without running
|
|
438
|
+
the entrypoint and the failure surfaces through `distributed_result()`. A check that does not apply to the job
|
|
439
|
+
(`"reference"` on a CPU pool or a single instance) is reported as skipped and the job continues. Covers only the
|
|
440
|
+
PyTorch c10d rendezvous backend.
|
|
441
|
+
|
|
442
|
+
* Feature Store: Iceberg-backed feature views can enable online storage when using the Postgres online store
|
|
443
|
+
(`OnlineConfig(store_type=OnlineStoreType.POSTGRES)`). Online storage with Iceberg remains unsupported for
|
|
444
|
+
other store types.
|
|
445
|
+
|
|
446
|
+
### Bug Fixes
|
|
447
|
+
|
|
448
|
+
### Behavior Changes
|
|
449
|
+
|
|
450
|
+
* Feature Store: `register_feature_view` now records `FV_SOURCE_REFS` metadata for managed batch
|
|
451
|
+
feature views (derived from the `feature_df` schema) when the caller does not supply
|
|
452
|
+
`source_refs`. Streaming and realtime feature views are unaffected.
|
|
453
|
+
|
|
454
|
+
### Deprecations
|
|
455
|
+
|
|
456
|
+
## 1.52.0 (2026-08-20)
|
|
457
|
+
|
|
458
|
+
### New Features
|
|
459
|
+
|
|
460
|
+
### Bug Fixes
|
|
461
|
+
|
|
462
|
+
### Behavior Changes
|
|
463
|
+
|
|
464
|
+
* Feature Store: `stream_ingest` now reuses the Online Service ingest endpoint cached on the
|
|
465
|
+
`StreamSource` by `get_stream_source`, avoiding a per-call server status round-trip.
|
|
466
|
+
|
|
467
|
+
### Deprecations
|
|
468
|
+
|
|
469
|
+
## 1.51.0 (2026-08-12)
|
|
420
470
|
|
|
421
471
|
### New Features
|
|
422
472
|
|
|
@@ -15,7 +15,8 @@ class SnowflakeMLException(Exception):
|
|
|
15
15
|
|
|
16
16
|
Attributes:
|
|
17
17
|
error_code: Error code.
|
|
18
|
-
original_exception: Original exception
|
|
18
|
+
original_exception: Original exception. The error code is added to its message when the exception
|
|
19
|
+
type can be constructed from a message.
|
|
19
20
|
suppress_source_trace: Suppress source stacktrace.
|
|
20
21
|
|
|
21
22
|
Raises:
|
|
@@ -34,7 +35,12 @@ class SnowflakeMLException(Exception):
|
|
|
34
35
|
raise ValueError("Must provide non-empty error_code and original_exception.")
|
|
35
36
|
|
|
36
37
|
self.error_code = error_code
|
|
37
|
-
|
|
38
|
+
try:
|
|
39
|
+
self.original_exception = type(original_exception)(f"({self.error_code}) {str(original_exception)}")
|
|
40
|
+
except Exception:
|
|
41
|
+
# Not every exception class can be rebuilt from a message alone: sqlalchemy's DBAPIError, for one,
|
|
42
|
+
# requires a statement, parameters and the driver error. Keep the original rather than masking it.
|
|
43
|
+
self.original_exception = original_exception
|
|
38
44
|
self.suppress_source_trace = suppress_source_trace
|
|
39
45
|
self._pretty_msg = repr(self.original_exception)
|
|
40
46
|
|
|
@@ -21,6 +21,8 @@ INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VE
|
|
|
21
21
|
SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
|
|
22
22
|
ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
|
|
23
23
|
ENABLE_PIP_ONLY_PACKAGING = "ENABLE_PIP_ONLY_PACKAGING"
|
|
24
|
+
ENABLE_LORA_ADAPTERS = "ENABLE_LORA_ADAPTERS"
|
|
25
|
+
ENABLE_SINGLE_OUTPUT_NATIVE_TYPE = "ENABLE_SINGLE_OUTPUT_NATIVE_TYPE"
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
class PlatformCapabilities:
|
|
@@ -87,6 +89,21 @@ class PlatformCapabilities:
|
|
|
87
89
|
def is_model_method_signature_parameters_enabled(self) -> bool:
|
|
88
90
|
return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
|
|
89
91
|
|
|
92
|
+
def is_lora_adapters_enabled(self) -> bool:
|
|
93
|
+
return False
|
|
94
|
+
|
|
95
|
+
def is_single_output_native_type_enabled(self) -> bool:
|
|
96
|
+
"""Whether a single, non-OBJECT model FUNCTION output is registered with its native SQL type.
|
|
97
|
+
|
|
98
|
+
When enabled (and supported server-side), a scalar FUNCTION method with exactly one non-OBJECT output
|
|
99
|
+
is declared with that native type in the manifest and returns the value directly, instead of packing it
|
|
100
|
+
into an OBJECT. Defaults to disabled when the capability is absent (older servers).
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
True if single-output native typing is enabled for this account; otherwise False.
|
|
104
|
+
"""
|
|
105
|
+
return self._get_bool_feature(ENABLE_SINGLE_OUTPUT_NATIVE_TYPE, False)
|
|
106
|
+
|
|
90
107
|
def is_pip_only_packaging_enabled(self) -> bool:
|
|
91
108
|
"""Whether pip-only model packaging is enabled for this account.
|
|
92
109
|
|
{snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.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 {
|
|
@@ -93,10 +93,12 @@ from snowflake.ml.feature_store.spec.enums import (
|
|
|
93
93
|
ENTITY_TAG_PREFIX,
|
|
94
94
|
FeatureAggregationMethod,
|
|
95
95
|
FeatureViewKind,
|
|
96
|
+
SourceType,
|
|
96
97
|
TableType,
|
|
97
98
|
)
|
|
98
99
|
from snowflake.ml.feature_store.spec.models import (
|
|
99
100
|
FeatureViewSpec,
|
|
101
|
+
_columns_from_tiled_struct_type,
|
|
100
102
|
validate_spec_oft_offline_table_schema,
|
|
101
103
|
validate_spec_oft_tiled_offline_table_schema,
|
|
102
104
|
)
|
|
@@ -178,6 +180,11 @@ def _validate_stream_ingest_record_keys(expected: list[str], row: dict[str, Any]
|
|
|
178
180
|
)
|
|
179
181
|
|
|
180
182
|
|
|
183
|
+
# Timezone names that place the session on the same time grid as UTC, so reading
|
|
184
|
+
# through them carries no tile-boundary alignment risk.
|
|
185
|
+
_UTC_TIMEZONE_NAMES = frozenset({"UTC", "ETC/UTC", "ETC/GMT", "GMT", "UCT", "UNIVERSAL", "ZULU"})
|
|
186
|
+
|
|
187
|
+
|
|
181
188
|
def _store_type_from_oft_show_row(row: Row) -> OnlineStoreType:
|
|
182
189
|
"""Map SHOW ONLINE FEATURE TABLES ``store_type`` to ``OnlineStoreType``.
|
|
183
190
|
|
|
@@ -355,6 +362,85 @@ def _initialization_warehouse_clause(feature_view: FeatureView) -> str:
|
|
|
355
362
|
return f"\n INITIALIZATION_WAREHOUSE = {iw}" if iw is not None else ""
|
|
356
363
|
|
|
357
364
|
|
|
365
|
+
def _derive_source_refs_from_feature_df(feature_view: FeatureView) -> Optional[list[dict[str, Any]]]:
|
|
366
|
+
"""Record the batch FV's raw input columns so it can be recovered as code.
|
|
367
|
+
|
|
368
|
+
Background: a feature view can be registered two ways. The declarative
|
|
369
|
+
flow authors it as YAML/spec (which names its upstream *sources* and their
|
|
370
|
+
columns), while ``register_feature_view`` registers it imperatively from a
|
|
371
|
+
Snowpark ``feature_df`` and usually names no sources at all. Later,
|
|
372
|
+
``snow feature init`` reverse-engineers deployed FVs back into that
|
|
373
|
+
declarative spec so they can be managed as code. For a tiled batch FV that
|
|
374
|
+
round-trip needs the *pre-aggregation* input schema (the columns the
|
|
375
|
+
``feature_df`` read before aggregation). That schema cannot be read back
|
|
376
|
+
from the deployed object: the backing Dynamic Table only stores the
|
|
377
|
+
post-aggregation result (renamed/aggregated columns, plus internal
|
|
378
|
+
``ArrayType`` tile columns). With nothing to compare against, recovery
|
|
379
|
+
guesses wrong, the planner sees a "changed" FV, and rebuilds it
|
|
380
|
+
(``RECREATE_FV``). This function captures the raw ``feature_df`` schema at
|
|
381
|
+
registration time and stores it as a source-ref so recovery reproduces the
|
|
382
|
+
same spec and the planner reports ``NO_CHANGE``.
|
|
383
|
+
|
|
384
|
+
What gets stored, and why each field:
|
|
385
|
+
|
|
386
|
+
- ``columns``: the whole point — the raw input schema recovery can't
|
|
387
|
+
otherwise reconstruct.
|
|
388
|
+
- ``source_type``: hard-coded to ``Batch`` because this path only runs for
|
|
389
|
+
managed batch FVs (streaming/realtime bail out above), so there is no
|
|
390
|
+
other value it could take. It is a fixed label for the stored entry, not
|
|
391
|
+
something derived from a real source object (we don't have one here).
|
|
392
|
+
- ``name``: a synthetic ``<FV>__SOURCE`` rather than the bare FV name.
|
|
393
|
+
Source names and FV names live in the same namespace during recovery, so
|
|
394
|
+
naming this after the FV would make the FV look like it depends on
|
|
395
|
+
itself.
|
|
396
|
+
- ``table``/``query`` are deliberately absent. When recovery diffs a
|
|
397
|
+
source it identifies it by its binding — ``table``, else ``query``, else
|
|
398
|
+
``name`` — never by ``columns``. That binding is recovered independently
|
|
399
|
+
from the Dynamic Table's ``FROM`` clause. This entry therefore contributes
|
|
400
|
+
only columns and carries no binding of its own, so it can never disagree
|
|
401
|
+
with (or override) the recovered one. The row is immutable once written,
|
|
402
|
+
so getting this shape right at registration time is what matters.
|
|
403
|
+
|
|
404
|
+
Best-effort: schema reads are wrapped so a failure only skips the stamp
|
|
405
|
+
(worst case, the old ``RECREATE_FV`` behavior) and never breaks
|
|
406
|
+
registration.
|
|
407
|
+
|
|
408
|
+
Args:
|
|
409
|
+
feature_view: The feature view being registered.
|
|
410
|
+
|
|
411
|
+
Returns:
|
|
412
|
+
A one-element source-ref list
|
|
413
|
+
``[{"name": "<FV>__SOURCE", "source_type": "Batch", "columns": [...]}]``
|
|
414
|
+
derived from ``feature_view.feature_df.schema``, or ``None`` when the
|
|
415
|
+
FV is not a managed batch FV, has no feature DataFrame, exposes no
|
|
416
|
+
columns, or its schema cannot be read.
|
|
417
|
+
"""
|
|
418
|
+
if feature_view.is_streaming or feature_view.is_realtime_feature_view:
|
|
419
|
+
return None
|
|
420
|
+
feature_df = feature_view.feature_df
|
|
421
|
+
if feature_df is None:
|
|
422
|
+
return None
|
|
423
|
+
try:
|
|
424
|
+
# ``_columns_from_tiled_struct_type`` (not the scalar converter) so
|
|
425
|
+
# ArrayType/Binary tile columns serialize instead of raising.
|
|
426
|
+
columns = [col.model_dump(exclude_none=True) for col in _columns_from_tiled_struct_type(feature_df.schema)]
|
|
427
|
+
except Exception:
|
|
428
|
+
# Never let best-effort source-ref capture break registration.
|
|
429
|
+
return None
|
|
430
|
+
if not columns:
|
|
431
|
+
return None
|
|
432
|
+
# Columns only, no ``table``/``query`` binding — see the merge contract in
|
|
433
|
+
# the docstring. The ``<FV>__SOURCE`` name is synthetic so it can't be
|
|
434
|
+
# confused with the feature view itself.
|
|
435
|
+
return [
|
|
436
|
+
{
|
|
437
|
+
"name": f"{feature_view.name.resolved()}__SOURCE",
|
|
438
|
+
"source_type": SourceType.BATCH.value,
|
|
439
|
+
"columns": columns,
|
|
440
|
+
}
|
|
441
|
+
]
|
|
442
|
+
|
|
443
|
+
|
|
358
444
|
# ``list_feature_views`` output schemas. Row builders always populate the verbose
|
|
359
445
|
# schema; non-verbose callers receive _LIST_FEATURE_VIEW_SCHEMA after trimming
|
|
360
446
|
# verbose-only trailing fields.
|
|
@@ -1249,14 +1335,19 @@ class FeatureStore:
|
|
|
1249
1335
|
feature_view.name, version, agg_metadata, descs, fv_metadata_config=fv_meta_config
|
|
1250
1336
|
)
|
|
1251
1337
|
|
|
1252
|
-
# Persist the
|
|
1253
|
-
#
|
|
1254
|
-
#
|
|
1255
|
-
|
|
1338
|
+
# Persist the source-ref list. Prefer the caller-supplied list;
|
|
1339
|
+
# otherwise auto-stamp one derived from the raw ``feature_df``
|
|
1340
|
+
# schema (managed batch FVs) so imperatively-registered FVs carry
|
|
1341
|
+
# FV_SOURCE_REFS and recover cleanly during declarative
|
|
1342
|
+
# ``snow feature init`` instead of triggering a one-time
|
|
1343
|
+
# RECREATE_FV. Streaming/realtime FVs and un-derivable schemas fall
|
|
1344
|
+
# through with no row, preserving prior behavior for them.
|
|
1345
|
+
source_refs = feature_view.source_refs or _derive_source_refs_from_feature_df(feature_view)
|
|
1346
|
+
if source_refs:
|
|
1256
1347
|
self._metadata_manager.save_feature_view_source_refs(
|
|
1257
1348
|
feature_view.name,
|
|
1258
1349
|
version,
|
|
1259
|
-
FvSourceRefsMetadata(sources=list(
|
|
1350
|
+
FvSourceRefsMetadata(sources=list(source_refs)),
|
|
1260
1351
|
)
|
|
1261
1352
|
|
|
1262
1353
|
# Step 4: Save rollup metadata for PIT-correct training queries
|
|
@@ -1910,6 +2001,9 @@ class FeatureStore:
|
|
|
1910
2001
|
"Snowpark DataFrame instead if you accept the full-scan cost."
|
|
1911
2002
|
),
|
|
1912
2003
|
)
|
|
2004
|
+
# TODO(okharatsidi): add a persistent FV-level "timezone" parameter. For now, we warn
|
|
2005
|
+
# the user about potentially inaccurate results.
|
|
2006
|
+
self._warn_on_non_utc_session_timezone(feature_view)
|
|
1913
2007
|
return self._read_from_offline_store(feature_view, keys, feature_names)
|
|
1914
2008
|
else:
|
|
1915
2009
|
raise snowml_exceptions.SnowflakeMLException(
|
|
@@ -3218,7 +3312,9 @@ class FeatureStore:
|
|
|
3218
3312
|
original_exception=ValueError(f"Cannot find StreamSource with name: {name_id}."),
|
|
3219
3313
|
)
|
|
3220
3314
|
|
|
3221
|
-
|
|
3315
|
+
stream_source = StreamSource._from_dict(metadata)
|
|
3316
|
+
self._hydrate_stream_source_online_service(stream_source)
|
|
3317
|
+
return stream_source
|
|
3222
3318
|
|
|
3223
3319
|
@dispatch_decorator()
|
|
3224
3320
|
def stream_ingest(
|
|
@@ -3259,20 +3355,26 @@ class FeatureStore:
|
|
|
3259
3355
|
src = self.get_stream_source(str(stream_source))
|
|
3260
3356
|
stream_name_wire = src.name.resolved()
|
|
3261
3357
|
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3358
|
+
# Reuse the ingest endpoint cached on the StreamSource by get_stream_source to
|
|
3359
|
+
# skip the per-call GS status lookup. Fall back to a live status fetch when the
|
|
3360
|
+
# URL is absent (manually constructed StreamSource, or hydrated before the
|
|
3361
|
+
# Online Service was RUNNING).
|
|
3362
|
+
ingest_base = getattr(src, "_postgres_online_ingest_url", None)
|
|
3363
|
+
if not ingest_base:
|
|
3364
|
+
stmp = self._telemetry_stmp if statement_params is None else statement_params
|
|
3365
|
+
st = online_service.assert_online_service_running_with_ingest_endpoint(
|
|
3366
|
+
self._session,
|
|
3367
|
+
self._config.database,
|
|
3368
|
+
self._config.schema,
|
|
3369
|
+
statement_params=stmp,
|
|
3274
3370
|
)
|
|
3275
|
-
|
|
3371
|
+
ingest_url = online_service.endpoint_url(st, "ingest", access=self._online_service_access)
|
|
3372
|
+
if not ingest_url:
|
|
3373
|
+
raise snowml_exceptions.SnowflakeMLException(
|
|
3374
|
+
error_code=error_codes.INVALID_ARGUMENT,
|
|
3375
|
+
original_exception=ValueError("Online Service returned no ingest endpoint."),
|
|
3376
|
+
)
|
|
3377
|
+
ingest_base = ingest_url
|
|
3276
3378
|
|
|
3277
3379
|
expected_cols = _stream_source_schema_field_names(src.schema)
|
|
3278
3380
|
rows = _normalize_stream_ingest_records(records)
|
|
@@ -5016,6 +5118,52 @@ class FeatureStore:
|
|
|
5016
5118
|
query = f"SELECT {select_clause} FROM {table_name}{where_clause}"
|
|
5017
5119
|
return self._session.sql(query)
|
|
5018
5120
|
|
|
5121
|
+
def _get_session_timezone(self) -> Optional[str]:
|
|
5122
|
+
"""Read the timezone configured for the current session.
|
|
5123
|
+
|
|
5124
|
+
Returns:
|
|
5125
|
+
The configured timezone name, or ``None`` when it cannot be determined.
|
|
5126
|
+
"""
|
|
5127
|
+
try:
|
|
5128
|
+
rows = self._session.sql("SHOW PARAMETERS LIKE 'TIMEZONE' IN SESSION").collect()
|
|
5129
|
+
except Exception as e:
|
|
5130
|
+
logger.debug("feature store: could not determine the session timezone: %s", e)
|
|
5131
|
+
return None
|
|
5132
|
+
|
|
5133
|
+
if not rows:
|
|
5134
|
+
return None
|
|
5135
|
+
row = rows[0]
|
|
5136
|
+
for key in ("value", "VALUE"):
|
|
5137
|
+
if key in row:
|
|
5138
|
+
raw = row[key]
|
|
5139
|
+
return str(raw) if raw is not None else None
|
|
5140
|
+
return None
|
|
5141
|
+
|
|
5142
|
+
def _warn_on_non_utc_session_timezone(self, feature_view: FeatureView) -> None:
|
|
5143
|
+
"""Warn before an offline read of a tiled Postgres-backed feature view from a non-UTC session.
|
|
5144
|
+
|
|
5145
|
+
Args:
|
|
5146
|
+
feature_view: The feature view about to be read from the offline store.
|
|
5147
|
+
"""
|
|
5148
|
+
if not feature_view.is_tiled:
|
|
5149
|
+
return
|
|
5150
|
+
online_config = feature_view.online_config
|
|
5151
|
+
if online_config is None or online_config.store_type != OnlineStoreType.POSTGRES:
|
|
5152
|
+
return
|
|
5153
|
+
|
|
5154
|
+
session_timezone = self._get_session_timezone()
|
|
5155
|
+
if session_timezone is None or session_timezone.strip().upper() in _UTC_TIMEZONE_NAMES:
|
|
5156
|
+
return
|
|
5157
|
+
|
|
5158
|
+
warnings.warn(
|
|
5159
|
+
f"feature store: the current session timezone is '{session_timezone}', not UTC. Aggregation "
|
|
5160
|
+
"window boundaries are resolved in the session timezone while tile boundaries are bucketed in "
|
|
5161
|
+
"the UTC timezone, so feature values may be inaccurate. Set the session timezone to UTC "
|
|
5162
|
+
"(ALTER SESSION SET TIMEZONE = 'UTC') for consistent results.",
|
|
5163
|
+
stacklevel=3,
|
|
5164
|
+
category=UserWarning,
|
|
5165
|
+
)
|
|
5166
|
+
|
|
5019
5167
|
def _read_tiled_fv_at_current_time(
|
|
5020
5168
|
self,
|
|
5021
5169
|
feature_view: FeatureView,
|
|
@@ -8320,21 +8468,28 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8320
8468
|
|
|
8321
8469
|
return fv
|
|
8322
8470
|
|
|
8323
|
-
def
|
|
8324
|
-
|
|
8471
|
+
def _resolve_postgres_online_endpoint_url(
|
|
8472
|
+
self, endpoint_name: str, *, log_label: str, warn: bool = True
|
|
8473
|
+
) -> Optional[str]:
|
|
8474
|
+
"""Fetch a Postgres OFT Online Service endpoint URL or return ``None``.
|
|
8325
8475
|
|
|
8326
8476
|
Failures (status not RUNNING, missing endpoint URL, transient
|
|
8327
|
-
SYSTEM$ errors) are downgraded to ``
|
|
8328
|
-
still construct the target object and
|
|
8329
|
-
RUNNING" error
|
|
8477
|
+
SYSTEM$ errors) are downgraded to a return value of ``None`` so callers
|
|
8478
|
+
can still construct the target object and surface the "Online Service
|
|
8479
|
+
not RUNNING" error at use time. When ``warn`` is ``True`` these
|
|
8480
|
+
failures also emit a ``UserWarning``.
|
|
8330
8481
|
|
|
8331
8482
|
Args:
|
|
8483
|
+
endpoint_name: Endpoint to resolve (``"query"`` or ``"ingest"``).
|
|
8332
8484
|
log_label: Caller name embedded in the warning log
|
|
8333
|
-
(e.g. ``"get_feature_view"``, ``"
|
|
8485
|
+
(e.g. ``"get_feature_view"``, ``"get_stream_source"``).
|
|
8486
|
+
warn: When ``True``, emit a ``UserWarning`` on failure. Callers that
|
|
8487
|
+
have their own use-time fallback (e.g. ``stream_ingest``) pass
|
|
8488
|
+
``False`` to avoid spurious warnings during metadata reads.
|
|
8334
8489
|
|
|
8335
8490
|
Returns:
|
|
8336
|
-
The
|
|
8337
|
-
|
|
8491
|
+
The endpoint URL when the Online Service is RUNNING or UPDATING and
|
|
8492
|
+
advertises the named endpoint; ``None`` otherwise.
|
|
8338
8493
|
"""
|
|
8339
8494
|
try:
|
|
8340
8495
|
st = online_service.fetch_online_service_status(
|
|
@@ -8345,30 +8500,62 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
|
|
|
8345
8500
|
)
|
|
8346
8501
|
except Exception as ex:
|
|
8347
8502
|
logger.warning("Could not fetch Online Service status during %s: %s", log_label, ex)
|
|
8503
|
+
if warn:
|
|
8504
|
+
warnings.warn(
|
|
8505
|
+
online_service.online_service_not_ready_message(),
|
|
8506
|
+
category=UserWarning,
|
|
8507
|
+
stacklevel=4,
|
|
8508
|
+
)
|
|
8509
|
+
return None
|
|
8510
|
+
endpoint = online_service.endpoint_url(st, endpoint_name, access=self._online_service_access)
|
|
8511
|
+
# UPDATING (redeploy in progress) still serves endpoints, so accept it too.
|
|
8512
|
+
if st.status in ("RUNNING", "UPDATING") and endpoint:
|
|
8513
|
+
# Temporary: SYSTEM$ may return host-only URLs until server sends full https URLs.
|
|
8514
|
+
return endpoint
|
|
8515
|
+
if warn:
|
|
8348
8516
|
warnings.warn(
|
|
8349
8517
|
online_service.online_service_not_ready_message(),
|
|
8350
8518
|
category=UserWarning,
|
|
8351
8519
|
stacklevel=4,
|
|
8352
8520
|
)
|
|
8353
|
-
return None
|
|
8354
|
-
query_url = online_service.endpoint_url(st, "query", access=self._online_service_access)
|
|
8355
|
-
# UPDATING (redeploy in progress) still serves the query endpoint, so accept it too.
|
|
8356
|
-
if st.status in ("RUNNING", "UPDATING") and query_url:
|
|
8357
|
-
# Temporary: SYSTEM$ may return host-only query URLs until server sends full https URLs.
|
|
8358
|
-
return query_url
|
|
8359
|
-
warnings.warn(
|
|
8360
|
-
online_service.online_service_not_ready_message(),
|
|
8361
|
-
category=UserWarning,
|
|
8362
|
-
stacklevel=4,
|
|
8363
|
-
)
|
|
8364
8521
|
return None
|
|
8365
8522
|
|
|
8523
|
+
def _resolve_postgres_online_query_url(self, *, log_label: str) -> Optional[str]:
|
|
8524
|
+
"""Resolve the Postgres OFT ``query`` endpoint URL (thin wrapper).
|
|
8525
|
+
|
|
8526
|
+
Args:
|
|
8527
|
+
log_label: Caller name embedded in the warning log
|
|
8528
|
+
(e.g. ``"get_feature_view"``, ``"get_feature_group"``).
|
|
8529
|
+
|
|
8530
|
+
Returns:
|
|
8531
|
+
The query endpoint URL when the Online Service is RUNNING or
|
|
8532
|
+
UPDATING and advertises a ``query`` endpoint; ``None`` otherwise.
|
|
8533
|
+
"""
|
|
8534
|
+
return self._resolve_postgres_online_endpoint_url("query", log_label=log_label)
|
|
8535
|
+
|
|
8366
8536
|
def _hydrate_postgres_online_service(self, fv: FeatureView) -> None:
|
|
8367
8537
|
"""Set ``_postgres_online_query_url`` and warn when Postgres online reads are not ready."""
|
|
8368
8538
|
if not fv.online or fv.online_config is None or fv.online_config.store_type != OnlineStoreType.POSTGRES:
|
|
8369
8539
|
return
|
|
8370
8540
|
fv._postgres_online_query_url = self._resolve_postgres_online_query_url(log_label="get_feature_view")
|
|
8371
8541
|
|
|
8542
|
+
def _hydrate_stream_source_online_service(self, stream_source: StreamSource) -> None:
|
|
8543
|
+
"""Cache the Online Service ingest endpoint URL on a StreamSource for reuse.
|
|
8544
|
+
|
|
8545
|
+
Best-effort: resolves the ``ingest`` endpoint without emitting a
|
|
8546
|
+
``UserWarning`` (``warn=False``) because ``get_stream_source`` is a
|
|
8547
|
+
metadata read that also backs ``register_stream_source``; a not-yet-RUNNING
|
|
8548
|
+
service should not warn here. ``stream_ingest`` surfaces a clear,
|
|
8549
|
+
actionable error at ingest time via its live fallback when the URL is
|
|
8550
|
+
unavailable.
|
|
8551
|
+
|
|
8552
|
+
Args:
|
|
8553
|
+
stream_source: The StreamSource whose ingest URL should be populated.
|
|
8554
|
+
"""
|
|
8555
|
+
stream_source._postgres_online_ingest_url = self._resolve_postgres_online_endpoint_url(
|
|
8556
|
+
"ingest", log_label="get_stream_source", warn=False
|
|
8557
|
+
)
|
|
8558
|
+
|
|
8372
8559
|
def _hydrate_fg_postgres_online_service(self, fg: FeatureGroup) -> None:
|
|
8373
8560
|
"""Set ``FeatureGroup._postgres_online_query_url`` for read-time use.
|
|
8374
8561
|
|
{snowflake_ml_python-1.51.0 → snowflake_ml_python-1.53.0}/snowflake/ml/feature_store/feature_view.py
RENAMED
|
@@ -60,11 +60,16 @@ _FEATURE_VIEW_VERSION_MAX_LENGTH = 128
|
|
|
60
60
|
|
|
61
61
|
# Postgres online store identifiers must fit PostgreSQL's 63-byte limit (NAMEDATALEN - 1); longer names
|
|
62
62
|
# are silently truncated and can collide. name+version maps to "{name}${version}$UDF_TRANSFORMED"
|
|
63
|
-
# (17 bytes of affixes)
|
|
64
|
-
# (
|
|
63
|
+
# (17 bytes of affixes), so its budget leaves a 1-byte margin. Column budgets depend on the feature view:
|
|
64
|
+
# - Tiled (aggregation) feature views wrap each column in a tile prefix, worst case the distinct-N tile
|
|
65
|
+
# column "_PARTIAL_FIRST_DISTINCT_1000_TS_<col>" (32 bytes), so the tile budget is tight.
|
|
66
|
+
# - Non-tiled (passthrough) feature views map each column 1:1 to a Postgres column with no prefix, so
|
|
67
|
+
# the passthrough budget only reserves the 1-byte margin.
|
|
68
|
+
# The padding-guard test rechecks the affixes.
|
|
65
69
|
_PG_IDENTIFIER_BYTE_LIMIT = 63
|
|
66
70
|
_POSTGRES_ONLINE_MAX_NAME_VERSION_LEN = 45
|
|
67
71
|
_POSTGRES_ONLINE_MAX_COLUMN_LEN = 30
|
|
72
|
+
_POSTGRES_ONLINE_MAX_PASSTHROUGH_COLUMN_LEN = _PG_IDENTIFIER_BYTE_LIMIT - 1
|
|
68
73
|
|
|
69
74
|
# The online-store schema is derived as "{schema}__{oft_id}", so its budget reserves room for the "__"
|
|
70
75
|
# separator and a 19-digit (64-bit) oft_id, keeping the derived identifier within the limit (63 - 2 - 19).
|
|
@@ -1085,8 +1090,11 @@ class FeatureView(lineage_node.LineageNode):
|
|
|
1085
1090
|
# Optional authored source-ref list. When the caller passes one,
|
|
1086
1091
|
# ``FeatureStore.register_feature_view`` persists it under
|
|
1087
1092
|
# ``MetadataType.FV_SOURCE_REFS`` and ``get_feature_view``
|
|
1088
|
-
# rehydrates the same list onto reconstructed FVs
|
|
1089
|
-
#
|
|
1093
|
+
# rehydrates the same list onto reconstructed FVs. When it is left
|
|
1094
|
+
# ``None``, ``register_feature_view`` auto-stamps a best-effort
|
|
1095
|
+
# source-ref derived from the raw ``feature_df`` schema for managed
|
|
1096
|
+
# batch FVs (so declarative state recovery round-trips); streaming and
|
|
1097
|
+
# realtime FVs still skip the write.
|
|
1090
1098
|
self._source_refs: Optional[list[dict[str, Any]]] = _kwargs.pop("_source_refs", None)
|
|
1091
1099
|
if self._stream_config is not None:
|
|
1092
1100
|
if online_config is not None and online_config.enable is False:
|
|
@@ -1645,8 +1653,10 @@ class FeatureView(lineage_node.LineageNode):
|
|
|
1645
1653
|
When set, :meth:`FeatureStore.register_feature_view` persists
|
|
1646
1654
|
these entries under :attr:`MetadataType.FV_SOURCE_REFS` and
|
|
1647
1655
|
``get_feature_view`` returns the same list on the reconstructed
|
|
1648
|
-
FV.
|
|
1649
|
-
|
|
1656
|
+
FV. When it is ``None``, ``register_feature_view`` still auto-stamps
|
|
1657
|
+
a best-effort source-ref derived from the raw ``feature_df`` schema
|
|
1658
|
+
for managed batch FVs; this property reflects only what was supplied
|
|
1659
|
+
at construction and is unaffected by that register-time default.
|
|
1650
1660
|
|
|
1651
1661
|
Returns:
|
|
1652
1662
|
The list of source-ref dicts as supplied, or ``None`` when
|
|
@@ -2156,7 +2166,12 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
|
|
|
2156
2166
|
# Validate Iceberg storage configuration
|
|
2157
2167
|
if self._storage_config is not None and self._storage_config.format == StorageFormat.ICEBERG:
|
|
2158
2168
|
if self.online:
|
|
2159
|
-
|
|
2169
|
+
store_type = self._online_config.store_type if self._online_config is not None else None
|
|
2170
|
+
if store_type != OnlineStoreType.POSTGRES:
|
|
2171
|
+
raise ValueError(
|
|
2172
|
+
"Online storage with Iceberg is only supported with the Postgres online store. "
|
|
2173
|
+
"Use OnlineConfig(store_type=OnlineStoreType.POSTGRES)."
|
|
2174
|
+
)
|
|
2160
2175
|
if self._refresh_freq is None:
|
|
2161
2176
|
raise ValueError("Iceberg storage requires refresh_freq.")
|
|
2162
2177
|
|
|
@@ -2226,11 +2241,16 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
|
|
|
2226
2241
|
key = join_key if isinstance(join_key, SqlIdentifier) else SqlIdentifier(join_key)
|
|
2227
2242
|
resolved_columns.add(key.resolved())
|
|
2228
2243
|
|
|
2244
|
+
# Tiled feature views wrap each column in a tile prefix, so they get the tighter budget;
|
|
2245
|
+
# non-tiled (passthrough) columns map 1:1 to Postgres columns and can use the full budget.
|
|
2246
|
+
column_budget = (
|
|
2247
|
+
_POSTGRES_ONLINE_MAX_COLUMN_LEN if self.is_tiled else _POSTGRES_ONLINE_MAX_PASSTHROUGH_COLUMN_LEN
|
|
2248
|
+
)
|
|
2229
2249
|
for resolved in sorted(resolved_columns):
|
|
2230
|
-
if len(resolved) >
|
|
2250
|
+
if len(resolved) > column_budget:
|
|
2231
2251
|
raise ValueError(
|
|
2232
2252
|
f"column '{resolved}' is too long for the Postgres online store: {len(resolved)} "
|
|
2233
|
-
f"characters exceeds the limit of {
|
|
2253
|
+
f"characters exceeds the limit of {column_budget}. Rename the column."
|
|
2234
2254
|
)
|
|
2235
2255
|
|
|
2236
2256
|
def _validate_window_offset_alignment(self) -> None:
|
|
@@ -7,6 +7,7 @@ as well as reading online features and ingesting records for streaming feature v
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
import datetime
|
|
10
|
+
import decimal
|
|
10
11
|
import json
|
|
11
12
|
import logging
|
|
12
13
|
import os
|
|
@@ -411,6 +412,10 @@ def _json_serialize_value(value: Any) -> Any:
|
|
|
411
412
|
# NaN -> None. NB: NaN is the only float for which ``v != v`` holds.
|
|
412
413
|
if value != value:
|
|
413
414
|
return None
|
|
415
|
+
if value == float("inf"):
|
|
416
|
+
return "inf"
|
|
417
|
+
if value == float("-inf"):
|
|
418
|
+
return "-inf"
|
|
414
419
|
return value
|
|
415
420
|
if isinstance(value, str):
|
|
416
421
|
return value
|
|
@@ -1196,7 +1201,7 @@ def _parse_query_batch_response(
|
|
|
1196
1201
|
``batch_size``, or feature metadata is missing.
|
|
1197
1202
|
"""
|
|
1198
1203
|
try:
|
|
1199
|
-
data = json.loads(raw.decode("utf-8"))
|
|
1204
|
+
data = json.loads(raw.decode("utf-8"), parse_float=decimal.Decimal)
|
|
1200
1205
|
except (json.JSONDecodeError, UnicodeDecodeError) as e:
|
|
1201
1206
|
raise snowml_exceptions.SnowflakeMLException(
|
|
1202
1207
|
error_code=error_codes.INTERNAL_SNOWML_ERROR,
|