snowflake-ml-python 1.9.0__tar.gz → 1.9.2__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.9.0 → snowflake_ml_python-1.9.2}/CHANGELOG.md +101 -1
- {snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.2}/PKG-INFO +107 -5
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/pyproject.toml +3 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/env_utils.py +44 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/platform_capabilities.py +52 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/type_utils.py +1 -1
- snowflake_ml_python-1.9.2/snowflake/ml/_internal/utils/mixins.py +73 -0
- snowflake_ml_python-1.9.2/snowflake/ml/_internal/utils/service_logger.py +165 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/_internal/arrow_ingestor.py +15 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/data_connector.py +13 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/data_ingestor.py +8 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/torch_utils.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/dataset/dataset.py +2 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/dataset/dataset_reader.py +14 -4
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/__init__.py +3 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +98 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_entities/__init__.py +4 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_entities/experiment.py +10 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_entities/run.py +62 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_entities/run_metadata.py +68 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/_experiment_info.py +63 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/callback.py +121 -0
- snowflake_ml_python-1.9.2/snowflake/ml/experiment/experiment_tracking.py +319 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/constants.py +15 -4
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/payload_utils.py +156 -54
- snowflake_ml_python-1.9.2/snowflake/ml/jobs/_utils/query_helper.py +20 -0
- snowflake_ml_python-1.9.2/snowflake/ml/jobs/_utils/scripts/constants.py +4 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +130 -23
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/spec_utils.py +23 -8
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/stage_utils.py +30 -14
- snowflake_ml_python-1.9.2/snowflake/ml/jobs/_utils/types.py +109 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/job.py +70 -75
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/manager.py +59 -31
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/lineage/lineage_node.py +2 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/model/model_version_impl.py +16 -4
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/ops/service_ops.py +336 -137
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/service/model_deployment_spec.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/service.py +1 -38
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_composer.py +6 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +17 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +1 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +41 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/sklearn.py +9 -5
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +3 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +3 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/pandas_handler.py +3 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/utils.py +4 -0
- snowflake_ml_python-1.9.2/snowflake/ml/model/event_handler.py +117 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/model_signature.py +11 -9
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/models/huggingface_pipeline.py +170 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/framework/base.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/classification.py +14 -14
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/correlation.py +19 -8
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/ranking.py +6 -6
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/regression.py +9 -9
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/explain_visualize.py +12 -5
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/registry/_manager/model_manager.py +32 -15
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/registry/registry.py +48 -80
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2/snowflake_ml_python.egg-info}/PKG-INFO +107 -5
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake_ml_python.egg-info/SOURCES.txt +10 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake_ml_python.egg-info/requires.txt +5 -3
- snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/mixins.py +0 -61
- snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/service_logger.py +0 -63
- snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/query_helper.py +0 -9
- snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/scripts/constants.py +0 -26
- snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/types.py +0 -49
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/README.md +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/setup.cfg +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,91 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
## 1.9.2
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- DataConnector: Fix `self._session` related errors inside Container Runtime.
|
|
8
|
+
- Registry: Fix a bug when trying to pass `None` to array (`pd.dtype('O')`) in signature and pandas data handler.
|
|
9
|
+
|
|
10
|
+
### New Features
|
|
11
|
+
|
|
12
|
+
- Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training
|
|
13
|
+
XGBoost and LightGBM models.
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from snowflake.ml.experiment import ExperimentTracking
|
|
17
|
+
from snowflake.ml.experiment.callback import SnowflakeXgboostCallback, SnowflakeLightgbmCallback
|
|
18
|
+
|
|
19
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
|
20
|
+
|
|
21
|
+
exp.set_experiment("MY_EXPERIMENT")
|
|
22
|
+
|
|
23
|
+
# XGBoost
|
|
24
|
+
callback = SnowflakeXgboostCallback(
|
|
25
|
+
exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
|
|
26
|
+
)
|
|
27
|
+
model = XGBClassifier(callbacks=[callback])
|
|
28
|
+
with exp.start_run():
|
|
29
|
+
model.fit(X, y, eval_set=[(X_test, y_test)])
|
|
30
|
+
|
|
31
|
+
# LightGBM
|
|
32
|
+
callback = SnowflakeLightgbmCallback(
|
|
33
|
+
exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
|
|
34
|
+
)
|
|
35
|
+
model = LGBMClassifier()
|
|
36
|
+
with exp.start_run():
|
|
37
|
+
model.fit(X, y, eval_set=[(X_test, y_test)], callbacks=[callback])
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 1.9.1 (07-18-2025)
|
|
41
|
+
|
|
42
|
+
### Bug Fixes
|
|
43
|
+
|
|
44
|
+
- Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
|
|
45
|
+
The handler picks the first EOS token as PAD token now.
|
|
46
|
+
|
|
47
|
+
### New Features
|
|
48
|
+
|
|
49
|
+
- DataConnector: DataConnector objects can now be pickled
|
|
50
|
+
- Dataset: Dataset objects can now be pickled
|
|
51
|
+
- Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
|
|
52
|
+
which creates a service to log a HF model and upon successful logging, an inference service is created.
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from snowflake.ml.model.models import huggingface_pipeline
|
|
56
|
+
|
|
57
|
+
hf_model_ref = huggingface_pipeline.HuggingFacePipelineModel(
|
|
58
|
+
model="gpt2",
|
|
59
|
+
task="text-generation", # Optional
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
hf_model_ref.create_service(
|
|
64
|
+
session=session,
|
|
65
|
+
service_name="test_service",
|
|
66
|
+
service_compute_pool="test_compute_pool",
|
|
67
|
+
image_repo="test_repo",
|
|
68
|
+
...
|
|
69
|
+
)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
from snowflake.ml.experiment import ExperimentTracking
|
|
76
|
+
|
|
77
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
|
78
|
+
|
|
79
|
+
exp.set_experiment("MY_EXPERIMENT")
|
|
80
|
+
|
|
81
|
+
with exp.start_run():
|
|
82
|
+
exp.log_param("batch_size", 32)
|
|
83
|
+
exp.log_metrics("accuracy", 0.98, step=10)
|
|
84
|
+
exp.log_model(my_model, model_name="MY_MODEL")
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- Registry: Added support for wide input (500+ features) for inference done using SPCS
|
|
88
|
+
|
|
3
89
|
## 1.9.0
|
|
4
90
|
|
|
5
91
|
### Bug Fixes
|
|
@@ -7,6 +93,19 @@
|
|
|
7
93
|
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
|
8
94
|
parameter is enabled
|
|
9
95
|
- Registry: Fixed duplicate UserWarning logs during model packaging
|
|
96
|
+
- Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
|
|
97
|
+
is assigned to the tokenizer.
|
|
98
|
+
|
|
99
|
+
```shell
|
|
100
|
+
{% for message in messages %}
|
|
101
|
+
{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}
|
|
102
|
+
{% endfor %}
|
|
103
|
+
{% if add_generation_prompt %}
|
|
104
|
+
{{ '<|im_start|>assistant\n' }}
|
|
105
|
+
{% endif %}"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
- Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
|
|
10
109
|
|
|
11
110
|
### Behavior Changes
|
|
12
111
|
|
|
@@ -116,7 +215,8 @@
|
|
|
116
215
|
- Pre-created Snowpark Session is now available inside job payloads using
|
|
117
216
|
`snowflake.snowpark.context.get_active_session()`
|
|
118
217
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
|
119
|
-
|
|
218
|
+
Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
|
|
219
|
+
This is useful when the default temporary directory has space limitations.
|
|
120
220
|
|
|
121
221
|
```python
|
|
122
222
|
reg.log_model(
|
{snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.2
|
|
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:
|
|
@@ -240,9 +240,10 @@ Requires-Dist: cloudpickle>=2.0.0
|
|
|
240
240
|
Requires-Dist: cryptography
|
|
241
241
|
Requires-Dist: fsspec[http]<2026,>=2024.6.1
|
|
242
242
|
Requires-Dist: importlib_resources<7,>=6.1.1
|
|
243
|
-
Requires-Dist: numpy<
|
|
243
|
+
Requires-Dist: numpy<3,>=1.23
|
|
244
244
|
Requires-Dist: packaging<25,>=20.9
|
|
245
245
|
Requires-Dist: pandas<3,>=2.1.4
|
|
246
|
+
Requires-Dist: platformdirs<5
|
|
246
247
|
Requires-Dist: pyarrow
|
|
247
248
|
Requires-Dist: pydantic<3,>=2.8.2
|
|
248
249
|
Requires-Dist: pyjwt<3,>=2.0.0
|
|
@@ -257,6 +258,7 @@ Requires-Dist: snowflake-connector-python[pandas]<4,>=3.15.0
|
|
|
257
258
|
Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
|
|
258
259
|
Requires-Dist: snowflake.core<2,>=1.0.2
|
|
259
260
|
Requires-Dist: sqlparse<1,>=0.4
|
|
261
|
+
Requires-Dist: tqdm<5
|
|
260
262
|
Requires-Dist: typing-extensions<5,>=4.1.0
|
|
261
263
|
Requires-Dist: xgboost<3,>=1.7.3
|
|
262
264
|
Provides-Extra: all
|
|
@@ -272,7 +274,7 @@ Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
|
|
|
272
274
|
Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
|
|
273
275
|
Requires-Dist: torch<3,>=2.0.1; extra == "all"
|
|
274
276
|
Requires-Dist: torchdata<1,>=0.4; extra == "all"
|
|
275
|
-
Requires-Dist: transformers
|
|
277
|
+
Requires-Dist: transformers!=4.51.3,<5,>=4.39.3; extra == "all"
|
|
276
278
|
Provides-Extra: altair
|
|
277
279
|
Requires-Dist: altair<6,>=5; extra == "altair"
|
|
278
280
|
Provides-Extra: catboost
|
|
@@ -297,7 +299,7 @@ Requires-Dist: sentence-transformers<4,>=2.7.0; extra == "transformers"
|
|
|
297
299
|
Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
|
|
298
300
|
Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
|
|
299
301
|
Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
|
|
300
|
-
Requires-Dist: transformers
|
|
302
|
+
Requires-Dist: transformers!=4.51.3,<5,>=4.39.3; extra == "transformers"
|
|
301
303
|
Dynamic: license-file
|
|
302
304
|
|
|
303
305
|
# Snowpark ML
|
|
@@ -408,6 +410,92 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
408
410
|
|
|
409
411
|
# Release History
|
|
410
412
|
|
|
413
|
+
## 1.9.2
|
|
414
|
+
|
|
415
|
+
### Bug Fixes
|
|
416
|
+
|
|
417
|
+
- DataConnector: Fix `self._session` related errors inside Container Runtime.
|
|
418
|
+
- Registry: Fix a bug when trying to pass `None` to array (`pd.dtype('O')`) in signature and pandas data handler.
|
|
419
|
+
|
|
420
|
+
### New Features
|
|
421
|
+
|
|
422
|
+
- Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training
|
|
423
|
+
XGBoost and LightGBM models.
|
|
424
|
+
|
|
425
|
+
```python
|
|
426
|
+
from snowflake.ml.experiment import ExperimentTracking
|
|
427
|
+
from snowflake.ml.experiment.callback import SnowflakeXgboostCallback, SnowflakeLightgbmCallback
|
|
428
|
+
|
|
429
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
|
430
|
+
|
|
431
|
+
exp.set_experiment("MY_EXPERIMENT")
|
|
432
|
+
|
|
433
|
+
# XGBoost
|
|
434
|
+
callback = SnowflakeXgboostCallback(
|
|
435
|
+
exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
|
|
436
|
+
)
|
|
437
|
+
model = XGBClassifier(callbacks=[callback])
|
|
438
|
+
with exp.start_run():
|
|
439
|
+
model.fit(X, y, eval_set=[(X_test, y_test)])
|
|
440
|
+
|
|
441
|
+
# LightGBM
|
|
442
|
+
callback = SnowflakeLightgbmCallback(
|
|
443
|
+
exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
|
|
444
|
+
)
|
|
445
|
+
model = LGBMClassifier()
|
|
446
|
+
with exp.start_run():
|
|
447
|
+
model.fit(X, y, eval_set=[(X_test, y_test)], callbacks=[callback])
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
## 1.9.1 (07-18-2025)
|
|
451
|
+
|
|
452
|
+
### Bug Fixes
|
|
453
|
+
|
|
454
|
+
- Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
|
|
455
|
+
The handler picks the first EOS token as PAD token now.
|
|
456
|
+
|
|
457
|
+
### New Features
|
|
458
|
+
|
|
459
|
+
- DataConnector: DataConnector objects can now be pickled
|
|
460
|
+
- Dataset: Dataset objects can now be pickled
|
|
461
|
+
- Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
|
|
462
|
+
which creates a service to log a HF model and upon successful logging, an inference service is created.
|
|
463
|
+
|
|
464
|
+
```python
|
|
465
|
+
from snowflake.ml.model.models import huggingface_pipeline
|
|
466
|
+
|
|
467
|
+
hf_model_ref = huggingface_pipeline.HuggingFacePipelineModel(
|
|
468
|
+
model="gpt2",
|
|
469
|
+
task="text-generation", # Optional
|
|
470
|
+
)
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
hf_model_ref.create_service(
|
|
474
|
+
session=session,
|
|
475
|
+
service_name="test_service",
|
|
476
|
+
service_compute_pool="test_compute_pool",
|
|
477
|
+
image_repo="test_repo",
|
|
478
|
+
...
|
|
479
|
+
)
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
- Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
|
|
483
|
+
|
|
484
|
+
```python
|
|
485
|
+
from snowflake.ml.experiment import ExperimentTracking
|
|
486
|
+
|
|
487
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
|
488
|
+
|
|
489
|
+
exp.set_experiment("MY_EXPERIMENT")
|
|
490
|
+
|
|
491
|
+
with exp.start_run():
|
|
492
|
+
exp.log_param("batch_size", 32)
|
|
493
|
+
exp.log_metrics("accuracy", 0.98, step=10)
|
|
494
|
+
exp.log_model(my_model, model_name="MY_MODEL")
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
- Registry: Added support for wide input (500+ features) for inference done using SPCS
|
|
498
|
+
|
|
411
499
|
## 1.9.0
|
|
412
500
|
|
|
413
501
|
### Bug Fixes
|
|
@@ -415,6 +503,19 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
415
503
|
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
|
416
504
|
parameter is enabled
|
|
417
505
|
- Registry: Fixed duplicate UserWarning logs during model packaging
|
|
506
|
+
- Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
|
|
507
|
+
is assigned to the tokenizer.
|
|
508
|
+
|
|
509
|
+
```shell
|
|
510
|
+
{% for message in messages %}
|
|
511
|
+
{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}
|
|
512
|
+
{% endfor %}
|
|
513
|
+
{% if add_generation_prompt %}
|
|
514
|
+
{{ '<|im_start|>assistant\n' }}
|
|
515
|
+
{% endif %}"
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
- Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
|
|
418
519
|
|
|
419
520
|
### Behavior Changes
|
|
420
521
|
|
|
@@ -524,7 +625,8 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
524
625
|
- Pre-created Snowpark Session is now available inside job payloads using
|
|
525
626
|
`snowflake.snowpark.context.get_active_session()`
|
|
526
627
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
|
527
|
-
|
|
628
|
+
Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
|
|
629
|
+
This is useful when the default temporary directory has space limitations.
|
|
528
630
|
|
|
529
631
|
```python
|
|
530
632
|
reg.log_model(
|
|
@@ -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.13"
|
|
10
10
|
dynamic = [ "version", "readme",]
|
|
11
|
-
dependencies = [ "absl-py>=0.15,<2", "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,<
|
|
11
|
+
dependencies = [ "absl-py>=0.15,<2", "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,<25", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow", "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.6", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.15.0,<4", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "snowflake.core>=1.0.2,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
|
|
12
12
|
[[project.authors]]
|
|
13
13
|
name = "Snowflake, Inc"
|
|
14
14
|
email = "support@snowflake.com"
|
|
@@ -24,7 +24,7 @@ Issues = "https://github.com/snowflakedb/snowflake-ml-python/issues"
|
|
|
24
24
|
Changelog = "https://github.com/snowflakedb/snowflake-ml-python/blob/master/CHANGELOG.md"
|
|
25
25
|
|
|
26
26
|
[project.optional-dependencies]
|
|
27
|
-
all = [ "altair>=5,<6", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "streamlit>=1.30.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,<5",]
|
|
27
|
+
all = [ "altair>=5,<6", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "streamlit>=1.30.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,<5,!=4.51.3",]
|
|
28
28
|
altair = [ "altair>=5,<6",]
|
|
29
29
|
catboost = [ "catboost>=1.2.0, <2",]
|
|
30
30
|
keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
|
|
@@ -33,7 +33,7 @@ mlflow = [ "mlflow>=2.16.0, <3",]
|
|
|
33
33
|
streamlit = [ "streamlit>=1.30.0,<2",]
|
|
34
34
|
tensorflow = [ "tensorflow>=2.17.0,<3",]
|
|
35
35
|
torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
|
|
36
|
-
transformers = [ "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,<5",]
|
|
36
|
+
transformers = [ "sentence-transformers>=2.7.0,<4", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,<5,!=4.51.3",]
|
|
37
37
|
|
|
38
38
|
[tool.setuptools.package-data]
|
|
39
39
|
"*" = [ "*",]
|
|
@@ -337,13 +337,54 @@ def get_package_spec_with_supported_ops_only(req: requirements.Requirement) -> r
|
|
|
337
337
|
Returns:
|
|
338
338
|
A requirements.Requirement object with supported ops only
|
|
339
339
|
"""
|
|
340
|
+
|
|
341
|
+
if req.name == "numpy":
|
|
342
|
+
import numpy as np
|
|
343
|
+
|
|
344
|
+
package_specifiers = get_numpy_specifiers(req, version.Version(np.__version__).major)
|
|
345
|
+
else:
|
|
346
|
+
package_specifiers = [spec for spec in req.specifier if spec.operator in _SUPPORTED_PACKAGE_SPEC_OPS]
|
|
347
|
+
|
|
340
348
|
new_req = copy.deepcopy(req)
|
|
341
|
-
new_req.specifier = specifiers.SpecifierSet(
|
|
342
|
-
specifiers=",".join([str(spec) for spec in req.specifier if spec.operator in _SUPPORTED_PACKAGE_SPEC_OPS])
|
|
343
|
-
)
|
|
349
|
+
new_req.specifier = specifiers.SpecifierSet(specifiers=",".join([str(spec) for spec in package_specifiers]))
|
|
344
350
|
return new_req
|
|
345
351
|
|
|
346
352
|
|
|
353
|
+
def get_numpy_specifiers(
|
|
354
|
+
req: requirements.Requirement,
|
|
355
|
+
client_numpy_major_version: int,
|
|
356
|
+
) -> list[specifiers.Specifier]:
|
|
357
|
+
"""Get the package spec with supported ops only including ==, >=, <=, > and < based on the client numpy
|
|
358
|
+
major version.
|
|
359
|
+
|
|
360
|
+
Args:
|
|
361
|
+
req: A requirements.Requirement object showing the requirement.
|
|
362
|
+
client_numpy_major_version: The major version of numpy to be used.
|
|
363
|
+
|
|
364
|
+
Returns:
|
|
365
|
+
A list of specifiers with supported ops only
|
|
366
|
+
"""
|
|
367
|
+
req_specifiers = []
|
|
368
|
+
for org_spec in req.specifier:
|
|
369
|
+
# check specifier that provides upper bound
|
|
370
|
+
if org_spec.operator in ["<", "<="]:
|
|
371
|
+
client_version = version.Version(str(client_numpy_major_version))
|
|
372
|
+
org_spec_version = version.Version(org_spec.version)
|
|
373
|
+
# check if the client's numpy major version is less than the specifier's upper bound
|
|
374
|
+
# if so, pin to max possible client major version
|
|
375
|
+
if client_version.major < org_spec_version.major:
|
|
376
|
+
modified_spec = specifiers.Specifier(f"<{client_version.major + 1}")
|
|
377
|
+
req_specifiers.append(modified_spec)
|
|
378
|
+
else:
|
|
379
|
+
# use the original specifier
|
|
380
|
+
req_specifiers.append(org_spec)
|
|
381
|
+
else:
|
|
382
|
+
# use the original specifier
|
|
383
|
+
req_specifiers.append(org_spec)
|
|
384
|
+
|
|
385
|
+
return req_specifiers
|
|
386
|
+
|
|
387
|
+
|
|
347
388
|
def _relax_specifier_set(
|
|
348
389
|
specifier_set: specifiers.SpecifierSet, strategy: relax_version_strategy.RelaxVersionStrategy
|
|
349
390
|
) -> specifiers.SpecifierSet:
|
|
@@ -3,7 +3,9 @@ from contextlib import contextmanager
|
|
|
3
3
|
from typing import Any, Optional
|
|
4
4
|
|
|
5
5
|
from absl import logging
|
|
6
|
+
from packaging import version
|
|
6
7
|
|
|
8
|
+
from snowflake.ml import version as snowml_version
|
|
7
9
|
from snowflake.ml._internal.exceptions import error_codes, exceptions
|
|
8
10
|
from snowflake.ml._internal.utils import query_result_checker
|
|
9
11
|
from snowflake.snowpark import (
|
|
@@ -12,7 +14,7 @@ from snowflake.snowpark import (
|
|
|
12
14
|
)
|
|
13
15
|
|
|
14
16
|
LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
|
|
15
|
-
INLINE_DEPLOYMENT_SPEC_PARAMETER = "
|
|
17
|
+
INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
class PlatformCapabilities:
|
|
@@ -67,7 +69,7 @@ class PlatformCapabilities:
|
|
|
67
69
|
cls.clear_mock_features()
|
|
68
70
|
|
|
69
71
|
def is_inlined_deployment_spec_enabled(self) -> bool:
|
|
70
|
-
return self.
|
|
72
|
+
return self._is_version_feature_enabled(INLINE_DEPLOYMENT_SPEC_PARAMETER)
|
|
71
73
|
|
|
72
74
|
def is_live_commit_enabled(self) -> bool:
|
|
73
75
|
return self._get_bool_feature(LIVE_COMMIT_PARAMETER, False)
|
|
@@ -126,3 +128,51 @@ class PlatformCapabilities:
|
|
|
126
128
|
else:
|
|
127
129
|
raise ValueError(f"Invalid boolean string: {value} for feature {feature_name}")
|
|
128
130
|
raise ValueError(f"Invalid boolean feature value: {value} for feature {feature_name}")
|
|
131
|
+
|
|
132
|
+
def _get_version_feature(self, feature_name: str) -> version.Version:
|
|
133
|
+
"""Get a version feature value, returning a large version number on failure or missing feature.
|
|
134
|
+
|
|
135
|
+
Args:
|
|
136
|
+
feature_name: The name of the feature to retrieve.
|
|
137
|
+
|
|
138
|
+
Returns:
|
|
139
|
+
version.Version: The parsed version, or a large version number (999.999.999) if parsing fails
|
|
140
|
+
or the feature is missing.
|
|
141
|
+
"""
|
|
142
|
+
# Large version number to use as fallback
|
|
143
|
+
large_version = version.Version("999.999.999")
|
|
144
|
+
|
|
145
|
+
value = self.features.get(feature_name)
|
|
146
|
+
if value is None:
|
|
147
|
+
logging.debug(f"Feature {feature_name} not found, returning large version number")
|
|
148
|
+
return large_version
|
|
149
|
+
|
|
150
|
+
try:
|
|
151
|
+
# Convert to string if it's not already
|
|
152
|
+
version_str = str(value)
|
|
153
|
+
return version.Version(version_str)
|
|
154
|
+
except (version.InvalidVersion, ValueError, TypeError) as e:
|
|
155
|
+
logging.debug(
|
|
156
|
+
f"Failed to parse version from feature {feature_name} with value '{value}': {e}. "
|
|
157
|
+
f"Returning large version number"
|
|
158
|
+
)
|
|
159
|
+
return large_version
|
|
160
|
+
|
|
161
|
+
def _is_version_feature_enabled(self, feature_name: str) -> bool:
|
|
162
|
+
"""Check if the current package version is greater than or equal to the version feature.
|
|
163
|
+
|
|
164
|
+
Args:
|
|
165
|
+
feature_name: The name of the version feature to compare against.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
bool: True if current package version >= feature version, False otherwise.
|
|
169
|
+
"""
|
|
170
|
+
current_version = version.Version(snowml_version.VERSION)
|
|
171
|
+
feature_version = self._get_version_feature(feature_name)
|
|
172
|
+
|
|
173
|
+
result = current_version >= feature_version
|
|
174
|
+
logging.debug(
|
|
175
|
+
f"Version comparison for feature {feature_name}: "
|
|
176
|
+
f"current={current_version}, feature={feature_version}, enabled={result}"
|
|
177
|
+
)
|
|
178
|
+
return result
|
{snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.2}/snowflake/ml/_internal/type_utils.py
RENAMED
|
@@ -66,4 +66,4 @@ class LazyType(Generic[T]):
|
|
|
66
66
|
return False
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
LiteralNDArrayType = Union[npt.NDArray[np.int_], npt.NDArray[np.
|
|
69
|
+
LiteralNDArrayType = Union[npt.NDArray[np.int_], npt.NDArray[np.float64], npt.NDArray[np.str_], npt.NDArray[np.bool_]]
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
from typing import Any, Optional
|
|
2
|
+
|
|
3
|
+
from snowflake.ml._internal.utils import identifier
|
|
4
|
+
from snowflake.snowpark import session as snowpark_session
|
|
5
|
+
|
|
6
|
+
_SESSION_KEY = "_session"
|
|
7
|
+
_SESSION_ACCOUNT_KEY = "session$account"
|
|
8
|
+
_SESSION_ROLE_KEY = "session$role"
|
|
9
|
+
_SESSION_DATABASE_KEY = "session$database"
|
|
10
|
+
_SESSION_SCHEMA_KEY = "session$schema"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _identifiers_match(saved: Optional[str], current: Optional[str]) -> bool:
|
|
14
|
+
saved_resolved = identifier.resolve_identifier(saved) if saved is not None else saved
|
|
15
|
+
current_resolved = identifier.resolve_identifier(current) if current is not None else current
|
|
16
|
+
return saved_resolved == current_resolved
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SerializableSessionMixin:
|
|
20
|
+
"""Mixin that provides pickling capabilities for objects with Snowpark sessions."""
|
|
21
|
+
|
|
22
|
+
def __getstate__(self) -> dict[str, Any]:
|
|
23
|
+
"""Customize pickling to exclude non-serializable session and related components."""
|
|
24
|
+
parent_state = (
|
|
25
|
+
super().__getstate__() # type: ignore[misc] # object.__getstate__ appears in 3.11
|
|
26
|
+
if hasattr(super(), "__getstate__")
|
|
27
|
+
else self.__dict__
|
|
28
|
+
)
|
|
29
|
+
state = dict(parent_state) # Create a copy so we can safely modify the state
|
|
30
|
+
|
|
31
|
+
# Save session metadata for validation during unpickling
|
|
32
|
+
session = state.pop(_SESSION_KEY, None)
|
|
33
|
+
if session is not None:
|
|
34
|
+
state[_SESSION_ACCOUNT_KEY] = session.get_current_account()
|
|
35
|
+
state[_SESSION_ROLE_KEY] = session.get_current_role()
|
|
36
|
+
state[_SESSION_DATABASE_KEY] = session.get_current_database()
|
|
37
|
+
state[_SESSION_SCHEMA_KEY] = session.get_current_schema()
|
|
38
|
+
|
|
39
|
+
return state
|
|
40
|
+
|
|
41
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
|
42
|
+
"""Restore session from context during unpickling."""
|
|
43
|
+
saved_account = state.pop(_SESSION_ACCOUNT_KEY, None)
|
|
44
|
+
saved_role = state.pop(_SESSION_ROLE_KEY, None)
|
|
45
|
+
saved_database = state.pop(_SESSION_DATABASE_KEY, None)
|
|
46
|
+
saved_schema = state.pop(_SESSION_SCHEMA_KEY, None)
|
|
47
|
+
|
|
48
|
+
if hasattr(super(), "__setstate__"):
|
|
49
|
+
super().__setstate__(state) # type: ignore[misc]
|
|
50
|
+
else:
|
|
51
|
+
self.__dict__.update(state)
|
|
52
|
+
|
|
53
|
+
if saved_account is not None:
|
|
54
|
+
active_sessions = snowpark_session._get_active_sessions()
|
|
55
|
+
if len(active_sessions) == 0:
|
|
56
|
+
raise RuntimeError("No active Snowpark session available. Please create a session.")
|
|
57
|
+
|
|
58
|
+
# Best effort match: Find the session with the most matching identifiers
|
|
59
|
+
setattr(
|
|
60
|
+
self,
|
|
61
|
+
_SESSION_KEY,
|
|
62
|
+
max(
|
|
63
|
+
active_sessions,
|
|
64
|
+
key=lambda s: sum(
|
|
65
|
+
(
|
|
66
|
+
_identifiers_match(saved_account, s.get_current_account()),
|
|
67
|
+
_identifiers_match(saved_role, s.get_current_role()),
|
|
68
|
+
_identifiers_match(saved_database, s.get_current_database()),
|
|
69
|
+
_identifiers_match(saved_schema, s.get_current_schema()),
|
|
70
|
+
)
|
|
71
|
+
),
|
|
72
|
+
),
|
|
73
|
+
)
|