snowflake-ml-python 1.43.0__tar.gz → 1.44.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 (545) hide show
  1. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/CHANGELOG.md +11 -1
  2. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/PKG-INFO +20 -11
  3. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/pyproject.toml +6 -6
  4. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/error_codes.py +2 -0
  5. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature_store.py +23 -6
  6. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature_view.py +19 -0
  7. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/online_service.py +2 -13
  8. snowflake_ml_python-1.44.0/snowflake/ml/feature_store/online_service_http_client.py +300 -0
  9. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/spec/builder.py +12 -1
  10. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +8 -4
  11. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +14 -22
  12. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +2 -3
  13. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/model_version_impl.py +31 -0
  14. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/model_ops.py +18 -0
  15. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/model.py +1 -0
  16. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +1 -1
  17. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +21 -6
  18. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +5 -0
  19. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta/model_sample_input_data.py +61 -38
  20. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -1
  21. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/version.py +1 -1
  22. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake_ml_python.egg-info/PKG-INFO +20 -11
  23. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -1
  24. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake_ml_python.egg-info/requires.txt +8 -9
  25. snowflake_ml_python-1.43.0/snowflake/ml/feature_store/online_service_http_client.py +0 -186
  26. snowflake_ml_python-1.43.0/snowflake/ml/jobs/_utils/scripts/signal_workers_test.py +0 -209
  27. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/LICENSE.txt +0 -0
  28. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/README.md +0 -0
  29. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/setup.cfg +0 -0
  30. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/__init__.py +0 -0
  31. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_classify_text.py +0 -0
  32. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_complete.py +0 -0
  33. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  34. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_embed_text_768.py +0 -0
  35. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_extract_answer.py +0 -0
  36. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_finetune.py +0 -0
  37. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_sentiment.py +0 -0
  38. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_sse_client.py +0 -0
  39. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_summarize.py +0 -0
  40. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_translate.py +0 -0
  41. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/cortex/_util.py +0 -0
  42. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/env.py +0 -0
  43. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/env_utils.py +0 -0
  44. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  45. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  46. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  47. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  48. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  49. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  50. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  51. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  52. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/file_utils.py +0 -0
  53. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  54. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  55. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  56. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  57. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/init_utils.py +0 -0
  58. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  59. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  60. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  61. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  62. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/telemetry.py +0 -0
  63. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/type_utils.py +0 -0
  64. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  65. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  66. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  67. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  68. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  69. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  70. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  71. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  72. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  73. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  74. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/result.py +0 -0
  75. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  76. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  77. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  78. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  79. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  80. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  81. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  82. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/_internal/utils/url.py +0 -0
  83. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/__init__.py +0 -0
  84. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  85. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/data_connector.py +0 -0
  86. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/data_ingestor.py +0 -0
  87. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/data_source.py +0 -0
  88. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  89. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/data/torch_utils.py +0 -0
  90. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/dataset/__init__.py +0 -0
  91. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/dataset/dataset.py +0 -0
  92. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  93. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  94. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  95. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/__init__.py +0 -0
  96. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  97. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  98. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  99. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  100. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  101. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  102. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  103. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  104. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  105. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  106. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  107. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  108. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  109. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  110. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/experiment/utils.py +0 -0
  111. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/__init__.py +0 -0
  112. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/_compute_fn_validation.py +0 -0
  113. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  114. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  115. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/entity.py +0 -0
  116. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  117. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  118. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  119. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  120. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  121. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  122. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  123. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  124. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  125. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  126. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  127. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  128. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  129. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  130. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  131. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  132. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  133. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  134. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  135. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  136. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  137. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  138. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature.py +0 -0
  139. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature_group.py +0 -0
  140. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature_view_append_only_validation.py +0 -0
  141. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/feature_view_refresh_freq.py +0 -0
  142. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  143. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  144. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/realtime_config.py +0 -0
  145. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/realtime_dataset.py +0 -0
  146. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/realtime_dataset_udf.py +0 -0
  147. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/realtime_registration.py +0 -0
  148. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/request_source.py +0 -0
  149. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  150. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  151. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  152. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/spec/table_schema_evolution.py +0 -0
  153. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  154. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  155. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  156. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
  157. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  158. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/fileset/fileset.py +0 -0
  159. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  160. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/fileset/snowfs.py +0 -0
  161. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  162. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/__init__.py +0 -0
  163. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  164. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  165. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  166. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  167. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  168. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  169. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  170. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  171. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  172. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  173. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  174. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  175. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  176. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  177. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  178. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/__init__.py +0 -0
  179. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  180. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  181. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  182. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  183. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  184. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  185. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/decorators.py +0 -0
  186. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/job.py +0 -0
  187. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/job_definition.py +0 -0
  188. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/jobs/manager.py +0 -0
  189. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/lineage/__init__.py +0 -0
  190. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  191. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/__init__.py +0 -0
  192. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/batch_inference_serialization.py +0 -0
  193. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
  194. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/batch_inference_task.py +0 -0
  195. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  196. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  197. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  198. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  199. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/param_ops.py +0 -0
  200. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  201. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
  202. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  203. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  204. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  205. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  206. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  207. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  208. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  209. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  210. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  211. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  212. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  213. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  214. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  215. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  216. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
  217. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  218. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned_init_once.py_template +0 -0
  219. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  220. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function_init_once.py_template +0 -0
  221. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  222. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  223. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  224. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  225. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  226. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  227. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  228. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  229. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  230. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  231. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +0 -0
  232. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +0 -0
  233. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  234. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +0 -0
  235. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +0 -0
  236. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_classification.py +0 -0
  237. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/audio_text_to_text.py +0 -0
  238. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/automatic_speech_recognition.py +0 -0
  239. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +0 -0
  240. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/document_question_answering.py +0 -0
  241. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/fill_mask.py +0 -0
  242. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_classification.py +0 -0
  243. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_feature_extraction.py +0 -0
  244. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_text_to_text.py +0 -0
  245. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/image_to_text.py +0 -0
  246. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/object_detection.py +0 -0
  247. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/question_answering.py +0 -0
  248. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/summarization.py +0 -0
  249. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/table_question_answering.py +0 -0
  250. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text2text_generation.py +0 -0
  251. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_classification.py +0 -0
  252. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +0 -0
  253. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/token_classification.py +0 -0
  254. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/translation.py +0 -0
  255. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_classification.py +0 -0
  256. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/video_text_to_text.py +0 -0
  257. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/visual_question_answering.py +0 -0
  258. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_audio_classification.py +0 -0
  259. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_image_classification.py +0 -0
  260. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_object_detection.py +0 -0
  261. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot_text_classification.py +0 -0
  262. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  263. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  264. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  265. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  266. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  267. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  268. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  269. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  270. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  271. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  272. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  273. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  274. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  275. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  276. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  277. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  278. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  279. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  280. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  281. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  282. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  283. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_save_options.py +0 -0
  284. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  285. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  286. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  287. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/core.py +0 -0
  288. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  289. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  290. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  291. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  292. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  293. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  294. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  295. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/batch/__init__.py +0 -0
  296. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/code_path.py +0 -0
  297. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/compute_pool.py +0 -0
  298. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/custom_model.py +0 -0
  299. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/event_handler.py +0 -0
  300. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/inference_engine.py +0 -0
  301. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/model_signature.py +0 -0
  302. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/models/huggingface.py +0 -0
  303. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  304. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/openai_signatures.py +0 -0
  305. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/target_platform.py +0 -0
  306. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/task.py +0 -0
  307. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/type_hints.py +0 -0
  308. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/model/volatility.py +0 -0
  309. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  310. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  311. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  312. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  313. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  314. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  315. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  316. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  317. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  318. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  319. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  320. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  321. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  322. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  323. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  324. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  325. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  326. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  327. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  328. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  329. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  330. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  331. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  332. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  333. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  334. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  335. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  336. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  337. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  338. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  339. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  340. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  341. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  342. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  343. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  344. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  345. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  346. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  347. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  348. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  349. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  350. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  351. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  352. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  353. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  354. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  355. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  356. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  357. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  358. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  359. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  360. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  361. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  362. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  363. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  364. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  365. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  366. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  367. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  368. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  369. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  370. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  371. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  372. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  373. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  374. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  375. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  376. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  377. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  378. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  379. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  380. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  381. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  382. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  383. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  384. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  385. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  386. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  387. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  388. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  389. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  390. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  391. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/framework/base.py +0 -0
  392. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  393. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  394. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  395. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  396. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  397. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  398. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  399. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  400. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  401. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  402. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  403. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  404. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  405. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  406. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  407. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  408. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  409. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  410. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  411. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  412. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  413. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  414. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  415. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  416. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  417. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  418. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  419. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  420. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  421. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  422. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  423. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  424. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  425. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  426. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  427. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  428. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  429. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  430. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  431. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  432. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  433. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  434. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  435. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  436. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  437. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  438. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  439. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  440. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  441. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  442. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  443. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  444. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  445. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  446. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  447. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  448. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  449. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  450. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  451. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  452. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  453. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  454. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  455. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  456. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  457. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  458. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  459. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  460. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  461. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  462. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  463. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  464. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  465. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  466. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  467. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  468. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  469. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  470. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  471. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  472. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  473. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  474. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  475. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  476. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  477. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  478. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  479. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  480. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  481. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  482. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  483. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  484. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  485. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  486. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  487. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  488. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  489. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  490. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  491. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  492. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  493. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  494. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  495. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  496. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  497. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  498. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  499. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  500. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  501. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  502. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  503. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  504. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  505. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  506. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  507. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  508. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  509. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  510. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  511. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  512. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  513. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  514. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  515. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  516. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  517. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  518. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  519. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  520. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  521. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  522. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  523. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  524. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  525. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  526. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  527. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  528. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  529. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  530. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  531. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  532. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  533. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/monitoring/shap.py +0 -0
  534. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/registry/__init__.py +0 -0
  535. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  536. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  537. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/registry/registry.py +0 -0
  538. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/authentication.py +0 -0
  539. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/connection_params.py +0 -0
  540. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/html_utils.py +0 -0
  541. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/sparse.py +0 -0
  542. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/sql_client.py +0 -0
  543. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake/ml/utils/stage_file.py +0 -0
  544. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  545. {snowflake_ml_python-1.43.0 → snowflake_ml_python-1.44.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,16 @@
1
1
  # Release History
2
2
 
3
- ## 1.43.0
3
+ ## 1.44.0
4
+
5
+ ### New Features
6
+
7
+ ### Bug Fixes
8
+
9
+ ### Behavior Changes
10
+
11
+ ### Deprecations
12
+
13
+ ## 1.43.0 (2026-06-16)
4
14
 
5
15
  ### New Features
6
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.43.0
3
+ Version: 1.44.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:
@@ -241,7 +241,6 @@ Requires-Dist: fsspec[http]<2026,>=2024.6.1
241
241
  Requires-Dist: h2<5,>=4.3.0
242
242
  Requires-Dist: importlib_resources<7,>=6.1.1
243
243
  Requires-Dist: numpy<3,>=1.23
244
- Requires-Dist: orjson<4,>=3.11.0
245
244
  Requires-Dist: packaging<26,>=20.9
246
245
  Requires-Dist: pandas<3,>=2.1.4
247
246
  Requires-Dist: platformdirs<5
@@ -261,14 +260,14 @@ Requires-Dist: tqdm<5
261
260
  Requires-Dist: typing-extensions<5,>=4.1.0
262
261
  Requires-Dist: xgboost<4
263
262
  Provides-Extra: all
264
- Requires-Dist: altair<6,>=5; extra == "all"
263
+ Requires-Dist: altair<7,>=5; extra == "all"
265
264
  Requires-Dist: catboost<2,>=1.2.0; extra == "all"
266
265
  Requires-Dist: keras<4,>=2.0.0; extra == "all"
267
266
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "all"
268
- Requires-Dist: mlflow<3,>=2.16.0; extra == "all"
267
+ Requires-Dist: mlflow<4,>=2.16.0; extra == "all"
269
268
  Requires-Dist: prophet<2,>=1.1.0; extra == "all"
270
269
  Requires-Dist: sentence-transformers<6,>=2.7.0; extra == "all"
271
- Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "all"
270
+ Requires-Dist: sentencepiece<0.3,>=0.1.95; extra == "all"
272
271
  Requires-Dist: streamlit<2,>=1.30.0; extra == "all"
273
272
  Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
274
273
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
@@ -276,7 +275,7 @@ Requires-Dist: torch<3,>=2.0.1; extra == "all"
276
275
  Requires-Dist: torchdata<1,>=0.4; extra == "all"
277
276
  Requires-Dist: transformers!=4.51.3,<6,>=4.39.3; extra == "all"
278
277
  Provides-Extra: altair
279
- Requires-Dist: altair<6,>=5; extra == "altair"
278
+ Requires-Dist: altair<7,>=5; extra == "altair"
280
279
  Provides-Extra: catboost
281
280
  Requires-Dist: catboost<2,>=1.2.0; extra == "catboost"
282
281
  Provides-Extra: keras
@@ -286,15 +285,15 @@ Requires-Dist: torch<3,>=2.0.1; extra == "keras"
286
285
  Provides-Extra: lightgbm
287
286
  Requires-Dist: lightgbm<5,>=4.1.0; extra == "lightgbm"
288
287
  Provides-Extra: llm
289
- Requires-Dist: mlflow<3,>=2.16.0; extra == "llm"
288
+ Requires-Dist: mlflow<4,>=2.16.0; extra == "llm"
290
289
  Requires-Dist: sentence-transformers<6,>=2.7.0; extra == "llm"
291
- Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "llm"
290
+ Requires-Dist: sentencepiece<0.3,>=0.1.95; extra == "llm"
292
291
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "llm"
293
292
  Requires-Dist: torch<3,>=2.0.1; extra == "llm"
294
293
  Requires-Dist: torchdata<1,>=0.4; extra == "llm"
295
294
  Requires-Dist: transformers!=4.51.3,<6,>=4.39.3; extra == "llm"
296
295
  Provides-Extra: mlflow
297
- Requires-Dist: mlflow<3,>=2.16.0; extra == "mlflow"
296
+ Requires-Dist: mlflow<4,>=2.16.0; extra == "mlflow"
298
297
  Provides-Extra: prophet
299
298
  Requires-Dist: prophet<2,>=1.1.0; extra == "prophet"
300
299
  Provides-Extra: streamlit
@@ -306,7 +305,7 @@ Requires-Dist: torch<3,>=2.0.1; extra == "torch"
306
305
  Requires-Dist: torchdata<1,>=0.4; extra == "torch"
307
306
  Provides-Extra: transformers
308
307
  Requires-Dist: sentence-transformers<6,>=2.7.0; extra == "transformers"
309
- Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
308
+ Requires-Dist: sentencepiece<0.3,>=0.1.95; extra == "transformers"
310
309
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
311
310
  Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
312
311
  Requires-Dist: transformers!=4.51.3,<6,>=4.39.3; extra == "transformers"
@@ -417,7 +416,17 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
416
 
418
417
  # Release History
419
418
 
420
- ## 1.43.0
419
+ ## 1.44.0
420
+
421
+ ### New Features
422
+
423
+ ### Bug Fixes
424
+
425
+ ### Behavior Changes
426
+
427
+ ### Deprecations
428
+
429
+ ## 1.43.0 (2026-06-16)
421
430
 
422
431
  ### New Features
423
432
 
@@ -8,7 +8,7 @@ description = "The machine learning client library that is used for interacting
8
8
  classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Information Analysis",]
9
9
  requires-python = ">=3.9, <3.14"
10
10
  dynamic = [ "version", "readme",]
11
- dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "h2>=4.3.0,<5", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "orjson>=3.11.0,<4", "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", "scikit-learn<1.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
11
+ dependencies = [ "anyio>=3.5.0,<5", "cachetools>=3.1.1,<6", "cloudpickle>=2.0.0", "cryptography", "fsspec[http]>=2024.6.1,<2026", "h2>=4.3.0,<5", "importlib_resources>=6.1.1, <7", "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", "scikit-learn<1.8", "scipy>=1.9,<2", "shap>=0.46.0,<1", "snowflake-connector-python[pandas]>=3.17.3,<5", "snowflake-snowpark-python>=1.17.0,<2,!=1.26.0", "sqlparse>=0.4,<1", "tqdm<5", "typing-extensions>=4.1.0,<5", "xgboost<4",]
12
12
  [[project.authors]]
13
13
  name = "Snowflake, Inc"
14
14
  email = "support@snowflake.com"
@@ -24,18 +24,18 @@ Issues = "https://github.com/snowflakedb/snowflake-ml-python/issues"
24
24
  Changelog = "https://github.com/snowflakedb/snowflake-ml-python/blob/master/CHANGELOG.md"
25
25
 
26
26
  [project.optional-dependencies]
27
- all = [ "altair>=5,<6", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <3", "prophet>=1.1.0, <2", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.2.0", "streamlit>=1.30.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
28
- altair = [ "altair>=5,<6",]
27
+ all = [ "altair>=5,<7", "catboost>=1.2.0, <2", "keras>=2.0.0,<4", "lightgbm>=4.1.0, <5", "mlflow>=2.16.0, <4", "prophet>=1.1.0, <2", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.3", "streamlit>=1.30.0,<2", "tensorflow>=2.17.0,<3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
28
+ altair = [ "altair>=5,<7",]
29
29
  catboost = [ "catboost>=1.2.0, <2",]
30
30
  keras = [ "keras>=2.0.0,<4", "tensorflow>=2.17.0,<3", "torch>=2.0.1,<3",]
31
31
  lightgbm = [ "lightgbm>=4.1.0, <5",]
32
- llm = [ "mlflow>=2.16.0, <3", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
33
- mlflow = [ "mlflow>=2.16.0, <3",]
32
+ llm = [ "mlflow>=2.16.0, <4", "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "torchdata>=0.4,<1", "transformers>=4.39.3,!=4.51.3,<6",]
33
+ mlflow = [ "mlflow>=2.16.0, <4",]
34
34
  prophet = [ "prophet>=1.1.0, <2",]
35
35
  streamlit = [ "streamlit>=1.30.0,<2",]
36
36
  tensorflow = [ "tensorflow>=2.17.0,<3",]
37
37
  torch = [ "torch>=2.0.1,<3", "torchdata>=0.4,<1",]
38
- transformers = [ "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.2.0", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,!=4.51.3,<6",]
38
+ transformers = [ "sentence-transformers>=2.7.0,<6", "sentencepiece>=0.1.95,<0.3", "tokenizers>=0.15.1,<1", "torch>=2.0.1,<3", "transformers>=4.39.3,!=4.51.3,<6",]
39
39
 
40
40
  [tool.setuptools.package-data]
41
41
  "*" = [ "*",]
@@ -63,6 +63,8 @@ METHOD_NOT_ALLOWED = "2102"
63
63
  NOT_IMPLEMENTED = "2103"
64
64
  # User needs to opt in to use a feature.
65
65
  OPT_IN_REQUIRED = "2104"
66
+ # Caller's current role lacks the required ownership/privilege to perform the operation.
67
+ INSUFFICIENT_PRIVILEGES = "2105"
66
68
 
67
69
  # Calling an API with unsupported keywords/values.
68
70
  INVALID_ARGUMENT = "2110"
@@ -692,6 +692,18 @@ class FeatureStore:
692
692
  self._check_database_exists_or_throw()
693
693
  if creation_mode == CreationMode.FAIL_IF_NOT_EXIST:
694
694
  self._check_internal_objects_exist_or_throw()
695
+ # Best-effort: ensure the snapshot status table exists even in connect-only mode.
696
+ # The table is an internal implementation object (not user-visible) that must be
697
+ # present for scheduled snapshot tasks to succeed. Swallow any error — the caller
698
+ # may lack CREATE TABLE privilege, and the absence of the table does not prevent
699
+ # non-append_only feature store operations from working.
700
+ try:
701
+ self._ensure_snapshot_status_table_exists()
702
+ except Exception:
703
+ logger.debug(
704
+ "feature store: could not ensure snapshot status table exists "
705
+ "(insufficient privilege or schema not writable); skipping."
706
+ )
695
707
 
696
708
  else:
697
709
  try:
@@ -720,7 +732,7 @@ class FeatureStore:
720
732
  ) -> online_service_http_client.OnlineServiceHttpClient:
721
733
  """Return the FeatureStore-scoped HTTP client, creating it on first use."""
722
734
  if self._online_http_client is None:
723
- self._online_http_client = online_service_http_client.OnlineServiceHttpClient()
735
+ self._online_http_client = online_service_http_client.OnlineServiceHttpClient(session=self._session)
724
736
  return self._online_http_client
725
737
 
726
738
  def close(self) -> None:
@@ -7777,6 +7789,14 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
7777
7789
  is_tiled = agg_metadata is not None
7778
7790
  # Restored from the FEATURE_SPECS row; None when no tiling metadata.
7779
7791
  aggregation_secondary_keys = agg_metadata.aggregation_secondary_keys if agg_metadata else None
7792
+ # The persisted aggregation method must be known before _construct_feature_view runs
7793
+ # validation: reconstruction routes through the batch path, where window/offset alignment
7794
+ # is enforced for TILES but relaxed for CONTINUOUS. Setting it afterward would be too late.
7795
+ feature_aggregation_method = (
7796
+ FeatureAggregationMethod(agg_metadata.feature_aggregation_method)
7797
+ if agg_metadata and agg_metadata.feature_aggregation_method
7798
+ else (FeatureAggregationMethod.TILES if is_tiled else None)
7799
+ )
7780
7800
 
7781
7801
  # Rehydrate the authored source-ref list onto the reconstructed
7782
7802
  # FV when a ``FV_SOURCE_REFS`` row was persisted at register time.
@@ -7843,6 +7863,7 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
7843
7863
  feature_granularity=feature_granularity,
7844
7864
  aggregation_specs=aggregation_specs,
7845
7865
  aggregation_secondary_keys=aggregation_secondary_keys,
7866
+ feature_aggregation_method=feature_aggregation_method,
7846
7867
  is_streaming=fv_metadata.is_streaming,
7847
7868
  append_only=fv_metadata.is_append_only,
7848
7869
  backup_source=backup_source,
@@ -7856,11 +7877,6 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
7856
7877
  fv_meta_config = self._metadata_manager.get_feature_view_metadata_config(name.identifier(), version)
7857
7878
  fv._authoring_pkg_version = fv_meta_config.authoring_pkg_version if fv_meta_config else None
7858
7879
 
7859
- if agg_metadata and agg_metadata.feature_aggregation_method:
7860
- fv._feature_aggregation_method = FeatureAggregationMethod(agg_metadata.feature_aggregation_method)
7861
- elif is_tiled:
7862
- fv._feature_aggregation_method = FeatureAggregationMethod.TILES
7863
-
7864
7880
  # For streaming FVs, attach the function source from metadata
7865
7881
  if fv_metadata.is_streaming:
7866
7882
  streaming_meta = self._metadata_manager.get_streaming_metadata(name.identifier(), version)
@@ -7905,6 +7921,7 @@ FROM {batch_cte_names[0]}{''.join(merge_join_parts)}
7905
7921
  feature_granularity=feature_granularity,
7906
7922
  aggregation_specs=aggregation_specs,
7907
7923
  aggregation_secondary_keys=aggregation_secondary_keys,
7924
+ feature_aggregation_method=feature_aggregation_method,
7908
7925
  storage_config=storage_config,
7909
7926
  is_streaming=fv_metadata.is_streaming,
7910
7927
  source_refs=restored_source_refs,
@@ -971,6 +971,10 @@ class FeatureView(lineage_node.LineageNode):
971
971
  else:
972
972
  if feature_aggregation_method is not None:
973
973
  raise ValueError("feature_aggregation_method is only supported for streaming feature views.")
974
+ # Reconstructed streaming FVs come through this batch path (via _is_streaming_marker)
975
+ # and carry their persisted aggregation method so that validation (e.g. window/offset
976
+ # alignment, which is relaxed for CONTINUOUS) matches the original registration.
977
+ self._feature_aggregation_method = _kwargs.pop("_feature_aggregation_method", None)
974
978
  self._timestamp_col = SqlIdentifier(timestamp_col) if timestamp_col is not None else None
975
979
  self._feature_granularity = feature_granularity
976
980
  self._aggregation_specs = _kwargs.pop("_aggregation_specs", None)
@@ -2073,10 +2077,17 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2073
2077
 
2074
2078
  This ensures clean tile boundaries for aggregations.
2075
2079
  Lifetime windows are exempt from this validation as they aggregate all tiles.
2080
+ CONTINUOUS aggregations are also exempt: feature_granularity is only an internal
2081
+ tile size there, so any lookback window and offset are allowed.
2076
2082
 
2077
2083
  Raises:
2078
2084
  ValueError: If window or offset is not a multiple of feature_granularity.
2079
2085
  """
2086
+ # Window/offset alignment only matters for TILES, where features are assembled
2087
+ # from whole tiles. CONTINUOUS aggregation allows any lookback window/offset.
2088
+ if self._feature_aggregation_method == FeatureAggregationMethod.CONTINUOUS:
2089
+ return
2090
+
2080
2091
  from snowflake.ml.feature_store.interval_utils import interval_to_seconds
2081
2092
 
2082
2093
  granularity_seconds = interval_to_seconds(self._feature_granularity) # type: ignore[arg-type]
@@ -2345,6 +2356,11 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2345
2356
  if json_dict.get("_aggregation_specs"):
2346
2357
  aggregation_specs = [AggregationSpec.from_dict(s) for s in json_dict["_aggregation_specs"]]
2347
2358
 
2359
+ # Restore the aggregation method before reconstruction so validation (e.g. window/offset
2360
+ # alignment, relaxed for CONTINUOUS) matches the original registration.
2361
+ agg_method_raw = json_dict.get("_feature_aggregation_method")
2362
+ feature_aggregation_method = FeatureAggregationMethod(agg_method_raw) if agg_method_raw else None
2363
+
2348
2364
  fv = FeatureView._construct_feature_view(
2349
2365
  name=json_dict["_name"],
2350
2366
  entities=entities,
@@ -2369,6 +2385,7 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2369
2385
  ),
2370
2386
  feature_granularity=json_dict.get("_feature_granularity"),
2371
2387
  aggregation_specs=aggregation_specs,
2388
+ feature_aggregation_method=feature_aggregation_method,
2372
2389
  storage_config=(
2373
2390
  StorageConfig.from_json(json_dict["_storage_config"]) if json_dict.get("_storage_config") else None
2374
2391
  ),
@@ -2470,6 +2487,7 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2470
2487
  feature_granularity: Optional[str] = None,
2471
2488
  aggregation_specs: Optional[list[AggregationSpec]] = None,
2472
2489
  aggregation_secondary_keys: Optional[list[str]] = None,
2490
+ feature_aggregation_method: Optional[FeatureAggregationMethod] = None,
2473
2491
  storage_config: Optional[StorageConfig] = None,
2474
2492
  is_streaming: bool = False,
2475
2493
  append_only: bool = False,
@@ -2510,6 +2528,7 @@ Got {len(self._feature_df.queries['queries'])}: {self._feature_df.queries['queri
2510
2528
  feature_granularity=feature_granularity,
2511
2529
  _aggregation_specs=aggregation_specs,
2512
2530
  aggregation_secondary_keys=aggregation_secondary_keys,
2531
+ _feature_aggregation_method=feature_aggregation_method,
2513
2532
  storage_config=storage_config,
2514
2533
  _is_streaming_marker=is_streaming,
2515
2534
  _source_refs=source_refs,
@@ -697,20 +697,12 @@ def stream_ingest_records(
697
697
  original_exception=ValueError("records must be non-empty for stream ingest."),
698
698
  )
699
699
  resolved = online_service_http_client.ingest_api_url(ingest_base_url)
700
- logger.debug(
701
- "Ingest API: url=%r stream_source=%r num_records=%d",
702
- resolved,
703
- stream_source_name,
704
- len(records),
705
- )
706
700
  serializable = [{k: _json_serialize_value(v) for k, v in row.items()} for row in records]
707
701
  body: dict[str, Any] = {"records": {stream_source_name: serializable}}
708
- # PAT is validated up-front (caller may not have a pooled client yet).
709
- _ = online_service_http_client.auth_headers(session)
710
702
  owned_client: Optional[online_service_http_client.OnlineServiceHttpClient] = None
711
703
  client = http_client
712
704
  if client is None:
713
- owned_client = online_service_http_client.OnlineServiceHttpClient()
705
+ owned_client = online_service_http_client.OnlineServiceHttpClient(session=session)
714
706
  client = owned_client
715
707
  try:
716
708
  status, raw = client.post_json(resolved, body, timeout_sec)
@@ -1376,14 +1368,11 @@ def read_postgres_online_features(
1376
1368
  )
1377
1369
 
1378
1370
  resolved_query_url = online_service_http_client.query_api_url(query_url)
1379
- logger.debug("Query API url=%r", resolved_query_url)
1380
1371
  url = resolved_query_url
1381
- # PAT is validated eagerly so callers fail fast even with an empty key batch.
1382
- _ = online_service_http_client.auth_headers()
1383
1372
  owned_client: Optional[online_service_http_client.OnlineServiceHttpClient] = None
1384
1373
  client = http_client
1385
1374
  if client is None:
1386
- owned_client = online_service_http_client.OnlineServiceHttpClient()
1375
+ owned_client = online_service_http_client.OnlineServiceHttpClient(session=session)
1387
1376
  client = owned_client
1388
1377
 
1389
1378
  out: list[dict[str, Any]] = []
@@ -0,0 +1,300 @@
1
+ """HTTP client for the Online Service REST APIs (Query + Ingest).
2
+
3
+ HTTP/2 ``httpx`` client cached per ``(scheme://host, proxy)``. Auth resolution order:
4
+ in-session PAT (``authenticator='PROGRAMMATIC_ACCESS_TOKEN'``) → ``SNOWFLAKE_PAT`` env var → raise.
5
+
6
+ NOTE: We intentionally do NOT issue a session token from the Snowpark connection.
7
+ A session token reuses the caller's existing GS session; when that session was created
8
+ by the Python connector (``clientAppId=PythonSnowpark``), GS encodes the
9
+ ``system$snowservices_resolve_ingress`` result in ARROW format, which the SPCS ingress
10
+ proxy cannot parse (it only reads ``rowset``, null for ARROW) → "empty data" → HTTP 500.
11
+ A real PAT forces a fresh GS session (``clientAppId=SnowServices Ingress``) → JSON → works.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import logging
18
+ import os
19
+ import urllib.parse
20
+ import urllib.request
21
+ from typing import Any, Callable, Optional
22
+
23
+ from snowflake.ml._internal.exceptions import (
24
+ error_codes,
25
+ exceptions as snowml_exceptions,
26
+ )
27
+ from snowflake.snowpark import Session
28
+
29
+ logger = logging.getLogger(__name__)
30
+
31
+ _QUERY_API_REL_PATH = "api/v1/query"
32
+ _INGEST_API_REL_PATH = "api/v1/ingest"
33
+
34
+
35
+ def query_api_url(query_base_url: str) -> str:
36
+ """Append ``api/v1/query`` to the Online Service ``query`` endpoint URL from status JSON."""
37
+ base = query_base_url.strip().rstrip("/") + "/"
38
+ return urllib.parse.urljoin(base, _QUERY_API_REL_PATH)
39
+
40
+
41
+ def ingest_api_url(ingest_base_url: str) -> str:
42
+ """Append ``api/v1/ingest`` to the Online Service ``ingest`` endpoint URL from status JSON."""
43
+ base = ingest_base_url.strip().rstrip("/") + "/"
44
+ return urllib.parse.urljoin(base, _INGEST_API_REL_PATH)
45
+
46
+
47
+ def online_service_pat_from_env() -> str:
48
+ """Read PAT from ``SNOWFLAKE_PAT``; legacy lookup used by the env-var fallback path.
49
+
50
+ Returns:
51
+ PAT string from ``SNOWFLAKE_PAT``.
52
+
53
+ Raises:
54
+ SnowflakeMLException: When ``SNOWFLAKE_PAT`` is unset or empty.
55
+ """
56
+ pat = os.environ.get("SNOWFLAKE_PAT", "").strip()
57
+ if pat:
58
+ return pat
59
+ raise snowml_exceptions.SnowflakeMLException(
60
+ error_code=error_codes.INVALID_ARGUMENT,
61
+ original_exception=RuntimeError(
62
+ "Online Service requires a Snowflake Programmatic Access Token (PAT). "
63
+ "Set the SNOWFLAKE_PAT environment variable "
64
+ "(export in your shell or set os.environ in your notebook)."
65
+ ),
66
+ )
67
+
68
+
69
+ def _pat_token_from_session(session: Session) -> Optional[str]:
70
+ """Pull a PAT from the session when ``authenticator='PROGRAMMATIC_ACCESS_TOKEN'``.
71
+
72
+ Args:
73
+ session: Snowpark session.
74
+
75
+ Returns:
76
+ PAT string, or ``None`` if the session isn't PAT-authed.
77
+ """
78
+ try:
79
+ from snowflake.connector.auth.pat import AuthByPAT
80
+
81
+ auth_cls = session.connection.auth_class
82
+ if not isinstance(auth_cls, AuthByPAT):
83
+ return None
84
+ pat = auth_cls.assertion_content
85
+ if isinstance(pat, str) and pat.strip():
86
+ return pat.strip()
87
+ except Exception:
88
+ logger.debug("PAT extraction from session failed", exc_info=True)
89
+ return None
90
+
91
+
92
+ _NO_AUTH_MESSAGE = (
93
+ "Online Service requires a Programmatic Access Token (PAT). Either create the "
94
+ "Snowpark Session with authenticator='PROGRAMMATIC_ACCESS_TOKEN' (PAT in password), "
95
+ "or set the SNOWFLAKE_PAT environment variable. A session token cannot be used: it "
96
+ "reuses the caller's GS session and triggers an ARROW response the ingress proxy "
97
+ "cannot parse."
98
+ )
99
+
100
+
101
+ def auth_headers(session: Optional[Session] = None) -> dict[str, str]:
102
+ """Build HTTP headers via a one-shot auth resolution; per-request and not cached.
103
+
104
+ Prefer :class:`OnlineServiceHttpClient` for the hot path — it captures the session
105
+ once at construction time and reuses it. This standalone helper is for callers
106
+ that need a quick auth-validation pre-flight.
107
+
108
+ Resolution: in-session PAT (if ``authenticator='PROGRAMMATIC_ACCESS_TOKEN'``) \u2192
109
+ ``SNOWFLAKE_PAT`` env var. A session token is intentionally never used (see module docstring).
110
+
111
+ Args:
112
+ session: Snowpark session for the resolution chain; ``None`` falls through to env var.
113
+
114
+ Returns:
115
+ Dict with ``Authorization``, ``Content-Type``, and ``Accept`` headers.
116
+
117
+ Raises:
118
+ SnowflakeMLException: When no auth path resolves a token.
119
+ """
120
+ token: Optional[str] = None
121
+ if session is not None:
122
+ token = _pat_token_from_session(session)
123
+ if not token:
124
+ token = os.environ.get("SNOWFLAKE_PAT", "").strip() or None
125
+ if not token:
126
+ raise snowml_exceptions.SnowflakeMLException(
127
+ error_code=error_codes.INVALID_ARGUMENT,
128
+ original_exception=RuntimeError(_NO_AUTH_MESSAGE),
129
+ )
130
+ return {
131
+ "Authorization": f'Snowflake Token="{token}"',
132
+ "Content-Type": "application/json",
133
+ "Accept": "application/json",
134
+ }
135
+
136
+
137
+ def _proxy_for_url(url: str) -> Optional[str]:
138
+ """Proxy URL for ``url`` per ``NO_PROXY`` and the env-derived proxy table; ``None`` for direct."""
139
+ parsed = urllib.parse.urlparse(url)
140
+ host = parsed.hostname or ""
141
+ if host and urllib.request.proxy_bypass(host):
142
+ return None
143
+ proxies = urllib.request.getproxies()
144
+ return proxies.get(parsed.scheme) or proxies.get("all")
145
+
146
+
147
+ class OnlineServiceHttpClient:
148
+ """HTTP/2-enabled httpx client for the Online Service, cached per origin+proxy.
149
+
150
+ Caches one ``httpx.Client(http2=True)`` per ``(scheme://host, proxy)`` so concurrent reads
151
+ share a single multiplexed connection per origin. Falls back to HTTP/1.1 transparently if
152
+ the server's ALPN does not advertise h2. Honors ``HTTPS_PROXY`` / ``HTTP_PROXY`` /
153
+ ``NO_PROXY`` via :func:`_proxy_for_url`.
154
+
155
+ When ``session`` is provided and was created with
156
+ ``authenticator='PROGRAMMATIC_ACCESS_TOKEN'``, the in-session PAT is used. Otherwise
157
+ falls back to the ``SNOWFLAKE_PAT`` env var. A session token is intentionally never
158
+ used — it reuses the caller's GS session and triggers an ARROW response the ingress
159
+ proxy cannot parse (see module docstring).
160
+ """
161
+
162
+ def __init__(
163
+ self,
164
+ *,
165
+ session: Optional[Session] = None,
166
+ max_connections: int = 8,
167
+ _transport_factory: Optional[Callable[..., Any]] = None,
168
+ ) -> None:
169
+ self._max_connections = max_connections
170
+ self._clients_by_key: dict[tuple[str, Optional[str]], Any] = {}
171
+ self._http2_logged_for_origin: set[str] = set()
172
+ self._transport_factory = _transport_factory
173
+ self._closed = False
174
+ self._session: Optional[Session] = session
175
+ self._session_pat: Optional[str] = _pat_token_from_session(session) if session is not None else None
176
+
177
+ def _resolve_token(self, url: str) -> str:
178
+ """Resolve the bearer token: in-session PAT → ``SNOWFLAKE_PAT`` env var.
179
+
180
+ A session token is intentionally never used — it reuses the caller's GS session
181
+ and triggers an ARROW response the ingress proxy cannot parse (see module docstring).
182
+
183
+ Args:
184
+ url: Online Service URL (unused; kept for signature symmetry).
185
+
186
+ Returns:
187
+ Token string for the ``Authorization`` header.
188
+
189
+ Raises:
190
+ SnowflakeMLException: when no auth path can produce a token.
191
+ """
192
+ del url
193
+ if self._session_pat:
194
+ logger.info("Online Service auth: resolved via session PAT (len=%d)", len(self._session_pat))
195
+ return self._session_pat
196
+ env_pat = os.environ.get("SNOWFLAKE_PAT", "").strip()
197
+ if env_pat:
198
+ logger.info("Online Service auth: resolved via SNOWFLAKE_PAT env var (len=%d)", len(env_pat))
199
+ return env_pat
200
+ raise snowml_exceptions.SnowflakeMLException(
201
+ error_code=error_codes.INVALID_ARGUMENT,
202
+ original_exception=RuntimeError(_NO_AUTH_MESSAGE),
203
+ )
204
+
205
+ def _build_auth_headers(self, url: str) -> dict[str, str]:
206
+ return {
207
+ "Authorization": f'Snowflake Token="{self._resolve_token(url)}"',
208
+ "Content-Type": "application/json",
209
+ "Accept": "application/json",
210
+ }
211
+
212
+ def _client_for_url(self, url: str) -> Any:
213
+ """Cached ``httpx.Client(http2=True)`` keyed by (scheme://host, proxy)."""
214
+ import httpx
215
+
216
+ parsed = urllib.parse.urlparse(url)
217
+ proxy = _proxy_for_url(url)
218
+ key = (f"{parsed.scheme}://{parsed.hostname or ''}", proxy)
219
+ client = self._clients_by_key.get(key)
220
+ if client is not None:
221
+ return client
222
+
223
+ limits = httpx.Limits(
224
+ max_keepalive_connections=self._max_connections,
225
+ max_connections=self._max_connections,
226
+ )
227
+ kwargs: dict[str, Any] = {
228
+ "http2": True,
229
+ "limits": limits,
230
+ "timeout": None, # per-request timeout passed to .post()
231
+ "trust_env": False, # proxy resolution handled by _proxy_for_url
232
+ }
233
+ if proxy:
234
+ kwargs["proxy"] = proxy
235
+ if self._transport_factory is not None:
236
+ kwargs["transport"] = self._transport_factory(proxy=proxy)
237
+ client = httpx.Client(**kwargs)
238
+ self._clients_by_key[key] = client
239
+ return client
240
+
241
+ def post_json(
242
+ self,
243
+ url: str,
244
+ body: dict[str, Any],
245
+ timeout: float,
246
+ ) -> tuple[int, bytes]:
247
+ """POST ``body`` as JSON and return ``(status_code, body_bytes)``; only network errors raise.
248
+
249
+ Args:
250
+ url: Online Service endpoint URL.
251
+ body: JSON-serializable payload.
252
+ timeout: Per-request timeout in seconds.
253
+
254
+ Returns:
255
+ ``(status_code, body_bytes)`` from the server response.
256
+
257
+ Raises:
258
+ RuntimeError: When the client has been closed.
259
+ SnowflakeMLException: On transport errors or unresolvable authentication.
260
+ """
261
+ if self._closed:
262
+ raise RuntimeError("OnlineServiceHttpClient is closed")
263
+
264
+ import httpx
265
+
266
+ payload = json.dumps(body).encode("utf-8")
267
+ headers = self._build_auth_headers(url)
268
+ client = self._client_for_url(url)
269
+
270
+ try:
271
+ resp = client.post(url, content=payload, headers=headers, timeout=httpx.Timeout(timeout))
272
+ except (httpx.HTTPError, OSError) as e:
273
+ raise snowml_exceptions.SnowflakeMLException(
274
+ error_code=error_codes.INTERNAL_SNOWFLAKE_API_ERROR,
275
+ original_exception=RuntimeError(f"Online Service is unreachable: {e}"),
276
+ ) from e
277
+
278
+ parsed = urllib.parse.urlparse(url)
279
+ origin = f"{parsed.scheme}://{parsed.hostname or ''}"
280
+ if origin not in self._http2_logged_for_origin:
281
+ self._http2_logged_for_origin.add(origin)
282
+ logger.info(
283
+ "Online Service HTTP negotiated %s for origin %s",
284
+ getattr(resp, "http_version", "unknown"),
285
+ origin,
286
+ )
287
+
288
+ return int(resp.status_code), resp.content
289
+
290
+ def close(self) -> None:
291
+ """Close all underlying ``httpx.Client`` instances. Idempotent."""
292
+ if self._closed:
293
+ return
294
+ self._closed = True
295
+ for client in self._clients_by_key.values():
296
+ try:
297
+ client.close()
298
+ except Exception: # noqa: BLE001 - best-effort close, never raise from cleanup
299
+ logger.debug("OnlineServiceHttpClient close suppressed", exc_info=True)
300
+ self._clients_by_key.clear()