snowflake-ml-python 1.29.0__tar.gz → 1.31.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.29.0 → snowflake_ml_python-1.31.0}/CHANGELOG.md +66 -1
- {snowflake_ml_python-1.29.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.31.0}/PKG-INFO +67 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/file_utils.py +33 -14
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/lineage/lineage_utils.py +1 -0
- snowflake_ml_python-1.31.0/snowflake/ml/_internal/utils/tee.py +85 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_connector.py +1 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +34 -0
- snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/__init__.py +6 -0
- snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/experiment_logger.py +101 -0
- snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/experiment_logging_context.py +13 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/experiment_tracking.py +114 -11
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/__init__.py +2 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/aggregation.py +17 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature_store.py +152 -16
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature_view.py +273 -30
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/tile_sql_generator.py +499 -39
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/__init__.py +1 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/constants.py +1 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/payload_utils.py +41 -36
- snowflake_ml_python-1.31.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +18 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +6 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/stage_utils.py +2 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/decorators.py +2 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/job.py +33 -12
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/job_definition.py +48 -14
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/manager.py +6 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/__init__.py +2 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +4 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/model_version_impl.py +2 -6
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/model_ops.py +5 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/param_utils.py +144 -6
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/service_ops.py +4 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +3 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -17
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +6 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_env/model_env.py +34 -13
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/custom.py +10 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +9 -27
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +98 -4
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +1 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +3 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +1 -3
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +4 -4
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +22 -11
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/core.py +168 -4
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/pandas_handler.py +23 -3
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/utils.py +39 -3
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/custom_model.py +25 -6
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/models/huggingface.py +105 -250
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/models/huggingface_pipeline.py +2 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/stage_file.py +16 -5
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0/snowflake_ml_python.egg-info}/PKG-INFO +67 -2
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/SOURCES.txt +5 -2
- snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -117
- snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/spec_utils.py +0 -22
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/README.md +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/stream_source.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- /snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/types.py → /snowflake_ml_python-1.31.0/snowflake/ml/jobs/_utils/type_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,67 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.31.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* Registry: Fixed custom model handler to explicitly persist `PARTITIONED=False` in model metadata for
|
|
10
|
+
`@inference_api` methods. Previously, custom models using `@inference_api` with `TABLE_FUNCTION` type
|
|
11
|
+
were incorrectly reported as partitioned.
|
|
12
|
+
* Registry: Fixed sklearn and SnowML model handlers to explicitly persist `PARTITIONED=False` metadata for
|
|
13
|
+
the `explain` method, preventing it from being incorrectly reported as partitioned at read time.
|
|
14
|
+
* Registry: Fixed inconsistent `infer_signature` for columns containing NaN values. Previously,
|
|
15
|
+
the inferred dtype (`DOUBLE` vs `INT64`) depended on whether NaN rows survived truncation, causing
|
|
16
|
+
downstream validation failures. Now, the original pandas column dtype is respected during `infer_signature`,
|
|
17
|
+
so columns with mix of integer and `np.nan` or `None` are consistently inferred as `DOUBLE` regardless of NaN position.
|
|
18
|
+
* Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
|
|
19
|
+
were silently coerced instead of raising an error. Parameters are now strictly validated against their
|
|
20
|
+
declared types before inference. This may break code that relied on the silent coercion behavior
|
|
21
|
+
(e.g., `model.run(max_tokens="100")` or `model.run(some_int_param=True)`).
|
|
22
|
+
* ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
|
|
23
|
+
repeatedly without job name collisions; the `generate_suffix` argument has been removed.
|
|
24
|
+
* Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
|
|
25
|
+
whitespace.
|
|
26
|
+
|
|
27
|
+
### Behavior Changes
|
|
28
|
+
|
|
29
|
+
* Registry: Warehouse partitioned model inference no longer includes non-partition input columns (which were always
|
|
30
|
+
NULL) in the output. The output now contains only the model's output columns and the partition column.
|
|
31
|
+
|
|
32
|
+
### Deprecations
|
|
33
|
+
|
|
34
|
+
## 1.30.0
|
|
35
|
+
|
|
36
|
+
### New Features
|
|
37
|
+
|
|
38
|
+
* Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
|
|
39
|
+
persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
|
|
40
|
+
* Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
|
|
41
|
+
Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
|
|
42
|
+
enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
|
|
47
|
+
uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
|
|
48
|
+
* Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
|
|
49
|
+
plain strings as input without needing to specify the signatures in `log_model`.
|
|
50
|
+
The signature can be overridden if the user chooses to.
|
|
51
|
+
|
|
52
|
+
### Behavior Changes
|
|
53
|
+
|
|
54
|
+
* Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
|
|
55
|
+
that supports plain text (string) as input.
|
|
56
|
+
|
|
57
|
+
### Deprecations
|
|
58
|
+
|
|
59
|
+
* Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
|
|
60
|
+
models could not run in warehouse and required an External Access Integration (EAI) with egress
|
|
61
|
+
to Hugging Face hosts. Use remote logging or local download instead — these approaches support
|
|
62
|
+
warehouse execution and store model weights at log time, enabling fully air-gapped services.
|
|
63
|
+
|
|
64
|
+
## 1.29.0 (2026-02-24)
|
|
4
65
|
|
|
5
66
|
### New Features
|
|
6
67
|
|
|
@@ -289,6 +350,10 @@ mv = registry.log_model(
|
|
|
289
350
|
* Registry: Added support for `image-text-to-text` task type in `huggingface.TransformersPipeline`.
|
|
290
351
|
Note: Requires vLLM inference engine while creating the service.
|
|
291
352
|
|
|
353
|
+
* ML Job: Added support for custom command entrypoints. The `entrypoint` parameter now accepts a
|
|
354
|
+
`list[str]` (e.g., `["arctic_training", "run_causal.yml"]`), which is executed directly as a
|
|
355
|
+
command rather than being treated as a Python script.
|
|
356
|
+
|
|
292
357
|
### Bug Fixes
|
|
293
358
|
|
|
294
359
|
### Behavior Changes
|
{snowflake_ml_python-1.29.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.31.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.31.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,68 @@ 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.31.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
### Bug Fixes
|
|
424
|
+
|
|
425
|
+
* Registry: Fixed custom model handler to explicitly persist `PARTITIONED=False` in model metadata for
|
|
426
|
+
`@inference_api` methods. Previously, custom models using `@inference_api` with `TABLE_FUNCTION` type
|
|
427
|
+
were incorrectly reported as partitioned.
|
|
428
|
+
* Registry: Fixed sklearn and SnowML model handlers to explicitly persist `PARTITIONED=False` metadata for
|
|
429
|
+
the `explain` method, preventing it from being incorrectly reported as partitioned at read time.
|
|
430
|
+
* Registry: Fixed inconsistent `infer_signature` for columns containing NaN values. Previously,
|
|
431
|
+
the inferred dtype (`DOUBLE` vs `INT64`) depended on whether NaN rows survived truncation, causing
|
|
432
|
+
downstream validation failures. Now, the original pandas column dtype is respected during `infer_signature`,
|
|
433
|
+
so columns with mix of integer and `np.nan` or `None` are consistently inferred as `DOUBLE` regardless of NaN position.
|
|
434
|
+
* Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
|
|
435
|
+
were silently coerced instead of raising an error. Parameters are now strictly validated against their
|
|
436
|
+
declared types before inference. This may break code that relied on the silent coercion behavior
|
|
437
|
+
(e.g., `model.run(max_tokens="100")` or `model.run(some_int_param=True)`).
|
|
438
|
+
* ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
|
|
439
|
+
repeatedly without job name collisions; the `generate_suffix` argument has been removed.
|
|
440
|
+
* Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
|
|
441
|
+
whitespace.
|
|
442
|
+
|
|
443
|
+
### Behavior Changes
|
|
444
|
+
|
|
445
|
+
* Registry: Warehouse partitioned model inference no longer includes non-partition input columns (which were always
|
|
446
|
+
NULL) in the output. The output now contains only the model's output columns and the partition column.
|
|
447
|
+
|
|
448
|
+
### Deprecations
|
|
449
|
+
|
|
450
|
+
## 1.30.0
|
|
451
|
+
|
|
452
|
+
### New Features
|
|
453
|
+
|
|
454
|
+
* Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
|
|
455
|
+
persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
|
|
456
|
+
* Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
|
|
457
|
+
Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
|
|
458
|
+
enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
|
|
459
|
+
|
|
460
|
+
### Bug Fixes
|
|
461
|
+
|
|
462
|
+
* Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
|
|
463
|
+
uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
|
|
464
|
+
* Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
|
|
465
|
+
plain strings as input without needing to specify the signatures in `log_model`.
|
|
466
|
+
The signature can be overridden if the user chooses to.
|
|
467
|
+
|
|
468
|
+
### Behavior Changes
|
|
469
|
+
|
|
470
|
+
* Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
|
|
471
|
+
that supports plain text (string) as input.
|
|
472
|
+
|
|
473
|
+
### Deprecations
|
|
474
|
+
|
|
475
|
+
* Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
|
|
476
|
+
models could not run in warehouse and required an External Access Integration (EAI) with egress
|
|
477
|
+
to Hugging Face hosts. Use remote logging or local download instead — these approaches support
|
|
478
|
+
warehouse execution and store model weights at log time, enabling fully air-gapped services.
|
|
479
|
+
|
|
480
|
+
## 1.29.0 (2026-02-24)
|
|
420
481
|
|
|
421
482
|
### New Features
|
|
422
483
|
|
|
@@ -705,6 +766,10 @@ mv = registry.log_model(
|
|
|
705
766
|
* Registry: Added support for `image-text-to-text` task type in `huggingface.TransformersPipeline`.
|
|
706
767
|
Note: Requires vLLM inference engine while creating the service.
|
|
707
768
|
|
|
769
|
+
* ML Job: Added support for custom command entrypoints. The `entrypoint` parameter now accepts a
|
|
770
|
+
`list[str]` (e.g., `["arctic_training", "run_causal.yml"]`), which is executed directly as a
|
|
771
|
+
command rather than being treated as a Python script.
|
|
772
|
+
|
|
708
773
|
### Bug Fixes
|
|
709
774
|
|
|
710
775
|
### Behavior Changes
|
{snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/file_utils.py
RENAMED
|
@@ -281,6 +281,38 @@ def _retry_on_sql_error(exception: Exception) -> bool:
|
|
|
281
281
|
return isinstance(exception, snowpark_exceptions.SnowparkSQLException)
|
|
282
282
|
|
|
283
283
|
|
|
284
|
+
def _resolve_stage_dir_path(
|
|
285
|
+
stage_path: Union[pathlib.PurePosixPath, parse.ParseResult],
|
|
286
|
+
relative_path: pathlib.PurePosixPath,
|
|
287
|
+
) -> str:
|
|
288
|
+
"""Resolve the stage directory path for a file upload.
|
|
289
|
+
|
|
290
|
+
Combines the base stage path with the relative file path and returns the
|
|
291
|
+
parent directory. Uses PurePosixPath for cross-platform compatibility
|
|
292
|
+
(PosixPath cannot be instantiated on Windows).
|
|
293
|
+
|
|
294
|
+
Args:
|
|
295
|
+
stage_path: Base stage path, either a PurePosixPath or a parsed URL.
|
|
296
|
+
relative_path: POSIX-style relative path of the file within the local directory.
|
|
297
|
+
|
|
298
|
+
Returns:
|
|
299
|
+
The resolved stage directory path as a string (or unparsed URL).
|
|
300
|
+
"""
|
|
301
|
+
if isinstance(stage_path, parse.ParseResult):
|
|
302
|
+
relative_stage_path = (pathlib.PurePosixPath(stage_path.path) / relative_path).parent
|
|
303
|
+
new_url = parse.ParseResult(
|
|
304
|
+
scheme=stage_path.scheme,
|
|
305
|
+
netloc=stage_path.netloc,
|
|
306
|
+
path=str(relative_stage_path),
|
|
307
|
+
params=stage_path.params,
|
|
308
|
+
query=stage_path.query,
|
|
309
|
+
fragment=stage_path.fragment,
|
|
310
|
+
)
|
|
311
|
+
return parse.urlunparse(new_url)
|
|
312
|
+
else:
|
|
313
|
+
return str((stage_path / relative_path).parent)
|
|
314
|
+
|
|
315
|
+
|
|
284
316
|
def upload_directory_to_stage(
|
|
285
317
|
session: snowpark.Session,
|
|
286
318
|
local_path: pathlib.Path,
|
|
@@ -305,20 +337,7 @@ def upload_directory_to_stage(
|
|
|
305
337
|
for filename in filenames:
|
|
306
338
|
local_file_path = root_path / filename
|
|
307
339
|
relative_path = pathlib.PurePosixPath(local_file_path.relative_to(local_path).as_posix())
|
|
308
|
-
|
|
309
|
-
if isinstance(stage_path, parse.ParseResult):
|
|
310
|
-
relative_stage_path = (pathlib.PosixPath(stage_path.path) / relative_path).parent
|
|
311
|
-
new_url = parse.ParseResult(
|
|
312
|
-
scheme=stage_path.scheme,
|
|
313
|
-
netloc=stage_path.netloc,
|
|
314
|
-
path=str(relative_stage_path),
|
|
315
|
-
params=stage_path.params,
|
|
316
|
-
query=stage_path.query,
|
|
317
|
-
fragment=stage_path.fragment,
|
|
318
|
-
)
|
|
319
|
-
stage_dir_path = parse.urlunparse(new_url)
|
|
320
|
-
else:
|
|
321
|
-
stage_dir_path = str((stage_path / relative_path).parent)
|
|
340
|
+
stage_dir_path = _resolve_stage_dir_path(stage_path, relative_path)
|
|
322
341
|
|
|
323
342
|
retrying.retry(
|
|
324
343
|
retry_on_exception=_retry_on_sql_error,
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import io
|
|
2
|
+
from typing import Any, Iterable, Iterator, Optional, TextIO
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class OutputTee(TextIO):
|
|
6
|
+
"""A class that duplicates string writes to multiple file-like objects."""
|
|
7
|
+
|
|
8
|
+
def __init__(self, *streams: TextIO) -> None:
|
|
9
|
+
"""Initialize the OutputTee with a list of output streams."""
|
|
10
|
+
super().__init__()
|
|
11
|
+
self.streams = streams
|
|
12
|
+
if not self.writable():
|
|
13
|
+
raise ValueError("All inputs to OutputTee must be writable.")
|
|
14
|
+
|
|
15
|
+
def close(self) -> None:
|
|
16
|
+
"""Does not do anything. It is implemented this way because some of the streams may be in use elsewhere.
|
|
17
|
+
It is the responsibility of the caller to close any streams that need to be closed."""
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
def fileno(self) -> int:
|
|
21
|
+
raise io.UnsupportedOperation("OutputTee does not support fileno")
|
|
22
|
+
|
|
23
|
+
def flush(self) -> None:
|
|
24
|
+
"""Flush all streams."""
|
|
25
|
+
for stream in self.streams:
|
|
26
|
+
stream.flush()
|
|
27
|
+
|
|
28
|
+
def isatty(self) -> bool:
|
|
29
|
+
return False
|
|
30
|
+
|
|
31
|
+
def read(self, n: int = -1) -> str:
|
|
32
|
+
raise io.UnsupportedOperation("OutputTee does not support reading")
|
|
33
|
+
|
|
34
|
+
def readable(self) -> bool:
|
|
35
|
+
"""OutputTee is not readable."""
|
|
36
|
+
return False
|
|
37
|
+
|
|
38
|
+
def readline(self, limit: int = -1) -> str:
|
|
39
|
+
raise io.UnsupportedOperation("OutputTee does not support reading")
|
|
40
|
+
|
|
41
|
+
def readlines(self, hint: int = -1) -> list[str]:
|
|
42
|
+
raise io.UnsupportedOperation("OutputTee does not support reading")
|
|
43
|
+
|
|
44
|
+
def seek(self, offset: int, whence: int = 0) -> int:
|
|
45
|
+
raise io.UnsupportedOperation("OutputTee does not support seek")
|
|
46
|
+
|
|
47
|
+
def seekable(self) -> bool:
|
|
48
|
+
"""OutputTee is not seekable."""
|
|
49
|
+
return False
|
|
50
|
+
|
|
51
|
+
def tell(self) -> int:
|
|
52
|
+
raise io.UnsupportedOperation("OutputTee does not support tell")
|
|
53
|
+
|
|
54
|
+
def truncate(self, size: Optional[int] = None) -> int:
|
|
55
|
+
raise io.UnsupportedOperation("OutputTee does not support truncate")
|
|
56
|
+
|
|
57
|
+
def writable(self) -> bool:
|
|
58
|
+
"""OutputTee is writable if and only if all streams are writable."""
|
|
59
|
+
return all(stream.writable() for stream in self.streams)
|
|
60
|
+
|
|
61
|
+
def write(self, data: str) -> int:
|
|
62
|
+
"""Write to all streams."""
|
|
63
|
+
for stream in self.streams:
|
|
64
|
+
stream.write(data)
|
|
65
|
+
return len(data)
|
|
66
|
+
|
|
67
|
+
def writelines(self, lines: Iterable[str]) -> None:
|
|
68
|
+
"""Write lines to all streams."""
|
|
69
|
+
lines_list = list(lines)
|
|
70
|
+
for stream in self.streams:
|
|
71
|
+
stream.writelines(lines_list)
|
|
72
|
+
|
|
73
|
+
def __enter__(self) -> "OutputTee":
|
|
74
|
+
"""Enter context manager."""
|
|
75
|
+
return self
|
|
76
|
+
|
|
77
|
+
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
78
|
+
"""Exit context manager."""
|
|
79
|
+
self.close()
|
|
80
|
+
|
|
81
|
+
def __iter__(self) -> Iterator[str]:
|
|
82
|
+
raise io.UnsupportedOperation("OutputTee does not support reading")
|
|
83
|
+
|
|
84
|
+
def __next__(self) -> str:
|
|
85
|
+
raise io.UnsupportedOperation("OutputTee does not support reading")
|
{snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_connector.py
RENAMED
|
@@ -29,7 +29,7 @@ if TYPE_CHECKING:
|
|
|
29
29
|
|
|
30
30
|
# This module can't actually depend on dataset to avoid a circular dependency
|
|
31
31
|
# Dataset -> DatasetReader -> DataConnector -!-> Dataset
|
|
32
|
-
from snowflake.ml import dataset
|
|
32
|
+
from snowflake.ml import dataset # type: ignore[attr-defined, unused-ignore]
|
|
33
33
|
|
|
34
34
|
_PROJECT = "DataConnector"
|
|
35
35
|
|
|
@@ -40,6 +40,23 @@ class ExperimentTrackingSQLClient(_base._BaseSQLClient):
|
|
|
40
40
|
self._session, f"CREATE EXPERIMENT {if_not_exists_sql} {experiment_fqn}"
|
|
41
41
|
).has_dimensions(expected_rows=1, expected_cols=1).validate()
|
|
42
42
|
|
|
43
|
+
@telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
|
|
44
|
+
def get_experiment_id(
|
|
45
|
+
self,
|
|
46
|
+
experiment_name: sql_identifier.SqlIdentifier,
|
|
47
|
+
) -> int:
|
|
48
|
+
experiment_fqn = self.fully_qualified_object_name(self._database_name, self._schema_name, experiment_name)
|
|
49
|
+
|
|
50
|
+
result = (
|
|
51
|
+
query_result_checker.SqlResultValidator(
|
|
52
|
+
self._session,
|
|
53
|
+
f"CALL SYSTEM$RESOLVE_EXPERIMENT_ID('{experiment_fqn}')",
|
|
54
|
+
)
|
|
55
|
+
.has_dimensions(expected_rows=1, expected_cols=1)
|
|
56
|
+
.validate()
|
|
57
|
+
)
|
|
58
|
+
return int(result[0][0])
|
|
59
|
+
|
|
43
60
|
@telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
|
|
44
61
|
def drop_experiment(
|
|
45
62
|
self,
|
|
@@ -72,6 +89,23 @@ class ExperimentTrackingSQLClient(_base._BaseSQLClient):
|
|
|
72
89
|
self._session, f"ALTER EXPERIMENT {experiment_fqn} COMMIT RUN {run_name}"
|
|
73
90
|
).has_dimensions(expected_rows=1, expected_cols=1).validate()
|
|
74
91
|
|
|
92
|
+
def get_run_id(
|
|
93
|
+
self,
|
|
94
|
+
experiment_name: sql_identifier.SqlIdentifier,
|
|
95
|
+
run_name: sql_identifier.SqlIdentifier,
|
|
96
|
+
) -> int:
|
|
97
|
+
experiment_fqn = self.fully_qualified_object_name(self._database_name, self._schema_name, experiment_name)
|
|
98
|
+
|
|
99
|
+
result = (
|
|
100
|
+
query_result_checker.SqlResultValidator(
|
|
101
|
+
self._session,
|
|
102
|
+
f"CALL SYSTEM$RESOLVE_EXPERIMENT_RUN_ID('{experiment_fqn}', '{run_name}')",
|
|
103
|
+
)
|
|
104
|
+
.has_dimensions(expected_rows=1, expected_cols=1)
|
|
105
|
+
.validate()
|
|
106
|
+
)
|
|
107
|
+
return int(result[0][0])
|
|
108
|
+
|
|
75
109
|
@telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
|
|
76
110
|
def drop_run(
|
|
77
111
|
self, *, experiment_name: sql_identifier.SqlIdentifier, run_name: sql_identifier.SqlIdentifier
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import io
|
|
2
|
+
import json
|
|
3
|
+
import os
|
|
4
|
+
from typing import Any, Iterable, Iterator, TextIO
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ExperimentLogger(TextIO):
|
|
8
|
+
OUTPUT_DIRECTORY = "/var/log/services/external/experiment_tracking"
|
|
9
|
+
|
|
10
|
+
def __init__(
|
|
11
|
+
self,
|
|
12
|
+
exp_id: int,
|
|
13
|
+
run_id: int,
|
|
14
|
+
stream: str,
|
|
15
|
+
) -> None:
|
|
16
|
+
super().__init__()
|
|
17
|
+
filepath = os.path.join(self.OUTPUT_DIRECTORY, str(exp_id), str(run_id), f"{stream}.log")
|
|
18
|
+
os.makedirs(os.path.dirname(filepath), exist_ok=True)
|
|
19
|
+
self.file = open(filepath, "a", buffering=1) # Line buffering
|
|
20
|
+
self.exp_id = exp_id
|
|
21
|
+
self.run_id = run_id
|
|
22
|
+
self.stream = stream
|
|
23
|
+
self._buffer = "" # Buffer to store incomplete lines
|
|
24
|
+
|
|
25
|
+
def _write_line(self, line: str) -> None:
|
|
26
|
+
log_message = {
|
|
27
|
+
"body": line,
|
|
28
|
+
"attributes": {
|
|
29
|
+
"snow.experiment.id": self.exp_id,
|
|
30
|
+
"snow.experiment.run.id": self.run_id,
|
|
31
|
+
"snow.experiment.stream": self.stream,
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
json_data = json.dumps(log_message)
|
|
35
|
+
self.file.write(json_data + "\n")
|
|
36
|
+
|
|
37
|
+
def close(self) -> None:
|
|
38
|
+
self.flush()
|
|
39
|
+
self.file.close()
|
|
40
|
+
|
|
41
|
+
def fileno(self) -> int:
|
|
42
|
+
return self.file.fileno()
|
|
43
|
+
|
|
44
|
+
def flush(self) -> None:
|
|
45
|
+
if self._buffer:
|
|
46
|
+
self._write_line(self._buffer)
|
|
47
|
+
self._buffer = ""
|
|
48
|
+
self.file.flush()
|
|
49
|
+
|
|
50
|
+
def isatty(self) -> bool:
|
|
51
|
+
return False
|
|
52
|
+
|
|
53
|
+
def readable(self) -> bool:
|
|
54
|
+
return False
|
|
55
|
+
|
|
56
|
+
def read(self, n: int = -1) -> str:
|
|
57
|
+
raise io.UnsupportedOperation("read")
|
|
58
|
+
|
|
59
|
+
def readline(self, limit: int = -1) -> str:
|
|
60
|
+
raise io.UnsupportedOperation("readline")
|
|
61
|
+
|
|
62
|
+
def readlines(self, hint: int = -1) -> list[str]:
|
|
63
|
+
raise io.UnsupportedOperation("readlines")
|
|
64
|
+
|
|
65
|
+
def seekable(self) -> bool:
|
|
66
|
+
return False
|
|
67
|
+
|
|
68
|
+
def seek(self, offset: int, whence: int = 0) -> int:
|
|
69
|
+
raise io.UnsupportedOperation("seek")
|
|
70
|
+
|
|
71
|
+
def tell(self) -> int:
|
|
72
|
+
raise io.UnsupportedOperation("tell")
|
|
73
|
+
|
|
74
|
+
def truncate(self, size: int | None = None) -> int:
|
|
75
|
+
raise io.UnsupportedOperation("truncate")
|
|
76
|
+
|
|
77
|
+
def writable(self) -> bool:
|
|
78
|
+
return True
|
|
79
|
+
|
|
80
|
+
def write(self, data: str) -> int:
|
|
81
|
+
self._buffer += data
|
|
82
|
+
while "\n" in self._buffer:
|
|
83
|
+
line, self._buffer = self._buffer.split("\n", 1)
|
|
84
|
+
self._write_line(line)
|
|
85
|
+
return len(data)
|
|
86
|
+
|
|
87
|
+
def writelines(self, lines: Iterable[str]) -> None:
|
|
88
|
+
for line in lines:
|
|
89
|
+
self.write(line)
|
|
90
|
+
|
|
91
|
+
def __enter__(self) -> "ExperimentLogger":
|
|
92
|
+
return self
|
|
93
|
+
|
|
94
|
+
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
95
|
+
self.close()
|
|
96
|
+
|
|
97
|
+
def __iter__(self) -> Iterator[str]:
|
|
98
|
+
raise io.UnsupportedOperation("__iter__")
|
|
99
|
+
|
|
100
|
+
def __next__(self) -> str:
|
|
101
|
+
raise io.UnsupportedOperation("__next__")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import contextlib
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from snowflake.ml._internal.utils import tee
|
|
5
|
+
from snowflake.ml.experiment._logging.experiment_logger import ExperimentLogger
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass(frozen=True)
|
|
9
|
+
class ExperimentLoggingContext:
|
|
10
|
+
stdout_logger: ExperimentLogger
|
|
11
|
+
stderr_logger: ExperimentLogger
|
|
12
|
+
stdout_ctx: contextlib.redirect_stdout[tee.OutputTee]
|
|
13
|
+
stderr_ctx: contextlib.redirect_stderr[tee.OutputTee]
|