snowflake-ml-python 1.8.6__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.8.6 → snowflake_ml_python-1.9.1}/CHANGELOG.md +115 -16
- {snowflake_ml_python-1.8.6/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.1}/PKG-INFO +118 -18
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/pyproject.toml +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env_utils.py +44 -3
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/platform_capabilities.py +52 -2
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/type_utils.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/identifier.py +1 -1
- snowflake_ml_python-1.9.1/snowflake/ml/_internal/utils/mixins.py +71 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/service_logger.py +4 -2
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/_internal/arrow_ingestor.py +11 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_connector.py +43 -2
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_ingestor.py +8 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/torch_utils.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset.py +3 -2
- {snowflake_ml_python-1.8.6 → 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.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/constants.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/interop_utils.py +63 -4
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/payload_utils.py +5 -3
- snowflake_ml_python-1.9.1/snowflake/ml/jobs/_utils/query_helper.py +20 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +5 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/spec_utils.py +21 -4
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/decorators.py +18 -25
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/job.py +137 -37
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/manager.py +228 -153
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/lineage_node.py +2 -2
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_version_impl.py +16 -4
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/model_ops.py +12 -3
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/service_ops.py +324 -138
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +3 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_composer.py +6 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +55 -13
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +1 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_env/model_env.py +35 -27
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +41 -2
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/pytorch.py +5 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta.py +3 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +3 -3
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/snowpark_handler.py +55 -3
- snowflake_ml_python-1.9.1/snowflake/ml/model/event_handler.py +117 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/model_signature.py +9 -9
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/models/huggingface_pipeline.py +170 -1
- snowflake_ml_python-1.9.1/snowflake/ml/model/target_platform.py +11 -0
- snowflake_ml_python-1.9.1/snowflake/ml/model/task.py +9 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/type_hints.py +5 -13
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/base.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/classification.py +14 -14
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/correlation.py +19 -8
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/metrics_utils.py +2 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/ranking.py +6 -6
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/regression.py +9 -9
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/explain_visualize.py +12 -5
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/_manager/model_manager.py +47 -15
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/registry.py +109 -64
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1/snowflake_ml_python.egg-info}/PKG-INFO +118 -18
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/SOURCES.txt +12 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/requires.txt +2 -1
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/README.md +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/setup.cfg +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/telemetry.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.8.6 → 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.8.6 → 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.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.8.6 → 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.8.6 → 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.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/service.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.8.6 → 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.8.6 → 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.8.6 → 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.8.6 → 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.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,12 +1,109 @@
|
|
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
|
+
|
52
|
+
## 1.9.0
|
53
|
+
|
54
|
+
### Bug Fixes
|
55
|
+
|
56
|
+
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
57
|
+
parameter is enabled
|
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
|
72
|
+
|
73
|
+
### Behavior Changes
|
74
|
+
|
75
|
+
- ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
|
76
|
+
optional `database` and `schema` parameters have been added, the return type has changed
|
77
|
+
from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
|
78
|
+
to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
|
79
|
+
`target_instances`, `created_time`, and `completed_time`.
|
80
|
+
- Registry: Set `relax_version` to false when pip_requirements are specified while logging model
|
81
|
+
- Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
|
82
|
+
|
83
|
+
### New Features
|
84
|
+
|
85
|
+
- Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
|
86
|
+
or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
|
87
|
+
- Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
|
88
|
+
`snowflake.ml.model.task.Task`.
|
89
|
+
- ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
|
90
|
+
- Moved less frequently used job submission parameters to `**kwargs`
|
91
|
+
- Platform metrics are now enabled by default
|
92
|
+
- `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
|
93
|
+
|
3
94
|
## 1.8.6
|
4
95
|
|
5
96
|
### Bug Fixes
|
6
97
|
|
98
|
+
- Fixed fatal errors from internal telemetry wrappers.
|
99
|
+
|
7
100
|
### New Features
|
8
101
|
|
9
102
|
- Registry: Add service container info to logs.
|
103
|
+
- ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
|
104
|
+
- ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
|
105
|
+
`@remote` decorated functions. `Session` object will be injected from context in
|
106
|
+
the job execution environment.
|
10
107
|
|
11
108
|
## 1.8.5
|
12
109
|
|
@@ -17,17 +114,17 @@
|
|
17
114
|
- Explainability: bump minimum streamlit version down to 1.30
|
18
115
|
- Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
|
19
116
|
|
20
|
-
###
|
117
|
+
### Behavior Changes
|
21
118
|
|
22
|
-
- ML Job: Rename argument `num_instances` to `target_instances` in job submission APIs and
|
119
|
+
- ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
|
23
120
|
change type from `Optional[int]` to `int`
|
24
121
|
|
25
122
|
### New Features
|
26
123
|
|
27
124
|
- Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
|
28
125
|
an SPCS-only model.
|
29
|
-
- ML Job: Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
|
30
|
-
- ML Job: Adjust polling behavior to reduce number of SQL calls.
|
126
|
+
- ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
|
127
|
+
- ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
|
31
128
|
|
32
129
|
### Deprecations
|
33
130
|
|
@@ -42,18 +139,19 @@
|
|
42
139
|
- Registry: Fixed a bug when logging pytroch and tensorflow models that caused
|
43
140
|
`UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
|
44
141
|
|
45
|
-
###
|
142
|
+
### Behavior Changes
|
46
143
|
|
47
|
-
- ML Job
|
48
|
-
|
144
|
+
- ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
|
145
|
+
to represent the ML Job name
|
146
|
+
- ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
|
49
147
|
- Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
|
50
148
|
Snowpark Container Services, instead of just user warning.
|
51
149
|
|
52
150
|
### New Features
|
53
151
|
|
54
|
-
- ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
|
152
|
+
- ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
|
55
153
|
`schema` parameters
|
56
|
-
- ML Job: Support querying by fully qualified name in `get_job()`
|
154
|
+
- ML Job (PuPr): Support querying by fully qualified name in `get_job()`
|
57
155
|
- Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
|
58
156
|
- Explainability: Support explain for categorical transforms for sklearn pipeline
|
59
157
|
- Support categorical type for `xgboost.DMatrix` inputs.
|
@@ -63,7 +161,7 @@
|
|
63
161
|
### New Features
|
64
162
|
|
65
163
|
- Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
|
66
|
-
- ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
164
|
+
- ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
67
165
|
as a list of strings
|
68
166
|
- Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
|
69
167
|
- DataConnector: Removed PrPr decorators
|
@@ -74,13 +172,14 @@
|
|
74
172
|
### New Features
|
75
173
|
|
76
174
|
- ML Job now available as a PuPr feature
|
77
|
-
-
|
78
|
-
|
79
|
-
|
80
|
-
-
|
81
|
-
|
175
|
+
- Add ability to retrieve results for `@remote` decorated functions using
|
176
|
+
new `MLJobWithResult.result()` API, which will return the unpickled result
|
177
|
+
or raise an exception if the job execution failed.
|
178
|
+
- Pre-created Snowpark Session is now available inside job payloads using
|
179
|
+
`snowflake.snowpark.context.get_active_session()`
|
82
180
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
83
|
-
|
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.
|
84
183
|
|
85
184
|
```python
|
86
185
|
reg.log_model(
|
{snowflake_ml_python-1.8.6/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.
|
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,13 +409,110 @@ 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
|
+
|
461
|
+
## 1.9.0
|
462
|
+
|
463
|
+
### Bug Fixes
|
464
|
+
|
465
|
+
- Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
466
|
+
parameter is enabled
|
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
|
481
|
+
|
482
|
+
### Behavior Changes
|
483
|
+
|
484
|
+
- ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
|
485
|
+
optional `database` and `schema` parameters have been added, the return type has changed
|
486
|
+
from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
|
487
|
+
to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
|
488
|
+
`target_instances`, `created_time`, and `completed_time`.
|
489
|
+
- Registry: Set `relax_version` to false when pip_requirements are specified while logging model
|
490
|
+
- Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
|
491
|
+
|
492
|
+
### New Features
|
493
|
+
|
494
|
+
- Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
|
495
|
+
or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
|
496
|
+
- Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
|
497
|
+
`snowflake.ml.model.task.Task`.
|
498
|
+
- ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
|
499
|
+
- Moved less frequently used job submission parameters to `**kwargs`
|
500
|
+
- Platform metrics are now enabled by default
|
501
|
+
- `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
|
502
|
+
|
411
503
|
## 1.8.6
|
412
504
|
|
413
505
|
### Bug Fixes
|
414
506
|
|
507
|
+
- Fixed fatal errors from internal telemetry wrappers.
|
508
|
+
|
415
509
|
### New Features
|
416
510
|
|
417
511
|
- Registry: Add service container info to logs.
|
512
|
+
- ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
|
513
|
+
- ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
|
514
|
+
`@remote` decorated functions. `Session` object will be injected from context in
|
515
|
+
the job execution environment.
|
418
516
|
|
419
517
|
## 1.8.5
|
420
518
|
|
@@ -425,17 +523,17 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
425
523
|
- Explainability: bump minimum streamlit version down to 1.30
|
426
524
|
- Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
|
427
525
|
|
428
|
-
###
|
526
|
+
### Behavior Changes
|
429
527
|
|
430
|
-
- ML Job: Rename argument `num_instances` to `target_instances` in job submission APIs and
|
528
|
+
- ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
|
431
529
|
change type from `Optional[int]` to `int`
|
432
530
|
|
433
531
|
### New Features
|
434
532
|
|
435
533
|
- Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
|
436
534
|
an SPCS-only model.
|
437
|
-
- ML Job: Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
|
438
|
-
- ML Job: Adjust polling behavior to reduce number of SQL calls.
|
535
|
+
- ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
|
536
|
+
- ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
|
439
537
|
|
440
538
|
### Deprecations
|
441
539
|
|
@@ -450,18 +548,19 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
450
548
|
- Registry: Fixed a bug when logging pytroch and tensorflow models that caused
|
451
549
|
`UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
|
452
550
|
|
453
|
-
###
|
551
|
+
### Behavior Changes
|
454
552
|
|
455
|
-
- ML Job
|
456
|
-
|
553
|
+
- ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
|
554
|
+
to represent the ML Job name
|
555
|
+
- ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
|
457
556
|
- Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
|
458
557
|
Snowpark Container Services, instead of just user warning.
|
459
558
|
|
460
559
|
### New Features
|
461
560
|
|
462
|
-
- ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
|
561
|
+
- ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
|
463
562
|
`schema` parameters
|
464
|
-
- ML Job: Support querying by fully qualified name in `get_job()`
|
563
|
+
- ML Job (PuPr): Support querying by fully qualified name in `get_job()`
|
465
564
|
- Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
|
466
565
|
- Explainability: Support explain for categorical transforms for sklearn pipeline
|
467
566
|
- Support categorical type for `xgboost.DMatrix` inputs.
|
@@ -471,7 +570,7 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
471
570
|
### New Features
|
472
571
|
|
473
572
|
- Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
|
474
|
-
- ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
573
|
+
- ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
|
475
574
|
as a list of strings
|
476
575
|
- Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
|
477
576
|
- DataConnector: Removed PrPr decorators
|
@@ -482,13 +581,14 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
482
581
|
### New Features
|
483
582
|
|
484
583
|
- ML Job now available as a PuPr feature
|
485
|
-
-
|
486
|
-
|
487
|
-
|
488
|
-
-
|
489
|
-
|
584
|
+
- Add ability to retrieve results for `@remote` decorated functions using
|
585
|
+
new `MLJobWithResult.result()` API, which will return the unpickled result
|
586
|
+
or raise an exception if the job execution failed.
|
587
|
+
- Pre-created Snowpark Session is now available inside job payloads using
|
588
|
+
`snowflake.snowpark.context.get_active_session()`
|
490
589
|
- Registry: Introducing `save_location` to `log_model` using the `options` argument.
|
491
|
-
|
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.
|
492
592
|
|
493
593
|
```python
|
494
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.8.6 → 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_]]
|
{snowflake_ml_python-1.8.6 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/identifier.py
RENAMED
@@ -240,7 +240,7 @@ def get_schema_level_object_identifier(
|
|
240
240
|
"""
|
241
241
|
|
242
242
|
for identifier in (db, schema, object_name):
|
243
|
-
if identifier is not None and SF_IDENTIFIER_RE.
|
243
|
+
if identifier is not None and SF_IDENTIFIER_RE.fullmatch(identifier) is None:
|
244
244
|
raise ValueError(f"Invalid identifier {identifier}")
|
245
245
|
|
246
246
|
if others is None:
|
@@ -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
|