snowflake-ml-python 1.28.0__tar.gz → 1.30.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 (486) hide show
  1. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/CHANGELOG.md +50 -1
  2. {snowflake_ml_python-1.28.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.30.0}/PKG-INFO +51 -3
  3. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/pyproject.toml +1 -1
  4. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_complete.py +1 -2
  5. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/file_utils.py +33 -14
  6. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/lineage/lineage_utils.py +1 -0
  7. snowflake_ml_python-1.30.0/snowflake/ml/_internal/utils/tee.py +85 -0
  8. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_connector.py +1 -1
  9. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +34 -0
  10. snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/__init__.py +6 -0
  11. snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/experiment_logger.py +90 -0
  12. snowflake_ml_python-1.30.0/snowflake/ml/experiment/_logging/experiment_logging_context.py +13 -0
  13. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/experiment_tracking.py +103 -11
  14. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/__init__.py +4 -0
  15. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/aggregation.py +17 -2
  16. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature_store.py +409 -17
  17. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature_view.py +273 -30
  18. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/metadata_manager.py +188 -8
  19. snowflake_ml_python-1.30.0/snowflake/ml/feature_store/stream_source.py +216 -0
  20. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/tile_sql_generator.py +499 -39
  21. snowflake_ml_python-1.30.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +18 -0
  22. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +6 -1
  23. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/decorators.py +2 -0
  24. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/job.py +17 -0
  25. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/job_definition.py +5 -0
  26. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/manager.py +6 -0
  27. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/__init__.py +2 -0
  28. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/model_version_impl.py +8 -5
  29. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/param_utils.py +18 -0
  30. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/service_ops.py +1 -1
  31. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/model_version.py +4 -2
  32. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -17
  33. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +1 -0
  34. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +1 -0
  35. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +10 -31
  36. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +141 -6
  37. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +1 -0
  38. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -1
  39. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/core.py +134 -6
  40. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/utils.py +20 -1
  41. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/inference_engine.py +1 -0
  42. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/model_signature.py +18 -5
  43. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/models/huggingface.py +105 -250
  44. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/models/huggingface_pipeline.py +2 -2
  45. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/openai_signatures.py +10 -0
  46. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/stage_file.py +16 -5
  47. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/version.py +1 -1
  48. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0/snowflake_ml_python.egg-info}/PKG-INFO +51 -3
  49. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/SOURCES.txt +5 -1
  50. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/requires.txt +0 -1
  51. snowflake_ml_python-1.28.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -117
  52. snowflake_ml_python-1.28.0/snowflake/ml/jobs/_utils/spec_utils.py +0 -22
  53. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/LICENSE.txt +0 -0
  54. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/README.md +0 -0
  55. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/setup.cfg +0 -0
  56. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/__init__.py +0 -0
  57. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_classify_text.py +0 -0
  58. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  59. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_embed_text_768.py +0 -0
  60. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_extract_answer.py +0 -0
  61. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_finetune.py +0 -0
  62. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_sentiment.py +0 -0
  63. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_sse_client.py +0 -0
  64. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_summarize.py +0 -0
  65. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_translate.py +0 -0
  66. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/cortex/_util.py +0 -0
  67. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/env.py +0 -0
  68. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/env_utils.py +0 -0
  69. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  70. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  71. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  72. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  73. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  74. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  75. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  76. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  77. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  78. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  79. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  80. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  81. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  82. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/init_utils.py +0 -0
  83. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  84. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  85. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  86. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/telemetry.py +0 -0
  87. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/type_utils.py +0 -0
  88. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  89. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  90. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  91. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  92. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  93. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  94. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  95. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  96. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  97. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  98. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/result.py +0 -0
  99. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  100. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  101. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  102. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  103. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  104. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  105. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/_internal/utils/url.py +0 -0
  106. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/__init__.py +0 -0
  107. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  108. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_ingestor.py +0 -0
  109. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/data_source.py +0 -0
  110. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  111. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/data/torch_utils.py +0 -0
  112. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/__init__.py +0 -0
  113. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset.py +0 -0
  114. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  115. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  116. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  117. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/__init__.py +0 -0
  118. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  119. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  120. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  121. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  122. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  123. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  124. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  125. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  126. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  127. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/experiment/utils.py +0 -0
  128. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  129. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/entity.py +0 -0
  130. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  131. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  132. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  133. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  134. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  135. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  136. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  137. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  138. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  139. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  140. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  141. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  142. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  143. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  144. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  145. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  146. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  147. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  148. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  149. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  150. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  151. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  152. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/feature_store/feature.py +0 -0
  153. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  154. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/fileset.py +0 -0
  155. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  156. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/snowfs.py +0 -0
  157. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  158. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/__init__.py +0 -0
  159. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  160. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  161. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  162. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  163. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  164. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  165. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  166. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  167. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  168. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  169. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  170. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  171. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  172. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  173. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  174. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  175. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  176. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  177. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  178. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  179. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  180. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/jobs/_utils/types.py +0 -0
  181. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/lineage/__init__.py +0 -0
  182. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  183. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
  184. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  185. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  186. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  187. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  188. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  189. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  190. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  191. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  192. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  193. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  194. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  195. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  196. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  197. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  198. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  199. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  200. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  201. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  202. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  203. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  204. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  205. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  206. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  207. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  208. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  209. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  210. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  211. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  212. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  213. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  214. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  215. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  216. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  217. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  218. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  219. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  220. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  221. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  222. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  223. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  224. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  225. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  226. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  227. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  228. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  229. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  230. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  231. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  232. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  233. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  234. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  235. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  236. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  237. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  238. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  239. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  240. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  241. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  242. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/batch/__init__.py +0 -0
  243. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/code_path.py +0 -0
  244. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/compute_pool.py +0 -0
  245. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/custom_model.py +0 -0
  246. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/event_handler.py +0 -0
  247. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/target_platform.py +0 -0
  248. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/task.py +0 -0
  249. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/type_hints.py +0 -0
  250. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/model/volatility.py +0 -0
  251. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  252. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  253. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  254. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  255. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  256. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  257. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  258. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  259. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  260. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  261. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  262. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  263. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  264. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  265. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  266. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  267. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  268. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  269. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  270. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  271. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  272. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  273. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  274. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  275. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  276. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  277. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  278. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  279. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  280. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  281. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  282. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  283. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  284. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  285. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  286. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  287. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  288. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  289. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  290. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  291. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  292. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  293. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  294. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  295. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  296. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  297. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  298. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  299. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  300. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  301. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  302. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  303. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  304. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  305. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  306. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  307. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  308. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  309. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  310. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  311. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  312. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  313. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  314. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  315. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  316. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  317. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  318. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  319. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  320. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  321. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  322. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  323. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  324. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  325. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  326. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  327. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  328. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  329. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  330. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  331. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  332. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  333. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/framework/base.py +0 -0
  334. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  335. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  336. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  337. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  338. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  339. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  340. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  341. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  342. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  343. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  344. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  345. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  346. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  347. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  348. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  349. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  350. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  351. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  352. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  353. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  354. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  355. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  356. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  357. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  358. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  359. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  360. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  361. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  362. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  363. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  364. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  365. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  366. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  367. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  368. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  369. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  370. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  371. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  372. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  373. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  374. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  375. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  376. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  377. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  378. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  379. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  380. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  381. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  382. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  383. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  384. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  385. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  386. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  387. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  388. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  389. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  390. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  391. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  392. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  393. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  394. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  395. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  396. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  397. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  398. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  399. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  400. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  401. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  402. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  403. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  404. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  405. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  406. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  407. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  408. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  409. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  410. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  411. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  412. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  413. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  414. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  415. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  416. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  417. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  418. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  419. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  420. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  421. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  422. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  423. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  424. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  425. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  426. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  427. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  428. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  429. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  430. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  431. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  432. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  433. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  434. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  435. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  436. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  437. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  438. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  439. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  440. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  441. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  442. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  443. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  444. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  445. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  446. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  447. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  448. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  449. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  450. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  451. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  452. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  453. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  454. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  455. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  456. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  457. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  458. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  459. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  460. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  461. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  462. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  463. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  464. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  465. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  466. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  467. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  468. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  469. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  470. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  471. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  472. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  473. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  474. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  475. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/monitoring/shap.py +0 -0
  476. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/__init__.py +0 -0
  477. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  478. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  479. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/registry/registry.py +0 -0
  480. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/authentication.py +0 -0
  481. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/connection_params.py +0 -0
  482. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/html_utils.py +0 -0
  483. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/sparse.py +0 -0
  484. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake/ml/utils/sql_client.py +0 -0
  485. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  486. {snowflake_ml_python-1.28.0 → snowflake_ml_python-1.30.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,55 @@
1
1
  # Release History
2
2
 
3
- ## 1.28.0
3
+ ## 1.30.0
4
+
5
+ ### New Features
6
+
7
+ * Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
8
+ persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
9
+ * Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
10
+ Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
11
+ enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
12
+
13
+ ### Bug Fixes
14
+
15
+ * Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
16
+ uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
17
+ * Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
18
+ plain strings as input without needing to specify the signatures in `log_model`.
19
+ The signature can be overridden if the user chooses to.
20
+
21
+ ### Behavior Changes
22
+
23
+ * Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
24
+ that supports plain text (string) as input.
25
+
26
+ ### Deprecations
27
+
28
+ * Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
29
+ models could not run in warehouse and required an External Access Integration (EAI) with egress
30
+ to Hugging Face hosts. Use remote logging or local download instead — these approaches support
31
+ warehouse execution and store model weights at log time, enabling fully air-gapped services.
32
+
33
+ ## 1.29.0 (2026-02-24)
34
+
35
+ ### New Features
36
+
37
+ * Model serving: Introducing `InferenceEngine.PYTHON_GENERIC` enum value.
38
+ Users can pass `InferenceEngine.PYTHON_GENERIC` to use a Python-based inference server for model serving.
39
+
40
+ ### Bug Fixes
41
+
42
+ * Registry: Fixed a bug where using inference parameters (ParamSpec) with table function or
43
+ partitioned model methods would fail at runtime with a `NameError`.
44
+ * Registry: Fixed a bug where MLflow models with string columns failed during inference with
45
+ "Can not safely convert string to \<U0\>" errors due to MLflow's schema validation not handling
46
+ `pd.StringDtype` correctly.
47
+
48
+ ### Behavior Changes
49
+
50
+ ### Deprecations
51
+
52
+ ## 1.28.0 (2026-02-17)
4
53
 
5
54
  ### New Features
6
55
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.28.0
3
+ Version: 1.30.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:
@@ -255,7 +255,6 @@ Requires-Dist: scipy<2,>=1.9
255
255
  Requires-Dist: shap<1,>=0.46.0
256
256
  Requires-Dist: snowflake-connector-python[pandas]<5,>=3.17.3
257
257
  Requires-Dist: snowflake-snowpark-python!=1.26.0,<2,>=1.17.0
258
- Requires-Dist: snowflake.core<2,>=1.0.2
259
258
  Requires-Dist: sqlparse<1,>=0.4
260
259
  Requires-Dist: tqdm<5
261
260
  Requires-Dist: typing-extensions<5,>=4.1.0
@@ -417,7 +416,56 @@ 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.28.0
419
+ ## 1.30.0
420
+
421
+ ### New Features
422
+
423
+ * Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
424
+ persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
425
+ * Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
426
+ Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
427
+ enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
428
+
429
+ ### Bug Fixes
430
+
431
+ * Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
432
+ uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
433
+ * Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
434
+ plain strings as input without needing to specify the signatures in `log_model`.
435
+ The signature can be overridden if the user chooses to.
436
+
437
+ ### Behavior Changes
438
+
439
+ * Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
440
+ that supports plain text (string) as input.
441
+
442
+ ### Deprecations
443
+
444
+ * Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
445
+ models could not run in warehouse and required an External Access Integration (EAI) with egress
446
+ to Hugging Face hosts. Use remote logging or local download instead — these approaches support
447
+ warehouse execution and store model weights at log time, enabling fully air-gapped services.
448
+
449
+ ## 1.29.0 (2026-02-24)
450
+
451
+ ### New Features
452
+
453
+ * Model serving: Introducing `InferenceEngine.PYTHON_GENERIC` enum value.
454
+ Users can pass `InferenceEngine.PYTHON_GENERIC` to use a Python-based inference server for model serving.
455
+
456
+ ### Bug Fixes
457
+
458
+ * Registry: Fixed a bug where using inference parameters (ParamSpec) with table function or
459
+ partitioned model methods would fail at runtime with a `NameError`.
460
+ * Registry: Fixed a bug where MLflow models with string columns failed during inference with
461
+ "Can not safely convert string to \<U0\>" errors due to MLflow's schema validation not handling
462
+ `pd.StringDtype` correctly.
463
+
464
+ ### Behavior Changes
465
+
466
+ ### Deprecations
467
+
468
+ ## 1.28.0 (2026-02-17)
421
469
 
422
470
  ### New Features
423
471
 
@@ -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", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.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", "snowflake.core>=1.0.2,<2", "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", "importlib_resources>=6.1.1, <7", "numpy>=1.23,<3", "packaging>=20.9,<26", "pandas>=2.1.4,<3", "platformdirs<5", "pyarrow<19.0.0", "pydantic>=2.8.2, <3", "pyjwt>=2.0.0, <3", "pytimeparse>=1.1.8,<2", "pyyaml>=6.0,<7", "retrying>=1.3.3,<2", "s3fs>=2024.6.1,<2026", "scikit-learn<1.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"
@@ -7,7 +7,6 @@ from typing import Any, Callable, Iterator, Optional, TypedDict, Union, cast
7
7
  from urllib.parse import urlunparse
8
8
 
9
9
  import requests
10
- from snowflake.core.rest import RESTResponse
11
10
  from typing_extensions import NotRequired, deprecated
12
11
 
13
12
  from snowflake import snowpark
@@ -80,7 +79,7 @@ class MidStreamException(Exception):
80
79
  def __init__(
81
80
  self,
82
81
  reason: typing.Optional[str] = None,
83
- http_resp: typing.Optional["RESTResponse"] = None,
82
+ http_resp: typing.Optional[Any] = None,
84
83
  request_id: typing.Optional[str] = None,
85
84
  ) -> None:
86
85
  message = ""
@@ -281,6 +281,38 @@ def _retry_on_sql_error(exception: Exception) -> bool:
281
281
  return isinstance(exception, snowpark_exceptions.SnowparkSQLException)
282
282
 
283
283
 
284
+ def _resolve_stage_dir_path(
285
+ stage_path: Union[pathlib.PurePosixPath, parse.ParseResult],
286
+ relative_path: pathlib.PurePosixPath,
287
+ ) -> str:
288
+ """Resolve the stage directory path for a file upload.
289
+
290
+ Combines the base stage path with the relative file path and returns the
291
+ parent directory. Uses PurePosixPath for cross-platform compatibility
292
+ (PosixPath cannot be instantiated on Windows).
293
+
294
+ Args:
295
+ stage_path: Base stage path, either a PurePosixPath or a parsed URL.
296
+ relative_path: POSIX-style relative path of the file within the local directory.
297
+
298
+ Returns:
299
+ The resolved stage directory path as a string (or unparsed URL).
300
+ """
301
+ if isinstance(stage_path, parse.ParseResult):
302
+ relative_stage_path = (pathlib.PurePosixPath(stage_path.path) / relative_path).parent
303
+ new_url = parse.ParseResult(
304
+ scheme=stage_path.scheme,
305
+ netloc=stage_path.netloc,
306
+ path=str(relative_stage_path),
307
+ params=stage_path.params,
308
+ query=stage_path.query,
309
+ fragment=stage_path.fragment,
310
+ )
311
+ return parse.urlunparse(new_url)
312
+ else:
313
+ return str((stage_path / relative_path).parent)
314
+
315
+
284
316
  def upload_directory_to_stage(
285
317
  session: snowpark.Session,
286
318
  local_path: pathlib.Path,
@@ -305,20 +337,7 @@ def upload_directory_to_stage(
305
337
  for filename in filenames:
306
338
  local_file_path = root_path / filename
307
339
  relative_path = pathlib.PurePosixPath(local_file_path.relative_to(local_path).as_posix())
308
-
309
- if isinstance(stage_path, parse.ParseResult):
310
- relative_stage_path = (pathlib.PosixPath(stage_path.path) / relative_path).parent
311
- new_url = parse.ParseResult(
312
- scheme=stage_path.scheme,
313
- netloc=stage_path.netloc,
314
- path=str(relative_stage_path),
315
- params=stage_path.params,
316
- query=stage_path.query,
317
- fragment=stage_path.fragment,
318
- )
319
- stage_dir_path = parse.urlunparse(new_url)
320
- else:
321
- stage_dir_path = str((stage_path / relative_path).parent)
340
+ stage_dir_path = _resolve_stage_dir_path(stage_path, relative_path)
322
341
 
323
342
  retrying.retry(
324
343
  retry_on_exception=_retry_on_sql_error,
@@ -72,6 +72,7 @@ def patch_dataframe(
72
72
  # Instance-level monkey-patches
73
73
  funcs = [
74
74
  "_with_plan",
75
+ "_copy_without_ast",
75
76
  "_lateral",
76
77
  "group_by",
77
78
  "group_by_grouping_sets",
@@ -0,0 +1,85 @@
1
+ import io
2
+ from typing import Any, Iterable, Iterator, Optional, TextIO
3
+
4
+
5
+ class OutputTee(TextIO):
6
+ """A class that duplicates string writes to multiple file-like objects."""
7
+
8
+ def __init__(self, *streams: TextIO) -> None:
9
+ """Initialize the OutputTee with a list of output streams."""
10
+ super().__init__()
11
+ self.streams = streams
12
+ if not self.writable():
13
+ raise ValueError("All inputs to OutputTee must be writable.")
14
+
15
+ def close(self) -> None:
16
+ """Does not do anything. It is implemented this way because some of the streams may be in use elsewhere.
17
+ It is the responsibility of the caller to close any streams that need to be closed."""
18
+ pass
19
+
20
+ def fileno(self) -> int:
21
+ raise io.UnsupportedOperation("OutputTee does not support fileno")
22
+
23
+ def flush(self) -> None:
24
+ """Flush all streams."""
25
+ for stream in self.streams:
26
+ stream.flush()
27
+
28
+ def isatty(self) -> bool:
29
+ return False
30
+
31
+ def read(self, n: int = -1) -> str:
32
+ raise io.UnsupportedOperation("OutputTee does not support reading")
33
+
34
+ def readable(self) -> bool:
35
+ """OutputTee is not readable."""
36
+ return False
37
+
38
+ def readline(self, limit: int = -1) -> str:
39
+ raise io.UnsupportedOperation("OutputTee does not support reading")
40
+
41
+ def readlines(self, hint: int = -1) -> list[str]:
42
+ raise io.UnsupportedOperation("OutputTee does not support reading")
43
+
44
+ def seek(self, offset: int, whence: int = 0) -> int:
45
+ raise io.UnsupportedOperation("OutputTee does not support seek")
46
+
47
+ def seekable(self) -> bool:
48
+ """OutputTee is not seekable."""
49
+ return False
50
+
51
+ def tell(self) -> int:
52
+ raise io.UnsupportedOperation("OutputTee does not support tell")
53
+
54
+ def truncate(self, size: Optional[int] = None) -> int:
55
+ raise io.UnsupportedOperation("OutputTee does not support truncate")
56
+
57
+ def writable(self) -> bool:
58
+ """OutputTee is writable if and only if all streams are writable."""
59
+ return all(stream.writable() for stream in self.streams)
60
+
61
+ def write(self, data: str) -> int:
62
+ """Write to all streams."""
63
+ for stream in self.streams:
64
+ stream.write(data)
65
+ return len(data)
66
+
67
+ def writelines(self, lines: Iterable[str]) -> None:
68
+ """Write lines to all streams."""
69
+ lines_list = list(lines)
70
+ for stream in self.streams:
71
+ stream.writelines(lines_list)
72
+
73
+ def __enter__(self) -> "OutputTee":
74
+ """Enter context manager."""
75
+ return self
76
+
77
+ def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
78
+ """Exit context manager."""
79
+ self.close()
80
+
81
+ def __iter__(self) -> Iterator[str]:
82
+ raise io.UnsupportedOperation("OutputTee does not support reading")
83
+
84
+ def __next__(self) -> str:
85
+ raise io.UnsupportedOperation("OutputTee does not support reading")
@@ -29,7 +29,7 @@ if TYPE_CHECKING:
29
29
 
30
30
  # This module can't actually depend on dataset to avoid a circular dependency
31
31
  # Dataset -> DatasetReader -> DataConnector -!-> Dataset
32
- from snowflake.ml import dataset
32
+ from snowflake.ml import dataset # type: ignore[attr-defined, unused-ignore]
33
33
 
34
34
  _PROJECT = "DataConnector"
35
35
 
@@ -40,6 +40,23 @@ class ExperimentTrackingSQLClient(_base._BaseSQLClient):
40
40
  self._session, f"CREATE EXPERIMENT {if_not_exists_sql} {experiment_fqn}"
41
41
  ).has_dimensions(expected_rows=1, expected_cols=1).validate()
42
42
 
43
+ @telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
44
+ def get_experiment_id(
45
+ self,
46
+ experiment_name: sql_identifier.SqlIdentifier,
47
+ ) -> int:
48
+ experiment_fqn = self.fully_qualified_object_name(self._database_name, self._schema_name, experiment_name)
49
+
50
+ result = (
51
+ query_result_checker.SqlResultValidator(
52
+ self._session,
53
+ f"CALL SYSTEM$RESOLVE_EXPERIMENT_ID('{experiment_fqn}')",
54
+ )
55
+ .has_dimensions(expected_rows=1, expected_cols=1)
56
+ .validate()
57
+ )
58
+ return int(result[0][0])
59
+
43
60
  @telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
44
61
  def drop_experiment(
45
62
  self,
@@ -72,6 +89,23 @@ class ExperimentTrackingSQLClient(_base._BaseSQLClient):
72
89
  self._session, f"ALTER EXPERIMENT {experiment_fqn} COMMIT RUN {run_name}"
73
90
  ).has_dimensions(expected_rows=1, expected_cols=1).validate()
74
91
 
92
+ def get_run_id(
93
+ self,
94
+ experiment_name: sql_identifier.SqlIdentifier,
95
+ run_name: sql_identifier.SqlIdentifier,
96
+ ) -> int:
97
+ experiment_fqn = self.fully_qualified_object_name(self._database_name, self._schema_name, experiment_name)
98
+
99
+ result = (
100
+ query_result_checker.SqlResultValidator(
101
+ self._session,
102
+ f"CALL SYSTEM$RESOLVE_EXPERIMENT_RUN_ID('{experiment_fqn}', '{run_name}')",
103
+ )
104
+ .has_dimensions(expected_rows=1, expected_cols=1)
105
+ .validate()
106
+ )
107
+ return int(result[0][0])
108
+
75
109
  @telemetry.send_api_usage_telemetry(project=telemetry.TelemetryProject.EXPERIMENT_TRACKING.value)
76
110
  def drop_run(
77
111
  self, *, experiment_name: sql_identifier.SqlIdentifier, run_name: sql_identifier.SqlIdentifier
@@ -0,0 +1,6 @@
1
+ from snowflake.ml.experiment._logging.experiment_logger import ExperimentLogger
2
+ from snowflake.ml.experiment._logging.experiment_logging_context import (
3
+ ExperimentLoggingContext,
4
+ )
5
+
6
+ __all__ = ["ExperimentLogger", "ExperimentLoggingContext"]
@@ -0,0 +1,90 @@
1
+ import io
2
+ import json
3
+ import os
4
+ from typing import Any, Iterable, Iterator, TextIO
5
+
6
+
7
+ class ExperimentLogger(TextIO):
8
+ OUTPUT_DIRECTORY = "/var/log/services/external/experiment_tracking"
9
+
10
+ def __init__(
11
+ self,
12
+ exp_id: int,
13
+ run_id: int,
14
+ stream: str,
15
+ ) -> None:
16
+ super().__init__()
17
+ filepath = os.path.join(self.OUTPUT_DIRECTORY, str(exp_id), str(run_id), f"{stream}.log")
18
+ os.makedirs(os.path.dirname(filepath), exist_ok=True)
19
+ self.file = open(filepath, "a", buffering=1) # Line buffering
20
+ self.exp_id = exp_id
21
+ self.run_id = run_id
22
+ self.stream = stream
23
+
24
+ def close(self) -> None:
25
+ self.file.close()
26
+
27
+ def fileno(self) -> int:
28
+ return self.file.fileno()
29
+
30
+ def flush(self) -> None:
31
+ self.file.flush()
32
+
33
+ def isatty(self) -> bool:
34
+ return False
35
+
36
+ def readable(self) -> bool:
37
+ return False
38
+
39
+ def read(self, n: int = -1) -> str:
40
+ raise io.UnsupportedOperation("read")
41
+
42
+ def readline(self, limit: int = -1) -> str:
43
+ raise io.UnsupportedOperation("readline")
44
+
45
+ def readlines(self, hint: int = -1) -> list[str]:
46
+ raise io.UnsupportedOperation("readlines")
47
+
48
+ def seekable(self) -> bool:
49
+ return False
50
+
51
+ def seek(self, offset: int, whence: int = 0) -> int:
52
+ raise io.UnsupportedOperation("seek")
53
+
54
+ def tell(self) -> int:
55
+ raise io.UnsupportedOperation("tell")
56
+
57
+ def truncate(self, size: int | None = None) -> int:
58
+ raise io.UnsupportedOperation("truncate")
59
+
60
+ def writable(self) -> bool:
61
+ return True
62
+
63
+ def write(self, data: str) -> int:
64
+ log_message = {
65
+ "body": data,
66
+ "attributes": {
67
+ "snow.experiment.id": self.exp_id,
68
+ "snow.experiment.run.id": self.run_id,
69
+ "snow.experiment.stream": self.stream,
70
+ },
71
+ }
72
+ json_data = json.dumps(log_message)
73
+ self.file.write(json_data + "\n")
74
+ return len(data) # Return length of input, not JSON output
75
+
76
+ def writelines(self, lines: Iterable[str]) -> None:
77
+ for line in lines:
78
+ self.write(line)
79
+
80
+ def __enter__(self) -> "ExperimentLogger":
81
+ return self
82
+
83
+ def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
84
+ self.close()
85
+
86
+ def __iter__(self) -> Iterator[str]:
87
+ raise io.UnsupportedOperation("__iter__")
88
+
89
+ def __next__(self) -> str:
90
+ raise io.UnsupportedOperation("__next__")
@@ -0,0 +1,13 @@
1
+ import contextlib
2
+ from dataclasses import dataclass
3
+
4
+ from snowflake.ml._internal.utils import tee
5
+ from snowflake.ml.experiment._logging.experiment_logger import ExperimentLogger
6
+
7
+
8
+ @dataclass(frozen=True)
9
+ class ExperimentLoggingContext:
10
+ stdout_logger: ExperimentLogger
11
+ stderr_logger: ExperimentLogger
12
+ stdout_ctx: contextlib.redirect_stdout[tee.OutputTee]
13
+ stderr_ctx: contextlib.redirect_stderr[tee.OutputTee]