snowflake-ml-python 1.28.0__tar.gz → 1.30.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.28.0 → snowflake_ml_python-1.30.0}/CHANGELOG.md +50 -1
- {snowflake_ml_python-1.28.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.30.0}/PKG-INFO +51 -3
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/pyproject.toml +1 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_complete.py +1 -2
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/file_utils.py +33 -14
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/lineage/lineage_utils.py +1 -0
- snowflake_ml_python-1.30.0/snowflake/ml/_internal/utils/tee.py +85 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_connector.py +1 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +34 -0
- snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/__init__.py +6 -0
- snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/experiment_logger.py +90 -0
- snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/experiment_logging_context.py +13 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/experiment_tracking.py +103 -11
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/__init__.py +4 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/aggregation.py +17 -2
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature_store.py +409 -17
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature_view.py +273 -30
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/metadata_manager.py +188 -8
- snowflake_ml_python-1.30.0/snowflake/ml/feature_store/stream_source.py +216 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/tile_sql_generator.py +499 -39
- snowflake_ml_python-1.30.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +18 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +6 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/decorators.py +2 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/job.py +17 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/job_definition.py +5 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/manager.py +6 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/__init__.py +2 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/model_version_impl.py +8 -5
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/param_utils.py +18 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/service_ops.py +1 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/model_version.py +4 -2
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -17
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +1 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +1 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +10 -31
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +141 -6
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +1 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/core.py +134 -6
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/utils.py +20 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/inference_engine.py +1 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/model_signature.py +18 -5
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/models/huggingface.py +105 -250
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/models/huggingface_pipeline.py +2 -2
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/openai_signatures.py +10 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/stage_file.py +16 -5
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0/snowflake_ml_python.egg-info}/PKG-INFO +51 -3
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/SOURCES.txt +5 -1
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/requires.txt +0 -1
- snowflake_ml_python-1.28.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -117
- snowflake_ml_python-1.28.0/snowflake/ml/jobs/_utils/spec_utils.py +0 -22
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/README.md +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/url.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/results.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/batch/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/code_path.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/compute_pool.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/volatility.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,55 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.30.0
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
* Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
|
|
8
|
+
persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
|
|
9
|
+
* Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
|
|
10
|
+
Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
|
|
11
|
+
enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
|
|
16
|
+
uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
|
|
17
|
+
* Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
|
|
18
|
+
plain strings as input without needing to specify the signatures in `log_model`.
|
|
19
|
+
The signature can be overridden if the user chooses to.
|
|
20
|
+
|
|
21
|
+
### Behavior Changes
|
|
22
|
+
|
|
23
|
+
* Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
|
|
24
|
+
that supports plain text (string) as input.
|
|
25
|
+
|
|
26
|
+
### Deprecations
|
|
27
|
+
|
|
28
|
+
* Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
|
|
29
|
+
models could not run in warehouse and required an External Access Integration (EAI) with egress
|
|
30
|
+
to Hugging Face hosts. Use remote logging or local download instead — these approaches support
|
|
31
|
+
warehouse execution and store model weights at log time, enabling fully air-gapped services.
|
|
32
|
+
|
|
33
|
+
## 1.29.0 (2026-02-24)
|
|
34
|
+
|
|
35
|
+
### New Features
|
|
36
|
+
|
|
37
|
+
* Model serving: Introducing `InferenceEngine.PYTHON_GENERIC` enum value.
|
|
38
|
+
Users can pass `InferenceEngine.PYTHON_GENERIC` to use a Python-based inference server for model serving.
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* Registry: Fixed a bug where using inference parameters (ParamSpec) with table function or
|
|
43
|
+
partitioned model methods would fail at runtime with a `NameError`.
|
|
44
|
+
* Registry: Fixed a bug where MLflow models with string columns failed during inference with
|
|
45
|
+
"Can not safely convert string to \<U0\>" errors due to MLflow's schema validation not handling
|
|
46
|
+
`pd.StringDtype` correctly.
|
|
47
|
+
|
|
48
|
+
### Behavior Changes
|
|
49
|
+
|
|
50
|
+
### Deprecations
|
|
51
|
+
|
|
52
|
+
## 1.28.0 (2026-02-17)
|
|
4
53
|
|
|
5
54
|
### New Features
|
|
6
55
|
|
{snowflake_ml_python-1.28.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.30.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.30.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:
|
|
@@ -255,7 +255,6 @@ Requires-Dist: scipy<2,>=1.9
|
|
|
255
255
|
Requires-Dist: shap<1,>=0.46.0
|
|
256
256
|
Requires-Dist: snowflake-connector-python[pandas]<5,>=3.17.3
|
|
257
257
|
Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
|
|
258
|
-
Requires-Dist: snowflake.core<2,>=1.0.2
|
|
259
258
|
Requires-Dist: sqlparse<1,>=0.4
|
|
260
259
|
Requires-Dist: tqdm<5
|
|
261
260
|
Requires-Dist: typing-extensions<5,>=4.1.0
|
|
@@ -417,7 +416,56 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
417
416
|
|
|
418
417
|
# Release History
|
|
419
418
|
|
|
420
|
-
## 1.
|
|
419
|
+
## 1.30.0
|
|
420
|
+
|
|
421
|
+
### New Features
|
|
422
|
+
|
|
423
|
+
* Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
|
|
424
|
+
persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
|
|
425
|
+
* Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
|
|
426
|
+
Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
|
|
427
|
+
enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
|
|
428
|
+
|
|
429
|
+
### Bug Fixes
|
|
430
|
+
|
|
431
|
+
* Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
|
|
432
|
+
uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
|
|
433
|
+
* Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
|
|
434
|
+
plain strings as input without needing to specify the signatures in `log_model`.
|
|
435
|
+
The signature can be overridden if the user chooses to.
|
|
436
|
+
|
|
437
|
+
### Behavior Changes
|
|
438
|
+
|
|
439
|
+
* Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
|
|
440
|
+
that supports plain text (string) as input.
|
|
441
|
+
|
|
442
|
+
### Deprecations
|
|
443
|
+
|
|
444
|
+
* Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
|
|
445
|
+
models could not run in warehouse and required an External Access Integration (EAI) with egress
|
|
446
|
+
to Hugging Face hosts. Use remote logging or local download instead — these approaches support
|
|
447
|
+
warehouse execution and store model weights at log time, enabling fully air-gapped services.
|
|
448
|
+
|
|
449
|
+
## 1.29.0 (2026-02-24)
|
|
450
|
+
|
|
451
|
+
### New Features
|
|
452
|
+
|
|
453
|
+
* Model serving: Introducing `InferenceEngine.PYTHON_GENERIC` enum value.
|
|
454
|
+
Users can pass `InferenceEngine.PYTHON_GENERIC` to use a Python-based inference server for model serving.
|
|
455
|
+
|
|
456
|
+
### Bug Fixes
|
|
457
|
+
|
|
458
|
+
* Registry: Fixed a bug where using inference parameters (ParamSpec) with table function or
|
|
459
|
+
partitioned model methods would fail at runtime with a `NameError`.
|
|
460
|
+
* Registry: Fixed a bug where MLflow models with string columns failed during inference with
|
|
461
|
+
"Can not safely convert string to \<U0\>" errors due to MLflow's schema validation not handling
|
|
462
|
+
`pd.StringDtype` correctly.
|
|
463
|
+
|
|
464
|
+
### Behavior Changes
|
|
465
|
+
|
|
466
|
+
### Deprecations
|
|
467
|
+
|
|
468
|
+
## 1.28.0 (2026-02-17)
|
|
421
469
|
|
|
422
470
|
### New Features
|
|
423
471
|
|
|
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
|
|
|
8
8
|
classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
|
|
9
9
|
requires-python = ">=3.9, <3.14"
|
|
10
10
|
dynamic = [ "version", "readme",]
|
|
11
|
-
dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "
|
|
11
|
+
dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
|
|
12
12
|
[[project.authors]]
|
|
13
13
|
name = "Snowflake, Inc"
|
|
14
14
|
email = "support@snowflake.com"
|
|
@@ -7,7 +7,6 @@ from typing import Any, Callable, Iterator, Optional, TypedDict, Union, cast
|
|
|
7
7
|
from urllib.parse import urlunparse
|
|
8
8
|
|
|
9
9
|
import requests
|
|
10
|
-
from snowflake.core.rest import RESTResponse
|
|
11
10
|
from typing_extensions import NotRequired, deprecated
|
|
12
11
|
|
|
13
12
|
from snowflake import snowpark
|
|
@@ -80,7 +79,7 @@ class MidStreamException(Exception):
|
|
|
80
79
|
def __init__(
|
|
81
80
|
self,
|
|
82
81
|
reason: typing.Optional[str] = None,
|
|
83
|
-
http_resp: typing.Optional[
|
|
82
|
+
http_resp: typing.Optional[Any] = None,
|
|
84
83
|
request_id: typing.Optional[str] = None,
|
|
85
84
|
) -> None:
|
|
86
85
|
message = ""
|
{snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.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.28.0 → snowflake_ml_python-1.30.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,90 @@
|
|
|
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
|
+
|
|
24
|
+
def close(self) -> None:
|
|
25
|
+
self.file.close()
|
|
26
|
+
|
|
27
|
+
def fileno(self) -> int:
|
|
28
|
+
return self.file.fileno()
|
|
29
|
+
|
|
30
|
+
def flush(self) -> None:
|
|
31
|
+
self.file.flush()
|
|
32
|
+
|
|
33
|
+
def isatty(self) -> bool:
|
|
34
|
+
return False
|
|
35
|
+
|
|
36
|
+
def readable(self) -> bool:
|
|
37
|
+
return False
|
|
38
|
+
|
|
39
|
+
def read(self, n: int = -1) -> str:
|
|
40
|
+
raise io.UnsupportedOperation("read")
|
|
41
|
+
|
|
42
|
+
def readline(self, limit: int = -1) -> str:
|
|
43
|
+
raise io.UnsupportedOperation("readline")
|
|
44
|
+
|
|
45
|
+
def readlines(self, hint: int = -1) -> list[str]:
|
|
46
|
+
raise io.UnsupportedOperation("readlines")
|
|
47
|
+
|
|
48
|
+
def seekable(self) -> bool:
|
|
49
|
+
return False
|
|
50
|
+
|
|
51
|
+
def seek(self, offset: int, whence: int = 0) -> int:
|
|
52
|
+
raise io.UnsupportedOperation("seek")
|
|
53
|
+
|
|
54
|
+
def tell(self) -> int:
|
|
55
|
+
raise io.UnsupportedOperation("tell")
|
|
56
|
+
|
|
57
|
+
def truncate(self, size: int | None = None) -> int:
|
|
58
|
+
raise io.UnsupportedOperation("truncate")
|
|
59
|
+
|
|
60
|
+
def writable(self) -> bool:
|
|
61
|
+
return True
|
|
62
|
+
|
|
63
|
+
def write(self, data: str) -> int:
|
|
64
|
+
log_message = {
|
|
65
|
+
"body": data,
|
|
66
|
+
"attributes": {
|
|
67
|
+
"snow.experiment.id": self.exp_id,
|
|
68
|
+
"snow.experiment.run.id": self.run_id,
|
|
69
|
+
"snow.experiment.stream": self.stream,
|
|
70
|
+
},
|
|
71
|
+
}
|
|
72
|
+
json_data = json.dumps(log_message)
|
|
73
|
+
self.file.write(json_data + "\n")
|
|
74
|
+
return len(data) # Return length of input, not JSON output
|
|
75
|
+
|
|
76
|
+
def writelines(self, lines: Iterable[str]) -> None:
|
|
77
|
+
for line in lines:
|
|
78
|
+
self.write(line)
|
|
79
|
+
|
|
80
|
+
def __enter__(self) -> "ExperimentLogger":
|
|
81
|
+
return self
|
|
82
|
+
|
|
83
|
+
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
84
|
+
self.close()
|
|
85
|
+
|
|
86
|
+
def __iter__(self) -> Iterator[str]:
|
|
87
|
+
raise io.UnsupportedOperation("__iter__")
|
|
88
|
+
|
|
89
|
+
def __next__(self) -> str:
|
|
90
|
+
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]
|