snowflake-ml-python 2.4.0__tar.gz → 2.5.0__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 (575) hide show
  1. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/CHANGELOG.md +28 -1
  2. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/PKG-INFO +31 -4
  3. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/pyproject.toml +1 -1
  4. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/env_utils.py +6 -2
  5. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/file_utils.py +18 -1
  6. snowflake_ml_python-2.5.0/snowflake/ml/experiment/_entities/run.py +128 -0
  7. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/experiment_tracking.py +8 -10
  8. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/job.py +42 -12
  9. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/lineage/lineage_node.py +9 -1
  10. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/model_version_impl.py +18 -17
  11. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/model_ops.py +12 -19
  12. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/service_ops.py +3 -2
  13. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +53 -33
  14. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/model.py +17 -51
  15. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +3 -1
  16. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -2
  17. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +5 -1
  18. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/optional_dependency.py +6 -30
  19. {snowflake_ml_python-2.4.0/snowflake/ml/modeling/compose → snowflake_ml_python-2.5.0/snowflake/ml/modeling/calibration}/__init__.py +1 -2
  20. {snowflake_ml_python-2.4.0/snowflake/ml/modeling/calibration → snowflake_ml_python-2.5.0/snowflake/ml/modeling/cluster}/__init__.py +1 -2
  21. {snowflake_ml_python-2.4.0/snowflake/ml/modeling/covariance → snowflake_ml_python-2.5.0/snowflake/ml/modeling/compose}/__init__.py +1 -2
  22. {snowflake_ml_python-2.4.0/snowflake/ml/modeling/cluster → snowflake_ml_python-2.5.0/snowflake/ml/modeling/covariance}/__init__.py +1 -2
  23. snowflake_ml_python-2.5.0/snowflake/ml/modeling/decomposition/__init__.py +15 -0
  24. snowflake_ml_python-2.5.0/snowflake/ml/modeling/discriminant_analysis/__init__.py +15 -0
  25. snowflake_ml_python-2.5.0/snowflake/ml/modeling/ensemble/__init__.py +15 -0
  26. snowflake_ml_python-2.5.0/snowflake/ml/modeling/feature_selection/__init__.py +15 -0
  27. snowflake_ml_python-2.5.0/snowflake/ml/modeling/gaussian_process/__init__.py +15 -0
  28. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/impute/__init__.py +1 -2
  29. snowflake_ml_python-2.5.0/snowflake/ml/modeling/kernel_approximation/__init__.py +15 -0
  30. snowflake_ml_python-2.5.0/snowflake/ml/modeling/kernel_ridge/__init__.py +15 -0
  31. snowflake_ml_python-2.5.0/snowflake/ml/modeling/lightgbm/__init__.py +15 -0
  32. snowflake_ml_python-2.5.0/snowflake/ml/modeling/linear_model/__init__.py +15 -0
  33. snowflake_ml_python-2.5.0/snowflake/ml/modeling/manifold/__init__.py +15 -0
  34. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/__init__.py +2 -3
  35. snowflake_ml_python-2.5.0/snowflake/ml/modeling/mixture/__init__.py +15 -0
  36. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/model_selection/__init__.py +1 -2
  37. snowflake_ml_python-2.5.0/snowflake/ml/modeling/multiclass/__init__.py +15 -0
  38. snowflake_ml_python-2.5.0/snowflake/ml/modeling/naive_bayes/__init__.py +15 -0
  39. snowflake_ml_python-2.5.0/snowflake/ml/modeling/neighbors/__init__.py +15 -0
  40. snowflake_ml_python-2.5.0/snowflake/ml/modeling/neural_network/__init__.py +15 -0
  41. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/pipeline/__init__.py +1 -2
  42. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/__init__.py +1 -2
  43. snowflake_ml_python-2.5.0/snowflake/ml/modeling/semi_supervised/__init__.py +15 -0
  44. snowflake_ml_python-2.5.0/snowflake/ml/modeling/svm/__init__.py +15 -0
  45. snowflake_ml_python-2.5.0/snowflake/ml/modeling/tree/__init__.py +15 -0
  46. snowflake_ml_python-2.5.0/snowflake/ml/modeling/xgboost/__init__.py +15 -0
  47. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/registry/_manager/model_manager.py +0 -1
  48. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/version.py +1 -1
  49. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake_ml_python.egg-info/PKG-INFO +31 -4
  50. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake_ml_python.egg-info/requires.txt +2 -2
  51. snowflake_ml_python-2.4.0/snowflake/ml/experiment/_entities/run.py +0 -75
  52. snowflake_ml_python-2.4.0/snowflake/ml/modeling/decomposition/__init__.py +0 -16
  53. snowflake_ml_python-2.4.0/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -16
  54. snowflake_ml_python-2.4.0/snowflake/ml/modeling/ensemble/__init__.py +0 -16
  55. snowflake_ml_python-2.4.0/snowflake/ml/modeling/feature_selection/__init__.py +0 -16
  56. snowflake_ml_python-2.4.0/snowflake/ml/modeling/gaussian_process/__init__.py +0 -16
  57. snowflake_ml_python-2.4.0/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -16
  58. snowflake_ml_python-2.4.0/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -16
  59. snowflake_ml_python-2.4.0/snowflake/ml/modeling/lightgbm/__init__.py +0 -16
  60. snowflake_ml_python-2.4.0/snowflake/ml/modeling/linear_model/__init__.py +0 -16
  61. snowflake_ml_python-2.4.0/snowflake/ml/modeling/manifold/__init__.py +0 -16
  62. snowflake_ml_python-2.4.0/snowflake/ml/modeling/mixture/__init__.py +0 -16
  63. snowflake_ml_python-2.4.0/snowflake/ml/modeling/multiclass/__init__.py +0 -16
  64. snowflake_ml_python-2.4.0/snowflake/ml/modeling/naive_bayes/__init__.py +0 -16
  65. snowflake_ml_python-2.4.0/snowflake/ml/modeling/neighbors/__init__.py +0 -16
  66. snowflake_ml_python-2.4.0/snowflake/ml/modeling/neural_network/__init__.py +0 -16
  67. snowflake_ml_python-2.4.0/snowflake/ml/modeling/semi_supervised/__init__.py +0 -16
  68. snowflake_ml_python-2.4.0/snowflake/ml/modeling/svm/__init__.py +0 -16
  69. snowflake_ml_python-2.4.0/snowflake/ml/modeling/tree/__init__.py +0 -16
  70. snowflake_ml_python-2.4.0/snowflake/ml/modeling/xgboost/__init__.py +0 -16
  71. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/LICENSE.txt +0 -0
  72. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/README.md +0 -0
  73. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/setup.cfg +0 -0
  74. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/__init__.py +0 -0
  75. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_classify_text.py +0 -0
  76. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_complete.py +0 -0
  77. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  78. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_embed_text_768.py +0 -0
  79. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_extract_answer.py +0 -0
  80. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_finetune.py +0 -0
  81. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_sentiment.py +0 -0
  82. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_sse_client.py +0 -0
  83. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_summarize.py +0 -0
  84. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_translate.py +0 -0
  85. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/cortex/_util.py +0 -0
  86. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/env.py +0 -0
  87. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  88. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  89. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  90. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  91. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  92. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  93. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  94. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  95. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  96. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  97. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  98. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  99. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  100. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/init_utils.py +0 -0
  101. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  102. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  103. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  104. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  105. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/telemetry.py +0 -0
  106. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/type_utils.py +0 -0
  107. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  108. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  109. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  110. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  111. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  112. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  113. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  114. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  115. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  116. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  117. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/result.py +0 -0
  118. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  119. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  120. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  121. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  122. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  123. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  124. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  125. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/_internal/utils/url.py +0 -0
  126. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/__init__.py +0 -0
  127. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  128. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/data_connector.py +0 -0
  129. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/data_ingestor.py +0 -0
  130. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/data_source.py +0 -0
  131. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  132. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/data/torch_utils.py +0 -0
  133. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/dataset/__init__.py +0 -0
  134. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/dataset/dataset.py +0 -0
  135. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  136. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  137. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  138. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/__init__.py +0 -0
  139. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  140. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  141. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  142. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  143. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  144. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  145. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  146. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  147. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  148. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/_source_info.py +0 -0
  149. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/callback/catboost.py +0 -0
  150. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  151. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  152. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  153. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/experiment/utils.py +0 -0
  154. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/__init__.py +0 -0
  155. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
  156. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  157. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  158. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/entity.py +0 -0
  159. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  160. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  161. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  162. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  163. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  164. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  165. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  166. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  167. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  168. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  169. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  170. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  171. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  172. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  173. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  174. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  175. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  176. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  177. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  178. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  179. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  180. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  181. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature.py +0 -0
  182. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature_group.py +0 -0
  183. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature_store.py +0 -0
  184. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  185. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
  186. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
  187. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  188. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  189. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/online_service.py +0 -0
  190. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/online_service_http_client.py +0 -0
  191. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
  192. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
  193. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
  194. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
  195. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/request_source.py +0 -0
  196. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  197. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
  198. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  199. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  200. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
  201. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  202. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  203. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  204. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
  205. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  206. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/fileset/fileset.py +0 -0
  207. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  208. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/fileset/snowfs.py +0 -0
  209. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  210. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/__init__.py +0 -0
  211. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  212. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  213. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  214. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  215. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  216. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  217. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  218. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  219. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  220. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  221. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  222. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  223. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  224. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  225. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  226. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
  227. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  228. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  229. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  230. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  231. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  232. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  233. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  234. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  235. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  236. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/decorators.py +0 -0
  237. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/job_definition.py +0 -0
  238. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/jobs/manager.py +0 -0
  239. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/lineage/__init__.py +0 -0
  240. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/__init__.py +0 -0
  241. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/_loaded_model_telemetry.py +0 -0
  242. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/batch_inference_job_specs.py +0 -0
  243. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
  244. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  245. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  246. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model/telemetry_params.py +0 -0
  247. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model_spec/legacy_model_spec.py +0 -0
  248. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model_spec/model_extension_spec.py +0 -0
  249. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model_spec/model_extension_spec_schema.py +0 -0
  250. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model_spec/model_spec.py +0 -0
  251. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/model_spec/model_spec_parser.py +0 -0
  252. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  253. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/live_commit_naming.py +0 -0
  254. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  255. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
  256. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  257. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  258. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/service/inference_job_service_spec.py +0 -0
  259. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  260. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  261. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  262. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  263. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  264. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  265. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/huggingface_lazy_uploader.py +0 -0
  266. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  267. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  268. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  269. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  270. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  271. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  272. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
  273. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  274. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
  275. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  276. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
  277. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  278. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  279. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  280. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  281. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  282. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  283. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  284. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  285. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  286. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  287. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
  288. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
  289. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  290. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
  291. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
  292. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
  293. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
  294. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
  295. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
  296. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
  297. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
  298. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
  299. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
  300. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
  301. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
  302. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
  303. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
  304. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
  305. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
  306. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
  307. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
  308. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
  309. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
  310. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
  311. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
  312. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
  313. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
  314. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
  315. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
  316. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
  317. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
  318. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  319. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  320. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  321. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/peft_adapter.py +0 -0
  322. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  323. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  324. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  325. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  326. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  327. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  328. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  329. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  330. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  331. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  332. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  333. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  334. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  335. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  336. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  337. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +0 -0
  338. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  339. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  340. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  341. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  342. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
  343. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  344. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  345. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  346. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/core.py +0 -0
  347. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  348. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  349. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  350. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  351. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  352. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  353. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  354. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/batch_inference/__init__.py +0 -0
  355. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/code_path.py +0 -0
  356. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/compute_pool.py +0 -0
  357. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/custom_model.py +0 -0
  358. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/event_handler.py +0 -0
  359. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/inference_engine.py +0 -0
  360. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/model_signature.py +0 -0
  361. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/models/huggingface.py +0 -0
  362. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  363. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/openai_signatures.py +0 -0
  364. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/target_platform.py +0 -0
  365. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/task.py +0 -0
  366. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/type_hints.py +0 -0
  367. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/model/volatility.py +0 -0
  368. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  369. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  370. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  371. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  372. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  373. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  374. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  375. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  376. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  377. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  378. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  379. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  380. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  381. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  382. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  383. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  384. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  385. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  386. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  387. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  388. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  389. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  390. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  391. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  392. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  393. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  394. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  395. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  396. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  397. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  398. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  399. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  400. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  401. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  402. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  403. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  404. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  405. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  406. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  407. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  408. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  409. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  410. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  411. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  412. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  413. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  414. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  415. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  416. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  417. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  418. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  419. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  420. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  421. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  422. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  423. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  424. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  425. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  426. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  427. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  428. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  429. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  430. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  431. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  432. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  433. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  434. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  435. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  436. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  437. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  438. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  439. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  440. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  441. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  442. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/framework/base.py +0 -0
  443. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  444. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  445. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  446. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  447. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  448. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  449. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  450. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  451. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  452. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  453. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  454. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  455. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  456. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  457. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  458. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  459. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  460. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  461. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  462. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  463. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  464. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  465. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  466. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  467. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  468. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  469. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  470. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  471. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  472. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  473. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  474. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  475. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  476. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  477. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  478. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  479. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  480. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  481. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  482. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  483. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  484. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  485. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  486. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  487. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  488. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  489. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  490. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  491. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  492. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  493. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  494. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  495. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  496. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  497. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  498. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  499. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  500. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  501. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  502. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  503. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  504. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  505. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  506. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  507. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  508. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  509. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  510. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  511. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  512. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  513. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  514. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  515. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  516. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  517. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  518. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  519. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  520. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  521. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  522. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  523. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  524. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  525. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  526. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  527. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  528. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  529. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  530. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  531. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  532. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  533. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  534. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  535. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  536. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  537. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  538. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  539. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  540. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  541. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  542. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  543. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  544. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  545. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  546. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  547. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  548. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  549. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  550. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  551. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  552. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  553. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  554. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  555. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  556. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  557. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  558. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  559. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  560. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  561. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  562. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  563. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  564. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/monitoring/shap.py +0 -0
  565. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/registry/__init__.py +0 -0
  566. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  567. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/registry/registry.py +0 -0
  568. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/utils/authentication.py +0 -0
  569. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/utils/html_utils.py +0 -0
  570. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/utils/sparse.py +0 -0
  571. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/utils/sql_client.py +0 -0
  572. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake/ml/utils/stage_file.py +0 -0
  573. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
  574. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  575. {snowflake_ml_python-2.4.0 → snowflake_ml_python-2.5.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,11 +1,33 @@
1
1
  # Release History
2
2
 
3
- ## 2.4.0
3
+ ## 2.5.0
4
+
5
+ ### New Features
6
+
7
+ ### Bug Fixes
8
+
9
+ * Modeling: The `snowflake.ml.modeling` estimators and preprocessing transformers are not deprecated.
10
+ The `DeprecationWarning` emitted when importing a `snowflake.ml.modeling` subpackage, announced in
11
+ 2.0.0, has been removed.
12
+ * ML Jobs: `MLJob.get_logs(verbose=False)` no longer returns container startup and shutdown logs when other log
13
+ lines land between the lines of the job start or end banner.
14
+ * Dependencies: Raised the `fsspec` requirement ceiling from `<2026` to `<2027` so `fsspec`
15
+ 2026.6.0, which fixes CVE-2026-104851, can be installed.
16
+
17
+ ### Behavior Changes
18
+
19
+ ### Deprecations
20
+
21
+ ## 2.4.0 (2026-10-06)
4
22
 
5
23
  ### New Features
6
24
 
7
25
  * Generic: Support Python 3.14.
8
26
 
27
+ * Registry: `create_service` now accepts `FeatureGroup` objects in `feature_sources_per_function`
28
+ alongside `FeatureView`s. Snowflake resolves the `FeatureGroup`'s online feature tables at
29
+ deploy time, so callers no longer need to enumerate the underlying feature views manually.
30
+
9
31
  * Registry: `FeatureSpec(dtype=DataType.OBJECT)` now accepts schema-free Python dictionaries as a
10
32
  model input or output (SQL `OBJECT`). Callers can pass a dict to `ModelVersion.run`, an object
11
33
  literal in SQL, or a JSON object over REST, without stringifying to JSON. Use `shape=(-1,)` for
@@ -20,6 +42,11 @@
20
42
  * Experiment Tracking: `ExperimentTracking` accepts an optional `warnings_as_errors` parameter. When True,
21
43
  conditions that are normally reported as warnings are raised instead.
22
44
 
45
+ * Experiment Tracking: Experiment runs now appear as first-class objects in lineage. Calling
46
+ `model_version.lineage(direction="upstream", domain_filter={"experiment"})` returns `Run` instances
47
+ with `database_name`, `schema_name`, `experiment_name`, and `name` properties that can be passed straight back
48
+ into experiment tracking.
49
+
23
50
  ### Bug Fixes
24
51
 
25
52
  ### Behavior Changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 2.4.0
3
+ Version: 2.5.0
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:
@@ -237,7 +237,7 @@ License-File: LICENSE.txt
237
237
  Requires-Dist: anyio<5,>=3.5.0
238
238
  Requires-Dist: cachetools>=3.1.1
239
239
  Requires-Dist: cloudpickle>=2.0.0
240
- Requires-Dist: fsspec[http]<2026,>=2024.6.1
240
+ Requires-Dist: fsspec[http]<2027,>=2024.6.1
241
241
  Requires-Dist: importlib_resources<7,>=6.1.1
242
242
  Requires-Dist: jinja2<4,>=3.1.0
243
243
  Requires-Dist: numpy<3,>=1.23
@@ -251,7 +251,7 @@ Requires-Dist: pytimeparse<2,>=1.1.8
251
251
  Requires-Dist: pyyaml<7,>=6.0
252
252
  Requires-Dist: retrying<2,>=1.3.3
253
253
  Requires-Dist: snowflake-connector-python[pandas]<5,>=3.17.3
254
- Requires-Dist: snowflake-snowpark-python<2,>=1.37.0
254
+ Requires-Dist: snowflake-snowpark-python<2,>=1.43.0
255
255
  Requires-Dist: sqlparse<1,>=0.4
256
256
  Requires-Dist: tqdm<5
257
257
  Requires-Dist: typing-extensions<5,>=4.1.0
@@ -426,12 +426,34 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
426
426
 
427
427
  # Release History
428
428
 
429
- ## 2.4.0
429
+ ## 2.5.0
430
+
431
+ ### New Features
432
+
433
+ ### Bug Fixes
434
+
435
+ * Modeling: The `snowflake.ml.modeling` estimators and preprocessing transformers are not deprecated.
436
+ The `DeprecationWarning` emitted when importing a `snowflake.ml.modeling` subpackage, announced in
437
+ 2.0.0, has been removed.
438
+ * ML Jobs: `MLJob.get_logs(verbose=False)` no longer returns container startup and shutdown logs when other log
439
+ lines land between the lines of the job start or end banner.
440
+ * Dependencies: Raised the `fsspec` requirement ceiling from `<2026` to `<2027` so `fsspec`
441
+ 2026.6.0, which fixes CVE-2026-104851, can be installed.
442
+
443
+ ### Behavior Changes
444
+
445
+ ### Deprecations
446
+
447
+ ## 2.4.0 (2026-10-06)
430
448
 
431
449
  ### New Features
432
450
 
433
451
  * Generic: Support Python 3.14.
434
452
 
453
+ * Registry: `create_service` now accepts `FeatureGroup` objects in `feature_sources_per_function`
454
+ alongside `FeatureView`s. Snowflake resolves the `FeatureGroup`'s online feature tables at
455
+ deploy time, so callers no longer need to enumerate the underlying feature views manually.
456
+
435
457
  * Registry: `FeatureSpec(dtype=DataType.OBJECT)` now accepts schema-free Python dictionaries as a
436
458
  model input or output (SQL `OBJECT`). Callers can pass a dict to `ModelVersion.run`, an object
437
459
  literal in SQL, or a JSON object over REST, without stringifying to JSON. Use `shape=(-1,)` for
@@ -446,6 +468,11 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
446
468
  * Experiment Tracking: `ExperimentTracking` accepts an optional `warnings_as_errors` parameter. When True,
447
469
  conditions that are normally reported as warnings are raised instead.
448
470
 
471
+ * Experiment Tracking: Experiment runs now appear as first-class objects in lineage. Calling
472
+ `model_version.lineage(direction="upstream", domain_filter={"experiment"})` returns `Run` instances
473
+ with `database_name`, `schema_name`, `experiment_name`, and `name` properties that can be passed straight back
474
+ into experiment tracking.
475
+
449
476
  ### Bug Fixes
450
477
 
451
478
  ### Behavior Changes
@@ -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.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "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.10, <3.15"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1", "cloudpickle>=2.0.0", "fsspec[http]>=2024.6.1,<2026", "importlib_resources>=6.1.1, <7", "jinja2>=3.1.0,<4", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.37.0,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5",]
11
+ dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1", "cloudpickle>=2.0.0", "fsspec[http]>=2024.6.1,<2027", "importlib_resources>=6.1.1, <7", "jinja2>=3.1.0,<4", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.43.0,<2", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -90,6 +90,9 @@ def _validate_pip_requirement_string(req_str: str) -> requirements.Requirement:
90
90
  Returns:
91
91
  A requirements.Requirement object containing the requirement information.
92
92
  """
93
+ # A requirement string must not carry surrounding whitespace: packaging>=26 accepts only a
94
+ # requirement that ends at the end of the string, so a trailing newline is a parse error.
95
+ req_str = req_str.strip()
93
96
  try:
94
97
  r = requirements.Requirement(req_str)
95
98
 
@@ -780,8 +783,9 @@ def load_requirements_file(path: pathlib.Path) -> list[requirements.Requirement]
780
783
  with open(path, encoding="utf-8") as f:
781
784
  reqs = f.readlines()
782
785
 
783
- # Filter out pip options
784
- reqs = [line for line in reqs if line.strip() and not line.strip().startswith(("-", "#"))]
786
+ # "-" lines are pip options (e.g. --extra-index-url) and "#" lines are comments; neither is a
787
+ # requirement. Strip as well, since a requirement string must not keep readlines()' newline.
788
+ reqs = [stripped for line in reqs if (stripped := line.strip()) and not stripped.startswith(("-", "#"))]
785
789
 
786
790
  return validate_pip_requirement_string_list(reqs)
787
791
 
@@ -120,7 +120,21 @@ def make_archive(
120
120
  )
121
121
 
122
122
 
123
- def zip_python_package(zipfile_path: str, package_name: str, ignore_generated_py_file: bool = True) -> None:
123
+ def zip_python_package(
124
+ zipfile_path: str,
125
+ package_name: str,
126
+ ignore_generated_py_file: bool = True,
127
+ *,
128
+ exclude_dir_names: tuple[str, ...] = (),
129
+ ) -> None:
130
+ """Zip an imported Python package.
131
+
132
+ Args:
133
+ zipfile_path: Destination zip path.
134
+ package_name: Dotted package name to zip.
135
+ ignore_generated_py_file: When True, omit generated bytecode and stub files.
136
+ exclude_dir_names: Directory names to omit anywhere in the package. The directory entry itself is not written.
137
+ """
124
138
  import importlib_resources
125
139
  from importlib_resources import abc as importlib_resources_abc
126
140
 
@@ -131,6 +145,7 @@ def zip_python_package(zipfile_path: str, package_name: str, ignore_generated_py
131
145
 
132
146
  base_dirs = package_name.split(".")
133
147
  assert len(base_dirs) >= 1, "Invalid package name."
148
+ excluded_dirs = set(exclude_dir_names)
134
149
 
135
150
  with zipfile.ZipFile(zipfile_path, mode="w", compression=zipfile.ZIP_DEFLATED) as zf:
136
151
  for i in range(len(base_dirs)):
@@ -141,6 +156,8 @@ def zip_python_package(zipfile_path: str, package_name: str, ignore_generated_py
141
156
  def _add_to_zip(
142
157
  zf: zipfile.ZipFile, path_info: importlib_resources_abc.Traversable, base_arcname: pathlib.PurePosixPath
143
158
  ) -> None:
159
+ if path_info.name in excluded_dirs:
160
+ return
144
161
  if path_info.is_file():
145
162
  if ignore_generated_py_file and path_info.name.endswith(GENERATED_PY_FILE_EXT):
146
163
  return
@@ -0,0 +1,128 @@
1
+ import types
2
+ import warnings
3
+ from typing import TYPE_CHECKING
4
+
5
+ from snowflake import snowpark
6
+ from snowflake.ml._internal.utils import identifier, sql_identifier
7
+ from snowflake.ml.experiment import _experiment_info as experiment_info
8
+ from snowflake.ml.experiment._entities import run_metadata
9
+ from snowflake.ml.lineage import lineage_node
10
+
11
+ if TYPE_CHECKING:
12
+ from snowflake.ml.experiment import experiment_tracking
13
+
14
+ METADATA_SIZE_WARNING_MESSAGE = "It is likely that no further metrics or parameters will be logged for this run."
15
+
16
+
17
+ class Run(lineage_node.LineageNode):
18
+ """An experiment run.
19
+
20
+ When created by ``ExperimentTracking.start_run``, the run is an active context manager that
21
+ patches model logging and ends the run on exit. When returned by the lineage system
22
+ (``model_version.lineage(direction="upstream", domain_filter={"experiment"})``), it is a
23
+ read-only handle exposing the identifiers needed to look up metrics and parameters.
24
+ """
25
+
26
+ def __init__(
27
+ self,
28
+ experiment_tracking: "experiment_tracking.ExperimentTracking | None" = None,
29
+ *,
30
+ experiment_name: sql_identifier.SqlIdentifier,
31
+ run_name: sql_identifier.SqlIdentifier,
32
+ session: snowpark.Session | None = None,
33
+ database_name: str | None = None,
34
+ schema_name: str | None = None,
35
+ ) -> None:
36
+ self._experiment_tracking = experiment_tracking
37
+ self.experiment_name = experiment_name
38
+ self.name = run_name
39
+
40
+ # Whether we've already shown the user a warning about exceeding the run metadata size limit.
41
+ self._warned_about_metadata_size = False
42
+
43
+ if experiment_tracking is not None:
44
+ _session = experiment_tracking._session
45
+ self.database_name = str(experiment_tracking._database_name)
46
+ self.schema_name = str(experiment_tracking._schema_name)
47
+ else:
48
+ if session is None or database_name is None or schema_name is None:
49
+ raise ValueError(
50
+ "session, database_name, and schema_name are required when experiment_tracking is None"
51
+ )
52
+ _session = session
53
+ self.database_name = database_name
54
+ self.schema_name = schema_name
55
+
56
+ self._patcher = experiment_info.ExperimentInfoPatcher(
57
+ experiment_info=self._get_experiment_info(),
58
+ )
59
+
60
+ # A run is modelled in lineage as a version of its experiment, so the node name is the experiment's.
61
+ super().__init__(
62
+ session=_session,
63
+ name=self._fully_qualified_experiment_name(),
64
+ domain="experiment",
65
+ version=str(run_name),
66
+ )
67
+
68
+ def __enter__(self) -> "Run":
69
+ self._patcher.__enter__()
70
+ return self
71
+
72
+ def __exit__(
73
+ self,
74
+ exc_type: type[BaseException] | None,
75
+ exc_value: BaseException | None,
76
+ tb: types.TracebackType | None,
77
+ ) -> None:
78
+ self._patcher.__exit__(exc_type, exc_value, tb)
79
+ if self._experiment_tracking is not None and self._experiment_tracking._run is self:
80
+ if exc_type is not None:
81
+ self._experiment_tracking._try_log_exception(exc_type, exc_value, tb)
82
+ self._experiment_tracking.end_run(status=run_metadata.RunStatus.FAILED.value)
83
+ else:
84
+ self._experiment_tracking.end_run()
85
+
86
+ def _fully_qualified_experiment_name(self) -> str:
87
+ return sql_identifier.get_fully_qualified_name(self.database_name, self.schema_name, self.experiment_name)
88
+
89
+ def _get_experiment_info(self) -> experiment_info.ExperimentInfo:
90
+ return experiment_info.ExperimentInfo(
91
+ fully_qualified_name=self._fully_qualified_experiment_name(),
92
+ run_name=self.name.identifier(),
93
+ )
94
+
95
+ def _handle_run_metadata_size_limit(self, sql_error_msg: str) -> None:
96
+ """Report that run metadata exceeded the size limit.
97
+
98
+ Args:
99
+ sql_error_msg: The error message returned by Snowflake.
100
+
101
+ Raises:
102
+ RuntimeWarning: If the experiment tracking instance was created with warnings_as_errors=True.
103
+ """
104
+ message = f"{sql_error_msg}. {METADATA_SIZE_WARNING_MESSAGE}"
105
+ if self._experiment_tracking is not None and self._experiment_tracking._warnings_as_errors:
106
+ raise RuntimeWarning(message)
107
+ # Once the limit is hit every subsequent log attempt fails the same way, so warn only once.
108
+ if not self._warned_about_metadata_size:
109
+ warnings.warn(message, RuntimeWarning, stacklevel=2)
110
+ self._warned_about_metadata_size = True
111
+
112
+ @staticmethod
113
+ def _load_from_lineage_node(
114
+ session: snowpark.Session,
115
+ name: str,
116
+ version: str,
117
+ ) -> "Run":
118
+ database_name, schema_name, experiment_name = identifier.parse_schema_level_object_identifier(name)
119
+ return Run(
120
+ experiment_name=sql_identifier.SqlIdentifier(experiment_name),
121
+ run_name=sql_identifier.SqlIdentifier(version),
122
+ session=session,
123
+ database_name=database_name,
124
+ schema_name=schema_name,
125
+ )
126
+
127
+
128
+ lineage_node.DOMAIN_LINEAGE_REGISTRY["experiment"] = Run
@@ -25,7 +25,6 @@ from snowflake.ml.experiment._client import (
25
25
  experiment_tracking_sql_client as sql_client,
26
26
  )
27
27
  from snowflake.ml.experiment._entities import run_metadata
28
- from snowflake.ml.lineage import lineage_node
29
28
  from snowflake.ml.model import type_hints
30
29
  from snowflake.ml.utils import sql_client as sql_client_utils
31
30
  from snowflake.snowpark import functions
@@ -328,15 +327,14 @@ class ExperimentTracking:
328
327
  else:
329
328
  raise RuntimeError("No run is active. Please provide a run_name or start a run.")
330
329
 
331
- experiment_fqn = self._sql_client.fully_qualified_object_name(
332
- self._database_name, self._schema_name, self._experiment.name
333
- )
334
- run_node = lineage_node.LineageNode(
335
- session=self._session,
336
- name=experiment_fqn,
337
- domain="experiment",
338
- version=resolved_run_name.identifier(),
339
- )
330
+ if self._run and self._run.name == resolved_run_name:
331
+ run_node = self._run
332
+ else:
333
+ run_node = entities.Run(
334
+ experiment_tracking=self,
335
+ experiment_name=self._experiment.name,
336
+ run_name=resolved_run_name,
337
+ )
340
338
  logged_models = run_node.lineage(direction="downstream", domain_filter={"model"})
341
339
  return [model for model in logged_models if isinstance(model, ml_model.ModelVersion)]
342
340
 
@@ -1,3 +1,4 @@
1
+ import bisect
1
2
  import json
2
3
  import logging
3
4
  import os
@@ -583,20 +584,49 @@ def _get_logs(
583
584
  if verbose:
584
585
  return full_log
585
586
 
586
- # Otherwise, extract only the portion between LOG_START_MSG and LOG_END_MSG
587
- start_idx = full_log.find(constants.LOG_START_MSG)
588
- if start_idx != -1:
589
- start_idx += len(constants.LOG_START_MSG)
590
- else:
591
- # If start message not found, start from the beginning
592
- start_idx = 0
587
+ return _extract_payload_logs(full_log)
588
+
593
589
 
594
- end_idx = full_log.find(constants.LOG_END_MSG, start_idx)
595
- if end_idx == -1:
596
- # If end message not found, return everything after start
597
- end_idx = len(full_log)
590
+ def _extract_payload_logs(full_log: str) -> str:
591
+ """Return the payload output between the LOG_START_MSG and LOG_END_MSG banners.
598
592
 
599
- return full_log[start_idx:end_idx].strip()
593
+ A banner is a separator line, the marker line, and a separator line, in that order. Other
594
+ lines may sit between those parts because the job log interleaves stdout with stderr. The
595
+ first start banner and the last end banner after it are used, so marker text that the payload
596
+ prints before the launcher's end banner is kept as output.
597
+
598
+ Args:
599
+ full_log: The complete job log.
600
+
601
+ Returns:
602
+ The log lines between the banners, stripped of surrounding whitespace.
603
+ """
604
+ separator, start_marker, _ = constants.LOG_START_MSG.split("\n")
605
+ end_marker = constants.LOG_END_MSG.split("\n")[1]
606
+ lines = full_log.splitlines(keepends=True)
607
+ separators = [i for i, line in enumerate(lines) if line.strip() == separator]
608
+
609
+ def banners(marker: str) -> list[tuple[int, int]]:
610
+ """Return the (opening, closing) separator indices of every banner for ``marker``."""
611
+ found = []
612
+ for i, line in enumerate(lines):
613
+ if line.strip() != marker:
614
+ continue
615
+ opening_idx = bisect.bisect_left(separators, i) - 1
616
+ closing_idx = bisect.bisect_right(separators, i)
617
+ if opening_idx >= 0 and closing_idx < len(separators):
618
+ found.append((separators[opening_idx], separators[closing_idx]))
619
+ return found
620
+
621
+ # If start message not found, start from the beginning
622
+ start_banners = banners(start_marker)
623
+ start = start_banners[0][1] + 1 if start_banners else 0
624
+
625
+ # If end message not found, return everything after start
626
+ end_banners = [banner for banner in banners(end_marker) if banner[0] >= start]
627
+ end = end_banners[-1][0] if end_banners else len(lines)
628
+
629
+ return "".join(lines[start:end]).strip()
600
630
 
601
631
 
602
632
  def _read_instance_record(session: snowpark.Session, result_path: str, instance_id: int) -> dict[str, Any] | None:
@@ -1,3 +1,4 @@
1
+ import importlib
1
2
  import json
2
3
  from datetime import datetime
3
4
  from typing import TYPE_CHECKING, Literal, Union
@@ -86,7 +87,7 @@ class LineageNode(mixins.SerializableSessionMixin):
86
87
  def lineage(
87
88
  self,
88
89
  direction: Literal["upstream", "downstream"] = "downstream",
89
- domain_filter: set[Literal["feature_view", "dataset", "model", "table", "view"]] | None = None,
90
+ domain_filter: set[Literal["feature_view", "dataset", "model", "table", "view", "experiment"]] | None = None,
90
91
  ) -> list[Union["feature_view.FeatureView", "dataset.Dataset", "ModelVersion", "LineageNode"]]:
91
92
  """
92
93
  Retrieves the lineage nodes connected to this node.
@@ -122,6 +123,13 @@ class LineageNode(mixins.SerializableSessionMixin):
122
123
  for s in identifier.parse_schema_level_object_identifier(lineage_object["name"])
123
124
  if s is not None
124
125
  )
126
+ if domain not in DOMAIN_LINEAGE_REGISTRY:
127
+ match domain:
128
+ case "experiment":
129
+ try:
130
+ importlib.import_module("snowflake.ml.experiment._entities.run")
131
+ except ImportError:
132
+ pass
125
133
  if domain in DOMAIN_LINEAGE_REGISTRY and lineage_object["status"] == "ACTIVE":
126
134
  lineage_nodes.append(
127
135
  DOMAIN_LINEAGE_REGISTRY[domain]._load_from_lineage_node(
@@ -10,7 +10,7 @@ import pandas as pd
10
10
  from snowflake.ml._internal import platform_capabilities, telemetry
11
11
  from snowflake.ml._internal.exceptions import error_codes, exceptions
12
12
  from snowflake.ml._internal.utils import sql_identifier
13
- from snowflake.ml.feature_store import feature_view
13
+ from snowflake.ml.feature_store import feature_group, feature_view
14
14
  from snowflake.ml.jobs import job
15
15
  from snowflake.ml.lineage import lineage_node
16
16
  from snowflake.ml.model import inference_engine, openai_signatures, task, type_hints
@@ -163,14 +163,13 @@ class ModelVersion(lineage_node.LineageNode):
163
163
  service_ops: service_ops.ServiceOperator,
164
164
  model_name: sql_identifier.SqlIdentifier,
165
165
  version_name: sql_identifier.SqlIdentifier,
166
- retry: bool | None = False,
167
166
  ) -> "ModelVersion":
168
167
  self: "ModelVersion" = object.__new__(cls)
169
168
  self._model_ops = model_ops
170
169
  self._service_ops = service_ops
171
170
  self._model_name = model_name
172
171
  self._version_name = version_name
173
- self._functions = self._get_functions(**({"retry": True} if retry else {}))
172
+ self._functions = self._get_functions()
174
173
  self._model_spec = None
175
174
  self._target_platforms = None
176
175
  super(cls, cls).__init__(
@@ -419,7 +418,7 @@ class ModelVersion(lineage_node.LineageNode):
419
418
  statement_params=statement_params,
420
419
  )
421
420
 
422
- def _get_functions(self, *, retry: bool | None = False) -> list[model_manifest_schema.ModelFunctionInfo]:
421
+ def _get_functions(self) -> list[model_manifest_schema.ModelFunctionInfo]:
423
422
  statement_params = telemetry.get_statement_params(
424
423
  project=_TELEMETRY_PROJECT,
425
424
  subproject=_TELEMETRY_SUBPROJECT,
@@ -430,7 +429,6 @@ class ModelVersion(lineage_node.LineageNode):
430
429
  model_name=self._model_name,
431
430
  version_name=self._version_name,
432
431
  statement_params=statement_params,
433
- **({"retry": True} if retry else {}),
434
432
  )
435
433
 
436
434
  @telemetry.send_api_usage_telemetry(
@@ -1414,7 +1412,8 @@ class ModelVersion(lineage_node.LineageNode):
1414
1412
  autocapture: bool | None = None,
1415
1413
  inference_engine_options: dict[str, Any] | None = None,
1416
1414
  experimental_options: dict[str, Any] | None = None,
1417
- feature_sources_per_function: dict[str, list[feature_view.FeatureView]] | None = None,
1415
+ feature_sources_per_function: dict[str, list[feature_view.FeatureView | feature_group.FeatureGroup]]
1416
+ | None = None,
1418
1417
  adapters: dict[str, "ModelVersion"] | list["ModelVersion"] | None = None,
1419
1418
  ) -> str | async_job.AsyncJob:
1420
1419
  """Create an inference service with the given spec.
@@ -1460,9 +1459,9 @@ class ModelVersion(lineage_node.LineageNode):
1460
1459
  `engine_args_override` is a list of string arguments to pass to the inference engine.
1461
1460
  experimental_options: Experimental options for the service creation.
1462
1461
  feature_sources_per_function: Optional mapping from model function name (e.g. ``"predict"``) to the list of
1463
- registered :class:`FeatureView` objects whose columns should be looked up at inference time. The model
1464
- service will fetch any missing feature columns from these sources before invoking the model. Currently
1465
- only one FeatureView per function is supported.
1462
+ registered :class:`FeatureView` or :class:`FeatureGroup` objects whose columns should be looked up at
1463
+ inference time. The model service will fetch any missing feature columns from these sources before
1464
+ invoking the model. Currently only one source per function is supported.
1466
1465
  adapters: Optional mapping from service alias (``model =>`` / REST ``params.model``) to adapter
1467
1466
  :class:`ModelVersion` objects, or a list of adapter versions. Dict keys become ``alias`` on each
1468
1467
  emitted list item. A nonempty list and adapter-as-target omit ``alias`` (GS defaults each to
@@ -1492,7 +1491,8 @@ class ModelVersion(lineage_node.LineageNode):
1492
1491
  autocapture: bool | None = None,
1493
1492
  inference_engine_options: dict[str, Any] | None = None,
1494
1493
  experimental_options: dict[str, Any] | None = None,
1495
- feature_sources_per_function: dict[str, list[feature_view.FeatureView]] | None = None,
1494
+ feature_sources_per_function: dict[str, list[feature_view.FeatureView | feature_group.FeatureGroup]]
1495
+ | None = None,
1496
1496
  adapters: dict[str, "ModelVersion"] | list["ModelVersion"] | None = None,
1497
1497
  ) -> str | async_job.AsyncJob:
1498
1498
  """Create an inference service with the given spec.
@@ -1538,9 +1538,9 @@ class ModelVersion(lineage_node.LineageNode):
1538
1538
  `engine_args_override` is a list of string arguments to pass to the inference engine.
1539
1539
  experimental_options: Experimental options for the service creation.
1540
1540
  feature_sources_per_function: Optional mapping from model function name (e.g. ``"predict"``) to the list of
1541
- registered :class:`FeatureView` objects whose columns should be looked up at inference time. The model
1542
- service will fetch any missing feature columns from these sources before invoking the model. Currently
1543
- only one FeatureView per function is supported.
1541
+ registered :class:`FeatureView` or :class:`FeatureGroup` objects whose columns should be looked up at
1542
+ inference time. The model service will fetch any missing feature columns from these sources before
1543
+ invoking the model. Currently only one source per function is supported.
1544
1544
  adapters: Optional mapping from service alias (``model =>`` / REST ``params.model``) to adapter
1545
1545
  :class:`ModelVersion` objects, or a list of adapter versions. Dict keys become ``alias`` on each
1546
1546
  emitted list item. A nonempty list and adapter-as-target omit ``alias`` (GS defaults each to
@@ -1575,7 +1575,8 @@ class ModelVersion(lineage_node.LineageNode):
1575
1575
  autocapture: bool | None = None,
1576
1576
  inference_engine_options: dict[str, Any] | None = None,
1577
1577
  experimental_options: dict[str, Any] | None = None,
1578
- feature_sources_per_function: dict[str, list[feature_view.FeatureView]] | None = None,
1578
+ feature_sources_per_function: dict[str, list[feature_view.FeatureView | feature_group.FeatureGroup]]
1579
+ | None = None,
1579
1580
  adapters: dict[str, "ModelVersion"] | list["ModelVersion"] | None = None,
1580
1581
  ) -> str | async_job.AsyncJob:
1581
1582
  """Create an inference service with the given spec.
@@ -1623,9 +1624,9 @@ class ModelVersion(lineage_node.LineageNode):
1623
1624
  `engine_args_override` is a list of string arguments to pass to the inference engine.
1624
1625
  experimental_options: Experimental options for the service creation.
1625
1626
  feature_sources_per_function: Optional mapping from model function name (e.g. ``"predict"``) to the list of
1626
- registered :class:`FeatureView` objects whose columns should be looked up at inference time. The model
1627
- service will fetch any missing feature columns from these sources before invoking the model. Currently
1628
- only one FeatureView per function is supported.
1627
+ registered :class:`FeatureView` or :class:`FeatureGroup` objects whose columns should be looked up at
1628
+ inference time. The model service will fetch any missing feature columns from these sources before
1629
+ invoking the model. Currently only one source per function is supported.
1629
1630
  adapters: Optional mapping from service alias (``model =>`` / REST ``params.model``) to adapter
1630
1631
  :class:`ModelVersion` objects, or a list of adapter versions. Dict keys become ``alias`` on each
1631
1632
  emitted list item. A nonempty list and adapter-as-target omit ``alias`` (GS defaults each to
@@ -59,7 +59,9 @@ class ServiceInfo(TypedDict):
59
59
 
60
60
  class ModelOperator:
61
61
  INFERENCE_SERVICE_ENDPOINT_NAME = "inference"
62
- INGRESS_ENDPOINT_URL_SUFFIX = "snowflakecomputing.app"
62
+ # Accounts on the per-account public URL policy get a URL under "snowflake.app"; the others keep
63
+ # the original "snowflakecomputing.app". Both are live, so both have to be accepted.
64
+ INGRESS_ENDPOINT_URL_SUFFIXES = ("snowflakecomputing.app", "snowflake.app")
63
65
  # app-service-privatelink might not contain "snowflakecomputing" in the url - using the minimum required substring
64
66
  PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING = "privatelink.snowflake"
65
67
 
@@ -706,7 +708,7 @@ class ModelOperator:
706
708
  if url_value is None:
707
709
  return None
708
710
  url_str = str(url_value)
709
- return url_str if url_str.endswith(ModelOperator.INGRESS_ENDPOINT_URL_SUFFIX) else None
711
+ return url_str if url_str.endswith(ModelOperator.INGRESS_ENDPOINT_URL_SUFFIXES) else None
710
712
 
711
713
  def _extract_and_validate_privatelink_url(self, res_row: "row.Row") -> str | None:
712
714
  """Extract and validate privatelink ingress URL from endpoint row."""
@@ -908,7 +910,6 @@ class ModelOperator:
908
910
  model_name: sql_identifier.SqlIdentifier,
909
911
  version_name: sql_identifier.SqlIdentifier,
910
912
  statement_params: dict[str, Any] | None = None,
911
- retry: bool | None = False,
912
913
  ) -> tuple[model_spec.ModelSpec, list[str] | None]:
913
914
  """Fetch both model spec and target platforms from a single SQL query.
914
915
 
@@ -918,23 +919,19 @@ class ModelOperator:
918
919
  model_name: The model name.
919
920
  version_name: The version name.
920
921
  statement_params: Optional dictionary of statement parameters.
921
- retry: If True, retry SHOW VERSIONS when the version row is not yet visible.
922
922
 
923
923
  Returns:
924
924
  A tuple of (model_spec, target_platforms) where target_platforms is a list of
925
925
  platform strings (e.g., ["WAREHOUSE"]) or None if not available.
926
926
  """
927
- show_versions_kwargs: dict[str, Any] = {
928
- "database_name": database_name,
929
- "schema_name": schema_name,
930
- "model_name": model_name,
931
- "version_name": version_name,
932
- "check_model_details": True,
933
- "statement_params": {**(statement_params or {}), "SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL": True},
934
- }
935
- if retry:
936
- show_versions_kwargs["retry"] = True
937
- version_row = self._model_client.show_versions(**show_versions_kwargs)[0]
927
+ version_row = self._model_client.show_versions(
928
+ database_name=database_name,
929
+ schema_name=schema_name,
930
+ model_name=model_name,
931
+ version_name=version_name,
932
+ check_model_details=True,
933
+ statement_params={**(statement_params or {}), "SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL": True},
934
+ )[0]
938
935
 
939
936
  # Extract model spec
940
937
  raw_model_spec_res = version_row[self._model_client.MODEL_VERSION_MODEL_SPEC_COL_NAME]
@@ -958,7 +955,6 @@ class ModelOperator:
958
955
  model_name: sql_identifier.SqlIdentifier,
959
956
  version_name: sql_identifier.SqlIdentifier,
960
957
  statement_params: dict[str, Any] | None = None,
961
- retry: bool | None = False,
962
958
  ) -> model_spec.ModelSpec:
963
959
  parsed_model_spec, _ = self._fetch_model_spec_and_target_platforms(
964
960
  database_name=database_name,
@@ -966,7 +962,6 @@ class ModelOperator:
966
962
  model_name=model_name,
967
963
  version_name=version_name,
968
964
  statement_params=statement_params,
969
- **({"retry": True} if retry else {}),
970
965
  )
971
966
  return parsed_model_spec
972
967
 
@@ -1214,7 +1209,6 @@ class ModelOperator:
1214
1209
  model_name: sql_identifier.SqlIdentifier,
1215
1210
  version_name: sql_identifier.SqlIdentifier,
1216
1211
  statement_params: dict[str, Any] | None = None,
1217
- retry: bool | None = False,
1218
1212
  ) -> list[model_manifest_schema.ModelFunctionInfo]:
1219
1213
  parsed_model_spec = self._fetch_model_spec(
1220
1214
  database_name=database_name,
@@ -1222,7 +1216,6 @@ class ModelOperator:
1222
1216
  model_name=model_name,
1223
1217
  version_name=version_name,
1224
1218
  statement_params=statement_params,
1225
- **({"retry": True} if retry else {}),
1226
1219
  )
1227
1220
  show_functions_res = self._model_version_client.show_functions(
1228
1221
  database_name=database_name,