snowflake-ml-python 1.34.0__tar.gz → 1.35.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.34.0 → snowflake_ml_python-1.35.0}/CHANGELOG.md +17 -1
- {snowflake_ml_python-1.34.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.35.0}/PKG-INFO +18 -2
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/feature_flags.py +1 -1
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +9 -2
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +20 -4
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/decorators.py +0 -1
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/job_definition.py +31 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/manager.py +0 -3
- snowflake_ml_python-1.35.0/snowflake/ml/model/_client/model/batch_inference_definition.py +226 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_client/model/batch_inference_serialization.py +56 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +4 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/model_version_impl.py +1 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/param_utils.py +77 -3
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/service_ops.py +22 -57
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +4 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +74 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +142 -230
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +90 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +8 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +52 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/speech.py +39 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +65 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/video.py +63 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/vision.py +66 -0
- snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot.py +52 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/core.py +1 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/batch/__init__.py +7 -3
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0/snowflake_ml_python.egg-info}/PKG-INFO +18 -2
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/SOURCES.txt +10 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/README.md +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/tee.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/aggregation.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/request_source.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/models.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/stream_config.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/stream_source.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/job.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/models/huggingface.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/stage_file.py +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.35.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* Registry: Fixed `ParamSpec.from_mlflow_spec` dropping `shape`, which caused shaped scalar params
|
|
10
|
+
(e.g., array of ints) from MLflow to fail validation during model import.
|
|
11
|
+
|
|
12
|
+
### Behavior Changes
|
|
13
|
+
|
|
14
|
+
* ML Jobs: `spec_overrides` now validates container keys and warns when keys other than `name` and `secrets`
|
|
15
|
+
are provided. Additional keys are not officially supported and may not behave as expected.
|
|
16
|
+
|
|
17
|
+
### Deprecations
|
|
18
|
+
|
|
19
|
+
## 1.34.0 (2026-04-08)
|
|
4
20
|
|
|
5
21
|
### New Features
|
|
6
22
|
|
{snowflake_ml_python-1.34.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.35.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.35.0
|
|
4
4
|
Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
|
|
5
5
|
Author-email: "Snowflake, Inc" <support@snowflake.com>
|
|
6
6
|
License:
|
|
@@ -416,7 +416,23 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
416
416
|
|
|
417
417
|
# Release History
|
|
418
418
|
|
|
419
|
-
## 1.
|
|
419
|
+
## 1.35.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
### Bug Fixes
|
|
424
|
+
|
|
425
|
+
* Registry: Fixed `ParamSpec.from_mlflow_spec` dropping `shape`, which caused shaped scalar params
|
|
426
|
+
(e.g., array of ints) from MLflow to fail validation during model import.
|
|
427
|
+
|
|
428
|
+
### Behavior Changes
|
|
429
|
+
|
|
430
|
+
* ML Jobs: `spec_overrides` now validates container keys and warns when keys other than `name` and `secrets`
|
|
431
|
+
are provided. Additional keys are not officially supported and may not behave as expected.
|
|
432
|
+
|
|
433
|
+
### Deprecations
|
|
434
|
+
|
|
435
|
+
## 1.34.0 (2026-04-08)
|
|
420
436
|
|
|
421
437
|
### New Features
|
|
422
438
|
|
{snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/feature_flags.py
RENAMED
|
@@ -129,5 +129,5 @@ class FeatureFlags:
|
|
|
129
129
|
ENABLE_RUNTIME_VERSIONS = _FeatureFlag("MLRS_ENABLE_RUNTIME_VERSIONS", default=True)
|
|
130
130
|
ENABLE_STAGE_MOUNT_V2 = _FeatureFlag(
|
|
131
131
|
"MLRS_ENABLE_STAGE_MOUNT_V2",
|
|
132
|
-
default=
|
|
132
|
+
default=True,
|
|
133
133
|
)
|
|
@@ -38,9 +38,16 @@ def get_first_instance(service_name: str) -> Optional[tuple[str, str, str]]:
|
|
|
38
38
|
Returns:
|
|
39
39
|
tuple[str, str]: A tuple containing (instance_id, ip_address) of the head instance.
|
|
40
40
|
"""
|
|
41
|
-
|
|
41
|
+
try:
|
|
42
|
+
from snowflake import snowpark
|
|
43
|
+
from snowflake.ml._internal.utils.connection_params import SnowflakeLoginOptions
|
|
44
|
+
except ImportError:
|
|
45
|
+
from snowflake.ml.utils.connection_params import SnowflakeLoginOptions
|
|
46
|
+
|
|
47
|
+
config = SnowflakeLoginOptions()
|
|
48
|
+
config["client_session_keep_alive"] = "True"
|
|
49
|
+
session = snowpark.Session.builder.configs(config).create() # noqa: F841
|
|
42
50
|
|
|
43
|
-
session = session_utils.get_session()
|
|
44
51
|
result = session.sql(f"show service instances in service {service_name}").collect()
|
|
45
52
|
|
|
46
53
|
if not result:
|
|
@@ -250,6 +250,25 @@ def save_mljob_result(result_obj: Any, is_error: bool, path: str) -> None:
|
|
|
250
250
|
save_mljob_result_v1(result_obj, is_error, path)
|
|
251
251
|
|
|
252
252
|
|
|
253
|
+
def get_active_ray_nodes() -> list[dict[str, Any]]:
|
|
254
|
+
import ray
|
|
255
|
+
|
|
256
|
+
if not ray.is_initialized():
|
|
257
|
+
ray.init(
|
|
258
|
+
address="auto",
|
|
259
|
+
ignore_reinit_error=True,
|
|
260
|
+
log_to_driver=False,
|
|
261
|
+
logging_level="CRITICAL",
|
|
262
|
+
)
|
|
263
|
+
nodes = ray.nodes()
|
|
264
|
+
alive_nodes = [n for n in nodes if n["Alive"]]
|
|
265
|
+
return alive_nodes
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def get_num_ray_nodes() -> int:
|
|
269
|
+
return len(get_active_ray_nodes())
|
|
270
|
+
|
|
271
|
+
|
|
253
272
|
def wait_for_instances(
|
|
254
273
|
min_instances: int,
|
|
255
274
|
target_instances: int,
|
|
@@ -320,9 +339,6 @@ def wait_for_instances(
|
|
|
320
339
|
# target_instances = 100 => min_wait_time = 19.9
|
|
321
340
|
min_wait_time = min(3 * math.log2(target_instances), timeout / 10) # Clamp to timeout / 10
|
|
322
341
|
|
|
323
|
-
# mljob_launcher runs inside the CR where mlruntime libraries are available, so we can import common_util directly
|
|
324
|
-
from common_utils import common_util as mlrs_util
|
|
325
|
-
|
|
326
342
|
start_time = time.time()
|
|
327
343
|
current_interval = max(min(1, check_interval), 0.1) # Default 1s, minimum 0.1s
|
|
328
344
|
logger.info(
|
|
@@ -333,7 +349,7 @@ def wait_for_instances(
|
|
|
333
349
|
)
|
|
334
350
|
|
|
335
351
|
while (elapsed := time.time() - start_time) < timeout:
|
|
336
|
-
total_nodes =
|
|
352
|
+
total_nodes = get_num_ray_nodes()
|
|
337
353
|
if total_nodes >= target_instances:
|
|
338
354
|
# Best case scenario: target_instances are already available
|
|
339
355
|
logger.info(f"Target instance requirement met: {total_nodes} instances available after {elapsed:.1f}s")
|
|
@@ -44,7 +44,6 @@ def remote(
|
|
|
44
44
|
env_vars (dict): Environment variables to set in container.
|
|
45
45
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
46
46
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
47
|
-
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
48
47
|
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
49
48
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
50
49
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
{snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/job_definition.py
RENAMED
|
@@ -30,6 +30,35 @@ from snowflake.snowpark.exceptions import SnowparkSQLException
|
|
|
30
30
|
|
|
31
31
|
_Args = ParamSpec("_Args")
|
|
32
32
|
_ReturnValue = TypeVar("_ReturnValue")
|
|
33
|
+
|
|
34
|
+
_ALLOWED_CONTAINER_KEYS = {"name", "secrets"}
|
|
35
|
+
_ALLOWED_SPEC_KEYS = {"containers"}
|
|
36
|
+
|
|
37
|
+
logger = logging.getLogger(__name__)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _validate_spec_overrides(spec_overrides: Any) -> None:
|
|
41
|
+
"""Warn if spec_overrides contains keys beyond the officially supported set."""
|
|
42
|
+
spec = spec_overrides.get("spec", {})
|
|
43
|
+
|
|
44
|
+
disallowed_spec_keys = set(spec.keys()) - _ALLOWED_SPEC_KEYS
|
|
45
|
+
if disallowed_spec_keys:
|
|
46
|
+
logger.warning(
|
|
47
|
+
f"'spec_overrides.spec' keys {sorted(disallowed_spec_keys)} are not officially supported. "
|
|
48
|
+
f"Only {sorted(_ALLOWED_SPEC_KEYS)} are recommended. "
|
|
49
|
+
f"Additional keys may work but are not guaranteed — please validate your configuration carefully."
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
for container in spec.get("containers", []):
|
|
53
|
+
disallowed_container_keys = set(container.keys()) - _ALLOWED_CONTAINER_KEYS
|
|
54
|
+
if disallowed_container_keys:
|
|
55
|
+
logger.warning(
|
|
56
|
+
f"'spec_overrides' container keys {sorted(disallowed_container_keys)} are not officially supported. "
|
|
57
|
+
f"Only {sorted(_ALLOWED_CONTAINER_KEYS)} are recommended. "
|
|
58
|
+
f"Additional keys may work but are not guaranteed — please validate your configuration carefully."
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
33
62
|
JOB_ID_PREFIX = "MLJOB_"
|
|
34
63
|
_PROJECT = "MLJob"
|
|
35
64
|
logger = logging.getLogger(__name__)
|
|
@@ -252,6 +281,8 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
|
|
|
252
281
|
external_access_integrations = kwargs.pop("external_access_integrations", None)
|
|
253
282
|
env_vars = kwargs.pop("env_vars", None)
|
|
254
283
|
spec_overrides = kwargs.pop("spec_overrides", None)
|
|
284
|
+
if spec_overrides is not None:
|
|
285
|
+
_validate_spec_overrides(spec_overrides)
|
|
255
286
|
enable_metrics = kwargs.pop("enable_metrics", True)
|
|
256
287
|
query_warehouse = kwargs.pop("query_warehouse", None)
|
|
257
288
|
imports = kwargs.pop("imports", None)
|
|
@@ -222,7 +222,6 @@ def submit_file(
|
|
|
222
222
|
env_vars (dict): Environment variables to set in container.
|
|
223
223
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
224
224
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
225
|
-
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
226
225
|
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
227
226
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
228
227
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
@@ -286,7 +285,6 @@ def submit_directory(
|
|
|
286
285
|
env_vars (dict): Environment variables to set in container.
|
|
287
286
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
288
287
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
289
|
-
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
290
288
|
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
291
289
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
292
290
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
@@ -352,7 +350,6 @@ def submit_from_stage(
|
|
|
352
350
|
env_vars (dict): Environment variables to set in container.
|
|
353
351
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
354
352
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
355
|
-
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
356
353
|
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
357
354
|
runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
|
|
358
355
|
e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
|
|
5
|
+
import yaml
|
|
6
|
+
|
|
7
|
+
from snowflake.ml._internal import telemetry
|
|
8
|
+
from snowflake.ml._internal.utils import identifier, sql_identifier
|
|
9
|
+
from snowflake.ml.model._client.model import (
|
|
10
|
+
batch_inference_serialization,
|
|
11
|
+
batch_inference_specs,
|
|
12
|
+
model_version_impl,
|
|
13
|
+
)
|
|
14
|
+
from snowflake.snowpark import dataframe
|
|
15
|
+
|
|
16
|
+
_TELEMETRY_PROJECT = "MLOps"
|
|
17
|
+
_TELEMETRY_SUBPROJECT = "ModelManagement"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class BatchInferenceDefinition:
|
|
21
|
+
"""Definition for batch inference suitable for use as a DAGTask definition.
|
|
22
|
+
|
|
23
|
+
This class captures the full batch inference configuration and provides a
|
|
24
|
+
``to_sql()`` method that returns the SQL needed to run the batch inference job,
|
|
25
|
+
suitable for use as a ``DAGTask`` definition in Snowflake task graphs.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
@telemetry.send_api_usage_telemetry(
|
|
29
|
+
project=_TELEMETRY_PROJECT,
|
|
30
|
+
subproject=_TELEMETRY_SUBPROJECT,
|
|
31
|
+
func_params_to_log=[
|
|
32
|
+
"compute_pool",
|
|
33
|
+
"input_spec",
|
|
34
|
+
"output_spec",
|
|
35
|
+
"job_spec",
|
|
36
|
+
"inference_engine_options",
|
|
37
|
+
],
|
|
38
|
+
)
|
|
39
|
+
def __init__(
|
|
40
|
+
self,
|
|
41
|
+
*,
|
|
42
|
+
model_version: model_version_impl.ModelVersion,
|
|
43
|
+
X: dataframe.DataFrame,
|
|
44
|
+
compute_pool: str,
|
|
45
|
+
output_spec: batch_inference_specs.OutputSpec,
|
|
46
|
+
input_spec: Optional[batch_inference_specs.InputSpec] = None,
|
|
47
|
+
job_spec: Optional[batch_inference_specs.JobSpec] = None,
|
|
48
|
+
inference_engine_options: Optional[dict[str, Any]] = None,
|
|
49
|
+
) -> None:
|
|
50
|
+
self._fully_qualified_model_name: str = model_version.fully_qualified_model_name
|
|
51
|
+
self._version_name: str = model_version.version_name
|
|
52
|
+
self._compute_pool = compute_pool
|
|
53
|
+
self._output_spec = output_spec
|
|
54
|
+
self._input_spec = input_spec if input_spec is not None else batch_inference_specs.InputSpec()
|
|
55
|
+
self._job_spec = job_spec if job_spec is not None else batch_inference_specs.JobSpec()
|
|
56
|
+
self._inference_engine_options = inference_engine_options
|
|
57
|
+
|
|
58
|
+
# Resolve the inference function the same way as run_batch().
|
|
59
|
+
function_name = job_spec.function_name if (job_spec is not None and job_spec.function_name) else None
|
|
60
|
+
target_function_info = model_version._get_function_info(function_name=function_name)
|
|
61
|
+
self._function_name: str = target_function_info["target_method"]
|
|
62
|
+
|
|
63
|
+
# Serialize DataFrame queries for session-free replay
|
|
64
|
+
self._queries: list[str] = list(X.queries["queries"])
|
|
65
|
+
self._post_actions: list[str] = list(X.queries["post_actions"])
|
|
66
|
+
|
|
67
|
+
@telemetry.send_api_usage_telemetry(
|
|
68
|
+
project=_TELEMETRY_PROJECT,
|
|
69
|
+
subproject=_TELEMETRY_SUBPROJECT,
|
|
70
|
+
)
|
|
71
|
+
def to_sql(self) -> str:
|
|
72
|
+
"""Generate the SQL statement to run a batch inference job.
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
A SQL string suitable for use as a DAGTask definition.
|
|
76
|
+
"""
|
|
77
|
+
self._validate()
|
|
78
|
+
spec_dict = self._build_spec_dict()
|
|
79
|
+
yaml_str = yaml.safe_dump(spec_dict, default_flow_style=False, sort_keys=False)
|
|
80
|
+
# Use dollar-quoted string to avoid escaping issues with single quotes in YAML content
|
|
81
|
+
return f"CALL SYSTEM$DEPLOY_MODEL($${yaml_str}$$)"
|
|
82
|
+
|
|
83
|
+
def _build_spec_dict(self) -> dict[str, Any]:
|
|
84
|
+
"""Construct the full deployment spec dictionary.
|
|
85
|
+
|
|
86
|
+
Raises:
|
|
87
|
+
ValueError: If warehouse is not set in the job spec.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
A dictionary matching the ModelJobDeploymentSpec schema.
|
|
91
|
+
"""
|
|
92
|
+
if self._job_spec.warehouse is None:
|
|
93
|
+
raise ValueError(
|
|
94
|
+
"warehouse must be set in JobSpec for task-based batch inference. "
|
|
95
|
+
"The session warehouse is not available in DAGTask context."
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Model section
|
|
99
|
+
models = [{"name": self._fully_qualified_model_name, "version": self._version_name}]
|
|
100
|
+
|
|
101
|
+
# Parse db.schema from the fully qualified model name for qualifying job names.
|
|
102
|
+
# Use sql_identifier to handle quoted/case-sensitive identifiers correctly.
|
|
103
|
+
db_id, schema_id, _ = sql_identifier.parse_fully_qualified_name(self._fully_qualified_model_name)
|
|
104
|
+
|
|
105
|
+
# TODO: Share job name qualification logic with service_ops.invoke_batch_job_method.
|
|
106
|
+
# Job name handling
|
|
107
|
+
job_name: Optional[str] = None
|
|
108
|
+
name_prefix: Optional[str] = None
|
|
109
|
+
if self._job_spec.job_name is not None:
|
|
110
|
+
parsed_job_db, parsed_job_schema, parsed_job_name = sql_identifier.parse_fully_qualified_name(
|
|
111
|
+
self._job_spec.job_name
|
|
112
|
+
)
|
|
113
|
+
job_db = parsed_job_db or db_id
|
|
114
|
+
job_schema = parsed_job_schema or schema_id
|
|
115
|
+
assert job_db is not None and job_schema is not None
|
|
116
|
+
job_name = identifier.get_schema_level_object_identifier(
|
|
117
|
+
job_db.identifier(), job_schema.identifier(), parsed_job_name.identifier()
|
|
118
|
+
)
|
|
119
|
+
elif self._job_spec.job_name_prefix is not None:
|
|
120
|
+
assert db_id is not None and schema_id is not None
|
|
121
|
+
job_name_prefix_qualified = identifier.get_schema_level_object_identifier(
|
|
122
|
+
db_id.identifier(), schema_id.identifier(), self._job_spec.job_name_prefix + "_"
|
|
123
|
+
)
|
|
124
|
+
name_prefix = job_name_prefix_qualified
|
|
125
|
+
|
|
126
|
+
function_name = self._function_name
|
|
127
|
+
|
|
128
|
+
# Output section
|
|
129
|
+
# TODO(SNOW-3351625): Propagate OutputSpec.mode (save_mode) to the deployment spec
|
|
130
|
+
# so the server can enforce OVERWRITE/ERROR semantics for repeated DAG runs.
|
|
131
|
+
# Currently the mode is only enforced client-side in run_batch() via _enforce_save_mode.
|
|
132
|
+
output_stage = self._output_spec.stage_location
|
|
133
|
+
if not output_stage.endswith("/"):
|
|
134
|
+
output_stage += "/"
|
|
135
|
+
|
|
136
|
+
# Input section
|
|
137
|
+
# TODO(SNOW-3316544): Remove input_stage_location once it's not required.
|
|
138
|
+
input_stage_location = f"{output_stage}_temporary/"
|
|
139
|
+
input_dict: dict[str, Any] = {
|
|
140
|
+
"input_stage_location": input_stage_location,
|
|
141
|
+
"queries": self._queries,
|
|
142
|
+
"post_actions": self._post_actions,
|
|
143
|
+
"input_file_pattern": "*",
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
# Encode params if present
|
|
147
|
+
params_encoded = batch_inference_serialization.encode_params(self._input_spec.params)
|
|
148
|
+
if params_encoded is not None:
|
|
149
|
+
input_dict["params"] = params_encoded
|
|
150
|
+
|
|
151
|
+
# Encode column handling if present
|
|
152
|
+
column_handling_encoded = batch_inference_serialization.encode_column_handling(self._input_spec.column_handling)
|
|
153
|
+
if column_handling_encoded is not None:
|
|
154
|
+
input_dict["column_handling"] = column_handling_encoded
|
|
155
|
+
|
|
156
|
+
if self._input_spec.partition_column is not None:
|
|
157
|
+
input_dict["partition_columns"] = [self._input_spec.partition_column]
|
|
158
|
+
|
|
159
|
+
output_dict: dict[str, Any] = {
|
|
160
|
+
"output_stage_location": output_stage,
|
|
161
|
+
"completion_filename": "_SUCCESS",
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
# Job section
|
|
165
|
+
job_dict: dict[str, Any] = {
|
|
166
|
+
"compute_pool": self._compute_pool,
|
|
167
|
+
"warehouse": self._job_spec.warehouse,
|
|
168
|
+
"function_name": function_name,
|
|
169
|
+
"input": input_dict,
|
|
170
|
+
"output": output_dict,
|
|
171
|
+
"sync": True,
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if job_name is not None:
|
|
175
|
+
job_dict["name"] = job_name
|
|
176
|
+
if name_prefix is not None:
|
|
177
|
+
job_dict["name_prefix"] = name_prefix
|
|
178
|
+
|
|
179
|
+
# Resource fields — only if set
|
|
180
|
+
if self._job_spec.cpu_requests is not None:
|
|
181
|
+
job_dict["cpu"] = self._job_spec.cpu_requests
|
|
182
|
+
if self._job_spec.memory_requests is not None:
|
|
183
|
+
job_dict["memory"] = self._job_spec.memory_requests
|
|
184
|
+
if self._job_spec.gpu_requests is not None:
|
|
185
|
+
job_dict["gpu"] = self._job_spec.gpu_requests
|
|
186
|
+
if self._job_spec.num_workers is not None:
|
|
187
|
+
job_dict["num_workers"] = self._job_spec.num_workers
|
|
188
|
+
if self._job_spec.max_batch_rows is not None:
|
|
189
|
+
job_dict["max_batch_rows"] = self._job_spec.max_batch_rows
|
|
190
|
+
if self._job_spec.replicas is not None:
|
|
191
|
+
job_dict["replicas"] = self._job_spec.replicas
|
|
192
|
+
|
|
193
|
+
# Build the top-level spec
|
|
194
|
+
spec: dict[str, Any] = {
|
|
195
|
+
"models": models,
|
|
196
|
+
"job": job_dict,
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# Inference engine spec OR image build
|
|
200
|
+
if self._inference_engine_options is not None:
|
|
201
|
+
engine = self._inference_engine_options["engine"]
|
|
202
|
+
engine_spec: dict[str, Any] = {"inference_engine_name": engine.value}
|
|
203
|
+
engine_args = self._inference_engine_options.get("engine_args_override")
|
|
204
|
+
if engine_args:
|
|
205
|
+
engine_spec["inference_engine_args"] = engine_args
|
|
206
|
+
job_dict["inference_engine_spec"] = engine_spec
|
|
207
|
+
else:
|
|
208
|
+
image_build: dict[str, Any] = {"compute_pool": self._compute_pool}
|
|
209
|
+
if self._job_spec.image_repo is not None:
|
|
210
|
+
image_build["image_repo"] = self._job_spec.image_repo
|
|
211
|
+
if self._job_spec.force_rebuild:
|
|
212
|
+
image_build["force_rebuild"] = True
|
|
213
|
+
spec["image_build"] = image_build
|
|
214
|
+
|
|
215
|
+
return spec
|
|
216
|
+
|
|
217
|
+
def _validate(self) -> None:
|
|
218
|
+
"""Validate inputs before deployment. No-op for now.
|
|
219
|
+
|
|
220
|
+
Called by to_sql() before generating the deployment spec.
|
|
221
|
+
"""
|
|
222
|
+
# TODO(SNOW-3351625): Implement client-side validation:
|
|
223
|
+
# - GPU compute pool validation if gpu_requests is set
|
|
224
|
+
# - Inference function validation
|
|
225
|
+
# - Input parameter validation
|
|
226
|
+
pass
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import datetime
|
|
3
|
+
import json
|
|
4
|
+
from typing import Any, Optional
|
|
5
|
+
|
|
6
|
+
from pydantic import TypeAdapter
|
|
7
|
+
|
|
8
|
+
from snowflake.ml.model._client.model.batch_inference_specs import ColumnHandlingOptions
|
|
9
|
+
|
|
10
|
+
_UTF8_ENCODING = "utf-8"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def encode_params(params: Optional[dict[str, Any]]) -> Optional[str]:
|
|
14
|
+
"""Encode params dictionary to a base64 string.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
params: Optional dictionary of model inference parameters.
|
|
18
|
+
|
|
19
|
+
Returns:
|
|
20
|
+
Base64 encoded JSON string of the params, or None if input is None.
|
|
21
|
+
"""
|
|
22
|
+
if params is None:
|
|
23
|
+
return None
|
|
24
|
+
|
|
25
|
+
def serialize_value(v: Any) -> Any:
|
|
26
|
+
"""Convert non-JSON-serializable types to JSON-compatible formats."""
|
|
27
|
+
if isinstance(v, bytes):
|
|
28
|
+
return v.hex()
|
|
29
|
+
if isinstance(v, datetime.datetime):
|
|
30
|
+
return v.isoformat()
|
|
31
|
+
if isinstance(v, list):
|
|
32
|
+
return [serialize_value(item) for item in v]
|
|
33
|
+
if isinstance(v, dict):
|
|
34
|
+
return {k: serialize_value(val) for k, val in v.items()}
|
|
35
|
+
return v
|
|
36
|
+
|
|
37
|
+
serializable_params = {k: serialize_value(v) for k, v in params.items()}
|
|
38
|
+
return base64.b64encode(json.dumps(serializable_params).encode(_UTF8_ENCODING)).decode(_UTF8_ENCODING)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def encode_column_handling(
|
|
42
|
+
column_handling: Optional[dict[str, ColumnHandlingOptions]],
|
|
43
|
+
) -> Optional[str]:
|
|
44
|
+
"""Validate and encode column_handling to a base64 string.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
column_handling: Optional dictionary mapping column names to file encoding options.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
Base64 encoded JSON string of the column handling options, or None if input is None.
|
|
51
|
+
"""
|
|
52
|
+
if column_handling is None:
|
|
53
|
+
return None
|
|
54
|
+
adapter = TypeAdapter(dict[str, ColumnHandlingOptions])
|
|
55
|
+
validated_input = adapter.validate_python(column_handling)
|
|
56
|
+
return base64.b64encode(adapter.dump_json(validated_input)).decode(_UTF8_ENCODING)
|
|
@@ -136,6 +136,9 @@ class JobSpec(BaseModel):
|
|
|
136
136
|
string values. Use CPU if None.
|
|
137
137
|
replicas (Optional[int]): Number of SPCS job nodes used for distributed inference.
|
|
138
138
|
If not specified, defaults to 1 replica.
|
|
139
|
+
block (bool): Whether the SPCS batch inference job runs synchronously
|
|
140
|
+
or asynchronously. When True, the call blocks until the job completes. When
|
|
141
|
+
False, the call returns immediately after job creation. Defaults to False.
|
|
139
142
|
|
|
140
143
|
Example:
|
|
141
144
|
>>> job_spec = JobSpec(
|
|
@@ -159,6 +162,7 @@ class JobSpec(BaseModel):
|
|
|
159
162
|
memory_requests: Optional[str] = None
|
|
160
163
|
gpu_requests: Optional[str] = None
|
|
161
164
|
replicas: Optional[int] = None
|
|
165
|
+
block: bool = False
|
|
162
166
|
|
|
163
167
|
@model_validator(mode="after")
|
|
164
168
|
def _validate_job_name_exclusivity(self) -> "JobSpec":
|
|
@@ -845,6 +845,7 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
845
845
|
job_name=job_spec.job_name,
|
|
846
846
|
job_name_prefix=job_spec.job_name_prefix,
|
|
847
847
|
replicas=job_spec.replicas,
|
|
848
|
+
block=job_spec.block,
|
|
848
849
|
# input and output
|
|
849
850
|
input_stage_location=input_stage_location,
|
|
850
851
|
input_file_pattern="*",
|
|
@@ -86,14 +86,88 @@ def _validate_param_group_value(
|
|
|
86
86
|
group_spec: The ParamGroupSpec defining the expected structure.
|
|
87
87
|
value: The user-provided value to validate.
|
|
88
88
|
param_path: Dot-separated path for error messages (e.g., "config.sampling").
|
|
89
|
+
"""
|
|
90
|
+
if value is None:
|
|
91
|
+
return
|
|
92
|
+
|
|
93
|
+
# Shaped groups (e.g. shape=(2,)) represent a list of dicts.
|
|
94
|
+
# Validate by recursively unwrapping list dimensions first,
|
|
95
|
+
# then checking each leaf dict against the spec's children.
|
|
96
|
+
if group_spec.shape is not None:
|
|
97
|
+
_validate_shaped_param_group_value(group_spec, value, param_path, group_spec.shape)
|
|
98
|
+
return
|
|
99
|
+
|
|
100
|
+
# Unshaped groups represent a single dict — validate directly.
|
|
101
|
+
_validate_param_group_dict(group_spec, value, param_path)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def _validate_shaped_param_group_value(
|
|
105
|
+
group_spec: core.ParamGroupSpec,
|
|
106
|
+
value: Any,
|
|
107
|
+
param_path: str,
|
|
108
|
+
remaining_shape: tuple[int, ...],
|
|
109
|
+
) -> None:
|
|
110
|
+
"""Validate a shaped ParamGroupSpec value by unwrapping list dimensions.
|
|
111
|
+
|
|
112
|
+
Each dimension in the shape corresponds to one level of list nesting.
|
|
113
|
+
Once all dimensions are unwrapped, each leaf is validated as a dict.
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
group_spec: The ParamGroupSpec defining the expected structure.
|
|
117
|
+
value: The user-provided value to validate.
|
|
118
|
+
param_path: Path for error messages (e.g., "config.items[0][2]").
|
|
119
|
+
May include both dot-separated segments and bracket indices.
|
|
120
|
+
remaining_shape: Remaining shape dimensions to unwrap.
|
|
89
121
|
|
|
90
122
|
Raises:
|
|
91
|
-
SnowflakeMLException: If the value
|
|
92
|
-
or child values fail type validation.
|
|
123
|
+
SnowflakeMLException: If the value structure doesn't match the shape.
|
|
93
124
|
"""
|
|
94
|
-
|
|
125
|
+
# All shape dimensions consumed — validate the leaf value as a dict.
|
|
126
|
+
if not remaining_shape:
|
|
127
|
+
_validate_param_group_dict(group_spec, value, param_path)
|
|
95
128
|
return
|
|
96
129
|
|
|
130
|
+
# Current dimension expects a list wrapper.
|
|
131
|
+
if not isinstance(value, list):
|
|
132
|
+
raise exceptions.SnowflakeMLException(
|
|
133
|
+
error_code=error_codes.INVALID_ARGUMENT,
|
|
134
|
+
original_exception=ValueError(
|
|
135
|
+
f"Parameter '{param_path}' expected a list (shape={group_spec.shape}), " f"got {type(value).__name__}."
|
|
136
|
+
),
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
# -1 means variable length (skip length check); otherwise enforce exact match.
|
|
140
|
+
expected_len = remaining_shape[0]
|
|
141
|
+
if expected_len != -1 and len(value) != expected_len:
|
|
142
|
+
raise exceptions.SnowflakeMLException(
|
|
143
|
+
error_code=error_codes.INVALID_ARGUMENT,
|
|
144
|
+
original_exception=ValueError(
|
|
145
|
+
f"Parameter '{param_path}' expected length {expected_len}, got {len(value)}."
|
|
146
|
+
),
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# Recurse into each element with the next dimension.
|
|
150
|
+
for i, elem in enumerate(value):
|
|
151
|
+
_validate_shaped_param_group_value(group_spec, elem, f"{param_path}[{i}]", remaining_shape[1:])
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def _validate_param_group_dict(
|
|
155
|
+
group_spec: core.ParamGroupSpec,
|
|
156
|
+
value: Any,
|
|
157
|
+
param_path: str,
|
|
158
|
+
) -> None:
|
|
159
|
+
"""Validate that a value is a dict matching the group spec's children.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
group_spec: The ParamGroupSpec defining the expected structure.
|
|
163
|
+
value: The user-provided value to validate.
|
|
164
|
+
param_path: Dot-separated path for error messages (e.g., "config.sampling").
|
|
165
|
+
|
|
166
|
+
Raises:
|
|
167
|
+
SnowflakeMLException: If the value is not a dict, contains unknown keys,
|
|
168
|
+
non-string keys, duplicate case-insensitive keys, or child values
|
|
169
|
+
fail type validation.
|
|
170
|
+
"""
|
|
97
171
|
if not isinstance(value, dict):
|
|
98
172
|
raise exceptions.SnowflakeMLException(
|
|
99
173
|
error_code=error_codes.INVALID_ARGUMENT,
|