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