snowflake-ml-python 1.25.0__tar.gz → 1.25.1__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.25.0 → snowflake_ml_python-1.25.1}/CHANGELOG.md +6 -0
- {snowflake_ml_python-1.25.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.25.1}/PKG-INFO +7 -1
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/mixins.py +1 -26
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/data_utils.py +8 -8
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/dto_schema.py +7 -52
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/protocols.py +7 -124
- snowflake_ml_python-1.25.1/snowflake/ml/jobs/_interop/utils.py +144 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/constants.py +0 -4
- snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/function_payload_utils.py +43 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/payload_utils.py +40 -6
- snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/runtime_env_utils.py +117 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +27 -204
- snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/spec_utils.py +22 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/decorators.py +22 -17
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/job.py +10 -25
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/job_definition.py +4 -90
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1/snowflake_ml_python.egg-info}/PKG-INFO +7 -1
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/SOURCES.txt +2 -1
- snowflake_ml_python-1.25.0/snowflake/ml/jobs/_interop/utils.py +0 -203
- snowflake_ml_python-1.25.0/snowflake/ml/jobs/_utils/arg_protocol.py +0 -7
- snowflake_ml_python-1.25.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -18
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/README.md +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/pyproject.toml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/setup.cfg +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/huggingface.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/top_level.txt +0 -0
{snowflake_ml_python-1.25.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.25.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.25.
|
|
3
|
+
Version: 1.25.1
|
|
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,12 @@ 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.25.1
|
|
421
|
+
|
|
422
|
+
### Bug Fixes
|
|
423
|
+
|
|
424
|
+
* ML Job: Reverted changes related to the introduction of ML Job Definitions.
|
|
425
|
+
|
|
420
426
|
## 1.25.0
|
|
421
427
|
|
|
422
428
|
### New Features
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/mixins.py
RENAMED
|
@@ -9,7 +9,6 @@ _SESSION_ACCOUNT_KEY = "session$account"
|
|
|
9
9
|
_SESSION_ROLE_KEY = "session$role"
|
|
10
10
|
_SESSION_DATABASE_KEY = "session$database"
|
|
11
11
|
_SESSION_SCHEMA_KEY = "session$schema"
|
|
12
|
-
_SESSION_STATE_ATTR = "_session_state"
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
def _identifiers_match(saved: Optional[str], current: Optional[str]) -> bool:
|
|
@@ -62,7 +61,7 @@ class SerializableSessionMixin:
|
|
|
62
61
|
else:
|
|
63
62
|
self.__dict__.update(state)
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
self._set_session(session_state)
|
|
66
65
|
|
|
67
66
|
def _set_session(self, session_state: _SessionState) -> None:
|
|
68
67
|
|
|
@@ -87,27 +86,3 @@ class SerializableSessionMixin:
|
|
|
87
86
|
),
|
|
88
87
|
),
|
|
89
88
|
)
|
|
90
|
-
|
|
91
|
-
@property
|
|
92
|
-
def session(self) -> Optional[snowpark_session.Session]:
|
|
93
|
-
if _SESSION_KEY not in self.__dict__:
|
|
94
|
-
session_state = getattr(self, _SESSION_STATE_ATTR, None)
|
|
95
|
-
if session_state is not None:
|
|
96
|
-
self._set_session(session_state)
|
|
97
|
-
return self.__dict__.get(_SESSION_KEY)
|
|
98
|
-
|
|
99
|
-
@session.setter
|
|
100
|
-
def session(self, value: Optional[snowpark_session.Session]) -> None:
|
|
101
|
-
self.__dict__[_SESSION_KEY] = value
|
|
102
|
-
|
|
103
|
-
# _getattr__ is only called when an attribute is NOT found through normal lookup.
|
|
104
|
-
# 1. Data descriptors (like @property with setter) from the class hierarchy
|
|
105
|
-
# 2. Instance __dict__ (e.g., self.x = 10)
|
|
106
|
-
# 3. Non-data descriptors (methods, `@property without setter) from the class hierarchy
|
|
107
|
-
# __getattr__ — only called if steps 1-3 all fail
|
|
108
|
-
def __getattr__(self, name: str) -> Any:
|
|
109
|
-
if name == _SESSION_KEY:
|
|
110
|
-
return self.session
|
|
111
|
-
if hasattr(super(), "__getattr__"):
|
|
112
|
-
return super().__getattr__(name) # type: ignore[misc]
|
|
113
|
-
raise AttributeError(f"{type(self).__name__!s} object has no attribute {name!r}")
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/data_utils.py
RENAMED
|
@@ -31,7 +31,7 @@ class StageFileWriter(io.IOBase):
|
|
|
31
31
|
# Only upload if buffer has content and no exception occurred
|
|
32
32
|
if write_contents and self._buffer.tell() > 0:
|
|
33
33
|
self._buffer.seek(0)
|
|
34
|
-
self._session.file.put_stream(self._buffer, self._path
|
|
34
|
+
self._session.file.put_stream(self._buffer, self._path)
|
|
35
35
|
self._buffer.close()
|
|
36
36
|
self._closed = True
|
|
37
37
|
|
|
@@ -84,15 +84,15 @@ class DtoCodec(Protocol):
|
|
|
84
84
|
|
|
85
85
|
@overload
|
|
86
86
|
@staticmethod
|
|
87
|
-
def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.
|
|
87
|
+
def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.ResultDTO:
|
|
88
88
|
...
|
|
89
89
|
|
|
90
90
|
@staticmethod
|
|
91
|
-
def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.
|
|
91
|
+
def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.ResultDTO, dict[str, Any]]:
|
|
92
92
|
pass
|
|
93
93
|
|
|
94
94
|
@staticmethod
|
|
95
|
-
def encode(dto: dto_schema.
|
|
95
|
+
def encode(dto: dto_schema.ResultDTO) -> bytes:
|
|
96
96
|
pass
|
|
97
97
|
|
|
98
98
|
|
|
@@ -104,18 +104,18 @@ class JsonDtoCodec(DtoCodec):
|
|
|
104
104
|
|
|
105
105
|
@overload
|
|
106
106
|
@staticmethod
|
|
107
|
-
def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.
|
|
107
|
+
def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.ResultDTO:
|
|
108
108
|
...
|
|
109
109
|
|
|
110
110
|
@staticmethod
|
|
111
|
-
def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.
|
|
111
|
+
def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.ResultDTO, dict[str, Any]]:
|
|
112
112
|
data = cast(dict[str, Any], json.load(stream))
|
|
113
113
|
if as_dict:
|
|
114
114
|
return data
|
|
115
|
-
return dto_schema.
|
|
115
|
+
return dto_schema.ResultDTO.model_validate(data)
|
|
116
116
|
|
|
117
117
|
@staticmethod
|
|
118
|
-
def encode(dto: dto_schema.
|
|
118
|
+
def encode(dto: dto_schema.ResultDTO) -> bytes:
|
|
119
119
|
# Temporarily extract the value to avoid accidentally applying model_dump() on it
|
|
120
120
|
result_value = dto.value
|
|
121
121
|
dto.value = None # Clear value to avoid serializing it in the model_dump
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/dto_schema.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
from typing import Any,
|
|
1
|
+
from typing import Any, Optional, Union
|
|
2
2
|
|
|
3
|
-
from pydantic import BaseModel,
|
|
4
|
-
from typing_extensions import
|
|
3
|
+
from pydantic import BaseModel, model_validator
|
|
4
|
+
from typing_extensions import NotRequired, TypedDict
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class BinaryManifest(TypedDict):
|
|
@@ -67,47 +67,22 @@ class ExceptionMetadata(ResultMetadata):
|
|
|
67
67
|
traceback: str
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
class
|
|
71
|
-
"""
|
|
72
|
-
Base class for serializable payloads.
|
|
73
|
-
|
|
74
|
-
Args:
|
|
75
|
-
kind: Discriminator field for DTO type dispatch.
|
|
76
|
-
value: The payload value (if JSON-serializable).
|
|
77
|
-
protocol: The protocol used to serialize the payload (if not JSON-serializable).
|
|
78
|
-
"""
|
|
79
|
-
|
|
80
|
-
kind: Literal["base"] = "base"
|
|
81
|
-
value: Optional[Any] = None
|
|
82
|
-
protocol: Optional[ProtocolInfo] = None
|
|
83
|
-
serialize_error: Optional[str] = None
|
|
84
|
-
|
|
85
|
-
@model_validator(mode="before")
|
|
86
|
-
@classmethod
|
|
87
|
-
def validate_fields(cls, data: Any) -> Any:
|
|
88
|
-
"""Ensure at least one of value or protocol keys is specified."""
|
|
89
|
-
if cls is PayloadDTO and isinstance(data, dict):
|
|
90
|
-
required_fields = {"value", "protocol"}
|
|
91
|
-
if not any(field in data for field in required_fields):
|
|
92
|
-
raise ValueError("At least one of 'value' or 'protocol' must be specified")
|
|
93
|
-
return data
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
class ResultDTO(PayloadDTO):
|
|
70
|
+
class ResultDTO(BaseModel):
|
|
97
71
|
"""
|
|
98
72
|
A JSON representation of an execution result.
|
|
99
73
|
|
|
100
74
|
Args:
|
|
101
|
-
kind: Discriminator field for DTO type dispatch.
|
|
102
75
|
success: Whether the execution was successful.
|
|
103
76
|
value: The value of the execution or the exception if the execution failed.
|
|
104
77
|
protocol: The protocol used to serialize the result.
|
|
105
78
|
metadata: The metadata of the result.
|
|
106
79
|
"""
|
|
107
80
|
|
|
108
|
-
kind: Literal["result"] = "result" # type: ignore[assignment]
|
|
109
81
|
success: bool
|
|
82
|
+
value: Optional[Any] = None
|
|
83
|
+
protocol: Optional[ProtocolInfo] = None
|
|
110
84
|
metadata: Optional[Union[ResultMetadata, ExceptionMetadata]] = None
|
|
85
|
+
serialize_error: Optional[str] = None
|
|
111
86
|
|
|
112
87
|
@model_validator(mode="before")
|
|
113
88
|
@classmethod
|
|
@@ -118,23 +93,3 @@ class ResultDTO(PayloadDTO):
|
|
|
118
93
|
if not any(field in data for field in required_fields):
|
|
119
94
|
raise ValueError("At least one of 'value', 'protocol', or 'metadata' must be specified")
|
|
120
95
|
return data
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
def _get_dto_kind(data: Any) -> str:
|
|
124
|
-
"""Extract the 'kind' discriminator from input, defaulting to 'result' for backward compatibility."""
|
|
125
|
-
if isinstance(data, dict):
|
|
126
|
-
kind = data.get("kind", "result")
|
|
127
|
-
else:
|
|
128
|
-
kind = getattr(data, "kind", "result")
|
|
129
|
-
return str(kind)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
AnyResultDTO = Annotated[
|
|
133
|
-
Union[
|
|
134
|
-
Annotated[ResultDTO, Tag("result")],
|
|
135
|
-
Annotated[PayloadDTO, Tag("base")],
|
|
136
|
-
],
|
|
137
|
-
Discriminator(_get_dto_kind),
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
ResultDTOAdapter: TypeAdapter[AnyResultDTO] = TypeAdapter(AnyResultDTO)
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/protocols.py
RENAMED
|
@@ -17,8 +17,6 @@ Condition = Union[type, tuple[type, ...], Callable[[Any], bool], None]
|
|
|
17
17
|
|
|
18
18
|
logger = logging.getLogger(__name__)
|
|
19
19
|
|
|
20
|
-
SESSION_KEY_PREFIX = "session@"
|
|
21
|
-
|
|
22
20
|
|
|
23
21
|
class SerializationError(TypeError):
|
|
24
22
|
"""Exception raised when a serialization protocol fails."""
|
|
@@ -138,10 +136,9 @@ class CloudPickleProtocol(SerializationProtocol):
|
|
|
138
136
|
|
|
139
137
|
def save(self, obj: Any, dest_dir: str, session: Optional[snowpark.Session] = None) -> ProtocolInfo:
|
|
140
138
|
"""Save the object to the destination directory."""
|
|
141
|
-
replaced_obj = self._pack_obj(obj)
|
|
142
139
|
result_path = posixpath.join(dest_dir, self.DEFAULT_PATH)
|
|
143
140
|
with data_utils.open_stream(result_path, "wb", session=session) as f:
|
|
144
|
-
self._backend.dump(
|
|
141
|
+
self._backend.dump(obj, f)
|
|
145
142
|
manifest: BinaryManifest = {"path": result_path}
|
|
146
143
|
return self.protocol_info.with_manifest(manifest)
|
|
147
144
|
|
|
@@ -160,15 +157,12 @@ class CloudPickleProtocol(SerializationProtocol):
|
|
|
160
157
|
payload_manifest = cast(BinaryManifest, payload_info.manifest)
|
|
161
158
|
try:
|
|
162
159
|
if payload_bytes := payload_manifest.get("bytes"):
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
else
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
result = self._backend.load(f)
|
|
170
|
-
|
|
171
|
-
return self._unpack_obj(result, session=session)
|
|
160
|
+
return self._backend.loads(payload_bytes)
|
|
161
|
+
if payload_b64 := payload_manifest.get("base64"):
|
|
162
|
+
return self._backend.loads(base64.b64decode(payload_b64))
|
|
163
|
+
result_path = path_transform(payload_manifest["path"]) if path_transform else payload_manifest["path"]
|
|
164
|
+
with data_utils.open_stream(result_path, "rb", session=session) as f:
|
|
165
|
+
return self._backend.load(f)
|
|
172
166
|
except (
|
|
173
167
|
pickle.UnpicklingError,
|
|
174
168
|
TypeError,
|
|
@@ -179,117 +173,6 @@ class CloudPickleProtocol(SerializationProtocol):
|
|
|
179
173
|
raise error from pickle_error
|
|
180
174
|
raise
|
|
181
175
|
|
|
182
|
-
def _pack_obj(self, obj: Any) -> Any:
|
|
183
|
-
"""Pack objects into JSON-safe dicts using reserved marker keys.
|
|
184
|
-
|
|
185
|
-
Markers:
|
|
186
|
-
- "type@": container type for list/tuple (list or tuple)
|
|
187
|
-
- "#<i>": positional element for list/tuple at index i
|
|
188
|
-
- "session@": placeholder for snowpark.Session values
|
|
189
|
-
- "session@#<i>" for list/tuple entries
|
|
190
|
-
- "session@<key>" for dict entries
|
|
191
|
-
- {"session@": None} for a bare Session object
|
|
192
|
-
|
|
193
|
-
Example:
|
|
194
|
-
obj = {"x": [1, session], "s": session}
|
|
195
|
-
packed = {
|
|
196
|
-
"x": {"type@": list, "#0": 1, "session@#1": None},
|
|
197
|
-
"session@s": None,
|
|
198
|
-
}
|
|
199
|
-
_unpack_obj(packed, session) == obj
|
|
200
|
-
|
|
201
|
-
Args:
|
|
202
|
-
obj: Object to pack into JSON-safe marker dictionaries.
|
|
203
|
-
|
|
204
|
-
Returns:
|
|
205
|
-
Packed representation with markers for session references.
|
|
206
|
-
"""
|
|
207
|
-
arguments: dict[str, Any] = {}
|
|
208
|
-
if isinstance(obj, tuple) or isinstance(obj, list):
|
|
209
|
-
arguments = {"type@": type(obj)}
|
|
210
|
-
for i, arg in enumerate(obj):
|
|
211
|
-
if isinstance(arg, snowpark.Session):
|
|
212
|
-
arguments[f"{SESSION_KEY_PREFIX}#{i}"] = None
|
|
213
|
-
else:
|
|
214
|
-
arguments[f"#{i}"] = self._pack_obj(arg)
|
|
215
|
-
return arguments
|
|
216
|
-
elif isinstance(obj, dict):
|
|
217
|
-
for k, v in obj.items():
|
|
218
|
-
if isinstance(v, snowpark.Session):
|
|
219
|
-
arguments[f"{SESSION_KEY_PREFIX}{k}"] = None
|
|
220
|
-
else:
|
|
221
|
-
arguments[k] = self._pack_obj(v)
|
|
222
|
-
return arguments
|
|
223
|
-
elif isinstance(obj, snowpark.Session):
|
|
224
|
-
# Box session into a dict marker so we can distinguish it from other plain objects.
|
|
225
|
-
arguments[f"{SESSION_KEY_PREFIX}"] = None
|
|
226
|
-
return arguments
|
|
227
|
-
else:
|
|
228
|
-
return obj
|
|
229
|
-
|
|
230
|
-
def _unpack_obj(self, obj: Any, session: Optional[snowpark.Session] = None) -> Any:
|
|
231
|
-
"""Unpack dict markers back into containers and Session references.
|
|
232
|
-
|
|
233
|
-
Markers:
|
|
234
|
-
- "type@": container type for list/tuple (list or tuple)
|
|
235
|
-
- "#<i>": positional element for list/tuple at index i
|
|
236
|
-
- "session@": placeholder for snowpark.Session values
|
|
237
|
-
- "session@#<i>" for list/tuple entries
|
|
238
|
-
- "session@<key>" for dict entries
|
|
239
|
-
- {"session@": None} for a bare Session object
|
|
240
|
-
|
|
241
|
-
Example:
|
|
242
|
-
packed = {
|
|
243
|
-
"x": {"type@": list, "#0": 1, "session@#1": None},
|
|
244
|
-
"session@s": None,
|
|
245
|
-
}
|
|
246
|
-
obj = _unpack_obj(packed, session)
|
|
247
|
-
# obj == {"x": [1, session], "s": session}
|
|
248
|
-
|
|
249
|
-
Args:
|
|
250
|
-
obj: Packed object with marker dictionaries.
|
|
251
|
-
session: Session to inject for session markers.
|
|
252
|
-
|
|
253
|
-
Returns:
|
|
254
|
-
Unpacked object with session references restored.
|
|
255
|
-
"""
|
|
256
|
-
if not isinstance(obj, dict):
|
|
257
|
-
return obj
|
|
258
|
-
elif len(obj) == 1 and SESSION_KEY_PREFIX in obj:
|
|
259
|
-
return session
|
|
260
|
-
else:
|
|
261
|
-
type = obj.get("type@", None)
|
|
262
|
-
# If type is None, we are unpacking a dict
|
|
263
|
-
if type is None:
|
|
264
|
-
result_dict = {}
|
|
265
|
-
for k, v in obj.items():
|
|
266
|
-
if k.startswith(SESSION_KEY_PREFIX):
|
|
267
|
-
result_key = k[len(SESSION_KEY_PREFIX) :]
|
|
268
|
-
result_dict[result_key] = session
|
|
269
|
-
else:
|
|
270
|
-
result_dict[k] = self._unpack_obj(v, session)
|
|
271
|
-
return result_dict
|
|
272
|
-
# If type is not None, we are unpacking a tuple or list
|
|
273
|
-
else:
|
|
274
|
-
indexes = []
|
|
275
|
-
for k, _ in obj.items():
|
|
276
|
-
if "#" in k:
|
|
277
|
-
indexes.append(int(k.split("#")[-1]))
|
|
278
|
-
|
|
279
|
-
if not indexes:
|
|
280
|
-
return tuple() if type is tuple else []
|
|
281
|
-
result_list: list[Any] = [None] * (max(indexes) + 1)
|
|
282
|
-
|
|
283
|
-
for k, v in obj.items():
|
|
284
|
-
if k == "type@":
|
|
285
|
-
continue
|
|
286
|
-
idx = int(k.split("#")[-1])
|
|
287
|
-
if k.startswith(SESSION_KEY_PREFIX):
|
|
288
|
-
result_list[idx] = session
|
|
289
|
-
else:
|
|
290
|
-
result_list[idx] = self._unpack_obj(v, session)
|
|
291
|
-
return tuple(result_list) if type is tuple else result_list
|
|
292
|
-
|
|
293
176
|
|
|
294
177
|
class ArrowTableProtocol(SerializationProtocol):
|
|
295
178
|
"""
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
3
|
+
import traceback
|
|
4
|
+
from pathlib import PurePath
|
|
5
|
+
from typing import Any, Callable, Optional
|
|
6
|
+
|
|
7
|
+
import pydantic
|
|
8
|
+
|
|
9
|
+
from snowflake import snowpark
|
|
10
|
+
from snowflake.ml.jobs._interop import data_utils, exception_utils, legacy, protocols
|
|
11
|
+
from snowflake.ml.jobs._interop.dto_schema import (
|
|
12
|
+
ExceptionMetadata,
|
|
13
|
+
ResultDTO,
|
|
14
|
+
ResultMetadata,
|
|
15
|
+
)
|
|
16
|
+
from snowflake.ml.jobs._interop.results import ExecutionResult, LoadedExecutionResult
|
|
17
|
+
from snowflake.snowpark import exceptions as sp_exceptions
|
|
18
|
+
|
|
19
|
+
DEFAULT_CODEC = data_utils.JsonDtoCodec
|
|
20
|
+
DEFAULT_PROTOCOL = protocols.AutoProtocol()
|
|
21
|
+
DEFAULT_PROTOCOL.try_register_protocol(protocols.CloudPickleProtocol)
|
|
22
|
+
DEFAULT_PROTOCOL.try_register_protocol(protocols.ArrowTableProtocol)
|
|
23
|
+
DEFAULT_PROTOCOL.try_register_protocol(protocols.PandasDataFrameProtocol)
|
|
24
|
+
DEFAULT_PROTOCOL.try_register_protocol(protocols.NumpyArrayProtocol)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
logger = logging.getLogger(__name__)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def save_result(result: ExecutionResult, path: str, session: Optional[snowpark.Session] = None) -> None:
|
|
31
|
+
"""
|
|
32
|
+
Save the result to a file.
|
|
33
|
+
"""
|
|
34
|
+
result_dto = ResultDTO(
|
|
35
|
+
success=result.success,
|
|
36
|
+
value=result.value,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
# Try to encode result directly
|
|
41
|
+
payload = DEFAULT_CODEC.encode(result_dto)
|
|
42
|
+
except TypeError:
|
|
43
|
+
result_dto.value = None # Remove raw value to avoid serialization error
|
|
44
|
+
result_dto.metadata = _get_metadata(result.value) # Add metadata for client fallback on protocol mismatch
|
|
45
|
+
try:
|
|
46
|
+
path_dir = PurePath(path).parent.as_posix()
|
|
47
|
+
protocol_info = DEFAULT_PROTOCOL.save(result.value, path_dir, session=session)
|
|
48
|
+
result_dto.protocol = protocol_info
|
|
49
|
+
|
|
50
|
+
except Exception as e:
|
|
51
|
+
logger.warning(f"Error dumping result value: {repr(e)}")
|
|
52
|
+
result_dto.serialize_error = repr(e)
|
|
53
|
+
|
|
54
|
+
# Encode the modified result DTO
|
|
55
|
+
payload = DEFAULT_CODEC.encode(result_dto)
|
|
56
|
+
|
|
57
|
+
with data_utils.open_stream(path, "wb", session=session) as stream:
|
|
58
|
+
stream.write(payload)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def load_result(
|
|
62
|
+
path: str, session: Optional[snowpark.Session] = None, path_transform: Optional[Callable[[str], str]] = None
|
|
63
|
+
) -> ExecutionResult:
|
|
64
|
+
"""Load the result from a file on a Snowflake stage."""
|
|
65
|
+
try:
|
|
66
|
+
with data_utils.open_stream(path, "r", session=session) as stream:
|
|
67
|
+
# Load the DTO as a dict for easy fallback to legacy loading if necessary
|
|
68
|
+
dto_dict = DEFAULT_CODEC.decode(stream, as_dict=True)
|
|
69
|
+
except UnicodeDecodeError:
|
|
70
|
+
# Path may be a legacy result file (cloudpickle)
|
|
71
|
+
# TODO: Re-use the stream
|
|
72
|
+
assert session is not None
|
|
73
|
+
return legacy.load_legacy_result(session, path)
|
|
74
|
+
|
|
75
|
+
try:
|
|
76
|
+
dto = ResultDTO.model_validate(dto_dict)
|
|
77
|
+
except pydantic.ValidationError as e:
|
|
78
|
+
if "success" in dto_dict:
|
|
79
|
+
assert session is not None
|
|
80
|
+
if path.endswith(".json"):
|
|
81
|
+
path = os.path.splitext(path)[0] + ".pkl"
|
|
82
|
+
return legacy.load_legacy_result(session, path, result_json=dto_dict)
|
|
83
|
+
raise ValueError("Invalid result schema") from e
|
|
84
|
+
|
|
85
|
+
# Try loading data from file using the protocol info
|
|
86
|
+
result_value = None
|
|
87
|
+
data_load_error = None
|
|
88
|
+
if dto.protocol is not None:
|
|
89
|
+
try:
|
|
90
|
+
logger.debug(f"Loading result value with protocol {dto.protocol}")
|
|
91
|
+
result_value = DEFAULT_PROTOCOL.load(dto.protocol, session=session, path_transform=path_transform)
|
|
92
|
+
except sp_exceptions.SnowparkSQLException:
|
|
93
|
+
raise # Data retrieval errors should be bubbled up
|
|
94
|
+
except Exception as e:
|
|
95
|
+
logger.debug(f"Error loading result value with protocol {dto.protocol}: {repr(e)}")
|
|
96
|
+
data_load_error = e
|
|
97
|
+
|
|
98
|
+
# Wrap serialize_error in a TypeError
|
|
99
|
+
if dto.serialize_error:
|
|
100
|
+
serialize_error = TypeError("Original result serialization failed with error: " + dto.serialize_error)
|
|
101
|
+
if data_load_error:
|
|
102
|
+
data_load_error.__context__ = serialize_error
|
|
103
|
+
else:
|
|
104
|
+
data_load_error = serialize_error
|
|
105
|
+
|
|
106
|
+
# Prepare to assemble the final result
|
|
107
|
+
result_value = result_value if result_value is not None else dto.value
|
|
108
|
+
if not dto.success and result_value is None:
|
|
109
|
+
# Try to reconstruct exception from metadata if available
|
|
110
|
+
if isinstance(dto.metadata, ExceptionMetadata):
|
|
111
|
+
logger.debug(f"Reconstructing exception from metadata {dto.metadata}")
|
|
112
|
+
result_value = exception_utils.build_exception(
|
|
113
|
+
type_str=dto.metadata.type,
|
|
114
|
+
message=dto.metadata.message,
|
|
115
|
+
traceback=dto.metadata.traceback,
|
|
116
|
+
original_repr=dto.metadata.repr,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
# Generate a generic error if we still don't have a value,
|
|
120
|
+
# attaching the data load error if any
|
|
121
|
+
if result_value is None:
|
|
122
|
+
result_value = exception_utils.RemoteError("Unknown remote error")
|
|
123
|
+
result_value.__cause__ = data_load_error
|
|
124
|
+
|
|
125
|
+
return LoadedExecutionResult(
|
|
126
|
+
success=dto.success,
|
|
127
|
+
value=result_value,
|
|
128
|
+
load_error=data_load_error,
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def _get_metadata(value: Any) -> ResultMetadata:
|
|
133
|
+
type_name = f"{type(value).__module__}.{type(value).__name__}"
|
|
134
|
+
if isinstance(value, BaseException):
|
|
135
|
+
return ExceptionMetadata(
|
|
136
|
+
type=type_name,
|
|
137
|
+
repr=repr(value),
|
|
138
|
+
message=str(value),
|
|
139
|
+
traceback="".join(traceback.format_tb(value.__traceback__)),
|
|
140
|
+
)
|
|
141
|
+
return ResultMetadata(
|
|
142
|
+
type=type_name,
|
|
143
|
+
repr=repr(value),
|
|
144
|
+
)
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/constants.py
RENAMED
|
@@ -5,7 +5,6 @@ from snowflake.ml.jobs._utils.types import ComputeResources
|
|
|
5
5
|
DEFAULT_CONTAINER_NAME = "main"
|
|
6
6
|
MEMORY_VOLUME_NAME = "dshm"
|
|
7
7
|
STAGE_VOLUME_NAME = "stage-volume"
|
|
8
|
-
RESULT_VOLUME_NAME = "result-volume"
|
|
9
8
|
DEFAULT_PYTHON_VERSION = "3.10"
|
|
10
9
|
|
|
11
10
|
# Environment variables
|
|
@@ -110,6 +109,3 @@ CLOUD_INSTANCE_FAMILIES = {
|
|
|
110
109
|
SnowflakeCloudType.AZURE: AZURE_INSTANCE_FAMILIES,
|
|
111
110
|
SnowflakeCloudType.GCP: GCP_INSTANCE_FAMILIES,
|
|
112
111
|
}
|
|
113
|
-
|
|
114
|
-
# Magic attributes
|
|
115
|
-
IS_MLJOB_REMOTE_ATTR = "_is_mljob_remote_callable"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import inspect
|
|
2
|
+
from typing import Any, Callable, Optional
|
|
3
|
+
|
|
4
|
+
from snowflake import snowpark
|
|
5
|
+
from snowflake.snowpark import context as sp_context
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FunctionPayload:
|
|
9
|
+
def __init__(
|
|
10
|
+
self,
|
|
11
|
+
func: Callable[..., Any],
|
|
12
|
+
session: Optional[snowpark.Session] = None,
|
|
13
|
+
session_argument: str = "",
|
|
14
|
+
*args: Any,
|
|
15
|
+
**kwargs: Any
|
|
16
|
+
) -> None:
|
|
17
|
+
self.function = func
|
|
18
|
+
self.args = args
|
|
19
|
+
self.kwargs = kwargs
|
|
20
|
+
self._session = session
|
|
21
|
+
self._session_argument = session_argument
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def session(self) -> Optional[snowpark.Session]:
|
|
25
|
+
return self._session
|
|
26
|
+
|
|
27
|
+
def __getstate__(self) -> dict[str, Any]:
|
|
28
|
+
"""Customize pickling to exclude session."""
|
|
29
|
+
state = self.__dict__.copy()
|
|
30
|
+
state["_session"] = None
|
|
31
|
+
return state
|
|
32
|
+
|
|
33
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
|
34
|
+
"""Restore session from context during unpickling."""
|
|
35
|
+
self.__dict__.update(state)
|
|
36
|
+
self._session = sp_context.get_active_session()
|
|
37
|
+
|
|
38
|
+
def __call__(self) -> Any:
|
|
39
|
+
sig = inspect.signature(self.function)
|
|
40
|
+
bound = sig.bind_partial(*self.args, **self.kwargs)
|
|
41
|
+
bound.arguments[self._session_argument] = self._session
|
|
42
|
+
|
|
43
|
+
return self.function(*bound.args, **bound.kwargs)
|
{snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/payload_utils.py
RENAMED
|
@@ -17,12 +17,20 @@ import cloudpickle as cp
|
|
|
17
17
|
from packaging import version
|
|
18
18
|
|
|
19
19
|
from snowflake import snowpark
|
|
20
|
-
from snowflake.ml.jobs._utils import
|
|
20
|
+
from snowflake.ml.jobs._utils import (
|
|
21
|
+
constants,
|
|
22
|
+
function_payload_utils,
|
|
23
|
+
query_helper,
|
|
24
|
+
stage_utils,
|
|
25
|
+
types,
|
|
26
|
+
)
|
|
21
27
|
from snowflake.snowpark import exceptions as sp_exceptions
|
|
22
28
|
from snowflake.snowpark._internal import code_generation
|
|
23
29
|
from snowflake.snowpark._internal.utils import zip_file_or_directory_to_stream
|
|
24
30
|
|
|
25
31
|
logger = logging.getLogger(__name__)
|
|
32
|
+
|
|
33
|
+
cp.register_pickle_by_value(function_payload_utils)
|
|
26
34
|
ImportType = Union[str, Path, ModuleType]
|
|
27
35
|
|
|
28
36
|
_SUPPORTED_ARG_TYPES = {str, int, float}
|
|
@@ -553,6 +561,7 @@ class JobPayload:
|
|
|
553
561
|
env_vars = {
|
|
554
562
|
constants.STAGE_MOUNT_PATH_ENV_VAR: constants.STAGE_VOLUME_MOUNT_PATH,
|
|
555
563
|
constants.PAYLOAD_DIR_ENV_VAR: constants.APP_STAGE_SUBPATH,
|
|
564
|
+
constants.RESULT_PATH_ENV_VAR: constants.RESULT_PATH_DEFAULT_VALUE,
|
|
556
565
|
}
|
|
557
566
|
|
|
558
567
|
return types.UploadedPayload(
|
|
@@ -682,9 +691,14 @@ def _generate_param_handler_code(signature: inspect.Signature, output_name: str
|
|
|
682
691
|
return param_code
|
|
683
692
|
|
|
684
693
|
|
|
685
|
-
def generate_python_code(
|
|
694
|
+
def generate_python_code(payload: Callable[..., Any], source_code_display: bool = False) -> str:
|
|
686
695
|
"""Generate an entrypoint script from a Python function."""
|
|
687
696
|
|
|
697
|
+
if isinstance(payload, function_payload_utils.FunctionPayload):
|
|
698
|
+
function = payload.function
|
|
699
|
+
else:
|
|
700
|
+
function = payload
|
|
701
|
+
|
|
688
702
|
signature = inspect.signature(function)
|
|
689
703
|
if any(
|
|
690
704
|
p.kind in {inspect.Parameter.VAR_POSITIONAL, inspect.Parameter.VAR_KEYWORD}
|
|
@@ -697,7 +711,7 @@ def generate_python_code(function: Callable[..., Any], source_code_display: bool
|
|
|
697
711
|
source_code_comment = _generate_source_code_comment(function) if source_code_display else ""
|
|
698
712
|
|
|
699
713
|
arg_dict_name = "kwargs"
|
|
700
|
-
if
|
|
714
|
+
if isinstance(payload, function_payload_utils.FunctionPayload):
|
|
701
715
|
param_code = f"{arg_dict_name} = {{}}"
|
|
702
716
|
else:
|
|
703
717
|
param_code = _generate_param_handler_code(signature, arg_dict_name)
|
|
@@ -707,7 +721,7 @@ import pickle
|
|
|
707
721
|
|
|
708
722
|
try:
|
|
709
723
|
{textwrap.indent(source_code_comment, ' ')}
|
|
710
|
-
{_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(
|
|
724
|
+
{_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(payload).hex()}'))
|
|
711
725
|
except (TypeError, pickle.PickleError):
|
|
712
726
|
if sys.version_info.major != {sys.version_info.major} or sys.version_info.minor != {sys.version_info.minor}:
|
|
713
727
|
raise RuntimeError(
|
|
@@ -733,6 +747,26 @@ if __name__ == '__main__':
|
|
|
733
747
|
"""
|
|
734
748
|
|
|
735
749
|
|
|
750
|
+
def create_function_payload(
|
|
751
|
+
func: Callable[..., Any], *args: Any, **kwargs: Any
|
|
752
|
+
) -> function_payload_utils.FunctionPayload:
|
|
753
|
+
signature = inspect.signature(func)
|
|
754
|
+
bound = signature.bind(*args, **kwargs)
|
|
755
|
+
bound.apply_defaults()
|
|
756
|
+
session_argument = ""
|
|
757
|
+
session = None
|
|
758
|
+
for name, val in list(bound.arguments.items()):
|
|
759
|
+
if isinstance(val, snowpark.Session):
|
|
760
|
+
if session:
|
|
761
|
+
raise TypeError(f"Expected only one Session-type argument, but got both {session_argument} and {name}.")
|
|
762
|
+
session = val
|
|
763
|
+
session_argument = name
|
|
764
|
+
del bound.arguments[name]
|
|
765
|
+
payload = function_payload_utils.FunctionPayload(func, session, session_argument, *bound.args, **bound.kwargs)
|
|
766
|
+
|
|
767
|
+
return payload
|
|
768
|
+
|
|
769
|
+
|
|
736
770
|
def get_payload_name(source: Union[str, Callable[..., Any]], entrypoint: Optional[Union[str, list[str]]] = None) -> str:
|
|
737
771
|
|
|
738
772
|
if entrypoint and isinstance(entrypoint, (list, tuple)):
|
|
@@ -741,7 +775,7 @@ def get_payload_name(source: Union[str, Callable[..., Any]], entrypoint: Optiona
|
|
|
741
775
|
return f"{PurePath(entrypoint).stem}"
|
|
742
776
|
elif source and not callable(source):
|
|
743
777
|
return f"{PurePath(source).stem}"
|
|
744
|
-
elif
|
|
745
|
-
return f"{source.__name__}"
|
|
778
|
+
elif isinstance(source, function_payload_utils.FunctionPayload):
|
|
779
|
+
return f"{source.function.__name__}"
|
|
746
780
|
else:
|
|
747
781
|
return f"{JOB_ID_PREFIX}{str(uuid4()).replace('-', '_').upper()}"
|