snowflake-ml-python 1.29.0__tar.gz → 1.31.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.29.0 → snowflake_ml_python-1.31.0}/CHANGELOG.md +66 -1
  2. {snowflake_ml_python-1.29.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.31.0}/PKG-INFO +67 -2
  3. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/file_utils.py +33 -14
  4. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/lineage/lineage_utils.py +1 -0
  5. snowflake_ml_python-1.31.0/snowflake/ml/_internal/utils/tee.py +85 -0
  6. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_connector.py +1 -1
  7. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +34 -0
  8. snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/__init__.py +6 -0
  9. snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/experiment_logger.py +101 -0
  10. snowflake_ml_python-1.31.0/snowflake/ml/experiment/_logging/experiment_logging_context.py +13 -0
  11. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/experiment_tracking.py +114 -11
  12. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/__init__.py +2 -0
  13. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/aggregation.py +17 -2
  14. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature_store.py +152 -16
  15. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature_view.py +273 -30
  16. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/tile_sql_generator.py +499 -39
  17. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/__init__.py +1 -1
  18. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/constants.py +1 -1
  19. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/payload_utils.py +41 -36
  20. snowflake_ml_python-1.31.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +18 -0
  21. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +6 -1
  22. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/stage_utils.py +2 -2
  23. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/decorators.py +2 -1
  24. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/job.py +33 -12
  25. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/job_definition.py +48 -14
  26. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/manager.py +6 -1
  27. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/__init__.py +2 -0
  28. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +4 -0
  29. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/model_version_impl.py +2 -6
  30. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/model_ops.py +5 -2
  31. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/param_utils.py +144 -6
  32. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/service_ops.py +4 -2
  33. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +3 -0
  34. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
  35. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -17
  36. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +6 -2
  37. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_env/model_env.py +34 -13
  38. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/custom.py +10 -2
  39. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/huggingface.py +9 -27
  40. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +98 -4
  41. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +1 -0
  42. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +3 -1
  43. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +1 -3
  44. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +4 -4
  45. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +22 -11
  46. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/core.py +168 -4
  47. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/pandas_handler.py +23 -3
  48. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/utils.py +39 -3
  49. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/custom_model.py +25 -6
  50. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/models/huggingface.py +105 -250
  51. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/models/huggingface_pipeline.py +2 -2
  52. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/stage_file.py +16 -5
  53. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/version.py +1 -1
  54. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0/snowflake_ml_python.egg-info}/PKG-INFO +67 -2
  55. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/SOURCES.txt +5 -2
  56. snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -117
  57. snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/spec_utils.py +0 -22
  58. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/LICENSE.txt +0 -0
  59. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/README.md +0 -0
  60. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/pyproject.toml +0 -0
  61. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/setup.cfg +0 -0
  62. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/__init__.py +0 -0
  63. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_classify_text.py +0 -0
  64. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_complete.py +0 -0
  65. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  66. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_embed_text_768.py +0 -0
  67. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_extract_answer.py +0 -0
  68. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_finetune.py +0 -0
  69. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_sentiment.py +0 -0
  70. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_sse_client.py +0 -0
  71. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_summarize.py +0 -0
  72. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_translate.py +0 -0
  73. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/cortex/_util.py +0 -0
  74. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/env.py +0 -0
  75. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/env_utils.py +0 -0
  76. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  77. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  78. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  79. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  80. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  81. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  82. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  83. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  84. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  85. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  86. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  87. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  88. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  89. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/init_utils.py +0 -0
  90. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  91. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  92. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  93. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/telemetry.py +0 -0
  94. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/type_utils.py +0 -0
  95. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  96. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  97. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  98. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  99. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  100. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  101. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  102. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  103. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  104. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  105. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/result.py +0 -0
  106. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  107. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  108. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  109. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  110. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  111. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  112. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/_internal/utils/url.py +0 -0
  113. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/__init__.py +0 -0
  114. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  115. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_ingestor.py +0 -0
  116. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/data_source.py +0 -0
  117. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  118. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/data/torch_utils.py +0 -0
  119. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/__init__.py +0 -0
  120. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset.py +0 -0
  121. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  122. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  123. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  124. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/__init__.py +0 -0
  125. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  126. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  127. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  128. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  129. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  130. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  131. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  132. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  133. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  134. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/experiment/utils.py +0 -0
  135. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  136. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/entity.py +0 -0
  137. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  138. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  139. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  140. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  141. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  142. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  143. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  144. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  145. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  146. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  147. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  148. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  149. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  150. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  151. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  152. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  153. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  154. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  155. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  156. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  157. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  158. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  159. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/feature.py +0 -0
  160. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  161. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  162. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  163. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/fileset.py +0 -0
  164. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  165. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/snowfs.py +0 -0
  166. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  167. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  168. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  169. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  170. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  171. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  172. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  173. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  174. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  175. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  176. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  177. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  178. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  179. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  180. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  181. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  182. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  183. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  184. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  185. /snowflake_ml_python-1.29.0/snowflake/ml/jobs/_utils/types.py → /snowflake_ml_python-1.31.0/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  186. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/lineage/__init__.py +0 -0
  187. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  188. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  189. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  190. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  191. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  192. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  193. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  194. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  195. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  196. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  197. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  198. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  199. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  200. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  201. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  202. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  203. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  204. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  205. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  206. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  207. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  208. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  209. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  210. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  211. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  212. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  213. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  214. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  215. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  216. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  217. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  218. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  219. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  220. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  221. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  222. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  223. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  224. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  225. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  226. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  227. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  228. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  229. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  230. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  231. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  232. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  233. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  234. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  235. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  236. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  237. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  238. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  239. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/batch/__init__.py +0 -0
  240. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/code_path.py +0 -0
  241. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/compute_pool.py +0 -0
  242. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/event_handler.py +0 -0
  243. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/inference_engine.py +0 -0
  244. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/model_signature.py +0 -0
  245. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/openai_signatures.py +0 -0
  246. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/target_platform.py +0 -0
  247. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/task.py +0 -0
  248. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/type_hints.py +0 -0
  249. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/model/volatility.py +0 -0
  250. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  251. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  252. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  253. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  254. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  255. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  256. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  257. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  258. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  259. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  260. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  261. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  262. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  263. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  264. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  265. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  266. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  267. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  268. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  269. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  270. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  271. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  272. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  273. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  274. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  275. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  276. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  277. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  278. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  279. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  280. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  281. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  282. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  283. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  284. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  285. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  286. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  287. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  288. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  289. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  290. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  291. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  292. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  293. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  294. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  295. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  296. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  297. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  298. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  299. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  300. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  301. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  302. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  303. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  304. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  305. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  306. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  307. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  308. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  309. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  310. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  311. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  312. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  313. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  314. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  315. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  316. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  317. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  318. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  319. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  320. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  321. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  322. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  323. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  324. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  325. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  326. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  327. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  328. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  329. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  330. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  331. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  332. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/framework/base.py +0 -0
  333. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  334. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  335. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  336. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  337. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  338. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  339. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  340. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  341. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  342. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  343. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  344. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  345. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  346. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  347. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  348. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  349. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  350. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  351. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  352. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  353. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  354. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  355. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  356. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  357. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  358. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  359. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  360. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  361. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  362. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  363. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  364. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  365. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  366. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  367. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  368. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  369. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  370. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  371. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  372. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  373. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  374. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  375. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  376. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  377. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  378. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  379. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  380. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  381. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  382. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  383. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  384. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  385. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  386. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  387. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  388. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  389. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  390. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  391. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  392. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  393. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  394. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  395. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  396. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  397. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  398. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  399. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  400. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  401. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  402. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  403. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  404. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  405. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  406. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  407. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  408. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  409. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  410. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  411. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  412. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  413. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  414. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  415. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  416. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  417. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  418. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  419. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  420. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  421. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  422. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  423. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  424. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  425. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  426. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  427. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  428. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  429. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  430. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  431. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  432. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  433. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  434. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  435. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  436. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  437. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  438. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  439. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  440. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  441. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  442. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  443. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  444. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  445. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  446. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  447. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  448. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  449. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  450. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  451. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  452. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  453. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  454. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  455. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  456. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  457. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  458. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  459. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  460. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  461. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  462. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  463. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  464. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  465. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  466. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  467. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  468. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  469. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  470. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  471. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  472. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  473. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  474. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/monitoring/shap.py +0 -0
  475. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/__init__.py +0 -0
  476. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  477. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  478. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/registry/registry.py +0 -0
  479. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/authentication.py +0 -0
  480. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/connection_params.py +0 -0
  481. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/html_utils.py +0 -0
  482. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/sparse.py +0 -0
  483. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake/ml/utils/sql_client.py +0 -0
  484. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  485. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  486. {snowflake_ml_python-1.29.0 → snowflake_ml_python-1.31.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,67 @@
1
1
  # Release History
2
2
 
3
- ## 1.29.0
3
+ ## 1.31.0
4
+
5
+ ### New Features
6
+
7
+ ### Bug Fixes
8
+
9
+ * Registry: Fixed custom model handler to explicitly persist `PARTITIONED=False` in model metadata for
10
+ `@inference_api` methods. Previously, custom models using `@inference_api` with `TABLE_FUNCTION` type
11
+ were incorrectly reported as partitioned.
12
+ * Registry: Fixed sklearn and SnowML model handlers to explicitly persist `PARTITIONED=False` metadata for
13
+ the `explain` method, preventing it from being incorrectly reported as partitioned at read time.
14
+ * Registry: Fixed inconsistent `infer_signature` for columns containing NaN values. Previously,
15
+ the inferred dtype (`DOUBLE` vs `INT64`) depended on whether NaN rows survived truncation, causing
16
+ downstream validation failures. Now, the original pandas column dtype is respected during `infer_signature`,
17
+ so columns with mix of integer and `np.nan` or `None` are consistently inferred as `DOUBLE` regardless of NaN position.
18
+ * Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
19
+ were silently coerced instead of raising an error. Parameters are now strictly validated against their
20
+ declared types before inference. This may break code that relied on the silent coercion behavior
21
+ (e.g., `model.run(max_tokens="100")` or `model.run(some_int_param=True)`).
22
+ * ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
23
+ repeatedly without job name collisions; the `generate_suffix` argument has been removed.
24
+ * Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
25
+ whitespace.
26
+
27
+ ### Behavior Changes
28
+
29
+ * Registry: Warehouse partitioned model inference no longer includes non-partition input columns (which were always
30
+ NULL) in the output. The output now contains only the model's output columns and the partition column.
31
+
32
+ ### Deprecations
33
+
34
+ ## 1.30.0
35
+
36
+ ### New Features
37
+
38
+ * Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
39
+ persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
40
+ * Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
41
+ Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
42
+ enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
43
+
44
+ ### Bug Fixes
45
+
46
+ * Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
47
+ uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
48
+ * Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
49
+ plain strings as input without needing to specify the signatures in `log_model`.
50
+ The signature can be overridden if the user chooses to.
51
+
52
+ ### Behavior Changes
53
+
54
+ * Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
55
+ that supports plain text (string) as input.
56
+
57
+ ### Deprecations
58
+
59
+ * Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
60
+ models could not run in warehouse and required an External Access Integration (EAI) with egress
61
+ to Hugging Face hosts. Use remote logging or local download instead — these approaches support
62
+ warehouse execution and store model weights at log time, enabling fully air-gapped services.
63
+
64
+ ## 1.29.0 (2026-02-24)
4
65
 
5
66
  ### New Features
6
67
 
@@ -289,6 +350,10 @@ mv = registry.log_model(
289
350
  * Registry: Added support for `image-text-to-text` task type in `huggingface.TransformersPipeline`.
290
351
  Note: Requires vLLM inference engine while creating the service.
291
352
 
353
+ * ML Job: Added support for custom command entrypoints. The `entrypoint` parameter now accepts a
354
+ `list[str]` (e.g., `["arctic_training", "run_causal.yml"]`), which is executed directly as a
355
+ command rather than being treated as a Python script.
356
+
292
357
  ### Bug Fixes
293
358
 
294
359
  ### Behavior Changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.29.0
3
+ Version: 1.31.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:
@@ -416,7 +416,68 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
416
416
 
417
417
  # Release History
418
418
 
419
- ## 1.29.0
419
+ ## 1.31.0
420
+
421
+ ### New Features
422
+
423
+ ### Bug Fixes
424
+
425
+ * Registry: Fixed custom model handler to explicitly persist `PARTITIONED=False` in model metadata for
426
+ `@inference_api` methods. Previously, custom models using `@inference_api` with `TABLE_FUNCTION` type
427
+ were incorrectly reported as partitioned.
428
+ * Registry: Fixed sklearn and SnowML model handlers to explicitly persist `PARTITIONED=False` metadata for
429
+ the `explain` method, preventing it from being incorrectly reported as partitioned at read time.
430
+ * Registry: Fixed inconsistent `infer_signature` for columns containing NaN values. Previously,
431
+ the inferred dtype (`DOUBLE` vs `INT64`) depended on whether NaN rows survived truncation, causing
432
+ downstream validation failures. Now, the original pandas column dtype is respected during `infer_signature`,
433
+ so columns with mix of integer and `np.nan` or `None` are consistently inferred as `DOUBLE` regardless of NaN position.
434
+ * Registry: Fixed a bug where invalid parameter types (e.g., passing a string to an integer parameter)
435
+ were silently coerced instead of raising an error. Parameters are now strictly validated against their
436
+ declared types before inference. This may break code that relied on the silent coercion behavior
437
+ (e.g., `model.run(max_tokens="100")` or `model.run(some_int_param=True)`).
438
+ * ML Job: Fixed explicitly named `MLJobDefinition` objects so they can be overwritten in place and invoked
439
+ repeatedly without job name collisions; the `generate_suffix` argument has been removed.
440
+ * Experiment Tracking live logging (PrPr): Fixed a bug that generated too many lines of log that consist entirely of
441
+ whitespace.
442
+
443
+ ### Behavior Changes
444
+
445
+ * Registry: Warehouse partitioned model inference no longer includes non-partition input columns (which were always
446
+ NULL) in the output. The output now contains only the model's output columns and the partition column.
447
+
448
+ ### Deprecations
449
+
450
+ ## 1.30.0
451
+
452
+ ### New Features
453
+
454
+ * Experiment Tracking live logging (PrPr): In SPCS, call `set_live_logging_status(True)` to automatically capture and
455
+ persist outputs to stdout and stderr while a run is active. The captured logs can be viewed from the Experiments UI.
456
+ * Registry: Support logging MLflow models created via `mlflow.*.save_model()` to the Snowflake Model
457
+ Registry. Previously, only models logged through `mlflow.*.log_model()` were supported. This also
458
+ enables logging custom `mlflow.pyfunc.PythonModel` subclasses saved locally.
459
+
460
+ ### Bug Fixes
461
+
462
+ * Registry: Fixed Prophet model handler to correctly mark the `predict` method as partitioned, ensuring it
463
+ uses a partitioned `TABLE_FUNCTION` when deployed to Snowflake.
464
+ * Registry: Support `text-generation` models without chat template. The model will have signatures to automatically take
465
+ plain strings as input without needing to specify the signatures in `log_model`.
466
+ The signature can be overridden if the user chooses to.
467
+
468
+ ### Behavior Changes
469
+
470
+ * Registry: Huggingface models with task `text-generation` that do not have chat templates will be logged with signature
471
+ that supports plain text (string) as input.
472
+
473
+ ### Deprecations
474
+
475
+ * Registry: Removed support for logging Hugging Face Pipelines in config-only mode. Config-only
476
+ models could not run in warehouse and required an External Access Integration (EAI) with egress
477
+ to Hugging Face hosts. Use remote logging or local download instead — these approaches support
478
+ warehouse execution and store model weights at log time, enabling fully air-gapped services.
479
+
480
+ ## 1.29.0 (2026-02-24)
420
481
 
421
482
  ### New Features
422
483
 
@@ -705,6 +766,10 @@ mv = registry.log_model(
705
766
  * Registry: Added support for `image-text-to-text` task type in `huggingface.TransformersPipeline`.
706
767
  Note: Requires vLLM inference engine while creating the service.
707
768
 
769
+ * ML Job: Added support for custom command entrypoints. The `entrypoint` parameter now accepts a
770
+ `list[str]` (e.g., `["arctic_training", "run_causal.yml"]`), which is executed directly as a
771
+ command rather than being treated as a Python script.
772
+
708
773
  ### Bug Fixes
709
774
 
710
775
  ### Behavior Changes
@@ -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,101 @@
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
+ self._buffer = "" # Buffer to store incomplete lines
24
+
25
+ def _write_line(self, line: str) -> None:
26
+ log_message = {
27
+ "body": line,
28
+ "attributes": {
29
+ "snow.experiment.id": self.exp_id,
30
+ "snow.experiment.run.id": self.run_id,
31
+ "snow.experiment.stream": self.stream,
32
+ },
33
+ }
34
+ json_data = json.dumps(log_message)
35
+ self.file.write(json_data + "\n")
36
+
37
+ def close(self) -> None:
38
+ self.flush()
39
+ self.file.close()
40
+
41
+ def fileno(self) -> int:
42
+ return self.file.fileno()
43
+
44
+ def flush(self) -> None:
45
+ if self._buffer:
46
+ self._write_line(self._buffer)
47
+ self._buffer = ""
48
+ self.file.flush()
49
+
50
+ def isatty(self) -> bool:
51
+ return False
52
+
53
+ def readable(self) -> bool:
54
+ return False
55
+
56
+ def read(self, n: int = -1) -> str:
57
+ raise io.UnsupportedOperation("read")
58
+
59
+ def readline(self, limit: int = -1) -> str:
60
+ raise io.UnsupportedOperation("readline")
61
+
62
+ def readlines(self, hint: int = -1) -> list[str]:
63
+ raise io.UnsupportedOperation("readlines")
64
+
65
+ def seekable(self) -> bool:
66
+ return False
67
+
68
+ def seek(self, offset: int, whence: int = 0) -> int:
69
+ raise io.UnsupportedOperation("seek")
70
+
71
+ def tell(self) -> int:
72
+ raise io.UnsupportedOperation("tell")
73
+
74
+ def truncate(self, size: int | None = None) -> int:
75
+ raise io.UnsupportedOperation("truncate")
76
+
77
+ def writable(self) -> bool:
78
+ return True
79
+
80
+ def write(self, data: str) -> int:
81
+ self._buffer += data
82
+ while "\n" in self._buffer:
83
+ line, self._buffer = self._buffer.split("\n", 1)
84
+ self._write_line(line)
85
+ return len(data)
86
+
87
+ def writelines(self, lines: Iterable[str]) -> None:
88
+ for line in lines:
89
+ self.write(line)
90
+
91
+ def __enter__(self) -> "ExperimentLogger":
92
+ return self
93
+
94
+ def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
95
+ self.close()
96
+
97
+ def __iter__(self) -> Iterator[str]:
98
+ raise io.UnsupportedOperation("__iter__")
99
+
100
+ def __next__(self) -> str:
101
+ 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]