snowflake-ml-python 1.40.0__tar.gz → 1.41.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.40.0 → snowflake_ml_python-1.41.0}/CHANGELOG.md +14 -1
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/PKG-INFO +15 -2
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/platform_capabilities.py +13 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/__init__.py +4 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/_compute_fn_validation.py +253 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/aggregation.py +16 -3
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/feature.py +9 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/feature_group.py +444 -48
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/feature_store.py +1953 -264
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/feature_view.py +326 -42
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/feature_view_append_only_validation.py +147 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/feature_view_refresh_freq.py +29 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/metadata_manager.py +211 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/online_service.py +247 -26
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/realtime_config.py +373 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/realtime_dataset.py +597 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/realtime_dataset_udf.py +101 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/realtime_registration.py +951 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/spec/builder.py +79 -50
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/spec/models.py +2 -0
- snowflake_ml_python-1.41.0/snowflake/ml/feature_store/spec/table_schema_evolution.py +119 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/stream_config.py +19 -66
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/stream_source.py +35 -18
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/streaming_registration.py +47 -24
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/tile_sql_generator.py +47 -22
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +7 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +8 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +7 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +8 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +7 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +8 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_env/model_env.py +26 -11
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +4 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +4 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +13 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +4 -4
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +33 -10
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake_ml_python.egg-info/PKG-INFO +15 -2
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake_ml_python.egg-info/SOURCES.txt +8 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/README.md +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/request_source.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/job.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/job_definition.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/jobs/manager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.41.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Registry: Extended `ParamSpec` support to MLflow PyFunc, LightGBM, XGBoost, and CatBoost models.
|
|
8
|
+
Parameters declared in the model signature can now be passed at inference time.
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
### Behavior Changes
|
|
13
|
+
|
|
14
|
+
### Deprecations
|
|
15
|
+
|
|
16
|
+
## 1.40.0 (2026-05-19)
|
|
4
17
|
|
|
5
18
|
### New Features
|
|
6
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.41.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,20 @@ 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.41.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
* Registry: Extended `ParamSpec` support to MLflow PyFunc, LightGBM, XGBoost, and CatBoost models.
|
|
424
|
+
Parameters declared in the model signature can now be passed at inference time.
|
|
425
|
+
|
|
426
|
+
### Bug Fixes
|
|
427
|
+
|
|
428
|
+
### Behavior Changes
|
|
429
|
+
|
|
430
|
+
### Deprecations
|
|
431
|
+
|
|
432
|
+
## 1.40.0 (2026-05-19)
|
|
420
433
|
|
|
421
434
|
### New Features
|
|
422
435
|
|
|
@@ -19,6 +19,7 @@ LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
|
|
|
19
19
|
INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
|
|
20
20
|
SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
|
|
21
21
|
ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
|
|
22
|
+
ENABLE_PIP_ONLY_PACKAGING = "ENABLE_PIP_ONLY_PACKAGING"
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
class PlatformCapabilities:
|
|
@@ -82,6 +83,18 @@ class PlatformCapabilities:
|
|
|
82
83
|
def is_model_method_signature_parameters_enabled(self) -> bool:
|
|
83
84
|
return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
|
|
84
85
|
|
|
86
|
+
def is_pip_only_packaging_enabled(self) -> bool:
|
|
87
|
+
"""Whether pip-only model packaging is enabled for this account.
|
|
88
|
+
|
|
89
|
+
Defaults to enabled when ``ENABLE_PIP_ONLY_PACKAGING`` is absent from
|
|
90
|
+
``SYSTEM$ML_PLATFORM_CAPABILITIES()`` (e.g. older servers). When the
|
|
91
|
+
capability is present, defaults to enabled unless explicitly set to false.
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
True if pip-only packaging is enabled for this account; otherwise False.
|
|
95
|
+
"""
|
|
96
|
+
return self._get_bool_feature(ENABLE_PIP_ONLY_PACKAGING, default_value=True)
|
|
97
|
+
|
|
85
98
|
@staticmethod
|
|
86
99
|
def _get_features(session: snowpark_session.Session) -> dict[str, Any]:
|
|
87
100
|
try:
|
{snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/__init__.py
RENAMED
|
@@ -5,6 +5,8 @@ from snowflake.ml._internal import init_utils
|
|
|
5
5
|
from .access_manager import setup_feature_store
|
|
6
6
|
from .feature import Feature
|
|
7
7
|
from .feature_view import RollupConfig
|
|
8
|
+
from .realtime_config import RealtimeConfig
|
|
9
|
+
from .request_source import RequestSource
|
|
8
10
|
from .spec.enums import FeatureAggregationMethod
|
|
9
11
|
from .stream_config import StreamConfig
|
|
10
12
|
from .stream_source import StreamSource
|
|
@@ -19,6 +21,8 @@ __all__ = list(exportable_classes.keys()) + [
|
|
|
19
21
|
"setup_feature_store",
|
|
20
22
|
"Feature",
|
|
21
23
|
"FeatureAggregationMethod",
|
|
24
|
+
"RealtimeConfig",
|
|
25
|
+
"RequestSource",
|
|
22
26
|
"RollupConfig",
|
|
23
27
|
"StreamConfig",
|
|
24
28
|
"StreamSource",
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"""Unified ``compute_fn`` / ``transformation_fn`` validation.
|
|
2
|
+
|
|
3
|
+
This module is the single source of truth for the policy applied to user
|
|
4
|
+
functions registered on a streaming feature view (``StreamConfig``) or a
|
|
5
|
+
realtime feature view (``RealtimeConfig``). The policy is split into two
|
|
6
|
+
layers, intentionally complementary:
|
|
7
|
+
|
|
8
|
+
- :func:`validate_compute_fn_source` — static AST checks on the dedented
|
|
9
|
+
source text. Enforces that the source is a single top-level
|
|
10
|
+
``def``-style function, with no nested ``def`` / ``async def`` / lambda,
|
|
11
|
+
no calls to forbidden builtins, and only imports from
|
|
12
|
+
:data:`ALLOWED_MODULES`.
|
|
13
|
+
- :func:`validate_compute_fn_callable` — closure-vars / free-name check on
|
|
14
|
+
the live callable. Enforces that every free name resolves to a key in
|
|
15
|
+
:data:`ALLOWED_NAMESPACE_KEYS` (or ``__builtins__``), with no closure
|
|
16
|
+
references to enclosing scopes.
|
|
17
|
+
|
|
18
|
+
Each error message starts with the caller-supplied ``kind`` label
|
|
19
|
+
(``streaming feature view`` or ``realtime feature view``) so the user gets
|
|
20
|
+
a domain-appropriate prefix.
|
|
21
|
+
|
|
22
|
+
This is a deterministic guardrail, not a security sandbox — obfuscated
|
|
23
|
+
bypasses (``getattr(builtins, "__import__")``, etc.) are out of scope.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
from __future__ import annotations
|
|
27
|
+
|
|
28
|
+
import ast
|
|
29
|
+
import inspect
|
|
30
|
+
import textwrap
|
|
31
|
+
from typing import Any, Callable, Optional
|
|
32
|
+
|
|
33
|
+
# Top-level packages permitted in import statements inside compute_fn.
|
|
34
|
+
ALLOWED_MODULES: frozenset[str] = frozenset({"numpy", "pandas", "re", "copy"})
|
|
35
|
+
|
|
36
|
+
# Names that may appear as free globals inside compute_fn. Mirrors the
|
|
37
|
+
# runtime namespace populated by RTFV reconstruction so the same source
|
|
38
|
+
# code runs identically at author time and at warehouse-side execution.
|
|
39
|
+
ALLOWED_NAMESPACE_KEYS: frozenset[str] = frozenset({"pd", "pandas", "np", "numpy", "re", "copy"})
|
|
40
|
+
|
|
41
|
+
# Builtins whose call is rejected by the AST layer. Union of the two
|
|
42
|
+
# pre-existing per-subsystem sets — the strict / RTFV-superset policy.
|
|
43
|
+
FORBIDDEN_BUILTINS: frozenset[str] = frozenset(
|
|
44
|
+
{
|
|
45
|
+
"__import__",
|
|
46
|
+
"eval",
|
|
47
|
+
"exec",
|
|
48
|
+
"compile",
|
|
49
|
+
"open",
|
|
50
|
+
"globals",
|
|
51
|
+
"locals",
|
|
52
|
+
"vars",
|
|
53
|
+
"getattr",
|
|
54
|
+
"setattr",
|
|
55
|
+
"delattr",
|
|
56
|
+
"breakpoint",
|
|
57
|
+
"input",
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def validate_compute_fn_source(source: str, *, kind: str) -> None:
|
|
63
|
+
"""Run the AST layer of compute_fn validation against *source*.
|
|
64
|
+
|
|
65
|
+
Enforces, in this order:
|
|
66
|
+
|
|
67
|
+
1. *source* is valid Python.
|
|
68
|
+
2. *source* contains exactly one top-level ``ast.FunctionDef`` (no
|
|
69
|
+
multi-statement modules, no decorators-only modules, no top-level
|
|
70
|
+
``async def``).
|
|
71
|
+
3. No nested ``ast.FunctionDef`` / ``ast.AsyncFunctionDef`` and no
|
|
72
|
+
``ast.Lambda`` anywhere inside the body.
|
|
73
|
+
4. No ``ast.Call`` whose target name (Name or Attribute) is in
|
|
74
|
+
:data:`FORBIDDEN_BUILTINS`.
|
|
75
|
+
5. Every ``ast.Import`` / ``ast.ImportFrom`` references a top-level
|
|
76
|
+
package in :data:`ALLOWED_MODULES`.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
source: Plain-text Python source for the user function (will be
|
|
80
|
+
dedented internally).
|
|
81
|
+
kind: Domain prefix prepended to every error message; one of
|
|
82
|
+
``"streaming feature view"`` / ``"realtime feature view"``.
|
|
83
|
+
|
|
84
|
+
Raises:
|
|
85
|
+
ValueError: If any rule above is violated. The error message
|
|
86
|
+
names the offending construct and its line number.
|
|
87
|
+
"""
|
|
88
|
+
dedented = textwrap.dedent(source)
|
|
89
|
+
try:
|
|
90
|
+
tree = ast.parse(dedented)
|
|
91
|
+
except SyntaxError as e:
|
|
92
|
+
raise ValueError(f"{kind}: compute_fn source is not valid Python: {e.msg} (line {e.lineno}).") from e
|
|
93
|
+
|
|
94
|
+
if len(tree.body) != 1 or not isinstance(tree.body[0], ast.FunctionDef):
|
|
95
|
+
raise ValueError(
|
|
96
|
+
f"{kind}: compute_fn source must contain exactly one top-level "
|
|
97
|
+
"function definition. Decorators-only modules, multi-statement "
|
|
98
|
+
"modules, and async function definitions at the top level are "
|
|
99
|
+
"not supported."
|
|
100
|
+
)
|
|
101
|
+
outer_fn = tree.body[0]
|
|
102
|
+
|
|
103
|
+
for node in ast.walk(outer_fn):
|
|
104
|
+
if node is outer_fn:
|
|
105
|
+
continue
|
|
106
|
+
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
|
|
107
|
+
raise ValueError(
|
|
108
|
+
f"{kind}: compute_fn must not contain nested function "
|
|
109
|
+
f"definitions; found {node.name!r} at line {node.lineno}. "
|
|
110
|
+
f"Inline the logic or import helpers from one of the allowed "
|
|
111
|
+
f"runtime namespace modules: {sorted(ALLOWED_NAMESPACE_KEYS)}."
|
|
112
|
+
)
|
|
113
|
+
if isinstance(node, ast.Lambda):
|
|
114
|
+
raise ValueError(
|
|
115
|
+
f"{kind}: compute_fn must not contain lambda expressions; " f"found one at line {node.lineno}."
|
|
116
|
+
)
|
|
117
|
+
if isinstance(node, ast.Call):
|
|
118
|
+
func = node.func
|
|
119
|
+
fname: Optional[str]
|
|
120
|
+
if isinstance(func, ast.Name):
|
|
121
|
+
fname = func.id
|
|
122
|
+
elif isinstance(func, ast.Attribute):
|
|
123
|
+
fname = func.attr
|
|
124
|
+
else:
|
|
125
|
+
fname = None
|
|
126
|
+
if fname is not None and fname in FORBIDDEN_BUILTINS:
|
|
127
|
+
raise ValueError(
|
|
128
|
+
f"{kind}: compute_fn must not call {fname!r}; found call "
|
|
129
|
+
f"at line {node.lineno}. Forbidden builtins: "
|
|
130
|
+
f"{sorted(FORBIDDEN_BUILTINS)}."
|
|
131
|
+
)
|
|
132
|
+
if isinstance(node, ast.Import):
|
|
133
|
+
for alias in node.names:
|
|
134
|
+
module = alias.name.split(".")[0]
|
|
135
|
+
if module not in ALLOWED_MODULES:
|
|
136
|
+
raise ValueError(
|
|
137
|
+
f"{kind}: import {alias.name!r} is not allowed in "
|
|
138
|
+
f"compute_fn. Allowed modules: {sorted(ALLOWED_MODULES)}."
|
|
139
|
+
)
|
|
140
|
+
elif isinstance(node, ast.ImportFrom):
|
|
141
|
+
if node.module:
|
|
142
|
+
module = node.module.split(".")[0]
|
|
143
|
+
if module not in ALLOWED_MODULES:
|
|
144
|
+
raise ValueError(
|
|
145
|
+
f"{kind}: import from {node.module!r} is not allowed "
|
|
146
|
+
f"in compute_fn. Allowed modules: {sorted(ALLOWED_MODULES)}."
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def validate_compute_fn_callable(fn: Callable[..., Any], *, kind: str) -> None:
|
|
151
|
+
"""Run the closure-vars layer of compute_fn validation against *fn*.
|
|
152
|
+
|
|
153
|
+
Uses :func:`inspect.getclosurevars` to inspect the live callable. Names
|
|
154
|
+
bound by in-body imports and attribute lookups are filtered out before
|
|
155
|
+
the namespace check (see :func:`_collect_ast_local_names`) so
|
|
156
|
+
``import pandas`` and ``pd.DataFrame`` do not trip the check.
|
|
157
|
+
|
|
158
|
+
Three rules are enforced:
|
|
159
|
+
|
|
160
|
+
- ``cvars.nonlocals`` is empty: no closure references to an enclosing
|
|
161
|
+
scope.
|
|
162
|
+
- ``cvars.unbound`` (after filtering) is empty: every free name
|
|
163
|
+
resolves somewhere.
|
|
164
|
+
- ``cvars.globals`` (after filtering) live inside
|
|
165
|
+
:data:`ALLOWED_NAMESPACE_KEYS` ∪ ``{"__builtins__"}``.
|
|
166
|
+
|
|
167
|
+
Args:
|
|
168
|
+
fn: The user-supplied callable.
|
|
169
|
+
kind: Domain prefix prepended to every error message.
|
|
170
|
+
|
|
171
|
+
Raises:
|
|
172
|
+
ValueError: If *fn* references closures, unbound names, or globals
|
|
173
|
+
outside the runtime namespace. The message names each offender.
|
|
174
|
+
"""
|
|
175
|
+
try:
|
|
176
|
+
cvars = inspect.getclosurevars(fn)
|
|
177
|
+
except TypeError as e:
|
|
178
|
+
raise ValueError(f"{kind}: compute_fn closure variables are not inspectable: {e}") from e
|
|
179
|
+
|
|
180
|
+
if cvars.nonlocals:
|
|
181
|
+
offenders = sorted(cvars.nonlocals.keys())
|
|
182
|
+
raise ValueError(
|
|
183
|
+
f"{kind}: compute_fn must not reference enclosing-scope variables "
|
|
184
|
+
f"(closures); offending names: {offenders}. Inline the values or "
|
|
185
|
+
f"import from one of the allowed runtime namespace modules: "
|
|
186
|
+
f"{sorted(ALLOWED_NAMESPACE_KEYS)}."
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
try:
|
|
190
|
+
source = inspect.getsource(fn)
|
|
191
|
+
except (OSError, TypeError):
|
|
192
|
+
source = ""
|
|
193
|
+
import_names, attr_names = _collect_ast_local_names(source)
|
|
194
|
+
filterable = import_names | attr_names
|
|
195
|
+
|
|
196
|
+
effective_unbound = cvars.unbound - filterable
|
|
197
|
+
if effective_unbound:
|
|
198
|
+
offenders = sorted(effective_unbound)
|
|
199
|
+
raise ValueError(
|
|
200
|
+
f"{kind}: compute_fn references names that resolve nowhere: "
|
|
201
|
+
f"{offenders}. Check for typos, or import the symbol from one of "
|
|
202
|
+
f"the allowed runtime namespace modules: {sorted(ALLOWED_NAMESPACE_KEYS)}."
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
allowed_globals = set(ALLOWED_NAMESPACE_KEYS) | {"__builtins__"}
|
|
206
|
+
effective_globals = set(cvars.globals.keys()) - filterable
|
|
207
|
+
extra_globals = sorted(effective_globals - allowed_globals)
|
|
208
|
+
if extra_globals:
|
|
209
|
+
raise ValueError(
|
|
210
|
+
f"{kind}: compute_fn references symbols outside the allowed "
|
|
211
|
+
f"runtime namespace: {extra_globals}. Allowed namespace keys: "
|
|
212
|
+
f"{sorted(ALLOWED_NAMESPACE_KEYS)}. Inline the values or import "
|
|
213
|
+
f"the symbol from one of the allowed modules."
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def _collect_ast_local_names(source: str) -> tuple[set[str], set[str]]:
|
|
218
|
+
"""Return ``(import-name set, attribute-name set)`` for free-name filtering.
|
|
219
|
+
|
|
220
|
+
:func:`inspect.getclosurevars` reports every name read from
|
|
221
|
+
``co_names`` as either resolved or unbound. That set includes module
|
|
222
|
+
names from ``import x`` (``IMPORT_NAME`` reads them) and attribute
|
|
223
|
+
names from ``obj.attr`` (``LOAD_ATTR`` reads them). Neither class is
|
|
224
|
+
a real free name, so callers strip them before applying the namespace
|
|
225
|
+
check.
|
|
226
|
+
|
|
227
|
+
Args:
|
|
228
|
+
source: Dedented source of the user function. An empty / unparsable
|
|
229
|
+
string yields two empty sets (the closure check still runs).
|
|
230
|
+
|
|
231
|
+
Returns:
|
|
232
|
+
Tuple ``(imported_module_names, attribute_names)``.
|
|
233
|
+
"""
|
|
234
|
+
try:
|
|
235
|
+
tree = ast.parse(textwrap.dedent(source))
|
|
236
|
+
except SyntaxError:
|
|
237
|
+
return set(), set()
|
|
238
|
+
import_names: set[str] = set()
|
|
239
|
+
attr_names: set[str] = set()
|
|
240
|
+
for node in ast.walk(tree):
|
|
241
|
+
if isinstance(node, ast.Import):
|
|
242
|
+
for alias in node.names:
|
|
243
|
+
root = alias.name.split(".")[0]
|
|
244
|
+
import_names.add(root)
|
|
245
|
+
elif isinstance(node, ast.ImportFrom):
|
|
246
|
+
if node.module:
|
|
247
|
+
import_names.add(node.module.split(".")[0])
|
|
248
|
+
for alias in node.names:
|
|
249
|
+
if alias.name != "*":
|
|
250
|
+
import_names.add(alias.name)
|
|
251
|
+
elif isinstance(node, ast.Attribute):
|
|
252
|
+
attr_names.add(node.attr)
|
|
253
|
+
return import_names, attr_names
|
{snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/aggregation.py
RENAMED
|
@@ -175,6 +175,19 @@ class AggregationSpec:
|
|
|
175
175
|
f"'{self.output_column}', got: {percentile}"
|
|
176
176
|
)
|
|
177
177
|
|
|
178
|
+
# Validate params for approx_count_distinct (HLL precision)
|
|
179
|
+
if self.function == AggregationType.APPROX_COUNT_DISTINCT:
|
|
180
|
+
if "hll_lg_k" not in self.params:
|
|
181
|
+
raise ValueError(
|
|
182
|
+
f"Parameter 'precision' is required for approx_count_distinct aggregation '{self.output_column}'"
|
|
183
|
+
)
|
|
184
|
+
hll_lg_k = self.params["hll_lg_k"]
|
|
185
|
+
if not isinstance(hll_lg_k, int) or not (4 <= hll_lg_k <= 21):
|
|
186
|
+
raise ValueError(
|
|
187
|
+
f"Parameter 'precision' must be an integer between 4 and 21 for aggregation "
|
|
188
|
+
f"'{self.output_column}', got: {hll_lg_k}"
|
|
189
|
+
)
|
|
190
|
+
|
|
178
191
|
# Validate _SECONDARY_KEY_ARRAY specs
|
|
179
192
|
if self.function.is_secondary_key_array():
|
|
180
193
|
if self.params:
|
|
@@ -232,7 +245,7 @@ class AggregationSpec:
|
|
|
232
245
|
Similar to get_tile_column_name but with _CUM_ prefix instead of _PARTIAL_.
|
|
233
246
|
|
|
234
247
|
Args:
|
|
235
|
-
partial_type: One of "SUM", "COUNT", "SUM_SQ", "
|
|
248
|
+
partial_type: One of "SUM", "COUNT", "SUM_SQ", "DS_HLL", "TDIGEST", "MIN", "MAX", "FIRST".
|
|
236
249
|
|
|
237
250
|
Returns:
|
|
238
251
|
Column name used in the tile table (prefixed with _CUM_).
|
|
@@ -247,13 +260,13 @@ class AggregationSpec:
|
|
|
247
260
|
- _PARTIAL_SUM_{col}: SUM(col) - used by SUM, AVG, STD, VAR
|
|
248
261
|
- _PARTIAL_COUNT_{col}: COUNT(col) - used by COUNT, AVG, STD, VAR
|
|
249
262
|
- _PARTIAL_SUM_SQ_{col}: SUM(col*col) - used by STD, VAR
|
|
250
|
-
-
|
|
263
|
+
- _PARTIAL_DS_HLL_{col}: Datasketches HLL sketch (BINARY) - used by APPROX_COUNT_DISTINCT
|
|
251
264
|
- _PARTIAL_TDIGEST_{col}: T-Digest state - used by APPROX_PERCENTILE
|
|
252
265
|
|
|
253
266
|
This allows sharing columns across aggregation types on the same column.
|
|
254
267
|
|
|
255
268
|
Args:
|
|
256
|
-
partial_type: One of "SUM", "COUNT", "SUM_SQ", "
|
|
269
|
+
partial_type: One of "SUM", "COUNT", "SUM_SQ", "DS_HLL", "TDIGEST", "LAST", "FIRST".
|
|
257
270
|
|
|
258
271
|
Returns:
|
|
259
272
|
Column name used in the tile table (prefixed with _PARTIAL_).
|
{snowflake_ml_python-1.40.0 → snowflake_ml_python-1.41.0}/snowflake/ml/feature_store/feature.py
RENAMED
|
@@ -327,16 +327,20 @@ class Feature:
|
|
|
327
327
|
return cls(AggregationType.FIRST_DISTINCT_N, column, window, offset, n=n)
|
|
328
328
|
|
|
329
329
|
@classmethod
|
|
330
|
-
def approx_count_distinct(cls, column: str, window: str, offset: str = "0") -> Feature:
|
|
330
|
+
def approx_count_distinct(cls, column: str, window: str, offset: str = "0", *, precision: int = 8) -> Feature:
|
|
331
331
|
"""Create an APPROX_COUNT_DISTINCT aggregation feature.
|
|
332
332
|
|
|
333
|
-
Estimates the number of distinct values using
|
|
334
|
-
This is approximate but highly efficient for
|
|
333
|
+
Estimates the number of distinct values using the Apache Datasketches
|
|
334
|
+
HyperLogLog algorithm. This is approximate but highly efficient for
|
|
335
|
+
large datasets.
|
|
335
336
|
|
|
336
337
|
Args:
|
|
337
338
|
column: The column to count distinct values.
|
|
338
339
|
window: The lookback window.
|
|
339
340
|
offset: Offset to shift window into past. Default is "0" (no offset).
|
|
341
|
+
precision: Log-base-2 of the number of buckets in the HLL sketch.
|
|
342
|
+
Controls the trade-off between accuracy and memory. Valid range
|
|
343
|
+
is 4 to 21. Default is 8.
|
|
340
344
|
|
|
341
345
|
Returns:
|
|
342
346
|
A Feature configured for APPROX_COUNT_DISTINCT aggregation.
|
|
@@ -344,8 +348,9 @@ class Feature:
|
|
|
344
348
|
Example::
|
|
345
349
|
|
|
346
350
|
>>> unique_users = Feature.approx_count_distinct("user_id", "24h")
|
|
351
|
+
>>> precise_uniques = Feature.approx_count_distinct("user_id", "24h", precision=12)
|
|
347
352
|
"""
|
|
348
|
-
return cls(AggregationType.APPROX_COUNT_DISTINCT, column, window, offset)
|
|
353
|
+
return cls(AggregationType.APPROX_COUNT_DISTINCT, column, window, offset, hll_lg_k=precision)
|
|
349
354
|
|
|
350
355
|
@classmethod
|
|
351
356
|
def approx_percentile(cls, column: str, window: str, *, percentile: float = 0.5, offset: str = "0") -> Feature:
|