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.
Files changed (442) hide show
  1. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/CHANGELOG.md +64 -1
  2. {snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.1}/PKG-INFO +67 -3
  3. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env_utils.py +44 -3
  5. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/platform_capabilities.py +52 -2
  6. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/type_utils.py +1 -1
  7. snowflake_ml_python-1.9.1/snowflake/ml/_internal/utils/mixins.py +71 -0
  8. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/service_logger.py +4 -2
  9. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/_internal/arrow_ingestor.py +11 -1
  10. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_connector.py +43 -2
  11. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_ingestor.py +8 -0
  12. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/torch_utils.py +1 -1
  13. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset.py +3 -2
  14. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_reader.py +22 -6
  15. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +98 -0
  16. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/__init__.py +4 -0
  17. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/experiment.py +10 -0
  18. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/run.py +62 -0
  19. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_entities/run_metadata.py +68 -0
  20. snowflake_ml_python-1.9.1/snowflake/ml/experiment/_experiment_info.py +63 -0
  21. snowflake_ml_python-1.9.1/snowflake/ml/experiment/experiment_tracking.py +319 -0
  22. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/payload_utils.py +6 -5
  23. snowflake_ml_python-1.9.1/snowflake/ml/jobs/_utils/query_helper.py +20 -0
  24. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +5 -1
  25. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/spec_utils.py +22 -7
  26. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/job.py +48 -69
  27. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/manager.py +55 -29
  28. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/lineage_node.py +2 -2
  29. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_version_impl.py +16 -4
  30. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/service_ops.py +320 -136
  31. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec.py +1 -1
  32. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -1
  33. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_composer.py +6 -1
  34. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +17 -3
  35. {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
  36. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +41 -2
  37. {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
  38. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +3 -3
  39. snowflake_ml_python-1.9.1/snowflake/ml/model/event_handler.py +117 -0
  40. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/model_signature.py +9 -9
  41. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/models/huggingface_pipeline.py +170 -1
  42. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/base.py +1 -1
  43. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/classification.py +14 -14
  44. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/correlation.py +19 -8
  45. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/ranking.py +6 -6
  46. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/regression.py +9 -9
  47. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/explain_visualize.py +12 -5
  48. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/_manager/model_manager.py +32 -15
  49. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/registry.py +48 -80
  50. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/version.py +1 -1
  51. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1/snowflake_ml_python.egg-info}/PKG-INFO +67 -3
  52. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/SOURCES.txt +8 -0
  53. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/requires.txt +2 -1
  54. snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/mixins.py +0 -61
  55. snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/query_helper.py +0 -9
  56. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/LICENSE.txt +0 -0
  57. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/README.md +0 -0
  58. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/setup.cfg +0 -0
  59. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/__init__.py +0 -0
  60. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_classify_text.py +0 -0
  61. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_complete.py +0 -0
  62. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_1024.py +0 -0
  63. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_embed_text_768.py +0 -0
  64. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_extract_answer.py +0 -0
  65. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_finetune.py +0 -0
  66. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sentiment.py +0 -0
  67. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_sse_client.py +0 -0
  68. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_summarize.py +0 -0
  69. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_translate.py +0 -0
  70. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/cortex/_util.py +0 -0
  71. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/env.py +0 -0
  72. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  73. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  74. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  75. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  76. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  77. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  78. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  79. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  80. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  81. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/file_utils.py +0 -0
  82. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  83. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  84. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  85. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  86. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/init_utils.py +0 -0
  87. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  88. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/migrator_utils.py +0 -0
  89. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  90. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/telemetry.py +0 -0
  91. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  92. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  93. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/formatting.py +0 -0
  94. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/identifier.py +0 -0
  95. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  96. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  97. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  98. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  99. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  100. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/result.py +0 -0
  101. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  102. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  103. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  104. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  105. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  106. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/__init__.py +0 -0
  107. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/data_source.py +0 -0
  108. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/data/ingestor_utils.py +0 -0
  109. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/__init__.py +0 -0
  110. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_factory.py +0 -0
  111. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  112. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/__init__.py +0 -0
  113. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/access_manager.py +0 -0
  114. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/entity.py +0 -0
  115. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  116. {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
  117. {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
  118. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  119. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  120. {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
  121. {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
  122. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  123. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  124. {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
  125. {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
  126. {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
  127. {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
  128. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  129. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  130. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  131. {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
  132. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  133. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  134. {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
  135. {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
  136. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  137. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_store.py +0 -0
  138. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/feature_store/feature_view.py +0 -0
  139. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  140. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/fileset.py +0 -0
  141. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/sfcfs.py +0 -0
  142. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/snowfs.py +0 -0
  143. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/fileset/stage_fs.py +0 -0
  144. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/__init__.py +0 -0
  145. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/constants.py +0 -0
  146. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
  147. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
  148. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  149. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  150. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  151. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  152. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  153. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/_utils/types.py +0 -0
  154. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/jobs/decorators.py +0 -0
  155. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/lineage/__init__.py +0 -0
  156. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/__init__.py +0 -0
  157. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  158. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  159. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  160. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/_base.py +0 -0
  161. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model.py +0 -0
  162. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  163. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/service.py +0 -0
  164. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/stage.py +0 -0
  165. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_client/sql/tag.py +0 -0
  166. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  167. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  168. {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
  169. {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
  170. {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
  171. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  172. {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
  173. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  174. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handler.py +0 -0
  175. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  176. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  177. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  178. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  179. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  180. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  181. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  182. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  183. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  184. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  185. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  186. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  187. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  188. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  189. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  190. {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
  191. {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
  192. {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
  193. {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
  194. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  195. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  196. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  197. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  198. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  199. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  200. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_packager.py +0 -0
  201. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  202. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  203. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  204. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/core.py +0 -0
  205. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  206. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  207. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  208. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  209. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  210. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  211. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/_signatures/utils.py +0 -0
  212. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/custom_model.py +0 -0
  213. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/target_platform.py +0 -0
  214. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/task.py +0 -0
  215. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/model/type_hints.py +0 -0
  216. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  217. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  218. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  219. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  220. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  221. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  222. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  223. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  224. {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
  225. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  226. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  227. {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
  228. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  229. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  230. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  231. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  232. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  233. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  234. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/birch.py +0 -0
  235. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  236. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  237. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  238. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  239. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  240. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  241. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/optics.py +0 -0
  242. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  243. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  244. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  245. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/__init__.py +0 -0
  246. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  247. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  248. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  249. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  250. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  251. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  252. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  253. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  254. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  255. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/oas.py +0 -0
  256. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  257. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  258. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  259. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  260. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  261. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  262. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  263. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  264. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  265. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  266. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  267. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  268. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  269. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  270. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  271. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  272. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  273. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  274. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  275. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  276. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  277. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  278. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  279. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  280. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  281. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  282. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  283. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  284. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  285. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  286. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  287. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  288. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  289. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  290. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  291. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  292. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  293. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  294. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  295. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  296. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  297. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/framework/_utils.py +0 -0
  298. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  299. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  300. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  301. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/__init__.py +0 -0
  302. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  303. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  304. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  305. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  306. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  307. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  308. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  309. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  310. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  311. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  312. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  313. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  314. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  315. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  316. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  317. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  318. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  319. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  320. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  321. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  322. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  323. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  324. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  325. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  326. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  327. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  328. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  329. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  330. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  331. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  332. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  333. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  334. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  335. {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
  336. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  337. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  338. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  339. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  340. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  341. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  342. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  343. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  344. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  345. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  346. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  347. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  348. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  349. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  350. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  351. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  352. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  353. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  354. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  355. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/mds.py +0 -0
  356. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  357. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  358. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  359. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  360. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  361. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  362. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  363. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  364. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  365. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  366. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  367. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  368. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  369. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  370. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  371. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  372. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  373. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  374. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  375. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  376. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  377. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  378. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  379. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  380. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  381. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  382. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  383. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  384. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  385. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  386. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  387. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  388. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  389. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  390. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  391. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  392. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  393. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  394. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  395. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  396. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  397. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  398. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  399. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  400. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  401. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  402. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  403. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  404. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  405. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  406. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  407. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  408. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  409. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  410. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  411. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/__init__.py +0 -0
  412. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  413. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  414. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  415. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  416. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svc.py +0 -0
  417. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/svm/svr.py +0 -0
  418. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/__init__.py +0 -0
  419. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  420. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  421. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  422. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  423. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  424. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  425. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  426. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  427. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  428. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  429. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  430. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  431. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  432. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  433. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/model_monitor.py +0 -0
  434. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/monitoring/shap.py +0 -0
  435. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/registry/__init__.py +0 -0
  436. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/authentication.py +0 -0
  437. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/connection_params.py +0 -0
  438. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/html_utils.py +0 -0
  439. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sparse.py +0 -0
  440. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake/ml/utils/sql_client.py +0 -0
  441. {snowflake_ml_python-1.9.0 → snowflake_ml_python-1.9.1}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  442. {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
- User's can provide the path to write the model version's files that get stored in Snowflake's stage.
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(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.9.0
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<2,>=1.23
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
- User's can provide the path to write the model version's files that get stored in Snowflake's stage.
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,<2", "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", "typing-extensions>=4.1.0,<5", "xgboost>=1.7.3,<3",]
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 = "ENABLE_INLINE_DEPLOYMENT_SPEC"
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._get_bool_feature(INLINE_DEPLOYMENT_SPEC_PARAMETER, False)
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
@@ -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.float_], npt.NDArray[np.str_], npt.NDArray[np.bool_]]
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.flat[0].dtype) if isinstance(arr.flat[0], np.ndarray) else array_list
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, snowpark_session=self._session)
180
+ self._reader = dataset_reader.DatasetReader.from_dataset(self)
180
181
  return self._reader
181
182
 
182
183
  @staticmethod