snowflake-ml-python 1.25.0__tar.gz → 1.25.1__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 (481) hide show
  1. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/CHANGELOG.md +6 -0
  2. {snowflake_ml_python-1.25.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.25.1}/PKG-INFO +7 -1
  3. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/mixins.py +1 -26
  4. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/data_utils.py +8 -8
  5. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/dto_schema.py +7 -52
  6. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/protocols.py +7 -124
  7. snowflake_ml_python-1.25.1/snowflake/ml/jobs/_interop/utils.py +144 -0
  8. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/constants.py +0 -4
  9. snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/function_payload_utils.py +43 -0
  10. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/payload_utils.py +40 -6
  11. snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/runtime_env_utils.py +117 -0
  12. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +27 -204
  13. snowflake_ml_python-1.25.1/snowflake/ml/jobs/_utils/spec_utils.py +22 -0
  14. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/decorators.py +22 -17
  15. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/job.py +10 -25
  16. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/job_definition.py +4 -90
  17. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/version.py +1 -1
  18. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1/snowflake_ml_python.egg-info}/PKG-INFO +7 -1
  19. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/SOURCES.txt +2 -1
  20. snowflake_ml_python-1.25.0/snowflake/ml/jobs/_interop/utils.py +0 -203
  21. snowflake_ml_python-1.25.0/snowflake/ml/jobs/_utils/arg_protocol.py +0 -7
  22. snowflake_ml_python-1.25.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -18
  23. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/LICENSE.txt +0 -0
  24. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/README.md +0 -0
  25. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/pyproject.toml +0 -0
  26. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/setup.cfg +0 -0
  27. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/__init__.py +0 -0
  28. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_classify_text.py +0 -0
  29. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_complete.py +0 -0
  30. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_embed_text_1024.py +0 -0
  31. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_embed_text_768.py +0 -0
  32. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_extract_answer.py +0 -0
  33. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_finetune.py +0 -0
  34. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_sentiment.py +0 -0
  35. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_sse_client.py +0 -0
  36. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_summarize.py +0 -0
  37. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_translate.py +0 -0
  38. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/cortex/_util.py +0 -0
  39. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/env.py +0 -0
  40. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/env_utils.py +0 -0
  41. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  42. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  43. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  44. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  45. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  46. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  47. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  48. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  49. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  50. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/file_utils.py +0 -0
  51. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  52. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  53. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  54. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  55. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/init_utils.py +0 -0
  56. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  57. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/migrator_utils.py +0 -0
  58. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  59. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  60. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/telemetry.py +0 -0
  61. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/type_utils.py +0 -0
  62. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  63. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  64. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/formatting.py +0 -0
  65. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/identifier.py +0 -0
  66. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  67. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  68. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  69. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  70. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  71. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/result.py +0 -0
  72. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  73. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  74. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  75. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  76. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  77. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  78. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/_internal/utils/url.py +0 -0
  79. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/__init__.py +0 -0
  80. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  81. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_connector.py +0 -0
  82. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_ingestor.py +0 -0
  83. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/data_source.py +0 -0
  84. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/ingestor_utils.py +0 -0
  85. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/data/torch_utils.py +0 -0
  86. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/__init__.py +0 -0
  87. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset.py +0 -0
  88. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_factory.py +0 -0
  89. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  90. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/dataset/dataset_reader.py +0 -0
  91. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/__init__.py +0 -0
  92. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_client/artifact.py +0 -0
  93. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  94. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  95. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  96. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/run.py +0 -0
  97. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  98. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/_experiment_info.py +0 -0
  99. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/keras.py +0 -0
  100. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  101. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  102. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  103. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/experiment/utils.py +0 -0
  104. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/__init__.py +0 -0
  105. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/access_manager.py +0 -0
  106. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/aggregation.py +0 -0
  107. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/entity.py +0 -0
  108. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  109. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  110. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  111. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  112. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  113. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  114. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  115. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  116. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  117. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  118. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  119. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  120. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  121. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  122. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  123. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  124. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  125. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  126. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  127. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  128. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  129. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  130. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature.py +0 -0
  131. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature_store.py +0 -0
  132. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/feature_view.py +0 -0
  133. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  134. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
  135. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  136. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/fileset.py +0 -0
  137. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/sfcfs.py +0 -0
  138. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/snowfs.py +0 -0
  139. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/fileset/stage_fs.py +0 -0
  140. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/__init__.py +0 -0
  141. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  142. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  143. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  144. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_interop/results.py +0 -0
  145. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  146. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
  147. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  148. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  149. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  150. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  151. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  152. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  153. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  154. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  155. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/_utils/types.py +0 -0
  156. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/jobs/manager.py +0 -0
  157. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/lineage/__init__.py +0 -0
  158. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/lineage/lineage_node.py +0 -0
  159. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/__init__.py +0 -0
  160. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/batch_inference_specs.py +0 -0
  161. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  162. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  163. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/model/model_version_impl.py +0 -0
  164. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  165. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  166. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  167. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/param_utils.py +0 -0
  168. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/ops/service_ops.py +0 -0
  169. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  170. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  171. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +0 -0
  172. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/_base.py +0 -0
  173. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/model.py +0 -0
  174. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  175. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/service.py +0 -0
  176. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/stage.py +0 -0
  177. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_client/sql/tag.py +0 -0
  178. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  179. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  180. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  181. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  182. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  183. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  184. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  185. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  186. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  187. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  188. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  189. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  190. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handler.py +0 -0
  191. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  192. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  193. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  194. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  195. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/huggingface.py +0 -0
  196. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  197. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  198. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  199. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  200. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  201. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  202. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  203. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  204. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  205. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  206. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  207. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  208. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  209. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  210. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  211. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  212. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  213. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  214. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  215. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  216. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  217. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  218. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_packager.py +0 -0
  219. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  220. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  221. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  222. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  223. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  224. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/core.py +0 -0
  225. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  226. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  227. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  228. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  229. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  230. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  231. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/_signatures/utils.py +0 -0
  232. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/code_path.py +0 -0
  233. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/compute_pool.py +0 -0
  234. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/custom_model.py +0 -0
  235. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/event_handler.py +0 -0
  236. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/inference_engine.py +0 -0
  237. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/model_signature.py +0 -0
  238. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/models/huggingface.py +0 -0
  239. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  240. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/openai_signatures.py +0 -0
  241. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/target_platform.py +0 -0
  242. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/task.py +0 -0
  243. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/type_hints.py +0 -0
  244. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/model/volatility.py +0 -0
  245. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  246. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  247. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  248. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  249. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  250. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  251. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  252. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  253. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  254. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  255. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  256. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  257. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  258. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  259. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  260. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  261. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  262. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  263. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/birch.py +0 -0
  264. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  265. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  266. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  267. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  268. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  269. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  270. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/optics.py +0 -0
  271. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  272. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  273. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  274. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/__init__.py +0 -0
  275. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  276. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  277. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  278. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  279. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  280. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  281. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  282. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  283. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  284. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/oas.py +0 -0
  285. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  286. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  287. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  288. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  289. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  290. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  291. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  292. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  293. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  294. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  295. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  296. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  297. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  298. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  299. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  300. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  301. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  302. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  303. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  304. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  305. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  306. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  307. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  308. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  309. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  310. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  311. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  312. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  313. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  314. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  315. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  316. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  317. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  318. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  319. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  320. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  321. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  322. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  323. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  324. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  325. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  326. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/framework/_utils.py +0 -0
  327. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/framework/base.py +0 -0
  328. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  329. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  330. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  331. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/__init__.py +0 -0
  332. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  333. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  334. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  335. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  336. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  337. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  338. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  339. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  340. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  341. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  342. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  343. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  344. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  345. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  346. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  347. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  348. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  349. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  350. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  351. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  352. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  353. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  354. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  355. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  356. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  357. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  358. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  359. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  360. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  361. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  362. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  363. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  364. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  365. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  366. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  367. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  368. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  369. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  370. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  371. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  372. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  373. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  374. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  375. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  376. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  377. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  378. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  379. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  380. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  381. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  382. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  383. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  384. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  385. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/mds.py +0 -0
  386. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  387. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  388. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  389. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/classification.py +0 -0
  390. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  391. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  392. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  393. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  394. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/metrics/regression.py +0 -0
  395. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  396. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  397. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  398. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  399. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  400. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  401. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  402. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  403. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  404. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  405. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  406. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  407. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  408. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  409. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  410. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  411. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  412. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  413. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  414. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  415. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  416. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  417. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  418. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  419. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  420. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  421. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  422. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  423. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  424. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  425. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  426. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  427. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  428. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  429. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  430. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  431. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  432. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  433. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  434. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  435. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  436. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  437. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  438. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  439. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  440. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  441. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  442. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  443. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  444. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  445. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/__init__.py +0 -0
  446. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  447. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  448. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  449. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  450. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/svc.py +0 -0
  451. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/svm/svr.py +0 -0
  452. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/__init__.py +0 -0
  453. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  454. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  455. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  456. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  457. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  458. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  459. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  460. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  461. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  462. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  463. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  464. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  465. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  466. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  467. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  468. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/model_monitor.py +0 -0
  469. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/monitoring/shap.py +0 -0
  470. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/__init__.py +0 -0
  471. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  472. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  473. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/registry/registry.py +0 -0
  474. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/authentication.py +0 -0
  475. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/connection_params.py +0 -0
  476. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/html_utils.py +0 -0
  477. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/sparse.py +0 -0
  478. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake/ml/utils/sql_client.py +0 -0
  479. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  480. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/requires.txt +0 -0
  481. {snowflake_ml_python-1.25.0 → snowflake_ml_python-1.25.1}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ## 1.25.1
4
+
5
+ ### Bug Fixes
6
+
7
+ * ML Job: Reverted changes related to the introduction of ML Job Definitions.
8
+
3
9
  ## 1.25.0
4
10
 
5
11
  ### New Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.25.0
3
+ Version: 1.25.1
4
4
  Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
5
5
  Author-email: "Snowflake, Inc" <support@snowflake.com>
6
6
  License:
@@ -417,6 +417,12 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
417
 
418
418
  # Release History
419
419
 
420
+ ## 1.25.1
421
+
422
+ ### Bug Fixes
423
+
424
+ * ML Job: Reverted changes related to the introduction of ML Job Definitions.
425
+
420
426
  ## 1.25.0
421
427
 
422
428
  ### New Features
@@ -9,7 +9,6 @@ _SESSION_ACCOUNT_KEY = "session$account"
9
9
  _SESSION_ROLE_KEY = "session$role"
10
10
  _SESSION_DATABASE_KEY = "session$database"
11
11
  _SESSION_SCHEMA_KEY = "session$schema"
12
- _SESSION_STATE_ATTR = "_session_state"
13
12
 
14
13
 
15
14
  def _identifiers_match(saved: Optional[str], current: Optional[str]) -> bool:
@@ -62,7 +61,7 @@ class SerializableSessionMixin:
62
61
  else:
63
62
  self.__dict__.update(state)
64
63
 
65
- setattr(self, _SESSION_STATE_ATTR, session_state)
64
+ self._set_session(session_state)
66
65
 
67
66
  def _set_session(self, session_state: _SessionState) -> None:
68
67
 
@@ -87,27 +86,3 @@ class SerializableSessionMixin:
87
86
  ),
88
87
  ),
89
88
  )
90
-
91
- @property
92
- def session(self) -> Optional[snowpark_session.Session]:
93
- if _SESSION_KEY not in self.__dict__:
94
- session_state = getattr(self, _SESSION_STATE_ATTR, None)
95
- if session_state is not None:
96
- self._set_session(session_state)
97
- return self.__dict__.get(_SESSION_KEY)
98
-
99
- @session.setter
100
- def session(self, value: Optional[snowpark_session.Session]) -> None:
101
- self.__dict__[_SESSION_KEY] = value
102
-
103
- # _getattr__ is only called when an attribute is NOT found through normal lookup.
104
- # 1. Data descriptors (like @property with setter) from the class hierarchy
105
- # 2. Instance __dict__ (e.g., self.x = 10)
106
- # 3. Non-data descriptors (methods, `@property without setter) from the class hierarchy
107
- # __getattr__ — only called if steps 1-3 all fail
108
- def __getattr__(self, name: str) -> Any:
109
- if name == _SESSION_KEY:
110
- return self.session
111
- if hasattr(super(), "__getattr__"):
112
- return super().__getattr__(name) # type: ignore[misc]
113
- raise AttributeError(f"{type(self).__name__!s} object has no attribute {name!r}")
@@ -31,7 +31,7 @@ class StageFileWriter(io.IOBase):
31
31
  # Only upload if buffer has content and no exception occurred
32
32
  if write_contents and self._buffer.tell() > 0:
33
33
  self._buffer.seek(0)
34
- self._session.file.put_stream(self._buffer, self._path, auto_compress=False)
34
+ self._session.file.put_stream(self._buffer, self._path)
35
35
  self._buffer.close()
36
36
  self._closed = True
37
37
 
@@ -84,15 +84,15 @@ class DtoCodec(Protocol):
84
84
 
85
85
  @overload
86
86
  @staticmethod
87
- def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.PayloadDTO:
87
+ def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.ResultDTO:
88
88
  ...
89
89
 
90
90
  @staticmethod
91
- def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.PayloadDTO, dict[str, Any]]:
91
+ def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.ResultDTO, dict[str, Any]]:
92
92
  pass
93
93
 
94
94
  @staticmethod
95
- def encode(dto: dto_schema.PayloadDTO) -> bytes:
95
+ def encode(dto: dto_schema.ResultDTO) -> bytes:
96
96
  pass
97
97
 
98
98
 
@@ -104,18 +104,18 @@ class JsonDtoCodec(DtoCodec):
104
104
 
105
105
  @overload
106
106
  @staticmethod
107
- def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.PayloadDTO:
107
+ def decode(stream: io.IOBase, as_dict: Literal[False] = False) -> dto_schema.ResultDTO:
108
108
  ...
109
109
 
110
110
  @staticmethod
111
- def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.PayloadDTO, dict[str, Any]]:
111
+ def decode(stream: io.IOBase, as_dict: bool = False) -> Union[dto_schema.ResultDTO, dict[str, Any]]:
112
112
  data = cast(dict[str, Any], json.load(stream))
113
113
  if as_dict:
114
114
  return data
115
- return dto_schema.ResultDTOAdapter.validate_python(data)
115
+ return dto_schema.ResultDTO.model_validate(data)
116
116
 
117
117
  @staticmethod
118
- def encode(dto: dto_schema.PayloadDTO) -> bytes:
118
+ def encode(dto: dto_schema.ResultDTO) -> bytes:
119
119
  # Temporarily extract the value to avoid accidentally applying model_dump() on it
120
120
  result_value = dto.value
121
121
  dto.value = None # Clear value to avoid serializing it in the model_dump
@@ -1,7 +1,7 @@
1
- from typing import Any, Literal, Optional, Union
1
+ from typing import Any, Optional, Union
2
2
 
3
- from pydantic import BaseModel, Discriminator, Tag, TypeAdapter, model_validator
4
- from typing_extensions import Annotated, NotRequired, TypedDict
3
+ from pydantic import BaseModel, model_validator
4
+ from typing_extensions import NotRequired, TypedDict
5
5
 
6
6
 
7
7
  class BinaryManifest(TypedDict):
@@ -67,47 +67,22 @@ class ExceptionMetadata(ResultMetadata):
67
67
  traceback: str
68
68
 
69
69
 
70
- class PayloadDTO(BaseModel):
71
- """
72
- Base class for serializable payloads.
73
-
74
- Args:
75
- kind: Discriminator field for DTO type dispatch.
76
- value: The payload value (if JSON-serializable).
77
- protocol: The protocol used to serialize the payload (if not JSON-serializable).
78
- """
79
-
80
- kind: Literal["base"] = "base"
81
- value: Optional[Any] = None
82
- protocol: Optional[ProtocolInfo] = None
83
- serialize_error: Optional[str] = None
84
-
85
- @model_validator(mode="before")
86
- @classmethod
87
- def validate_fields(cls, data: Any) -> Any:
88
- """Ensure at least one of value or protocol keys is specified."""
89
- if cls is PayloadDTO and isinstance(data, dict):
90
- required_fields = {"value", "protocol"}
91
- if not any(field in data for field in required_fields):
92
- raise ValueError("At least one of 'value' or 'protocol' must be specified")
93
- return data
94
-
95
-
96
- class ResultDTO(PayloadDTO):
70
+ class ResultDTO(BaseModel):
97
71
  """
98
72
  A JSON representation of an execution result.
99
73
 
100
74
  Args:
101
- kind: Discriminator field for DTO type dispatch.
102
75
  success: Whether the execution was successful.
103
76
  value: The value of the execution or the exception if the execution failed.
104
77
  protocol: The protocol used to serialize the result.
105
78
  metadata: The metadata of the result.
106
79
  """
107
80
 
108
- kind: Literal["result"] = "result" # type: ignore[assignment]
109
81
  success: bool
82
+ value: Optional[Any] = None
83
+ protocol: Optional[ProtocolInfo] = None
110
84
  metadata: Optional[Union[ResultMetadata, ExceptionMetadata]] = None
85
+ serialize_error: Optional[str] = None
111
86
 
112
87
  @model_validator(mode="before")
113
88
  @classmethod
@@ -118,23 +93,3 @@ class ResultDTO(PayloadDTO):
118
93
  if not any(field in data for field in required_fields):
119
94
  raise ValueError("At least one of 'value', 'protocol', or 'metadata' must be specified")
120
95
  return data
121
-
122
-
123
- def _get_dto_kind(data: Any) -> str:
124
- """Extract the 'kind' discriminator from input, defaulting to 'result' for backward compatibility."""
125
- if isinstance(data, dict):
126
- kind = data.get("kind", "result")
127
- else:
128
- kind = getattr(data, "kind", "result")
129
- return str(kind)
130
-
131
-
132
- AnyResultDTO = Annotated[
133
- Union[
134
- Annotated[ResultDTO, Tag("result")],
135
- Annotated[PayloadDTO, Tag("base")],
136
- ],
137
- Discriminator(_get_dto_kind),
138
- ]
139
-
140
- ResultDTOAdapter: TypeAdapter[AnyResultDTO] = TypeAdapter(AnyResultDTO)
@@ -17,8 +17,6 @@ Condition = Union[type, tuple[type, ...], Callable[[Any], bool], None]
17
17
 
18
18
  logger = logging.getLogger(__name__)
19
19
 
20
- SESSION_KEY_PREFIX = "session@"
21
-
22
20
 
23
21
  class SerializationError(TypeError):
24
22
  """Exception raised when a serialization protocol fails."""
@@ -138,10 +136,9 @@ class CloudPickleProtocol(SerializationProtocol):
138
136
 
139
137
  def save(self, obj: Any, dest_dir: str, session: Optional[snowpark.Session] = None) -> ProtocolInfo:
140
138
  """Save the object to the destination directory."""
141
- replaced_obj = self._pack_obj(obj)
142
139
  result_path = posixpath.join(dest_dir, self.DEFAULT_PATH)
143
140
  with data_utils.open_stream(result_path, "wb", session=session) as f:
144
- self._backend.dump(replaced_obj, f)
141
+ self._backend.dump(obj, f)
145
142
  manifest: BinaryManifest = {"path": result_path}
146
143
  return self.protocol_info.with_manifest(manifest)
147
144
 
@@ -160,15 +157,12 @@ class CloudPickleProtocol(SerializationProtocol):
160
157
  payload_manifest = cast(BinaryManifest, payload_info.manifest)
161
158
  try:
162
159
  if payload_bytes := payload_manifest.get("bytes"):
163
- result = self._backend.loads(payload_bytes)
164
- elif payload_b64 := payload_manifest.get("base64"):
165
- result = self._backend.loads(base64.b64decode(payload_b64))
166
- else:
167
- result_path = path_transform(payload_manifest["path"]) if path_transform else payload_manifest["path"]
168
- with data_utils.open_stream(result_path, "rb", session=session) as f:
169
- result = self._backend.load(f)
170
-
171
- return self._unpack_obj(result, session=session)
160
+ return self._backend.loads(payload_bytes)
161
+ if payload_b64 := payload_manifest.get("base64"):
162
+ return self._backend.loads(base64.b64decode(payload_b64))
163
+ result_path = path_transform(payload_manifest["path"]) if path_transform else payload_manifest["path"]
164
+ with data_utils.open_stream(result_path, "rb", session=session) as f:
165
+ return self._backend.load(f)
172
166
  except (
173
167
  pickle.UnpicklingError,
174
168
  TypeError,
@@ -179,117 +173,6 @@ class CloudPickleProtocol(SerializationProtocol):
179
173
  raise error from pickle_error
180
174
  raise
181
175
 
182
- def _pack_obj(self, obj: Any) -> Any:
183
- """Pack objects into JSON-safe dicts using reserved marker keys.
184
-
185
- Markers:
186
- - "type@": container type for list/tuple (list or tuple)
187
- - "#<i>": positional element for list/tuple at index i
188
- - "session@": placeholder for snowpark.Session values
189
- - "session@#<i>" for list/tuple entries
190
- - "session@<key>" for dict entries
191
- - {"session@": None} for a bare Session object
192
-
193
- Example:
194
- obj = {"x": [1, session], "s": session}
195
- packed = {
196
- "x": {"type@": list, "#0": 1, "session@#1": None},
197
- "session@s": None,
198
- }
199
- _unpack_obj(packed, session) == obj
200
-
201
- Args:
202
- obj: Object to pack into JSON-safe marker dictionaries.
203
-
204
- Returns:
205
- Packed representation with markers for session references.
206
- """
207
- arguments: dict[str, Any] = {}
208
- if isinstance(obj, tuple) or isinstance(obj, list):
209
- arguments = {"type@": type(obj)}
210
- for i, arg in enumerate(obj):
211
- if isinstance(arg, snowpark.Session):
212
- arguments[f"{SESSION_KEY_PREFIX}#{i}"] = None
213
- else:
214
- arguments[f"#{i}"] = self._pack_obj(arg)
215
- return arguments
216
- elif isinstance(obj, dict):
217
- for k, v in obj.items():
218
- if isinstance(v, snowpark.Session):
219
- arguments[f"{SESSION_KEY_PREFIX}{k}"] = None
220
- else:
221
- arguments[k] = self._pack_obj(v)
222
- return arguments
223
- elif isinstance(obj, snowpark.Session):
224
- # Box session into a dict marker so we can distinguish it from other plain objects.
225
- arguments[f"{SESSION_KEY_PREFIX}"] = None
226
- return arguments
227
- else:
228
- return obj
229
-
230
- def _unpack_obj(self, obj: Any, session: Optional[snowpark.Session] = None) -> Any:
231
- """Unpack dict markers back into containers and Session references.
232
-
233
- Markers:
234
- - "type@": container type for list/tuple (list or tuple)
235
- - "#<i>": positional element for list/tuple at index i
236
- - "session@": placeholder for snowpark.Session values
237
- - "session@#<i>" for list/tuple entries
238
- - "session@<key>" for dict entries
239
- - {"session@": None} for a bare Session object
240
-
241
- Example:
242
- packed = {
243
- "x": {"type@": list, "#0": 1, "session@#1": None},
244
- "session@s": None,
245
- }
246
- obj = _unpack_obj(packed, session)
247
- # obj == {"x": [1, session], "s": session}
248
-
249
- Args:
250
- obj: Packed object with marker dictionaries.
251
- session: Session to inject for session markers.
252
-
253
- Returns:
254
- Unpacked object with session references restored.
255
- """
256
- if not isinstance(obj, dict):
257
- return obj
258
- elif len(obj) == 1 and SESSION_KEY_PREFIX in obj:
259
- return session
260
- else:
261
- type = obj.get("type@", None)
262
- # If type is None, we are unpacking a dict
263
- if type is None:
264
- result_dict = {}
265
- for k, v in obj.items():
266
- if k.startswith(SESSION_KEY_PREFIX):
267
- result_key = k[len(SESSION_KEY_PREFIX) :]
268
- result_dict[result_key] = session
269
- else:
270
- result_dict[k] = self._unpack_obj(v, session)
271
- return result_dict
272
- # If type is not None, we are unpacking a tuple or list
273
- else:
274
- indexes = []
275
- for k, _ in obj.items():
276
- if "#" in k:
277
- indexes.append(int(k.split("#")[-1]))
278
-
279
- if not indexes:
280
- return tuple() if type is tuple else []
281
- result_list: list[Any] = [None] * (max(indexes) + 1)
282
-
283
- for k, v in obj.items():
284
- if k == "type@":
285
- continue
286
- idx = int(k.split("#")[-1])
287
- if k.startswith(SESSION_KEY_PREFIX):
288
- result_list[idx] = session
289
- else:
290
- result_list[idx] = self._unpack_obj(v, session)
291
- return tuple(result_list) if type is tuple else result_list
292
-
293
176
 
294
177
  class ArrowTableProtocol(SerializationProtocol):
295
178
  """
@@ -0,0 +1,144 @@
1
+ import logging
2
+ import os
3
+ import traceback
4
+ from pathlib import PurePath
5
+ from typing import Any, Callable, Optional
6
+
7
+ import pydantic
8
+
9
+ from snowflake import snowpark
10
+ from snowflake.ml.jobs._interop import data_utils, exception_utils, legacy, protocols
11
+ from snowflake.ml.jobs._interop.dto_schema import (
12
+ ExceptionMetadata,
13
+ ResultDTO,
14
+ ResultMetadata,
15
+ )
16
+ from snowflake.ml.jobs._interop.results import ExecutionResult, LoadedExecutionResult
17
+ from snowflake.snowpark import exceptions as sp_exceptions
18
+
19
+ DEFAULT_CODEC = data_utils.JsonDtoCodec
20
+ DEFAULT_PROTOCOL = protocols.AutoProtocol()
21
+ DEFAULT_PROTOCOL.try_register_protocol(protocols.CloudPickleProtocol)
22
+ DEFAULT_PROTOCOL.try_register_protocol(protocols.ArrowTableProtocol)
23
+ DEFAULT_PROTOCOL.try_register_protocol(protocols.PandasDataFrameProtocol)
24
+ DEFAULT_PROTOCOL.try_register_protocol(protocols.NumpyArrayProtocol)
25
+
26
+
27
+ logger = logging.getLogger(__name__)
28
+
29
+
30
+ def save_result(result: ExecutionResult, path: str, session: Optional[snowpark.Session] = None) -> None:
31
+ """
32
+ Save the result to a file.
33
+ """
34
+ result_dto = ResultDTO(
35
+ success=result.success,
36
+ value=result.value,
37
+ )
38
+
39
+ try:
40
+ # Try to encode result directly
41
+ payload = DEFAULT_CODEC.encode(result_dto)
42
+ except TypeError:
43
+ result_dto.value = None # Remove raw value to avoid serialization error
44
+ result_dto.metadata = _get_metadata(result.value) # Add metadata for client fallback on protocol mismatch
45
+ try:
46
+ path_dir = PurePath(path).parent.as_posix()
47
+ protocol_info = DEFAULT_PROTOCOL.save(result.value, path_dir, session=session)
48
+ result_dto.protocol = protocol_info
49
+
50
+ except Exception as e:
51
+ logger.warning(f"Error dumping result value: {repr(e)}")
52
+ result_dto.serialize_error = repr(e)
53
+
54
+ # Encode the modified result DTO
55
+ payload = DEFAULT_CODEC.encode(result_dto)
56
+
57
+ with data_utils.open_stream(path, "wb", session=session) as stream:
58
+ stream.write(payload)
59
+
60
+
61
+ def load_result(
62
+ path: str, session: Optional[snowpark.Session] = None, path_transform: Optional[Callable[[str], str]] = None
63
+ ) -> ExecutionResult:
64
+ """Load the result from a file on a Snowflake stage."""
65
+ try:
66
+ with data_utils.open_stream(path, "r", session=session) as stream:
67
+ # Load the DTO as a dict for easy fallback to legacy loading if necessary
68
+ dto_dict = DEFAULT_CODEC.decode(stream, as_dict=True)
69
+ except UnicodeDecodeError:
70
+ # Path may be a legacy result file (cloudpickle)
71
+ # TODO: Re-use the stream
72
+ assert session is not None
73
+ return legacy.load_legacy_result(session, path)
74
+
75
+ try:
76
+ dto = ResultDTO.model_validate(dto_dict)
77
+ except pydantic.ValidationError as e:
78
+ if "success" in dto_dict:
79
+ assert session is not None
80
+ if path.endswith(".json"):
81
+ path = os.path.splitext(path)[0] + ".pkl"
82
+ return legacy.load_legacy_result(session, path, result_json=dto_dict)
83
+ raise ValueError("Invalid result schema") from e
84
+
85
+ # Try loading data from file using the protocol info
86
+ result_value = None
87
+ data_load_error = None
88
+ if dto.protocol is not None:
89
+ try:
90
+ logger.debug(f"Loading result value with protocol {dto.protocol}")
91
+ result_value = DEFAULT_PROTOCOL.load(dto.protocol, session=session, path_transform=path_transform)
92
+ except sp_exceptions.SnowparkSQLException:
93
+ raise # Data retrieval errors should be bubbled up
94
+ except Exception as e:
95
+ logger.debug(f"Error loading result value with protocol {dto.protocol}: {repr(e)}")
96
+ data_load_error = e
97
+
98
+ # Wrap serialize_error in a TypeError
99
+ if dto.serialize_error:
100
+ serialize_error = TypeError("Original result serialization failed with error: " + dto.serialize_error)
101
+ if data_load_error:
102
+ data_load_error.__context__ = serialize_error
103
+ else:
104
+ data_load_error = serialize_error
105
+
106
+ # Prepare to assemble the final result
107
+ result_value = result_value if result_value is not None else dto.value
108
+ if not dto.success and result_value is None:
109
+ # Try to reconstruct exception from metadata if available
110
+ if isinstance(dto.metadata, ExceptionMetadata):
111
+ logger.debug(f"Reconstructing exception from metadata {dto.metadata}")
112
+ result_value = exception_utils.build_exception(
113
+ type_str=dto.metadata.type,
114
+ message=dto.metadata.message,
115
+ traceback=dto.metadata.traceback,
116
+ original_repr=dto.metadata.repr,
117
+ )
118
+
119
+ # Generate a generic error if we still don't have a value,
120
+ # attaching the data load error if any
121
+ if result_value is None:
122
+ result_value = exception_utils.RemoteError("Unknown remote error")
123
+ result_value.__cause__ = data_load_error
124
+
125
+ return LoadedExecutionResult(
126
+ success=dto.success,
127
+ value=result_value,
128
+ load_error=data_load_error,
129
+ )
130
+
131
+
132
+ def _get_metadata(value: Any) -> ResultMetadata:
133
+ type_name = f"{type(value).__module__}.{type(value).__name__}"
134
+ if isinstance(value, BaseException):
135
+ return ExceptionMetadata(
136
+ type=type_name,
137
+ repr=repr(value),
138
+ message=str(value),
139
+ traceback="".join(traceback.format_tb(value.__traceback__)),
140
+ )
141
+ return ResultMetadata(
142
+ type=type_name,
143
+ repr=repr(value),
144
+ )
@@ -5,7 +5,6 @@ from snowflake.ml.jobs._utils.types import ComputeResources
5
5
  DEFAULT_CONTAINER_NAME = "main"
6
6
  MEMORY_VOLUME_NAME = "dshm"
7
7
  STAGE_VOLUME_NAME = "stage-volume"
8
- RESULT_VOLUME_NAME = "result-volume"
9
8
  DEFAULT_PYTHON_VERSION = "3.10"
10
9
 
11
10
  # Environment variables
@@ -110,6 +109,3 @@ CLOUD_INSTANCE_FAMILIES = {
110
109
  SnowflakeCloudType.AZURE: AZURE_INSTANCE_FAMILIES,
111
110
  SnowflakeCloudType.GCP: GCP_INSTANCE_FAMILIES,
112
111
  }
113
-
114
- # Magic attributes
115
- IS_MLJOB_REMOTE_ATTR = "_is_mljob_remote_callable"
@@ -0,0 +1,43 @@
1
+ import inspect
2
+ from typing import Any, Callable, Optional
3
+
4
+ from snowflake import snowpark
5
+ from snowflake.snowpark import context as sp_context
6
+
7
+
8
+ class FunctionPayload:
9
+ def __init__(
10
+ self,
11
+ func: Callable[..., Any],
12
+ session: Optional[snowpark.Session] = None,
13
+ session_argument: str = "",
14
+ *args: Any,
15
+ **kwargs: Any
16
+ ) -> None:
17
+ self.function = func
18
+ self.args = args
19
+ self.kwargs = kwargs
20
+ self._session = session
21
+ self._session_argument = session_argument
22
+
23
+ @property
24
+ def session(self) -> Optional[snowpark.Session]:
25
+ return self._session
26
+
27
+ def __getstate__(self) -> dict[str, Any]:
28
+ """Customize pickling to exclude session."""
29
+ state = self.__dict__.copy()
30
+ state["_session"] = None
31
+ return state
32
+
33
+ def __setstate__(self, state: dict[str, Any]) -> None:
34
+ """Restore session from context during unpickling."""
35
+ self.__dict__.update(state)
36
+ self._session = sp_context.get_active_session()
37
+
38
+ def __call__(self) -> Any:
39
+ sig = inspect.signature(self.function)
40
+ bound = sig.bind_partial(*self.args, **self.kwargs)
41
+ bound.arguments[self._session_argument] = self._session
42
+
43
+ return self.function(*bound.args, **bound.kwargs)
@@ -17,12 +17,20 @@ import cloudpickle as cp
17
17
  from packaging import version
18
18
 
19
19
  from snowflake import snowpark
20
- from snowflake.ml.jobs._utils import constants, query_helper, stage_utils, types
20
+ from snowflake.ml.jobs._utils import (
21
+ constants,
22
+ function_payload_utils,
23
+ query_helper,
24
+ stage_utils,
25
+ types,
26
+ )
21
27
  from snowflake.snowpark import exceptions as sp_exceptions
22
28
  from snowflake.snowpark._internal import code_generation
23
29
  from snowflake.snowpark._internal.utils import zip_file_or_directory_to_stream
24
30
 
25
31
  logger = logging.getLogger(__name__)
32
+
33
+ cp.register_pickle_by_value(function_payload_utils)
26
34
  ImportType = Union[str, Path, ModuleType]
27
35
 
28
36
  _SUPPORTED_ARG_TYPES = {str, int, float}
@@ -553,6 +561,7 @@ class JobPayload:
553
561
  env_vars = {
554
562
  constants.STAGE_MOUNT_PATH_ENV_VAR: constants.STAGE_VOLUME_MOUNT_PATH,
555
563
  constants.PAYLOAD_DIR_ENV_VAR: constants.APP_STAGE_SUBPATH,
564
+ constants.RESULT_PATH_ENV_VAR: constants.RESULT_PATH_DEFAULT_VALUE,
556
565
  }
557
566
 
558
567
  return types.UploadedPayload(
@@ -682,9 +691,14 @@ def _generate_param_handler_code(signature: inspect.Signature, output_name: str
682
691
  return param_code
683
692
 
684
693
 
685
- def generate_python_code(function: Callable[..., Any], source_code_display: bool = False) -> str:
694
+ def generate_python_code(payload: Callable[..., Any], source_code_display: bool = False) -> str:
686
695
  """Generate an entrypoint script from a Python function."""
687
696
 
697
+ if isinstance(payload, function_payload_utils.FunctionPayload):
698
+ function = payload.function
699
+ else:
700
+ function = payload
701
+
688
702
  signature = inspect.signature(function)
689
703
  if any(
690
704
  p.kind in {inspect.Parameter.VAR_POSITIONAL, inspect.Parameter.VAR_KEYWORD}
@@ -697,7 +711,7 @@ def generate_python_code(function: Callable[..., Any], source_code_display: bool
697
711
  source_code_comment = _generate_source_code_comment(function) if source_code_display else ""
698
712
 
699
713
  arg_dict_name = "kwargs"
700
- if getattr(function, constants.IS_MLJOB_REMOTE_ATTR, None):
714
+ if isinstance(payload, function_payload_utils.FunctionPayload):
701
715
  param_code = f"{arg_dict_name} = {{}}"
702
716
  else:
703
717
  param_code = _generate_param_handler_code(signature, arg_dict_name)
@@ -707,7 +721,7 @@ import pickle
707
721
 
708
722
  try:
709
723
  {textwrap.indent(source_code_comment, ' ')}
710
- {_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(function).hex()}'))
724
+ {_ENTRYPOINT_FUNC_NAME} = pickle.loads(bytes.fromhex('{_serialize_callable(payload).hex()}'))
711
725
  except (TypeError, pickle.PickleError):
712
726
  if sys.version_info.major != {sys.version_info.major} or sys.version_info.minor != {sys.version_info.minor}:
713
727
  raise RuntimeError(
@@ -733,6 +747,26 @@ if __name__ == '__main__':
733
747
  """
734
748
 
735
749
 
750
+ def create_function_payload(
751
+ func: Callable[..., Any], *args: Any, **kwargs: Any
752
+ ) -> function_payload_utils.FunctionPayload:
753
+ signature = inspect.signature(func)
754
+ bound = signature.bind(*args, **kwargs)
755
+ bound.apply_defaults()
756
+ session_argument = ""
757
+ session = None
758
+ for name, val in list(bound.arguments.items()):
759
+ if isinstance(val, snowpark.Session):
760
+ if session:
761
+ raise TypeError(f"Expected only one Session-type argument, but got both {session_argument} and {name}.")
762
+ session = val
763
+ session_argument = name
764
+ del bound.arguments[name]
765
+ payload = function_payload_utils.FunctionPayload(func, session, session_argument, *bound.args, **bound.kwargs)
766
+
767
+ return payload
768
+
769
+
736
770
  def get_payload_name(source: Union[str, Callable[..., Any]], entrypoint: Optional[Union[str, list[str]]] = None) -> str:
737
771
 
738
772
  if entrypoint and isinstance(entrypoint, (list, tuple)):
@@ -741,7 +775,7 @@ def get_payload_name(source: Union[str, Callable[..., Any]], entrypoint: Optiona
741
775
  return f"{PurePath(entrypoint).stem}"
742
776
  elif source and not callable(source):
743
777
  return f"{PurePath(source).stem}"
744
- elif callable(source):
745
- return f"{source.__name__}"
778
+ elif isinstance(source, function_payload_utils.FunctionPayload):
779
+ return f"{source.function.__name__}"
746
780
  else:
747
781
  return f"{JOB_ID_PREFIX}{str(uuid4()).replace('-', '_').upper()}"