snowflake-ml-python 1.23.0__tar.gz → 1.24.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 (478) hide show
  1. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/CHANGELOG.md +38 -0
  2. {snowflake_ml_python-1.23.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.24.0}/PKG-INFO +39 -1
  3. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/platform_capabilities.py +0 -4
  4. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/__init__.py +2 -0
  5. snowflake_ml_python-1.24.0/snowflake/ml/feature_store/aggregation.py +367 -0
  6. snowflake_ml_python-1.24.0/snowflake/ml/feature_store/feature.py +366 -0
  7. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/feature_store.py +234 -20
  8. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/feature_view.py +189 -4
  9. snowflake_ml_python-1.24.0/snowflake/ml/feature_store/metadata_manager.py +425 -0
  10. snowflake_ml_python-1.24.0/snowflake/ml/feature_store/tile_sql_generator.py +1079 -0
  11. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/__init__.py +4 -0
  12. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +38 -2
  13. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/model_version_impl.py +31 -14
  14. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/model_ops.py +2 -8
  15. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/service_ops.py +0 -5
  16. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/service.py +21 -29
  17. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +2 -1
  18. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +20 -0
  19. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +70 -14
  20. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/utils.py +76 -1
  21. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/version.py +1 -1
  22. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0/snowflake_ml_python.egg-info}/PKG-INFO +39 -1
  23. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/SOURCES.txt +4 -0
  24. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/LICENSE.txt +0 -0
  25. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/README.md +0 -0
  26. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/pyproject.toml +0 -0
  27. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/setup.cfg +0 -0
  28. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/__init__.py +0 -0
  29. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_classify_text.py +0 -0
  30. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_complete.py +0 -0
  31. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  32. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_embed_text_768.py +0 -0
  33. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_extract_answer.py +0 -0
  34. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_finetune.py +0 -0
  35. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_sentiment.py +0 -0
  36. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_sse_client.py +0 -0
  37. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_summarize.py +0 -0
  38. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_translate.py +0 -0
  39. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/cortex/_util.py +0 -0
  40. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/env.py +0 -0
  41. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/env_utils.py +0 -0
  42. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  43. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  44. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  45. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  46. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  47. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  48. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  49. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  50. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  51. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/file_utils.py +0 -0
  52. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  53. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  54. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  55. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  56. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/init_utils.py +0 -0
  57. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  58. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  59. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  60. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/telemetry.py +0 -0
  61. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/type_utils.py +0 -0
  62. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  63. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  64. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  65. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  66. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  67. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  68. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  69. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  70. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  71. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  72. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/result.py +0 -0
  73. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  74. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  75. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  76. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  77. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  78. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  79. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/_internal/utils/url.py +0 -0
  80. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/__init__.py +0 -0
  81. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  82. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_connector.py +0 -0
  83. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_ingestor.py +0 -0
  84. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/data_source.py +0 -0
  85. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  86. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/data/torch_utils.py +0 -0
  87. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/__init__.py +0 -0
  88. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset.py +0 -0
  89. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  90. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  91. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  92. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/__init__.py +0 -0
  93. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  94. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  95. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  96. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  97. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  98. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  99. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  100. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  101. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  102. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  103. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  104. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/experiment/utils.py +0 -0
  105. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  106. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/entity.py +0 -0
  107. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  108. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  109. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  110. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  111. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  112. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  113. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  114. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  115. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  116. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  117. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  118. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  119. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  120. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  121. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  122. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  123. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  124. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  125. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  126. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  127. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  128. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  129. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  130. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/fileset.py +0 -0
  131. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  132. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/snowfs.py +0 -0
  133. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  134. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/__init__.py +0 -0
  135. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  136. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  137. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  138. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  139. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  140. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  141. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  142. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  143. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  144. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  145. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  146. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
  147. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  148. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  149. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  150. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  151. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  152. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +0 -0
  153. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  154. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  155. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  156. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  157. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/spec_utils.py +0 -0
  158. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  159. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/_utils/types.py +0 -0
  160. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/decorators.py +0 -0
  161. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/job.py +0 -0
  162. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/job_definition.py +0 -0
  163. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/jobs/manager.py +0 -0
  164. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/lineage/__init__.py +0 -0
  165. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  166. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  167. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  168. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  169. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  170. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  171. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  172. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  173. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  174. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  175. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  176. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  177. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  178. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  179. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  180. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  181. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  182. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  183. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  184. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  185. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  186. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  187. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  188. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  189. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  190. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  191. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  192. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  193. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  194. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  195. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  196. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  197. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  198. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  199. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  200. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  201. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  202. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  203. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  204. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  205. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  206. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  207. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  208. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  209. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  210. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  211. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  212. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  213. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  214. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  215. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  216. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  217. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  218. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  219. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  220. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  221. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  222. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/core.py +0 -0
  223. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  224. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  225. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  226. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  227. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  228. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  229. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/code_path.py +0 -0
  230. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/compute_pool.py +0 -0
  231. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/custom_model.py +0 -0
  232. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/event_handler.py +0 -0
  233. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/inference_engine.py +0 -0
  234. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/model_signature.py +0 -0
  235. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/models/huggingface.py +0 -0
  236. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  237. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/openai_signatures.py +0 -0
  238. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/target_platform.py +0 -0
  239. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/task.py +0 -0
  240. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/type_hints.py +0 -0
  241. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/model/volatility.py +0 -0
  242. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  243. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  244. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  245. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  246. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  247. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  248. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  249. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  250. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  251. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  252. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  253. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  254. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  255. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  256. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  257. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  258. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  259. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  260. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  261. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  262. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  263. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  264. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  265. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  266. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  267. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  268. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  269. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  270. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  271. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  272. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  273. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  274. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  275. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  276. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  277. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  278. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  279. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  280. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  281. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  282. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  283. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  284. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  285. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  286. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  287. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  288. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  289. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  290. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  291. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  292. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  293. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  294. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  295. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  296. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  297. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  298. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  299. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  300. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  301. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  302. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  303. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  304. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  305. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  306. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  307. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  308. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  309. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  310. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  311. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  312. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  313. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  314. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  315. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  316. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  317. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  318. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  319. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  320. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  321. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  322. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  323. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  324. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/framework/base.py +0 -0
  325. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  326. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  327. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  328. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  329. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  330. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  331. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  332. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  333. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  334. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  335. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  336. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  337. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  338. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  339. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  340. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  341. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  342. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  343. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  344. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  345. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  346. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  347. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  348. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  349. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  350. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  351. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  352. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  353. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  354. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  355. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  356. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  357. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  358. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  359. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  360. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  361. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  362. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  363. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  364. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  365. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  366. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  367. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  368. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  369. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  370. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  371. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  372. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  373. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  374. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  375. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  376. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  377. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  378. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  379. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  380. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  381. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  382. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  383. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  384. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  385. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  386. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  387. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  388. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  389. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  390. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  391. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  392. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  393. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  394. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  395. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  396. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  397. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  398. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  399. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  400. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  401. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  402. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  403. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  404. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  405. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  406. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  407. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  408. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  409. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  410. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  411. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  412. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  413. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  414. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  415. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  416. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  417. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  418. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  419. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  420. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  421. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  422. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  423. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  424. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  425. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  426. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  427. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  428. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  429. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  430. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  431. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  432. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  433. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  434. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  435. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  436. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  437. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  438. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  439. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  440. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  441. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  442. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  443. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  444. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  445. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  446. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  447. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  448. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  449. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  450. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  451. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  452. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  453. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  454. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  455. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  456. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  457. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  458. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  459. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  460. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  461. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  462. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  463. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  464. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  465. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  466. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/monitoring/shap.py +0 -0
  467. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/__init__.py +0 -0
  468. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  469. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  470. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/registry/registry.py +0 -0
  471. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/authentication.py +0 -0
  472. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/connection_params.py +0 -0
  473. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/html_utils.py +0 -0
  474. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/sparse.py +0 -0
  475. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake/ml/utils/sql_client.py +0 -0
  476. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  477. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  478. {snowflake_ml_python-1.23.0 → snowflake_ml_python-1.24.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,5 +1,43 @@
1
1
  # Release History
2
2
 
3
+ ## 1.24.0
4
+
5
+ ### New Features
6
+
7
+ * Feature Store: Added tile-based aggregation support with a new `Feature` API for efficient and
8
+ point-in-time correct time-series feature computation using pre-computed tiles stored in Dynamic Tables.
9
+
10
+ * Registry: Added auto-signature inference for SentenceTransformer models. When logging a SentenceTransformer
11
+ model, `sample_input_data` is now optional. If not provided, the signature is automatically inferred from
12
+ the model's embedding dimension. Supported methods: `encode`, `encode_query`, `encode_document`,
13
+ `encode_queries`, `encode_documents`.
14
+
15
+ ```python
16
+ import sentence_transformers
17
+ from snowflake.ml.registry import Registry
18
+
19
+ # Create model
20
+ model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2")
21
+
22
+ # Log model without sample_input_data - signature is auto-inferred
23
+ registry = Registry(session)
24
+ mv = registry.log_model(
25
+ model=model,
26
+ model_name="my_sentence_transformer",
27
+ version_name="v1",
28
+ )
29
+
30
+ # Run inference with auto-inferred signature (input: "text", output: "output")
31
+ import pandas as pd
32
+ result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
33
+ ```
34
+
35
+ ### Bug Fixes
36
+
37
+ ### Behavior Changes
38
+
39
+ ### Deprecations
40
+
3
41
  ## 1.23.0
4
42
 
5
43
  ### New Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.23.0
3
+ Version: 1.24.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:
@@ -417,6 +417,44 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
417
 
418
418
  # Release History
419
419
 
420
+ ## 1.24.0
421
+
422
+ ### New Features
423
+
424
+ * Feature Store: Added tile-based aggregation support with a new `Feature` API for efficient and
425
+ point-in-time correct time-series feature computation using pre-computed tiles stored in Dynamic Tables.
426
+
427
+ * Registry: Added auto-signature inference for SentenceTransformer models. When logging a SentenceTransformer
428
+ model, `sample_input_data` is now optional. If not provided, the signature is automatically inferred from
429
+ the model's embedding dimension. Supported methods: `encode`, `encode_query`, `encode_document`,
430
+ `encode_queries`, `encode_documents`.
431
+
432
+ ```python
433
+ import sentence_transformers
434
+ from snowflake.ml.registry import Registry
435
+
436
+ # Create model
437
+ model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2")
438
+
439
+ # Log model without sample_input_data - signature is auto-inferred
440
+ registry = Registry(session)
441
+ mv = registry.log_model(
442
+ model=model,
443
+ model_name="my_sentence_transformer",
444
+ version_name="v1",
445
+ )
446
+
447
+ # Run inference with auto-inferred signature (input: "text", output: "output")
448
+ import pandas as pd
449
+ result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
450
+ ```
451
+
452
+ ### Bug Fixes
453
+
454
+ ### Behavior Changes
455
+
456
+ ### Deprecations
457
+
420
458
  ## 1.23.0
421
459
 
422
460
  ### New Features
@@ -19,7 +19,6 @@ LIVE_COMMIT_PARAMETER = "ENABLE_LIVE_VERSION_IN_SDK"
19
19
  INLINE_DEPLOYMENT_SPEC_PARAMETER = "ENABLE_INLINE_DEPLOYMENT_SPEC_FROM_CLIENT_VERSION"
20
20
  SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST = "SET_MODULE_FUNCTIONS_VOLATILITY_FROM_MANIFEST"
21
21
  ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS = "ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS"
22
- FEATURE_MODEL_INFERENCE_AUTOCAPTURE = "FEATURE_MODEL_INFERENCE_AUTOCAPTURE"
23
22
 
24
23
 
25
24
  class PlatformCapabilities:
@@ -85,9 +84,6 @@ class PlatformCapabilities:
85
84
  def is_model_method_signature_parameters_enabled(self) -> bool:
86
85
  return self._get_bool_feature(ENABLE_MODEL_METHOD_SIGNATURE_PARAMETERS, False)
87
86
 
88
- def is_inference_autocapture_enabled(self) -> bool:
89
- return self._is_feature_enabled(FEATURE_MODEL_INFERENCE_AUTOCAPTURE)
90
-
91
87
  @staticmethod
92
88
  def _get_features(session: snowpark_session.Session) -> dict[str, Any]:
93
89
  try:
@@ -3,6 +3,7 @@ import os
3
3
  from snowflake.ml._internal import init_utils
4
4
 
5
5
  from .access_manager import setup_feature_store
6
+ from .feature import Feature
6
7
 
7
8
  pkg_dir = os.path.dirname(__file__)
8
9
  pkg_name = __name__
@@ -12,4 +13,5 @@ for k, v in exportable_classes.items():
12
13
 
13
14
  __all__ = list(exportable_classes.keys()) + [
14
15
  "setup_feature_store",
16
+ "Feature",
15
17
  ]
@@ -0,0 +1,367 @@
1
+ """Aggregation types and specifications for tile-based feature views.
2
+
3
+ This module provides the building blocks for defining time-series aggregations
4
+ that are computed using a tile-based approach for efficiency and correctness.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import re
10
+ from dataclasses import dataclass, field
11
+ from enum import Enum
12
+ from typing import Any
13
+
14
+
15
+ class AggregationType(Enum):
16
+ """Supported aggregation functions for tiled feature views.
17
+
18
+ These aggregation types are classified into categories:
19
+ - Simple aggregations (SUM, COUNT, AVG, MIN, MAX, STD, VAR): Stored as scalar partial results in tiles
20
+ - Sketch aggregations (APPROX_COUNT_DISTINCT, APPROX_PERCENTILE): Stored as mergeable state in tiles
21
+ - List aggregations (LAST_N, LAST_DISTINCT_N, FIRST_N, FIRST_DISTINCT_N): Stored as arrays in tiles
22
+ """
23
+
24
+ SUM = "sum"
25
+ COUNT = "count"
26
+ AVG = "avg"
27
+ MIN = "min"
28
+ MAX = "max"
29
+ STD = "std"
30
+ VAR = "var"
31
+ APPROX_COUNT_DISTINCT = "approx_count_distinct"
32
+ APPROX_PERCENTILE = "approx_percentile"
33
+ LAST_N = "last_n"
34
+ LAST_DISTINCT_N = "last_distinct_n"
35
+ FIRST_N = "first_n"
36
+ FIRST_DISTINCT_N = "first_distinct_n"
37
+
38
+ def is_simple(self) -> bool:
39
+ """Check if this is a simple aggregation (scalar result per tile).
40
+
41
+ Simple aggregations include both basic aggregates (SUM, COUNT, etc.)
42
+ and sketch-based aggregates (APPROX_COUNT_DISTINCT, APPROX_PERCENTILE)
43
+ because they all produce a single value per entity per tile boundary.
44
+
45
+ Returns:
46
+ True if this is a simple aggregation type, False otherwise.
47
+ """
48
+ return self in (
49
+ AggregationType.SUM,
50
+ AggregationType.COUNT,
51
+ AggregationType.AVG,
52
+ AggregationType.MIN,
53
+ AggregationType.MAX,
54
+ AggregationType.STD,
55
+ AggregationType.VAR,
56
+ AggregationType.APPROX_COUNT_DISTINCT,
57
+ AggregationType.APPROX_PERCENTILE,
58
+ )
59
+
60
+ def is_list(self) -> bool:
61
+ """Check if this is a list aggregation (array result per tile)."""
62
+ return self in (
63
+ AggregationType.LAST_N,
64
+ AggregationType.LAST_DISTINCT_N,
65
+ AggregationType.FIRST_N,
66
+ AggregationType.FIRST_DISTINCT_N,
67
+ )
68
+
69
+ def is_sketch(self) -> bool:
70
+ """Check if this is a sketch-based aggregation (HLL, T-Digest)."""
71
+ return self in (
72
+ AggregationType.APPROX_COUNT_DISTINCT,
73
+ AggregationType.APPROX_PERCENTILE,
74
+ )
75
+
76
+
77
+ # Special window value for lifetime aggregations
78
+ LIFETIME_WINDOW = "lifetime"
79
+
80
+ # Regex pattern for interval parsing: "1h", "24 hours", "30 minutes", etc.
81
+ _INTERVAL_PATTERN = re.compile(
82
+ r"^\s*(\d+)\s*(s|sec|secs|second|seconds|m|min|mins|minute|minutes|h|hr|hrs|hour|hours|d|day|days)\s*$",
83
+ re.IGNORECASE,
84
+ )
85
+
86
+ # Mapping of interval unit aliases to canonical Snowflake units
87
+ _INTERVAL_UNIT_MAP = {
88
+ "s": "SECOND",
89
+ "sec": "SECOND",
90
+ "secs": "SECOND",
91
+ "second": "SECOND",
92
+ "seconds": "SECOND",
93
+ "m": "MINUTE",
94
+ "min": "MINUTE",
95
+ "mins": "MINUTE",
96
+ "minute": "MINUTE",
97
+ "minutes": "MINUTE",
98
+ "h": "HOUR",
99
+ "hr": "HOUR",
100
+ "hrs": "HOUR",
101
+ "hour": "HOUR",
102
+ "hours": "HOUR",
103
+ "d": "DAY",
104
+ "day": "DAY",
105
+ "days": "DAY",
106
+ }
107
+
108
+ # Seconds per unit for calculating window sizes
109
+ _SECONDS_PER_UNIT = {
110
+ "SECOND": 1,
111
+ "MINUTE": 60,
112
+ "HOUR": 3600,
113
+ "DAY": 86400,
114
+ }
115
+
116
+
117
+ def is_lifetime_window(window: str) -> bool:
118
+ """Check if a window string represents a lifetime aggregation.
119
+
120
+ Args:
121
+ window: The window string to check.
122
+
123
+ Returns:
124
+ True if the window is "lifetime", False otherwise.
125
+ """
126
+ return window.lower().strip() == LIFETIME_WINDOW
127
+
128
+
129
+ def parse_interval(interval: str) -> tuple[int, str]:
130
+ """Parse an interval string into (value, unit) tuple.
131
+
132
+ Args:
133
+ interval: Interval string like "1h", "24 hours", "30 minutes".
134
+ Note: "lifetime" is NOT a valid interval - use is_lifetime_window() first.
135
+
136
+ Returns:
137
+ Tuple of (numeric_value, snowflake_unit) e.g. (1, "HOUR").
138
+
139
+ Raises:
140
+ ValueError: If the interval format is invalid.
141
+ """
142
+ if is_lifetime_window(interval):
143
+ raise ValueError(
144
+ f"'{interval}' is not a numeric interval. " f"Use is_lifetime_window() to check for lifetime windows."
145
+ )
146
+
147
+ match = _INTERVAL_PATTERN.match(interval)
148
+ if not match:
149
+ raise ValueError(
150
+ f"Invalid interval format: '{interval}'. "
151
+ f"Expected format: '<number> <unit>' where unit is one of: "
152
+ f"seconds, minutes, hours, days (or abbreviations s, m, h, d)"
153
+ )
154
+
155
+ value = int(match.group(1))
156
+ unit_str = match.group(2).lower()
157
+ unit = _INTERVAL_UNIT_MAP[unit_str]
158
+
159
+ if value <= 0:
160
+ raise ValueError(f"Interval value must be positive, got: {value}")
161
+
162
+ return value, unit
163
+
164
+
165
+ def interval_to_seconds(interval: str) -> int:
166
+ """Convert an interval string to total seconds.
167
+
168
+ Args:
169
+ interval: Interval string like "1h", "24 hours".
170
+ Note: "lifetime" is NOT supported - returns -1 as sentinel.
171
+
172
+ Returns:
173
+ Total seconds represented by the interval, or -1 for lifetime.
174
+ """
175
+ if is_lifetime_window(interval):
176
+ return -1 # Sentinel value for lifetime
177
+ value, unit = parse_interval(interval)
178
+ return value * _SECONDS_PER_UNIT[unit]
179
+
180
+
181
+ def format_interval_for_snowflake(interval: str) -> str:
182
+ """Format an interval string for use in Snowflake SQL.
183
+
184
+ Args:
185
+ interval: Interval string like "1h", "24 hours".
186
+
187
+ Returns:
188
+ Formatted string like "HOUR" or "DAY" for use with DATEADD/TIME_SLICE.
189
+ """
190
+ _, unit = parse_interval(interval)
191
+ return unit
192
+
193
+
194
+ @dataclass(frozen=True)
195
+ class AggregationSpec:
196
+ """Internal representation of an aggregation specification.
197
+
198
+ This is the serializable form that gets stored in metadata and used
199
+ for SQL generation. Users interact with the Feature class instead.
200
+
201
+ Attributes:
202
+ function: The aggregation function type.
203
+ source_column: The column to aggregate.
204
+ window: The lookback window for the aggregation (e.g., "24h", "7d").
205
+ output_column: The name of the output column.
206
+ offset: Offset to shift the window into the past (e.g., "1d" means [t-window-1d, t-1d]).
207
+ params: Additional parameters (e.g., {"n": 10} for LAST_N).
208
+ """
209
+
210
+ function: AggregationType
211
+ source_column: str
212
+ window: str
213
+ output_column: str
214
+ offset: str = "0"
215
+ params: dict[str, Any] = field(default_factory=dict)
216
+
217
+ def __post_init__(self) -> None:
218
+ """Validate the aggregation spec after initialization."""
219
+ # Validate window format (allow "lifetime" as special case)
220
+ if not is_lifetime_window(self.window):
221
+ try:
222
+ interval_to_seconds(self.window)
223
+ except ValueError as e:
224
+ raise ValueError(f"Invalid window for aggregation '{self.output_column}': {e}") from e
225
+
226
+ # Validate offset format (if not "0")
227
+ # Note: offset is not allowed with lifetime windows
228
+ if self.offset != "0":
229
+ if is_lifetime_window(self.window):
230
+ raise ValueError(
231
+ f"Offset is not supported with lifetime windows for aggregation '{self.output_column}'"
232
+ )
233
+ try:
234
+ offset_seconds = interval_to_seconds(self.offset)
235
+ if offset_seconds < 0:
236
+ raise ValueError("Offset must be non-negative")
237
+ except ValueError as e:
238
+ raise ValueError(f"Invalid offset for aggregation '{self.output_column}': {e}") from e
239
+
240
+ # Validate params for list aggregations
241
+ if self.function.is_list():
242
+ if "n" not in self.params:
243
+ raise ValueError(
244
+ f"Parameter 'n' is required for {self.function.value} aggregation " f"'{self.output_column}'"
245
+ )
246
+ n = self.params["n"]
247
+ if not isinstance(n, int) or n <= 0:
248
+ raise ValueError(
249
+ f"Parameter 'n' must be a positive integer for aggregation " f"'{self.output_column}', got: {n}"
250
+ )
251
+
252
+ # Validate params for approx_percentile
253
+ if self.function == AggregationType.APPROX_PERCENTILE:
254
+ if "percentile" not in self.params:
255
+ raise ValueError(
256
+ f"Parameter 'percentile' is required for approx_percentile aggregation '{self.output_column}'"
257
+ )
258
+ percentile = self.params["percentile"]
259
+ if not isinstance(percentile, (int, float)) or not (0.0 <= percentile <= 1.0):
260
+ raise ValueError(
261
+ f"Parameter 'percentile' must be a float between 0.0 and 1.0 for aggregation "
262
+ f"'{self.output_column}', got: {percentile}"
263
+ )
264
+
265
+ # Validate lifetime window support
266
+ # Only simple scalar aggregations support lifetime (O(1) via cumulative columns)
267
+ if is_lifetime_window(self.window):
268
+ supported_lifetime_types = (
269
+ AggregationType.SUM,
270
+ AggregationType.COUNT,
271
+ AggregationType.AVG,
272
+ AggregationType.MIN,
273
+ AggregationType.MAX,
274
+ AggregationType.STD,
275
+ AggregationType.VAR,
276
+ )
277
+ if self.function not in supported_lifetime_types:
278
+ supported_names = ", ".join(t.value.upper() for t in supported_lifetime_types)
279
+ raise ValueError(
280
+ f"Lifetime window is not supported for {self.function.value} aggregation "
281
+ f"'{self.output_column}'. Lifetime is only supported for: {supported_names}."
282
+ )
283
+
284
+ def is_lifetime(self) -> bool:
285
+ """Check if this aggregation has a lifetime window.
286
+
287
+ Returns:
288
+ True if the window is "lifetime", False otherwise.
289
+ """
290
+ return is_lifetime_window(self.window)
291
+
292
+ def get_window_seconds(self) -> int:
293
+ """Get the window size in seconds.
294
+
295
+ Returns:
296
+ Total seconds for the window, or -1 for lifetime windows.
297
+ """
298
+ return interval_to_seconds(self.window)
299
+
300
+ def get_offset_seconds(self) -> int:
301
+ """Get the offset in seconds."""
302
+ return interval_to_seconds(self.offset) if self.offset != "0" else 0
303
+
304
+ def get_cumulative_column_name(self, partial_type: str) -> str:
305
+ """Get the cumulative column name for lifetime aggregations.
306
+
307
+ Similar to get_tile_column_name but with _CUM_ prefix instead of _PARTIAL_.
308
+
309
+ Args:
310
+ partial_type: One of "SUM", "COUNT", "SUM_SQ", "HLL", "TDIGEST", "MIN", "MAX", "FIRST".
311
+
312
+ Returns:
313
+ Column name used in the tile table (prefixed with _CUM_).
314
+ """
315
+ return f"_CUM_{partial_type}_{self.source_column.upper()}"
316
+
317
+ def get_tile_column_name(self, partial_type: str) -> str:
318
+ """Get the internal tile column name for a base partial aggregate.
319
+
320
+ Aggregations are computed from base partials:
321
+ - _PARTIAL_SUM_{col}: SUM(col) - used by SUM, AVG, STD, VAR
322
+ - _PARTIAL_COUNT_{col}: COUNT(col) - used by COUNT, AVG, STD, VAR
323
+ - _PARTIAL_SUM_SQ_{col}: SUM(col*col) - used by STD, VAR
324
+ - _PARTIAL_HLL_{col}: HLL state - used by APPROX_COUNT_DISTINCT
325
+ - _PARTIAL_TDIGEST_{col}: T-Digest state - used by APPROX_PERCENTILE
326
+
327
+ This allows sharing columns across aggregation types on the same column.
328
+
329
+ Args:
330
+ partial_type: One of "SUM", "COUNT", "SUM_SQ", "HLL", "TDIGEST", "LAST", "FIRST".
331
+
332
+ Returns:
333
+ Column name used in the tile table (prefixed with _PARTIAL_).
334
+ """
335
+ return f"_PARTIAL_{partial_type}_{self.source_column.upper()}"
336
+
337
+ def get_sql_column_name(self) -> str:
338
+ """Get the output column name formatted for SQL.
339
+
340
+ Returns:
341
+ Column name ready for use in SQL. Case-sensitive names are stored
342
+ with quotes (e.g., '"My_Col"'), case-insensitive names are uppercase.
343
+ """
344
+ return self.output_column
345
+
346
+ def to_dict(self) -> dict[str, Any]:
347
+ """Convert to a dictionary for JSON serialization."""
348
+ return {
349
+ "function": self.function.value,
350
+ "source_column": self.source_column,
351
+ "window": self.window,
352
+ "output_column": self.output_column,
353
+ "offset": self.offset,
354
+ "params": self.params,
355
+ }
356
+
357
+ @classmethod
358
+ def from_dict(cls, data: dict[str, Any]) -> AggregationSpec:
359
+ """Create an AggregationSpec from a dictionary."""
360
+ return cls(
361
+ function=AggregationType(data["function"]),
362
+ source_column=data["source_column"],
363
+ window=data["window"],
364
+ output_column=data["output_column"],
365
+ offset=data.get("offset", "0"),
366
+ params=data.get("params", {}),
367
+ )