snowflake-ml-python 1.9.0__tar.gz → 1.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/CHANGELOG.md +64 -1
- {snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.1}/PKG-INFO +67 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/pyproject.toml +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env_utils.py +44 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/platform_capabilities.py +52 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/type_utils.py +1 -1
- snowflake_ml_python-1.9.1/snowflake/ml/_internal/utils/mixins.py +71 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/service_logger.py +4 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/_internal/arrow_ingestor.py +11 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_connector.py +43 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_ingestor.py +8 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/torch_utils.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset.py +3 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_reader.py +22 -6
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +98 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/__init__.py +4 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/experiment.py +10 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/run.py +62 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/run_metadata.py +68 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/_experiment_info.py +63 -0
- snowflake_ml_python-1.9.1/snowflake/ml/experiment/experiment_tracking.py +319 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/payload_utils.py +6 -5
- snowflake_ml_python-1.9.1/snowflake/ml/jobs/_utils/query_helper.py +20 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +5 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/spec_utils.py +22 -7
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/job.py +48 -69
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/manager.py +55 -29
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/lineage_node.py +2 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_version_impl.py +16 -4
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/service_ops.py +320 -136
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_composer.py +6 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +17 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +1 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +41 -2
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +3 -3
- snowflake_ml_python-1.9.1/snowflake/ml/model/event_handler.py +117 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/model_signature.py +9 -9
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/models/huggingface_pipeline.py +170 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/base.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/classification.py +14 -14
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/correlation.py +19 -8
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/ranking.py +6 -6
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/regression.py +9 -9
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/explain_visualize.py +12 -5
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/_manager/model_manager.py +32 -15
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/registry.py +48 -80
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1/snowflake_ml_python.egg-info}/PKG-INFO +67 -3
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/SOURCES.txt +8 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/requires.txt +2 -1
- snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/mixins.py +0 -61
- snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/query_helper.py +0 -9
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/README.md +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/setup.cfg +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/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.1}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/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.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/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.1}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/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.1}/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.1}/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.1}/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.1}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,5 +1,54 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
## 1.9.1
|
4
|
+
|
5
|
+
### Bug Fixes
|
6
|
+
|
7
|
+
- Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
|
8
|
+
The handler picks the first EOS token as PAD token now.
|
9
|
+
|
10
|
+
### New Features
|
11
|
+
|
12
|
+
- DataConnector: DataConnector objects can now be pickled
|
13
|
+
- Dataset: Dataset objects can now be pickled
|
14
|
+
- Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
|
15
|
+
which creates a service to log a HF model and upon successful logging, an inference service is created.
|
16
|
+
|
17
|
+
```python
|
18
|
+
from snowflake.ml.model.models import huggingface_pipeline
|
19
|
+
|
20
|
+
hf_model_ref = huggingface_pipeline.HuggingFacePipelineModel(
|
21
|
+
model="gpt2",
|
22
|
+
task="text-generation", # Optional
|
23
|
+
)
|
24
|
+
|
25
|
+
|
26
|
+
hf_model_ref.create_service(
|
27
|
+
session=session,
|
28
|
+
service_name="test_service",
|
29
|
+
service_compute_pool="test_compute_pool",
|
30
|
+
image_repo="test_repo",
|
31
|
+
...
|
32
|
+
)
|
33
|
+
```
|
34
|
+
|
35
|
+
- Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
|
36
|
+
|
37
|
+
```python
|
38
|
+
from snowflake.ml.experiment import ExperimentTracking
|
39
|
+
|
40
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
41
|
+
|
42
|
+
exp.set_experiment("MY_EXPERIMENT")
|
43
|
+
|
44
|
+
with exp.start_run():
|
45
|
+
exp.log_param("batch_size", 32)
|
46
|
+
exp.log_metrics("accuracy", 0.98, step=10)
|
47
|
+
exp.log_model(my_model, model_name="MY_MODEL")
|
48
|
+
```
|
49
|
+
|
50
|
+
- Registry: Added support for wide input (500+ features) for inference done using SPCS
|
51
|
+
|
3
52
|
## 1.9.0
|
4
53
|
|
5
54
|
### Bug Fixes
|
@@ -7,6 +56,19 @@
|
|
7
56
|
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
8
57
|
parameter is enabled
|
9
58
|
- Registry: Fixed duplicate UserWarning logs during model packaging
|
59
|
+
- Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
|
60
|
+
is assigned to the tokenizer.
|
61
|
+
|
62
|
+
```shell
|
63
|
+
{% for message in messages %}
|
64
|
+
{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}
|
65
|
+
{% endfor %}
|
66
|
+
{% if add_generation_prompt %}
|
67
|
+
{{ '<|im_start|>assistant\n' }}
|
68
|
+
{% endif %}"
|
69
|
+
```
|
70
|
+
|
71
|
+
- Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
|
10
72
|
|
11
73
|
### Behavior Changes
|
12
74
|
|
@@ -116,7 +178,8 @@
|
|
116
178
|
- Pre-created Snowpark Session is now available inside job payloads using
|
117
179
|
`snowflake.snowpark.context.get_active_session()`
|
118
180
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
119
|
-
|
181
|
+
Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
|
182
|
+
This is useful when the default temporary directory has space limitations.
|
120
183
|
|
121
184
|
```python
|
122
185
|
reg.log_model(
|
{snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.1}/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.1
|
4
4
|
Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
|
5
5
|
Author-email: "Snowflake, Inc" <support@snowflake.com>
|
6
6
|
License:
|
@@ -240,7 +240,7 @@ 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
246
|
Requires-Dist: pyarrow
|
@@ -257,6 +257,7 @@ Requires-Dist: snowflake-connector-python[pandas]<4,>=3.15.0
|
|
257
257
|
Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
|
258
258
|
Requires-Dist: snowflake.core<2,>=1.0.2
|
259
259
|
Requires-Dist: sqlparse<1,>=0.4
|
260
|
+
Requires-Dist: tqdm<5
|
260
261
|
Requires-Dist: typing-extensions<5,>=4.1.0
|
261
262
|
Requires-Dist: xgboost<3,>=1.7.3
|
262
263
|
Provides-Extra: all
|
@@ -408,6 +409,55 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
408
409
|
|
409
410
|
# Release History
|
410
411
|
|
412
|
+
## 1.9.1
|
413
|
+
|
414
|
+
### Bug Fixes
|
415
|
+
|
416
|
+
- Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
|
417
|
+
The handler picks the first EOS token as PAD token now.
|
418
|
+
|
419
|
+
### New Features
|
420
|
+
|
421
|
+
- DataConnector: DataConnector objects can now be pickled
|
422
|
+
- Dataset: Dataset objects can now be pickled
|
423
|
+
- Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
|
424
|
+
which creates a service to log a HF model and upon successful logging, an inference service is created.
|
425
|
+
|
426
|
+
```python
|
427
|
+
from snowflake.ml.model.models import huggingface_pipeline
|
428
|
+
|
429
|
+
hf_model_ref = huggingface_pipeline.HuggingFacePipelineModel(
|
430
|
+
model="gpt2",
|
431
|
+
task="text-generation", # Optional
|
432
|
+
)
|
433
|
+
|
434
|
+
|
435
|
+
hf_model_ref.create_service(
|
436
|
+
session=session,
|
437
|
+
service_name="test_service",
|
438
|
+
service_compute_pool="test_compute_pool",
|
439
|
+
image_repo="test_repo",
|
440
|
+
...
|
441
|
+
)
|
442
|
+
```
|
443
|
+
|
444
|
+
- Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
|
445
|
+
|
446
|
+
```python
|
447
|
+
from snowflake.ml.experiment import ExperimentTracking
|
448
|
+
|
449
|
+
exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
|
450
|
+
|
451
|
+
exp.set_experiment("MY_EXPERIMENT")
|
452
|
+
|
453
|
+
with exp.start_run():
|
454
|
+
exp.log_param("batch_size", 32)
|
455
|
+
exp.log_metrics("accuracy", 0.98, step=10)
|
456
|
+
exp.log_model(my_model, model_name="MY_MODEL")
|
457
|
+
```
|
458
|
+
|
459
|
+
- Registry: Added support for wide input (500+ features) for inference done using SPCS
|
460
|
+
|
411
461
|
## 1.9.0
|
412
462
|
|
413
463
|
### Bug Fixes
|
@@ -415,6 +465,19 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
415
465
|
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
416
466
|
parameter is enabled
|
417
467
|
- Registry: Fixed duplicate UserWarning logs during model packaging
|
468
|
+
- Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
|
469
|
+
is assigned to the tokenizer.
|
470
|
+
|
471
|
+
```shell
|
472
|
+
{% for message in messages %}
|
473
|
+
{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}
|
474
|
+
{% endfor %}
|
475
|
+
{% if add_generation_prompt %}
|
476
|
+
{{ '<|im_start|>assistant\n' }}
|
477
|
+
{% endif %}"
|
478
|
+
```
|
479
|
+
|
480
|
+
- Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
|
418
481
|
|
419
482
|
### Behavior Changes
|
420
483
|
|
@@ -524,7 +587,8 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
524
587
|
- Pre-created Snowpark Session is now available inside job payloads using
|
525
588
|
`snowflake.snowpark.context.get_active_session()`
|
526
589
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
527
|
-
|
590
|
+
Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
|
591
|
+
This is useful when the default temporary directory has space limitations.
|
528
592
|
|
529
593
|
```python
|
530
594
|
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", "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"
|
@@ -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.1}/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,71 @@
|
|
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
|
+
if hasattr(super(), "__getstate__"):
|
25
|
+
state: dict[str, Any] = super().__getstate__() # type: ignore[misc]
|
26
|
+
else:
|
27
|
+
state = self.__dict__.copy()
|
28
|
+
|
29
|
+
# Save session metadata for validation during unpickling
|
30
|
+
session = state.pop(_SESSION_KEY, None)
|
31
|
+
if session is not None:
|
32
|
+
state[_SESSION_ACCOUNT_KEY] = session.get_current_account()
|
33
|
+
state[_SESSION_ROLE_KEY] = session.get_current_role()
|
34
|
+
state[_SESSION_DATABASE_KEY] = session.get_current_database()
|
35
|
+
state[_SESSION_SCHEMA_KEY] = session.get_current_schema()
|
36
|
+
|
37
|
+
return state
|
38
|
+
|
39
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
40
|
+
"""Restore session from context during unpickling."""
|
41
|
+
saved_account = state.pop(_SESSION_ACCOUNT_KEY, None)
|
42
|
+
saved_role = state.pop(_SESSION_ROLE_KEY, None)
|
43
|
+
saved_database = state.pop(_SESSION_DATABASE_KEY, None)
|
44
|
+
saved_schema = state.pop(_SESSION_SCHEMA_KEY, None)
|
45
|
+
|
46
|
+
if hasattr(super(), "__setstate__"):
|
47
|
+
super().__setstate__(state) # type: ignore[misc]
|
48
|
+
else:
|
49
|
+
self.__dict__.update(state)
|
50
|
+
|
51
|
+
if saved_account is not None:
|
52
|
+
active_sessions = snowpark_session._get_active_sessions()
|
53
|
+
if len(active_sessions) == 0:
|
54
|
+
raise RuntimeError("No active Snowpark session available. Please create a session.")
|
55
|
+
|
56
|
+
# Best effort match: Find the session with the most matching identifiers
|
57
|
+
setattr(
|
58
|
+
self,
|
59
|
+
_SESSION_KEY,
|
60
|
+
max(
|
61
|
+
active_sessions,
|
62
|
+
key=lambda s: sum(
|
63
|
+
(
|
64
|
+
_identifiers_match(saved_account, s.get_current_account()),
|
65
|
+
_identifiers_match(saved_role, s.get_current_role()),
|
66
|
+
_identifiers_match(saved_database, s.get_current_database()),
|
67
|
+
_identifiers_match(saved_schema, s.get_current_schema()),
|
68
|
+
)
|
69
|
+
),
|
70
|
+
),
|
71
|
+
)
|
@@ -10,6 +10,10 @@ class LogColor(enum.Enum):
|
|
10
10
|
YELLOW = "\x1b[33;20m"
|
11
11
|
BLUE = "\x1b[34;20m"
|
12
12
|
GREEN = "\x1b[32;20m"
|
13
|
+
ORANGE = "\x1b[38;5;214m"
|
14
|
+
BOLD_ORANGE = "\x1b[38;5;214;1m"
|
15
|
+
PURPLE = "\x1b[35;20m"
|
16
|
+
BOLD_PURPLE = "\x1b[35;1m"
|
13
17
|
|
14
18
|
|
15
19
|
class CustomFormatter(logging.Formatter):
|
@@ -55,9 +59,7 @@ class CustomFormatter(logging.Formatter):
|
|
55
59
|
|
56
60
|
def get_logger(logger_name: str, info_color: LogColor) -> logging.Logger:
|
57
61
|
logger = logging.getLogger(logger_name)
|
58
|
-
logger.setLevel(logging.INFO)
|
59
62
|
handler = logging.StreamHandler(sys.stdout)
|
60
|
-
handler.setLevel(logging.INFO)
|
61
63
|
handler.setFormatter(CustomFormatter(info_color))
|
62
64
|
logger.addHandler(handler)
|
63
65
|
return logger
|
@@ -2,7 +2,7 @@ import collections
|
|
2
2
|
import logging
|
3
3
|
import os
|
4
4
|
import time
|
5
|
-
from typing import Any, Deque, Iterator, Optional, Sequence, Union
|
5
|
+
from typing import TYPE_CHECKING, Any, Deque, Iterator, Optional, Sequence, Union
|
6
6
|
|
7
7
|
import numpy as np
|
8
8
|
import numpy.typing as npt
|
@@ -10,6 +10,9 @@ import pandas as pd
|
|
10
10
|
import pyarrow as pa
|
11
11
|
import pyarrow.dataset as pds
|
12
12
|
|
13
|
+
if TYPE_CHECKING:
|
14
|
+
import ray
|
15
|
+
|
13
16
|
from snowflake import snowpark
|
14
17
|
from snowflake.ml.data import data_ingestor, data_source, ingestor_utils
|
15
18
|
|
@@ -70,6 +73,13 @@ class ArrowIngestor(data_ingestor.DataIngestor):
|
|
70
73
|
def from_sources(cls, session: snowpark.Session, sources: Sequence[data_source.DataSource]) -> "ArrowIngestor":
|
71
74
|
return cls(session, sources)
|
72
75
|
|
76
|
+
@classmethod
|
77
|
+
def from_ray_dataset(
|
78
|
+
cls,
|
79
|
+
ray_ds: "ray.data.Dataset",
|
80
|
+
) -> "ArrowIngestor":
|
81
|
+
raise NotImplementedError
|
82
|
+
|
73
83
|
@property
|
74
84
|
def data_sources(self) -> list[data_source.DataSource]:
|
75
85
|
return self._data_sources
|
@@ -6,6 +6,7 @@ from typing_extensions import deprecated
|
|
6
6
|
|
7
7
|
from snowflake import snowpark
|
8
8
|
from snowflake.ml._internal import env, telemetry
|
9
|
+
from snowflake.ml._internal.utils import mixins
|
9
10
|
from snowflake.ml.data import data_ingestor, data_source
|
10
11
|
from snowflake.ml.data._internal.arrow_ingestor import ArrowIngestor
|
11
12
|
from snowflake.snowpark import context as sf_context
|
@@ -21,11 +22,13 @@ if TYPE_CHECKING:
|
|
21
22
|
from snowflake.ml import dataset
|
22
23
|
|
23
24
|
_PROJECT = "DataConnector"
|
25
|
+
_INGESTOR_KEY = "_ingestor"
|
26
|
+
_INGESTOR_SOURCES_KEY = "ingestor$sources"
|
24
27
|
|
25
28
|
DataConnectorType = TypeVar("DataConnectorType", bound="DataConnector")
|
26
29
|
|
27
30
|
|
28
|
-
class DataConnector:
|
31
|
+
class DataConnector(mixins.SerializableSessionMixin):
|
29
32
|
"""Snowflake data reader which provides application integration connectors"""
|
30
33
|
|
31
34
|
DEFAULT_INGESTOR_CLASS: type[data_ingestor.DataIngestor] = ArrowIngestor
|
@@ -33,8 +36,11 @@ class DataConnector:
|
|
33
36
|
def __init__(
|
34
37
|
self,
|
35
38
|
ingestor: data_ingestor.DataIngestor,
|
39
|
+
*,
|
40
|
+
session: Optional[snowpark.Session] = None,
|
36
41
|
**kwargs: Any,
|
37
42
|
) -> None:
|
43
|
+
self._session = session
|
38
44
|
self._ingestor = ingestor
|
39
45
|
self._kwargs = kwargs
|
40
46
|
|
@@ -75,6 +81,17 @@ class DataConnector:
|
|
75
81
|
)
|
76
82
|
return cls.from_sources(ds._session, [source], ingestor_class=ingestor_class, **kwargs)
|
77
83
|
|
84
|
+
@classmethod
|
85
|
+
def from_ray_dataset(
|
86
|
+
cls: type[DataConnectorType],
|
87
|
+
ray_ds: "ray.data.Dataset",
|
88
|
+
ingestor_class: Optional[type[data_ingestor.DataIngestor]] = None,
|
89
|
+
**kwargs: Any,
|
90
|
+
) -> DataConnectorType:
|
91
|
+
ingestor_class = ingestor_class or cls.DEFAULT_INGESTOR_CLASS
|
92
|
+
ray_ingestor = ingestor_class.from_ray_dataset(ray_ds=ray_ds)
|
93
|
+
return cls(ray_ingestor, **kwargs)
|
94
|
+
|
78
95
|
@classmethod
|
79
96
|
@telemetry.send_api_usage_telemetry(
|
80
97
|
project=_PROJECT,
|
@@ -90,7 +107,31 @@ class DataConnector:
|
|
90
107
|
) -> DataConnectorType:
|
91
108
|
ingestor_class = ingestor_class or cls.DEFAULT_INGESTOR_CLASS
|
92
109
|
ingestor = ingestor_class.from_sources(session, sources)
|
93
|
-
return cls(ingestor, **kwargs)
|
110
|
+
return cls(ingestor, **kwargs, session=session)
|
111
|
+
|
112
|
+
def __getstate__(self) -> dict[str, Any]:
|
113
|
+
"""Customize pickling to exclude non-serializable session and related components."""
|
114
|
+
if hasattr(super(), "__getstate__"):
|
115
|
+
state = super().__getstate__()
|
116
|
+
else:
|
117
|
+
state = self.__dict__.copy()
|
118
|
+
|
119
|
+
ingestor = state.pop(_INGESTOR_KEY)
|
120
|
+
state[_INGESTOR_SOURCES_KEY] = ingestor.data_sources
|
121
|
+
|
122
|
+
return state
|
123
|
+
|
124
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
125
|
+
"""Restore session from context during unpickling."""
|
126
|
+
data_sources = state.pop(_INGESTOR_SOURCES_KEY)
|
127
|
+
|
128
|
+
if hasattr(super(), "__setstate__"):
|
129
|
+
super().__setstate__(state)
|
130
|
+
else:
|
131
|
+
self.__dict__.update(state)
|
132
|
+
|
133
|
+
assert self._session is not None
|
134
|
+
self._ingestor = self.DEFAULT_INGESTOR_CLASS.from_sources(self._session, data_sources)
|
94
135
|
|
95
136
|
@property
|
96
137
|
def data_sources(self) -> list[data_source.DataSource]:
|
@@ -7,6 +7,7 @@ from snowflake.ml.data import data_source
|
|
7
7
|
|
8
8
|
if TYPE_CHECKING:
|
9
9
|
import pandas as pd
|
10
|
+
import ray
|
10
11
|
|
11
12
|
|
12
13
|
DataIngestorType = TypeVar("DataIngestorType", bound="DataIngestor")
|
@@ -19,6 +20,13 @@ class DataIngestor(Protocol):
|
|
19
20
|
) -> DataIngestorType:
|
20
21
|
raise NotImplementedError
|
21
22
|
|
23
|
+
@classmethod
|
24
|
+
def from_ray_dataset(
|
25
|
+
cls: type[DataIngestorType],
|
26
|
+
ray_ds: "ray.data.Dataset",
|
27
|
+
) -> DataIngestorType:
|
28
|
+
raise NotImplementedError
|
29
|
+
|
22
30
|
@property
|
23
31
|
def data_sources(self) -> list[data_source.DataSource]:
|
24
32
|
raise NotImplementedError
|
@@ -95,6 +95,6 @@ def _preprocess_array(
|
|
95
95
|
array_list = arr.tolist()
|
96
96
|
# If this is an array of arrays, convert the dtype to match the underlying array.
|
97
97
|
# Otherwise, if this is a numpy array of strings, convert the array to a list.
|
98
|
-
arr = np.array(array_list, dtype=arr.
|
98
|
+
arr = np.array(array_list, dtype=arr.item(0).dtype) if isinstance(arr.item(0), np.ndarray) else array_list
|
99
99
|
|
100
100
|
return arr
|
@@ -14,6 +14,7 @@ from snowflake.ml._internal.exceptions import (
|
|
14
14
|
from snowflake.ml._internal.utils import (
|
15
15
|
formatting,
|
16
16
|
identifier,
|
17
|
+
mixins,
|
17
18
|
query_result_checker,
|
18
19
|
snowpark_dataframe_utils,
|
19
20
|
)
|
@@ -27,7 +28,7 @@ _METADATA_MAX_QUERY_LENGTH = 10000
|
|
27
28
|
_DATASET_VERSION_NAME_COL = "version"
|
28
29
|
|
29
30
|
|
30
|
-
class DatasetVersion:
|
31
|
+
class DatasetVersion(mixins.SerializableSessionMixin):
|
31
32
|
"""Represents a version of a Snowflake Dataset"""
|
32
33
|
|
33
34
|
@telemetry.send_api_usage_telemetry(project=_PROJECT)
|
@@ -176,7 +177,7 @@ class Dataset(lineage_node.LineageNode):
|
|
176
177
|
original_exception=RuntimeError("No Dataset version selected."),
|
177
178
|
)
|
178
179
|
if self._reader is None:
|
179
|
-
self._reader = dataset_reader.DatasetReader.from_dataset(self
|
180
|
+
self._reader = dataset_reader.DatasetReader.from_dataset(self)
|
180
181
|
return self._reader
|
181
182
|
|
182
183
|
@staticmethod
|