snowflake-ml-python 1.23.0__tar.gz → 1.24.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.23.0 → snowflake_ml_python-1.24.0}/CHANGELOG.md +38 -0
- {snowflake_ml_python-1.23.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.24.0}/PKG-INFO +39 -1
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/platform_capabilities.py +0 -4
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/__init__.py +2 -0
- snowflake_ml_python-1.24.0/snowflake/ml/feature_store/aggregation.py +367 -0
- snowflake_ml_python-1.24.0/snowflake/ml/feature_store/feature.py +366 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/feature_store.py +234 -20
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/feature_view.py +189 -4
- snowflake_ml_python-1.24.0/snowflake/ml/feature_store/metadata_manager.py +425 -0
- snowflake_ml_python-1.24.0/snowflake/ml/feature_store/tile_sql_generator.py +1079 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/__init__.py +4 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +38 -2
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/model_version_impl.py +31 -14
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/model_ops.py +2 -8
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -5
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/service.py +21 -29
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +2 -1
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +20 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +70 -14
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/utils.py +76 -1
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0/snowflake_ml_python.egg-info}/PKG-INFO +39 -1
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/SOURCES.txt +4 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/README.md +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/spec_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/job.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/job_definition.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/manager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
## 1.24.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Feature Store: Added tile-based aggregation support with a new `Feature` API for efficient and
|
|
8
|
+
point-in-time correct time-series feature computation using pre-computed tiles stored in Dynamic Tables.
|
|
9
|
+
|
|
10
|
+
* Registry: Added auto-signature inference for SentenceTransformer models. When logging a SentenceTransformer
|
|
11
|
+
model, `sample_input_data` is now optional. If not provided, the signature is automatically inferred from
|
|
12
|
+
the model's embedding dimension. Supported methods: `encode`, `encode_query`, `encode_document`,
|
|
13
|
+
`encode_queries`, `encode_documents`.
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
import sentence_transformers
|
|
17
|
+
from snowflake.ml.registry import Registry
|
|
18
|
+
|
|
19
|
+
# Create model
|
|
20
|
+
model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2")
|
|
21
|
+
|
|
22
|
+
# Log model without sample_input_data - signature is auto-inferred
|
|
23
|
+
registry = Registry(session)
|
|
24
|
+
mv = registry.log_model(
|
|
25
|
+
model=model,
|
|
26
|
+
model_name="my_sentence_transformer",
|
|
27
|
+
version_name="v1",
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# Run inference with auto-inferred signature (input: "text", output: "output")
|
|
31
|
+
import pandas as pd
|
|
32
|
+
result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
### Behavior Changes
|
|
38
|
+
|
|
39
|
+
### Deprecations
|
|
40
|
+
|
|
3
41
|
## 1.23.0
|
|
4
42
|
|
|
5
43
|
### New Features
|
{snowflake_ml_python-1.23.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.24.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.24.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:
|
|
@@ -417,6 +417,44 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
417
417
|
|
|
418
418
|
# Release History
|
|
419
419
|
|
|
420
|
+
## 1.24.0
|
|
421
|
+
|
|
422
|
+
### New Features
|
|
423
|
+
|
|
424
|
+
* Feature Store: Added tile-based aggregation support with a new `Feature` API for efficient and
|
|
425
|
+
point-in-time correct time-series feature computation using pre-computed tiles stored in Dynamic Tables.
|
|
426
|
+
|
|
427
|
+
* Registry: Added auto-signature inference for SentenceTransformer models. When logging a SentenceTransformer
|
|
428
|
+
model, `sample_input_data` is now optional. If not provided, the signature is automatically inferred from
|
|
429
|
+
the model's embedding dimension. Supported methods: `encode`, `encode_query`, `encode_document`,
|
|
430
|
+
`encode_queries`, `encode_documents`.
|
|
431
|
+
|
|
432
|
+
```python
|
|
433
|
+
import sentence_transformers
|
|
434
|
+
from snowflake.ml.registry import Registry
|
|
435
|
+
|
|
436
|
+
# Create model
|
|
437
|
+
model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2")
|
|
438
|
+
|
|
439
|
+
# Log model without sample_input_data - signature is auto-inferred
|
|
440
|
+
registry = Registry(session)
|
|
441
|
+
mv = registry.log_model(
|
|
442
|
+
model=model,
|
|
443
|
+
model_name="my_sentence_transformer",
|
|
444
|
+
version_name="v1",
|
|
445
|
+
)
|
|
446
|
+
|
|
447
|
+
# Run inference with auto-inferred signature (input: "text", output: "output")
|
|
448
|
+
import pandas as pd
|
|
449
|
+
result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### Bug Fixes
|
|
453
|
+
|
|
454
|
+
### Behavior Changes
|
|
455
|
+
|
|
456
|
+
### Deprecations
|
|
457
|
+
|
|
420
458
|
## 1.23.0
|
|
421
459
|
|
|
422
460
|
### New Features
|
|
@@ -19,7 +19,6 @@ 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
|
-
FEATURE_MODEL_INFERENCE_AUTOCAPTURE = "FEATURE_MODEL_INFERENCE_AUTOCAPTURE"
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
class PlatformCapabilities:
|
|
@@ -85,9 +84,6 @@ class PlatformCapabilities:
|
|
|
85
84
|
def is_model_method_signature_parameters_enabled(self) -> bool:
|
|
86
85
|
return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
|
|
87
86
|
|
|
88
|
-
def is_inference_autocapture_enabled(self) -> bool:
|
|
89
|
-
return self._is_feature_enabled(FEATURE_MODEL_INFERENCE_AUTOCAPTURE)
|
|
90
|
-
|
|
91
87
|
@staticmethod
|
|
92
88
|
def _get_features(session: snowpark_session.Session) -> dict[str, Any]:
|
|
93
89
|
try:
|
{snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/__init__.py
RENAMED
|
@@ -3,6 +3,7 @@ import os
|
|
|
3
3
|
from snowflake.ml._internal import init_utils
|
|
4
4
|
|
|
5
5
|
from .access_manager import setup_feature_store
|
|
6
|
+
from .feature import Feature
|
|
6
7
|
|
|
7
8
|
pkg_dir = os.path.dirname(__file__)
|
|
8
9
|
pkg_name = __name__
|
|
@@ -12,4 +13,5 @@ for k, v in exportable_classes.items():
|
|
|
12
13
|
|
|
13
14
|
__all__ = list(exportable_classes.keys()) + [
|
|
14
15
|
"setup_feature_store",
|
|
16
|
+
"Feature",
|
|
15
17
|
]
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
"""Aggregation types and specifications for tile-based feature views.
|
|
2
|
+
|
|
3
|
+
This module provides the building blocks for defining time-series aggregations
|
|
4
|
+
that are computed using a tile-based approach for efficiency and correctness.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import re
|
|
10
|
+
from dataclasses import dataclass, field
|
|
11
|
+
from enum import Enum
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class AggregationType(Enum):
|
|
16
|
+
"""Supported aggregation functions for tiled feature views.
|
|
17
|
+
|
|
18
|
+
These aggregation types are classified into categories:
|
|
19
|
+
- Simple aggregations (SUM, COUNT, AVG, MIN, MAX, STD, VAR): Stored as scalar partial results in tiles
|
|
20
|
+
- Sketch aggregations (APPROX_COUNT_DISTINCT, APPROX_PERCENTILE): Stored as mergeable state in tiles
|
|
21
|
+
- List aggregations (LAST_N, LAST_DISTINCT_N, FIRST_N, FIRST_DISTINCT_N): Stored as arrays in tiles
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
SUM = "sum"
|
|
25
|
+
COUNT = "count"
|
|
26
|
+
AVG = "avg"
|
|
27
|
+
MIN = "min"
|
|
28
|
+
MAX = "max"
|
|
29
|
+
STD = "std"
|
|
30
|
+
VAR = "var"
|
|
31
|
+
APPROX_COUNT_DISTINCT = "approx_count_distinct"
|
|
32
|
+
APPROX_PERCENTILE = "approx_percentile"
|
|
33
|
+
LAST_N = "last_n"
|
|
34
|
+
LAST_DISTINCT_N = "last_distinct_n"
|
|
35
|
+
FIRST_N = "first_n"
|
|
36
|
+
FIRST_DISTINCT_N = "first_distinct_n"
|
|
37
|
+
|
|
38
|
+
def is_simple(self) -> bool:
|
|
39
|
+
"""Check if this is a simple aggregation (scalar result per tile).
|
|
40
|
+
|
|
41
|
+
Simple aggregations include both basic aggregates (SUM, COUNT, etc.)
|
|
42
|
+
and sketch-based aggregates (APPROX_COUNT_DISTINCT, APPROX_PERCENTILE)
|
|
43
|
+
because they all produce a single value per entity per tile boundary.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
True if this is a simple aggregation type, False otherwise.
|
|
47
|
+
"""
|
|
48
|
+
return self in (
|
|
49
|
+
AggregationType.SUM,
|
|
50
|
+
AggregationType.COUNT,
|
|
51
|
+
AggregationType.AVG,
|
|
52
|
+
AggregationType.MIN,
|
|
53
|
+
AggregationType.MAX,
|
|
54
|
+
AggregationType.STD,
|
|
55
|
+
AggregationType.VAR,
|
|
56
|
+
AggregationType.APPROX_COUNT_DISTINCT,
|
|
57
|
+
AggregationType.APPROX_PERCENTILE,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
def is_list(self) -> bool:
|
|
61
|
+
"""Check if this is a list aggregation (array result per tile)."""
|
|
62
|
+
return self in (
|
|
63
|
+
AggregationType.LAST_N,
|
|
64
|
+
AggregationType.LAST_DISTINCT_N,
|
|
65
|
+
AggregationType.FIRST_N,
|
|
66
|
+
AggregationType.FIRST_DISTINCT_N,
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def is_sketch(self) -> bool:
|
|
70
|
+
"""Check if this is a sketch-based aggregation (HLL, T-Digest)."""
|
|
71
|
+
return self in (
|
|
72
|
+
AggregationType.APPROX_COUNT_DISTINCT,
|
|
73
|
+
AggregationType.APPROX_PERCENTILE,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# Special window value for lifetime aggregations
|
|
78
|
+
LIFETIME_WINDOW = "lifetime"
|
|
79
|
+
|
|
80
|
+
# Regex pattern for interval parsing: "1h", "24 hours", "30 minutes", etc.
|
|
81
|
+
_INTERVAL_PATTERN = re.compile(
|
|
82
|
+
r"^\s*(\d+)\s*(s|sec|secs|second|seconds|m|min|mins|minute|minutes|h|hr|hrs|hour|hours|d|day|days)\s*$",
|
|
83
|
+
re.IGNORECASE,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# Mapping of interval unit aliases to canonical Snowflake units
|
|
87
|
+
_INTERVAL_UNIT_MAP = {
|
|
88
|
+
"s": "SECOND",
|
|
89
|
+
"sec": "SECOND",
|
|
90
|
+
"secs": "SECOND",
|
|
91
|
+
"second": "SECOND",
|
|
92
|
+
"seconds": "SECOND",
|
|
93
|
+
"m": "MINUTE",
|
|
94
|
+
"min": "MINUTE",
|
|
95
|
+
"mins": "MINUTE",
|
|
96
|
+
"minute": "MINUTE",
|
|
97
|
+
"minutes": "MINUTE",
|
|
98
|
+
"h": "HOUR",
|
|
99
|
+
"hr": "HOUR",
|
|
100
|
+
"hrs": "HOUR",
|
|
101
|
+
"hour": "HOUR",
|
|
102
|
+
"hours": "HOUR",
|
|
103
|
+
"d": "DAY",
|
|
104
|
+
"day": "DAY",
|
|
105
|
+
"days": "DAY",
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
# Seconds per unit for calculating window sizes
|
|
109
|
+
_SECONDS_PER_UNIT = {
|
|
110
|
+
"SECOND": 1,
|
|
111
|
+
"MINUTE": 60,
|
|
112
|
+
"HOUR": 3600,
|
|
113
|
+
"DAY": 86400,
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def is_lifetime_window(window: str) -> bool:
|
|
118
|
+
"""Check if a window string represents a lifetime aggregation.
|
|
119
|
+
|
|
120
|
+
Args:
|
|
121
|
+
window: The window string to check.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
True if the window is "lifetime", False otherwise.
|
|
125
|
+
"""
|
|
126
|
+
return window.lower().strip() == LIFETIME_WINDOW
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def parse_interval(interval: str) -> tuple[int, str]:
|
|
130
|
+
"""Parse an interval string into (value, unit) tuple.
|
|
131
|
+
|
|
132
|
+
Args:
|
|
133
|
+
interval: Interval string like "1h", "24 hours", "30 minutes".
|
|
134
|
+
Note: "lifetime" is NOT a valid interval - use is_lifetime_window() first.
|
|
135
|
+
|
|
136
|
+
Returns:
|
|
137
|
+
Tuple of (numeric_value, snowflake_unit) e.g. (1, "HOUR").
|
|
138
|
+
|
|
139
|
+
Raises:
|
|
140
|
+
ValueError: If the interval format is invalid.
|
|
141
|
+
"""
|
|
142
|
+
if is_lifetime_window(interval):
|
|
143
|
+
raise ValueError(
|
|
144
|
+
f"'{interval}' is not a numeric interval. " f"Use is_lifetime_window() to check for lifetime windows."
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
match = _INTERVAL_PATTERN.match(interval)
|
|
148
|
+
if not match:
|
|
149
|
+
raise ValueError(
|
|
150
|
+
f"Invalid interval format: '{interval}'. "
|
|
151
|
+
f"Expected format: '<number> <unit>' where unit is one of: "
|
|
152
|
+
f"seconds, minutes, hours, days (or abbreviations s, m, h, d)"
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
value = int(match.group(1))
|
|
156
|
+
unit_str = match.group(2).lower()
|
|
157
|
+
unit = _INTERVAL_UNIT_MAP[unit_str]
|
|
158
|
+
|
|
159
|
+
if value <= 0:
|
|
160
|
+
raise ValueError(f"Interval value must be positive, got: {value}")
|
|
161
|
+
|
|
162
|
+
return value, unit
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def interval_to_seconds(interval: str) -> int:
|
|
166
|
+
"""Convert an interval string to total seconds.
|
|
167
|
+
|
|
168
|
+
Args:
|
|
169
|
+
interval: Interval string like "1h", "24 hours".
|
|
170
|
+
Note: "lifetime" is NOT supported - returns -1 as sentinel.
|
|
171
|
+
|
|
172
|
+
Returns:
|
|
173
|
+
Total seconds represented by the interval, or -1 for lifetime.
|
|
174
|
+
"""
|
|
175
|
+
if is_lifetime_window(interval):
|
|
176
|
+
return -1 # Sentinel value for lifetime
|
|
177
|
+
value, unit = parse_interval(interval)
|
|
178
|
+
return value * _SECONDS_PER_UNIT[unit]
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def format_interval_for_snowflake(interval: str) -> str:
|
|
182
|
+
"""Format an interval string for use in Snowflake SQL.
|
|
183
|
+
|
|
184
|
+
Args:
|
|
185
|
+
interval: Interval string like "1h", "24 hours".
|
|
186
|
+
|
|
187
|
+
Returns:
|
|
188
|
+
Formatted string like "HOUR" or "DAY" for use with DATEADD/TIME_SLICE.
|
|
189
|
+
"""
|
|
190
|
+
_, unit = parse_interval(interval)
|
|
191
|
+
return unit
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
@dataclass(frozen=True)
|
|
195
|
+
class AggregationSpec:
|
|
196
|
+
"""Internal representation of an aggregation specification.
|
|
197
|
+
|
|
198
|
+
This is the serializable form that gets stored in metadata and used
|
|
199
|
+
for SQL generation. Users interact with the Feature class instead.
|
|
200
|
+
|
|
201
|
+
Attributes:
|
|
202
|
+
function: The aggregation function type.
|
|
203
|
+
source_column: The column to aggregate.
|
|
204
|
+
window: The lookback window for the aggregation (e.g., "24h", "7d").
|
|
205
|
+
output_column: The name of the output column.
|
|
206
|
+
offset: Offset to shift the window into the past (e.g., "1d" means [t-window-1d, t-1d]).
|
|
207
|
+
params: Additional parameters (e.g., {"n": 10} for LAST_N).
|
|
208
|
+
"""
|
|
209
|
+
|
|
210
|
+
function: AggregationType
|
|
211
|
+
source_column: str
|
|
212
|
+
window: str
|
|
213
|
+
output_column: str
|
|
214
|
+
offset: str = "0"
|
|
215
|
+
params: dict[str, Any] = field(default_factory=dict)
|
|
216
|
+
|
|
217
|
+
def __post_init__(self) -> None:
|
|
218
|
+
"""Validate the aggregation spec after initialization."""
|
|
219
|
+
# Validate window format (allow "lifetime" as special case)
|
|
220
|
+
if not is_lifetime_window(self.window):
|
|
221
|
+
try:
|
|
222
|
+
interval_to_seconds(self.window)
|
|
223
|
+
except ValueError as e:
|
|
224
|
+
raise ValueError(f"Invalid window for aggregation '{self.output_column}': {e}") from e
|
|
225
|
+
|
|
226
|
+
# Validate offset format (if not "0")
|
|
227
|
+
# Note: offset is not allowed with lifetime windows
|
|
228
|
+
if self.offset != "0":
|
|
229
|
+
if is_lifetime_window(self.window):
|
|
230
|
+
raise ValueError(
|
|
231
|
+
f"Offset is not supported with lifetime windows for aggregation '{self.output_column}'"
|
|
232
|
+
)
|
|
233
|
+
try:
|
|
234
|
+
offset_seconds = interval_to_seconds(self.offset)
|
|
235
|
+
if offset_seconds < 0:
|
|
236
|
+
raise ValueError("Offset must be non-negative")
|
|
237
|
+
except ValueError as e:
|
|
238
|
+
raise ValueError(f"Invalid offset for aggregation '{self.output_column}': {e}") from e
|
|
239
|
+
|
|
240
|
+
# Validate params for list aggregations
|
|
241
|
+
if self.function.is_list():
|
|
242
|
+
if "n" not in self.params:
|
|
243
|
+
raise ValueError(
|
|
244
|
+
f"Parameter 'n' is required for {self.function.value} aggregation " f"'{self.output_column}'"
|
|
245
|
+
)
|
|
246
|
+
n = self.params["n"]
|
|
247
|
+
if not isinstance(n, int) or n <= 0:
|
|
248
|
+
raise ValueError(
|
|
249
|
+
f"Parameter 'n' must be a positive integer for aggregation " f"'{self.output_column}', got: {n}"
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# Validate params for approx_percentile
|
|
253
|
+
if self.function == AggregationType.APPROX_PERCENTILE:
|
|
254
|
+
if "percentile" not in self.params:
|
|
255
|
+
raise ValueError(
|
|
256
|
+
f"Parameter 'percentile' is required for approx_percentile aggregation '{self.output_column}'"
|
|
257
|
+
)
|
|
258
|
+
percentile = self.params["percentile"]
|
|
259
|
+
if not isinstance(percentile, (int, float)) or not (0.0 <= percentile <= 1.0):
|
|
260
|
+
raise ValueError(
|
|
261
|
+
f"Parameter 'percentile' must be a float between 0.0 and 1.0 for aggregation "
|
|
262
|
+
f"'{self.output_column}', got: {percentile}"
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# Validate lifetime window support
|
|
266
|
+
# Only simple scalar aggregations support lifetime (O(1) via cumulative columns)
|
|
267
|
+
if is_lifetime_window(self.window):
|
|
268
|
+
supported_lifetime_types = (
|
|
269
|
+
AggregationType.SUM,
|
|
270
|
+
AggregationType.COUNT,
|
|
271
|
+
AggregationType.AVG,
|
|
272
|
+
AggregationType.MIN,
|
|
273
|
+
AggregationType.MAX,
|
|
274
|
+
AggregationType.STD,
|
|
275
|
+
AggregationType.VAR,
|
|
276
|
+
)
|
|
277
|
+
if self.function not in supported_lifetime_types:
|
|
278
|
+
supported_names = ", ".join(t.value.upper() for t in supported_lifetime_types)
|
|
279
|
+
raise ValueError(
|
|
280
|
+
f"Lifetime window is not supported for {self.function.value} aggregation "
|
|
281
|
+
f"'{self.output_column}'. Lifetime is only supported for: {supported_names}."
|
|
282
|
+
)
|
|
283
|
+
|
|
284
|
+
def is_lifetime(self) -> bool:
|
|
285
|
+
"""Check if this aggregation has a lifetime window.
|
|
286
|
+
|
|
287
|
+
Returns:
|
|
288
|
+
True if the window is "lifetime", False otherwise.
|
|
289
|
+
"""
|
|
290
|
+
return is_lifetime_window(self.window)
|
|
291
|
+
|
|
292
|
+
def get_window_seconds(self) -> int:
|
|
293
|
+
"""Get the window size in seconds.
|
|
294
|
+
|
|
295
|
+
Returns:
|
|
296
|
+
Total seconds for the window, or -1 for lifetime windows.
|
|
297
|
+
"""
|
|
298
|
+
return interval_to_seconds(self.window)
|
|
299
|
+
|
|
300
|
+
def get_offset_seconds(self) -> int:
|
|
301
|
+
"""Get the offset in seconds."""
|
|
302
|
+
return interval_to_seconds(self.offset) if self.offset != "0" else 0
|
|
303
|
+
|
|
304
|
+
def get_cumulative_column_name(self, partial_type: str) -> str:
|
|
305
|
+
"""Get the cumulative column name for lifetime aggregations.
|
|
306
|
+
|
|
307
|
+
Similar to get_tile_column_name but with _CUM_ prefix instead of _PARTIAL_.
|
|
308
|
+
|
|
309
|
+
Args:
|
|
310
|
+
partial_type: One of "SUM", "COUNT", "SUM_SQ", "HLL", "TDIGEST", "MIN", "MAX", "FIRST".
|
|
311
|
+
|
|
312
|
+
Returns:
|
|
313
|
+
Column name used in the tile table (prefixed with _CUM_).
|
|
314
|
+
"""
|
|
315
|
+
return f"_CUM_{partial_type}_{self.source_column.upper()}"
|
|
316
|
+
|
|
317
|
+
def get_tile_column_name(self, partial_type: str) -> str:
|
|
318
|
+
"""Get the internal tile column name for a base partial aggregate.
|
|
319
|
+
|
|
320
|
+
Aggregations are computed from base partials:
|
|
321
|
+
- _PARTIAL_SUM_{col}: SUM(col) - used by SUM, AVG, STD, VAR
|
|
322
|
+
- _PARTIAL_COUNT_{col}: COUNT(col) - used by COUNT, AVG, STD, VAR
|
|
323
|
+
- _PARTIAL_SUM_SQ_{col}: SUM(col*col) - used by STD, VAR
|
|
324
|
+
- _PARTIAL_HLL_{col}: HLL state - used by APPROX_COUNT_DISTINCT
|
|
325
|
+
- _PARTIAL_TDIGEST_{col}: T-Digest state - used by APPROX_PERCENTILE
|
|
326
|
+
|
|
327
|
+
This allows sharing columns across aggregation types on the same column.
|
|
328
|
+
|
|
329
|
+
Args:
|
|
330
|
+
partial_type: One of "SUM", "COUNT", "SUM_SQ", "HLL", "TDIGEST", "LAST", "FIRST".
|
|
331
|
+
|
|
332
|
+
Returns:
|
|
333
|
+
Column name used in the tile table (prefixed with _PARTIAL_).
|
|
334
|
+
"""
|
|
335
|
+
return f"_PARTIAL_{partial_type}_{self.source_column.upper()}"
|
|
336
|
+
|
|
337
|
+
def get_sql_column_name(self) -> str:
|
|
338
|
+
"""Get the output column name formatted for SQL.
|
|
339
|
+
|
|
340
|
+
Returns:
|
|
341
|
+
Column name ready for use in SQL. Case-sensitive names are stored
|
|
342
|
+
with quotes (e.g., '"My_Col"'), case-insensitive names are uppercase.
|
|
343
|
+
"""
|
|
344
|
+
return self.output_column
|
|
345
|
+
|
|
346
|
+
def to_dict(self) -> dict[str, Any]:
|
|
347
|
+
"""Convert to a dictionary for JSON serialization."""
|
|
348
|
+
return {
|
|
349
|
+
"function": self.function.value,
|
|
350
|
+
"source_column": self.source_column,
|
|
351
|
+
"window": self.window,
|
|
352
|
+
"output_column": self.output_column,
|
|
353
|
+
"offset": self.offset,
|
|
354
|
+
"params": self.params,
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
@classmethod
|
|
358
|
+
def from_dict(cls, data: dict[str, Any]) -> AggregationSpec:
|
|
359
|
+
"""Create an AggregationSpec from a dictionary."""
|
|
360
|
+
return cls(
|
|
361
|
+
function=AggregationType(data["function"]),
|
|
362
|
+
source_column=data["source_column"],
|
|
363
|
+
window=data["window"],
|
|
364
|
+
output_column=data["output_column"],
|
|
365
|
+
offset=data.get("offset", "0"),
|
|
366
|
+
params=data.get("params", {}),
|
|
367
|
+
)
|