snowflake-ml-python 1.10.0__tar.gz → 1.11.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 (450) hide show
  1. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/CHANGELOG.md +22 -3
  2. {snowflake_ml_python-1.10.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.11.0}/PKG-INFO +23 -4
  3. snowflake_ml_python-1.11.0/snowflake/ml/experiment/callback/keras.py +63 -0
  4. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/callback/lightgbm.py +5 -1
  5. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/callback/xgboost.py +5 -1
  6. snowflake_ml_python-1.11.0/snowflake/ml/jobs/_utils/__init__.py +0 -0
  7. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/constants.py +4 -1
  8. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/payload_utils.py +42 -14
  9. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/query_helper.py +5 -1
  10. snowflake_ml_python-1.11.0/snowflake/ml/jobs/_utils/runtime_env_utils.py +63 -0
  11. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +2 -2
  12. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +3 -3
  13. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/spec_utils.py +41 -8
  14. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/stage_utils.py +22 -9
  15. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/types.py +5 -7
  16. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/job.py +1 -1
  17. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/manager.py +1 -13
  18. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/model/model_version_impl.py +166 -10
  19. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/ops/service_ops.py +63 -28
  20. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +103 -27
  21. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +11 -5
  22. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_composer.py +1 -70
  23. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +2 -43
  24. snowflake_ml_python-1.11.0/snowflake/ml/model/inference_engine.py +5 -0
  25. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/models/huggingface_pipeline.py +4 -3
  26. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/registry/_manager/model_manager.py +7 -35
  27. snowflake_ml_python-1.11.0/snowflake/ml/registry/_manager/model_parameter_reconciler.py +294 -0
  28. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/version.py +1 -1
  29. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0/snowflake_ml_python.egg-info}/PKG-INFO +23 -4
  30. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake_ml_python.egg-info/SOURCES.txt +4 -0
  31. snowflake_ml_python-1.10.0/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -105
  32. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/LICENSE.txt +0 -0
  33. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/README.md +0 -0
  34. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/pyproject.toml +0 -0
  35. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/setup.cfg +0 -0
  36. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/__init__.py +0 -0
  37. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_classify_text.py +0 -0
  38. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_complete.py +0 -0
  39. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  40. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_embed_text_768.py +0 -0
  41. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_extract_answer.py +0 -0
  42. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_finetune.py +0 -0
  43. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_sentiment.py +0 -0
  44. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_sse_client.py +0 -0
  45. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_summarize.py +0 -0
  46. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_translate.py +0 -0
  47. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/cortex/_util.py +0 -0
  48. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/env.py +0 -0
  49. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/env_utils.py +0 -0
  50. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  51. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  52. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  53. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  54. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  55. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  56. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  57. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  58. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  59. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/file_utils.py +0 -0
  60. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  61. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  62. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  63. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  64. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/init_utils.py +0 -0
  65. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  66. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  67. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  68. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  69. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/telemetry.py +0 -0
  70. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/type_utils.py +0 -0
  71. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  72. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  73. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  74. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  75. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  76. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  77. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  78. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  79. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  80. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  81. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/result.py +0 -0
  82. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  83. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  84. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  85. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  86. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  87. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  88. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/__init__.py +0 -0
  89. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  90. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/data_connector.py +0 -0
  91. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/data_ingestor.py +0 -0
  92. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/data_source.py +0 -0
  93. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  94. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/data/torch_utils.py +0 -0
  95. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/dataset/__init__.py +0 -0
  96. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/dataset/dataset.py +0 -0
  97. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  98. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  99. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  100. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/__init__.py +0 -0
  101. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  102. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  103. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  104. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  105. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  106. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  107. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  108. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/experiment/utils.py +0 -0
  109. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/__init__.py +0 -0
  110. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  111. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/entity.py +0 -0
  112. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  113. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  114. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  115. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  116. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  117. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  118. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  119. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  120. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  121. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  122. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  123. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  124. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  125. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  126. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  127. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  128. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  129. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  130. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  131. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  132. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  133. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  134. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/feature_store.py +0 -0
  135. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  136. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  137. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/fileset/fileset.py +0 -0
  138. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  139. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/fileset/snowfs.py +0 -0
  140. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  141. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/__init__.py +0 -0
  142. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
  143. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
  144. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  145. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  146. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  147. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/jobs/decorators.py +0 -0
  148. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/lineage/__init__.py +0 -0
  149. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  150. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/__init__.py +0 -0
  151. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  152. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  153. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  154. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  155. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  156. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  157. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  158. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  159. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  160. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  161. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  162. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  163. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  164. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  165. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  166. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  167. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  168. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  169. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  170. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  171. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  172. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  173. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  174. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +0 -0
  175. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  176. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  177. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  178. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  179. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  180. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  181. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  182. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  183. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  184. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  185. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  186. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  187. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  188. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  189. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  190. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  191. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  192. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  193. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  194. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  195. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  196. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  197. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  198. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  199. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  200. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  201. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  202. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/core.py +0 -0
  203. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  204. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  205. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  206. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  207. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  208. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  209. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  210. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/custom_model.py +0 -0
  211. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/event_handler.py +0 -0
  212. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/model_signature.py +0 -0
  213. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/target_platform.py +0 -0
  214. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/task.py +0 -0
  215. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/model/type_hints.py +0 -0
  216. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  217. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  218. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  219. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  220. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  221. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  222. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  223. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  224. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  225. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  226. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  227. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  228. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  229. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  230. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  231. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  232. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  233. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  234. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  235. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  236. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  237. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  238. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  239. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  240. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  241. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  242. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  243. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  244. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  245. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  246. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  247. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  248. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  249. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  250. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  251. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  252. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  253. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  254. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  255. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  256. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  257. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  258. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  259. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  260. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  261. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  262. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  263. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  264. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  265. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  266. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  267. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  268. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  269. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  270. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  271. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  272. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  273. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  274. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  275. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  276. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  277. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  278. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  279. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  280. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  281. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  282. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  283. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  284. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  285. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  286. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  287. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  288. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  289. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  290. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  291. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  292. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  293. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  294. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  295. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  296. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  297. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  298. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/framework/base.py +0 -0
  299. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  300. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  301. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  302. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  303. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  304. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  305. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  306. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  307. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  308. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  309. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  310. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  311. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  312. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  313. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  314. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  315. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  316. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  317. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  318. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  319. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  320. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  321. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  322. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  323. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  324. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  325. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  326. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  327. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  328. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  329. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  330. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  331. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  332. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  333. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  334. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  335. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  336. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  337. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  338. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  339. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  340. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  341. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  342. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  343. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  344. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  345. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  346. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  347. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  348. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  349. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  350. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  351. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  352. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  353. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  354. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  355. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  356. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  357. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  358. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  359. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  360. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  361. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  362. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  363. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  364. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  365. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  366. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  367. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  368. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  369. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  370. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  371. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  372. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  373. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  374. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  375. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  376. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  377. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  378. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  379. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  380. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  381. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  382. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  383. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  384. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  385. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  386. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  387. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  388. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  389. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  390. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  391. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  392. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  393. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  394. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  395. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  396. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  397. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  398. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  399. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  400. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  401. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  402. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  403. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  404. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  405. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  406. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  407. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  408. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  409. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  410. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  411. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  412. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  413. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  414. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  415. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  416. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  417. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  418. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  419. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  420. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  421. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  422. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  423. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  424. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  425. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  426. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  427. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  428. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  429. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  430. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  431. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  432. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  433. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  434. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  435. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  436. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  437. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  438. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  439. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  440. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/monitoring/shap.py +0 -0
  441. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/registry/__init__.py +0 -0
  442. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/registry/registry.py +0 -0
  443. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/utils/authentication.py +0 -0
  444. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/utils/connection_params.py +0 -0
  445. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/utils/html_utils.py +0 -0
  446. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/utils/sparse.py +0 -0
  447. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake/ml/utils/sql_client.py +0 -0
  448. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  449. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  450. {snowflake_ml_python-1.10.0 → snowflake_ml_python-1.11.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,11 +1,31 @@
1
1
  # Release History
2
2
 
3
- ## 1.10.0
3
+ ## 1.11.0
4
4
 
5
5
  ### Bug Fixes
6
6
 
7
+ * ML Job: Fix `Error: Unable to retrieve head IP address` if not all instances start within the timeout.
8
+ * ML Job: Fix `TypeError: SnowflakeCursor.execute() got an unexpected keyword argument '_force_qmark_paramstyle'`
9
+ when running inside Stored Procedures.
10
+
11
+ ### Behavior Changes
12
+
13
+ ### New Features
14
+
15
+ * `ModelVersion.create_service()`: Made `image_repo` argument optional. By
16
+ default it will use a default image repo, which is
17
+ being rolled out in server version 9.22+.
18
+ * Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training Keras models with
19
+ `snowflake.ml.experiment.callback.keras.SnowflakeKerasCallback`.
20
+
21
+ ## 1.10.0
22
+
7
23
  ### Behavior Changes
8
24
 
25
+ * Experiment Tracking (PrPr): The import paths for the auto-logging callbacks have changed to
26
+ `snowflake.ml.experiment.callback.xgboost.SnowflakeXgboostCallback` and
27
+ `snowflake.ml.experiment.callback.lightgbm.SnowflakeLightgbmCallback`.
28
+
9
29
  ### New Features
10
30
 
11
31
  * Registry: add progress bars for `ModelVersion.create_service` and `ModelVersion.log_model`.
@@ -26,13 +46,13 @@
26
46
 
27
47
  ```python
28
48
  from snowflake.ml.experiment import ExperimentTracking
49
+ from snowflake.ml.experiment.callback import SnowflakeXgboostCallback, SnowflakeLightgbmCallback
29
50
 
30
51
  exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
31
52
 
32
53
  exp.set_experiment("MY_EXPERIMENT")
33
54
 
34
55
  # XGBoost
35
- from snowflake.ml.experiment.callback.xgboost import SnowflakeXgboostCallback
36
56
  callback = SnowflakeXgboostCallback(
37
57
  exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
38
58
  )
@@ -41,7 +61,6 @@ with exp.start_run():
41
61
  model.fit(X, y, eval_set=[(X_test, y_test)])
42
62
 
43
63
  # LightGBM
44
- from snowflake.ml.experiment.callback.lightgbm import SnowflakeLightgbmCallback
45
64
  callback = SnowflakeLightgbmCallback(
46
65
  exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
47
66
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.10.0
3
+ Version: 1.11.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:
@@ -410,12 +410,32 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
410
410
 
411
411
  # Release History
412
412
 
413
- ## 1.10.0
413
+ ## 1.11.0
414
414
 
415
415
  ### Bug Fixes
416
416
 
417
+ * ML Job: Fix `Error: Unable to retrieve head IP address` if not all instances start within the timeout.
418
+ * ML Job: Fix `TypeError: SnowflakeCursor.execute() got an unexpected keyword argument '_force_qmark_paramstyle'`
419
+ when running inside Stored Procedures.
420
+
421
+ ### Behavior Changes
422
+
423
+ ### New Features
424
+
425
+ * `ModelVersion.create_service()`: Made `image_repo` argument optional. By
426
+ default it will use a default image repo, which is
427
+ being rolled out in server version 9.22+.
428
+ * Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training Keras models with
429
+ `snowflake.ml.experiment.callback.keras.SnowflakeKerasCallback`.
430
+
431
+ ## 1.10.0
432
+
417
433
  ### Behavior Changes
418
434
 
435
+ * Experiment Tracking (PrPr): The import paths for the auto-logging callbacks have changed to
436
+ `snowflake.ml.experiment.callback.xgboost.SnowflakeXgboostCallback` and
437
+ `snowflake.ml.experiment.callback.lightgbm.SnowflakeLightgbmCallback`.
438
+
419
439
  ### New Features
420
440
 
421
441
  * Registry: add progress bars for `ModelVersion.create_service` and `ModelVersion.log_model`.
@@ -436,13 +456,13 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
436
456
 
437
457
  ```python
438
458
  from snowflake.ml.experiment import ExperimentTracking
459
+ from snowflake.ml.experiment.callback import SnowflakeXgboostCallback, SnowflakeLightgbmCallback
439
460
 
440
461
  exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
441
462
 
442
463
  exp.set_experiment("MY_EXPERIMENT")
443
464
 
444
465
  # XGBoost
445
- from snowflake.ml.experiment.callback.xgboost import SnowflakeXgboostCallback
446
466
  callback = SnowflakeXgboostCallback(
447
467
  exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
448
468
  )
@@ -451,7 +471,6 @@ with exp.start_run():
451
471
  model.fit(X, y, eval_set=[(X_test, y_test)])
452
472
 
453
473
  # LightGBM
454
- from snowflake.ml.experiment.callback.lightgbm import SnowflakeLightgbmCallback
455
474
  callback = SnowflakeLightgbmCallback(
456
475
  exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
457
476
  )
@@ -0,0 +1,63 @@
1
+ import json
2
+ from typing import TYPE_CHECKING, Any, Optional
3
+ from warnings import warn
4
+
5
+ import keras
6
+
7
+ from snowflake.ml.experiment import utils
8
+
9
+ if TYPE_CHECKING:
10
+ from snowflake.ml.experiment.experiment_tracking import ExperimentTracking
11
+ from snowflake.ml.model.model_signature import ModelSignature
12
+
13
+
14
+ class SnowflakeKerasCallback(keras.callbacks.Callback):
15
+ def __init__(
16
+ self,
17
+ experiment_tracking: "ExperimentTracking",
18
+ log_model: bool = True,
19
+ log_metrics: bool = True,
20
+ log_params: bool = True,
21
+ log_every_n_epochs: int = 1,
22
+ model_name: Optional[str] = None,
23
+ model_signature: Optional["ModelSignature"] = None,
24
+ ) -> None:
25
+ self._experiment_tracking = experiment_tracking
26
+ self.log_model = log_model
27
+ self.log_metrics = log_metrics
28
+ self.log_params = log_params
29
+ if log_every_n_epochs < 1:
30
+ raise ValueError("`log_every_n_epochs` must be positive.")
31
+ self.log_every_n_epochs = log_every_n_epochs
32
+ self.model_name = model_name
33
+ self.model_signature = model_signature
34
+
35
+ def on_train_begin(self, logs: Optional[dict[str, Any]] = None) -> None:
36
+ if self.log_params:
37
+ params = json.loads(self.model.to_json())
38
+ self._experiment_tracking.log_params(utils.flatten_nested_params(params))
39
+
40
+ def on_epoch_end(self, epoch: int, logs: Optional[dict[str, Any]] = None) -> None:
41
+ if self.log_metrics and logs and epoch % self.log_every_n_epochs == 0:
42
+ for key, value in logs.items():
43
+ try:
44
+ value = float(value)
45
+ except Exception:
46
+ pass
47
+ else:
48
+ self._experiment_tracking.log_metric(key=key, value=value, step=epoch)
49
+
50
+ def on_train_end(self, logs: Optional[dict[str, Any]] = None) -> None:
51
+ if self.log_model:
52
+ if not self.model_signature:
53
+ warn(
54
+ "Model will not be logged because model signature is missing. "
55
+ "To autolog the model, please specify `model_signature` when constructing SnowflakeKerasCallback."
56
+ )
57
+ return
58
+ model_name = self.model_name or self._experiment_tracking._get_or_set_experiment().name + "_model"
59
+ self._experiment_tracking.log_model( # type: ignore[call-arg]
60
+ model=self.model,
61
+ model_name=model_name,
62
+ signatures={"predict": self.model_signature},
63
+ )
@@ -15,6 +15,7 @@ class SnowflakeLightgbmCallback(lgb.callback._RecordEvaluationCallback):
15
15
  log_model: bool = True,
16
16
  log_metrics: bool = True,
17
17
  log_params: bool = True,
18
+ log_every_n_epochs: int = 1,
18
19
  model_name: Optional[str] = None,
19
20
  model_signature: Optional["ModelSignature"] = None,
20
21
  ) -> None:
@@ -22,6 +23,9 @@ class SnowflakeLightgbmCallback(lgb.callback._RecordEvaluationCallback):
22
23
  self.log_model = log_model
23
24
  self.log_metrics = log_metrics
24
25
  self.log_params = log_params
26
+ if log_every_n_epochs < 1:
27
+ raise ValueError("`log_every_n_epochs` must be positive.")
28
+ self.log_every_n_epochs = log_every_n_epochs
25
29
  self.model_name = model_name
26
30
  self.model_signature = model_signature
27
31
 
@@ -32,7 +36,7 @@ class SnowflakeLightgbmCallback(lgb.callback._RecordEvaluationCallback):
32
36
  if env.iteration == env.begin_iteration: # Log params only at the first iteration
33
37
  self._experiment_tracking.log_params(env.params)
34
38
 
35
- if self.log_metrics:
39
+ if self.log_metrics and env.iteration % self.log_every_n_epochs == 0:
36
40
  super().__call__(env)
37
41
  for dataset_name, metrics in self.eval_result.items():
38
42
  for metric_name, log in metrics.items():
@@ -18,6 +18,7 @@ class SnowflakeXgboostCallback(xgb.callback.TrainingCallback):
18
18
  log_model: bool = True,
19
19
  log_metrics: bool = True,
20
20
  log_params: bool = True,
21
+ log_every_n_epochs: int = 1,
21
22
  model_name: Optional[str] = None,
22
23
  model_signature: Optional["ModelSignature"] = None,
23
24
  ) -> None:
@@ -25,6 +26,9 @@ class SnowflakeXgboostCallback(xgb.callback.TrainingCallback):
25
26
  self.log_model = log_model
26
27
  self.log_metrics = log_metrics
27
28
  self.log_params = log_params
29
+ if log_every_n_epochs < 1:
30
+ raise ValueError("`log_every_n_epochs` must be positive.")
31
+ self.log_every_n_epochs = log_every_n_epochs
28
32
  self.model_name = model_name
29
33
  self.model_signature = model_signature
30
34
 
@@ -36,7 +40,7 @@ class SnowflakeXgboostCallback(xgb.callback.TrainingCallback):
36
40
  return model
37
41
 
38
42
  def after_iteration(self, model: Any, epoch: int, evals_log: dict[str, dict[str, Any]]) -> bool:
39
- if self.log_metrics:
43
+ if self.log_metrics and epoch % self.log_every_n_epochs == 0:
40
44
  for dataset_name, metrics in evals_log.items():
41
45
  for metric_name, log in metrics.items():
42
46
  metric_key = dataset_name + ":" + metric_name
@@ -28,7 +28,7 @@ OUTPUT_MOUNT_PATH = f"{STAGE_VOLUME_MOUNT_PATH}/{OUTPUT_STAGE_SUBPATH}"
28
28
  DEFAULT_IMAGE_REPO = "/snowflake/images/snowflake_images"
29
29
  DEFAULT_IMAGE_CPU = "st_plat/runtime/x86/runtime_image/snowbooks"
30
30
  DEFAULT_IMAGE_GPU = "st_plat/runtime/x86/generic_gpu/runtime_image/snowbooks"
31
- DEFAULT_IMAGE_TAG = "1.5.0"
31
+ DEFAULT_IMAGE_TAG = "1.6.2"
32
32
  DEFAULT_ENTRYPOINT_PATH = "func.py"
33
33
 
34
34
  # Percent of container memory to allocate for /dev/shm volume
@@ -98,3 +98,6 @@ CLOUD_INSTANCE_FAMILIES = {
98
98
  SnowflakeCloudType.AWS: AWS_INSTANCE_FAMILIES,
99
99
  SnowflakeCloudType.AZURE: AZURE_INSTANCE_FAMILIES,
100
100
  }
101
+
102
+ # runtime version environment variable
103
+ ENABLE_IMAGE_VERSION_ENV_VAR = "MLRS_ENABLE_RUNTIME_VERSIONS"
@@ -1,4 +1,5 @@
1
1
  import functools
2
+ import importlib
2
3
  import inspect
3
4
  import io
4
5
  import itertools
@@ -7,6 +8,7 @@ import logging
7
8
  import pickle
8
9
  import sys
9
10
  import textwrap
11
+ from importlib.abc import Traversable
10
12
  from pathlib import Path, PurePath
11
13
  from typing import Any, Callable, Optional, Union, cast, get_args, get_origin
12
14
 
@@ -262,11 +264,24 @@ def upload_payloads(session: snowpark.Session, stage_path: PurePath, *payload_sp
262
264
  # Manually traverse the directory and upload each file, since Snowflake PUT
263
265
  # can't handle directories. Reduce the number of PUT operations by using
264
266
  # wildcard patterns to batch upload files with the same extension.
265
- for path in {
266
- p.parent.joinpath(f"*{p.suffix}") if p.suffix else p
267
- for p in source_path.resolve().rglob("*")
268
- if p.is_file()
269
- }:
267
+ upload_path_patterns = set()
268
+ for p in source_path.resolve().rglob("*"):
269
+ if p.is_dir():
270
+ continue
271
+ if p.name.startswith("."):
272
+ # Hidden files: use .* pattern for batch upload
273
+ if p.suffix:
274
+ upload_path_patterns.add(p.parent.joinpath(f".*{p.suffix}"))
275
+ else:
276
+ upload_path_patterns.add(p.parent.joinpath(".*"))
277
+ else:
278
+ # Regular files: use * pattern for batch upload
279
+ if p.suffix:
280
+ upload_path_patterns.add(p.parent.joinpath(f"*{p.suffix}"))
281
+ else:
282
+ upload_path_patterns.add(p)
283
+
284
+ for path in upload_path_patterns:
270
285
  session.file.put(
271
286
  str(path),
272
287
  payload_stage_path.joinpath(path.parent.relative_to(source_path)).as_posix(),
@@ -282,6 +297,27 @@ def upload_payloads(session: snowpark.Session, stage_path: PurePath, *payload_sp
282
297
  )
283
298
 
284
299
 
300
+ def upload_system_resources(session: snowpark.Session, stage_path: PurePath) -> None:
301
+ resource_ref = importlib.resources.files(__package__).joinpath("scripts")
302
+
303
+ def upload_dir(ref: Traversable, relative_path: str = "") -> None:
304
+ for item in ref.iterdir():
305
+ current_path = Path(relative_path) / item.name if relative_path else Path(item.name)
306
+ if item.is_dir():
307
+ # Recursively process subdirectories
308
+ upload_dir(item, str(current_path))
309
+ elif item.is_file():
310
+ content = item.read_bytes()
311
+ session.file.put_stream(
312
+ io.BytesIO(content),
313
+ stage_path.joinpath(current_path).as_posix(),
314
+ auto_compress=False,
315
+ overwrite=True,
316
+ )
317
+
318
+ upload_dir(resource_ref)
319
+
320
+
285
321
  def resolve_source(
286
322
  source: Union[types.PayloadPath, Callable[..., Any]]
287
323
  ) -> Union[types.PayloadPath, Callable[..., Any]]:
@@ -497,15 +533,7 @@ class JobPayload:
497
533
  overwrite=False, # FIXME
498
534
  )
499
535
 
500
- scripts_dir = Path(__file__).parent.joinpath("scripts")
501
- for script_file in scripts_dir.glob("*"):
502
- if script_file.is_file():
503
- session.file.put(
504
- script_file.as_posix(),
505
- system_stage_path.as_posix(),
506
- overwrite=True,
507
- auto_compress=False,
508
- )
536
+ upload_system_resources(session, system_stage_path)
509
537
  python_entrypoint: list[Union[str, PurePath]] = [
510
538
  PurePath(f"{constants.SYSTEM_MOUNT_PATH}/mljob_launcher.py"),
511
539
  PurePath(f"{constants.APP_MOUNT_PATH}/{entrypoint.file_path.relative_to(source).as_posix()}"),
@@ -4,6 +4,7 @@ from snowflake import snowpark
4
4
  from snowflake.snowpark import Row
5
5
  from snowflake.snowpark._internal import utils
6
6
  from snowflake.snowpark._internal.analyzer import snowflake_plan
7
+ from snowflake.snowpark._internal.utils import is_in_stored_procedure
7
8
 
8
9
 
9
10
  def result_set_to_rows(session: snowpark.Session, result: dict[str, Any]) -> list[Row]:
@@ -14,7 +15,10 @@ def result_set_to_rows(session: snowpark.Session, result: dict[str, Any]) -> lis
14
15
 
15
16
  @snowflake_plan.SnowflakePlan.Decorator.wrap_exception # type: ignore[misc]
16
17
  def run_query(session: snowpark.Session, query_text: str, params: Optional[Sequence[Any]] = None) -> list[Row]:
17
- result = session._conn.run_query(query=query_text, params=params, _force_qmark_paramstyle=True)
18
+ kwargs: dict[str, Any] = {"query": query_text, "params": params}
19
+ if not is_in_stored_procedure(): # type: ignore[no-untyped-call]
20
+ kwargs["_force_qmark_paramstyle"] = True
21
+ result = session._conn.run_query(**kwargs)
18
22
  if not isinstance(result, dict) or "data" not in result:
19
23
  raise ValueError(f"Unprocessable result: {result}")
20
24
  return result_set_to_rows(session, result)
@@ -0,0 +1,63 @@
1
+ from typing import Any, Optional, Union
2
+
3
+ from packaging.version import Version
4
+ from pydantic import BaseModel, Field, RootModel, field_validator
5
+
6
+
7
+ class SpcsContainerRuntime(BaseModel):
8
+ python_version: Version = Field(alias="pythonVersion")
9
+ hardware_type: str = Field(alias="hardwareType")
10
+ runtime_container_image: str = Field(alias="runtimeContainerImage")
11
+
12
+ @field_validator("python_version", mode="before")
13
+ @classmethod
14
+ def validate_python_version(cls, v: Union[str, Version]) -> Version:
15
+ if isinstance(v, Version):
16
+ return v
17
+ try:
18
+ return Version(v)
19
+ except Exception:
20
+ raise ValueError(f"Invalid Python version format: {v}")
21
+
22
+ class Config:
23
+ frozen = True
24
+ extra = "allow"
25
+ arbitrary_types_allowed = True
26
+
27
+
28
+ class RuntimeEnvironmentEntry(BaseModel):
29
+ spcs_container_runtime: Optional[SpcsContainerRuntime] = Field(alias="spcsContainerRuntime", default=None)
30
+
31
+ class Config:
32
+ extra = "allow"
33
+ frozen = True
34
+
35
+
36
+ class RuntimeEnvironmentsDict(RootModel[dict[str, RuntimeEnvironmentEntry]]):
37
+ @field_validator("root", mode="before")
38
+ @classmethod
39
+ def _filter_to_dict_entries(cls, data: Any) -> dict[str, dict[str, Any]]:
40
+ """
41
+ Pre-validation hook: keep only those items at the root level
42
+ whose values are dicts. Non-dict values will be dropped.
43
+
44
+ Args:
45
+ data: The input data to filter, expected to be a dictionary.
46
+
47
+ Returns:
48
+ A dictionary containing only the key-value pairs where values are dictionaries.
49
+
50
+ Raises:
51
+ ValueError: If input data is not a dictionary.
52
+ """
53
+ # If the entire root is not a dict, raise error immediately
54
+ if not isinstance(data, dict):
55
+ raise ValueError(f"Expected dictionary data, but got {type(data).__name__}: {data}")
56
+
57
+ # Filter out any key whose value is not a dict
58
+ return {key: value for key, value in data.items() if isinstance(value, dict)}
59
+
60
+ def get_spcs_container_runtimes(self) -> list[SpcsContainerRuntime]:
61
+ return [
62
+ entry.spcs_container_runtime for entry in self.root.values() if entry.spcs_container_runtime is not None
63
+ ]
@@ -47,8 +47,8 @@ def get_first_instance(service_name: str) -> Optional[tuple[str, str, str]]:
47
47
  if not result:
48
48
  return None
49
49
 
50
- # Sort by start_time first, then by instance_id
51
- sorted_instances = sorted(result, key=lambda x: (x["start_time"], int(x["instance_id"])))
50
+ # Sort by start_time first, then by instance_id. If start_time is null/empty, it will be sorted to the end.
51
+ sorted_instances = sorted(result, key=lambda x: (not bool(x["start_time"]), x["start_time"], int(x["instance_id"])))
52
52
  head_instance = sorted_instances[0]
53
53
  if not head_instance["instance_id"] or not head_instance["ip_address"]:
54
54
  return None
@@ -173,10 +173,10 @@ def wait_for_instances(
173
173
 
174
174
  start_time = time.time()
175
175
  current_interval = max(min(1, check_interval), 0.1) # Default 1s, minimum 0.1s
176
- logger.debug(
176
+ logger.info(
177
177
  "Waiting for instances to be ready "
178
- "(min_instances={}, target_instances={}, timeout={}s, max_check_interval={}s)".format(
179
- min_instances, target_instances, timeout, check_interval
178
+ "(min_instances={}, target_instances={}, min_wait_time={}s, timeout={}s, max_check_interval={}s)".format(
179
+ min_instances, target_instances, min_wait_time, timeout, check_interval
180
180
  )
181
181
  )
182
182
 
@@ -1,12 +1,14 @@
1
1
  import logging
2
2
  import os
3
+ import sys
3
4
  from math import ceil
4
5
  from pathlib import PurePath
5
- from typing import Any, Optional, Union
6
+ from typing import Any, Literal, Optional, Union
6
7
 
7
8
  from snowflake import snowpark
8
9
  from snowflake.ml._internal.utils import snowflake_env
9
10
  from snowflake.ml.jobs._utils import constants, query_helper, types
11
+ from snowflake.ml.jobs._utils.runtime_env_utils import RuntimeEnvironmentsDict
10
12
 
11
13
 
12
14
  def _get_node_resources(session: snowpark.Session, compute_pool: str) -> types.ComputeResources:
@@ -28,22 +30,53 @@ def _get_node_resources(session: snowpark.Session, compute_pool: str) -> types.C
28
30
  )
29
31
 
30
32
 
33
+ def _get_runtime_image(session: snowpark.Session, target_hardware: Literal["CPU", "GPU"]) -> Optional[str]:
34
+ rows = query_helper.run_query(session, "CALL SYSTEM$NOTEBOOKS_FIND_LABELED_RUNTIMES()")
35
+ if not rows:
36
+ return None
37
+ try:
38
+ runtime_envs = RuntimeEnvironmentsDict.model_validate_json(rows[0][0])
39
+ spcs_container_runtimes = runtime_envs.get_spcs_container_runtimes()
40
+ except Exception as e:
41
+ logging.warning(f"Failed to parse runtime image name from {rows[0][0]}, error: {e}")
42
+ return None
43
+
44
+ selected_runtime = next(
45
+ (
46
+ runtime
47
+ for runtime in spcs_container_runtimes
48
+ if (
49
+ runtime.hardware_type.lower() == target_hardware.lower()
50
+ and runtime.python_version.major == sys.version_info.major
51
+ and runtime.python_version.minor == sys.version_info.minor
52
+ )
53
+ ),
54
+ None,
55
+ )
56
+ return selected_runtime.runtime_container_image if selected_runtime else None
57
+
58
+
31
59
  def _get_image_spec(session: snowpark.Session, compute_pool: str) -> types.ImageSpec:
32
60
  # Retrieve compute pool node resources
33
61
  resources = _get_node_resources(session, compute_pool=compute_pool)
34
62
 
35
63
  # Use MLRuntime image
36
- image_repo = constants.DEFAULT_IMAGE_REPO
37
- image_name = constants.DEFAULT_IMAGE_GPU if resources.gpu > 0 else constants.DEFAULT_IMAGE_CPU
38
- image_tag = _get_runtime_image_tag()
64
+ hardware = "GPU" if resources.gpu > 0 else "CPU"
65
+ container_image = None
66
+ if os.environ.get(constants.ENABLE_IMAGE_VERSION_ENV_VAR, "").lower() == "true":
67
+ container_image = _get_runtime_image(session, hardware) # type: ignore[arg-type]
68
+
69
+ if not container_image:
70
+ image_repo = constants.DEFAULT_IMAGE_REPO
71
+ image_name = constants.DEFAULT_IMAGE_GPU if resources.gpu > 0 else constants.DEFAULT_IMAGE_CPU
72
+ image_tag = _get_runtime_image_tag()
73
+ container_image = f"{image_repo}/{image_name}:{image_tag}"
39
74
 
40
75
  # TODO: Should each instance consume the entire pod?
41
76
  return types.ImageSpec(
42
- repo=image_repo,
43
- image_name=image_name,
44
- image_tag=image_tag,
45
77
  resource_requests=resources,
46
78
  resource_limits=resources,
79
+ container_image=container_image,
47
80
  )
48
81
 
49
82
 
@@ -220,7 +253,7 @@ def generate_service_spec(
220
253
  "containers": [
221
254
  {
222
255
  "name": constants.DEFAULT_CONTAINER_NAME,
223
- "image": image_spec.full_name,
256
+ "image": image_spec.container_image,
224
257
  "command": ["/usr/local/bin/_entrypoint.sh"],
225
258
  "args": [
226
259
  (stage_mount.joinpath(v).as_posix() if isinstance(v, PurePath) else v) for v in payload.entrypoint
@@ -121,15 +121,28 @@ class StagePath:
121
121
  return self._compose_path(self._path)
122
122
 
123
123
  def joinpath(self, *args: Union[str, PathLike[str]]) -> "StagePath":
124
+ """
125
+ Joins the given path arguments to the current path,
126
+ mimicking the behavior of pathlib.Path.joinpath.
127
+ If the argument is a stage path (i.e., an absolute path),
128
+ it overrides the current path and is returned as the final path.
129
+ If the argument is a normal path, it is joined with the current relative path
130
+ using self._path.joinpath(arg).
131
+
132
+ Args:
133
+ *args: Path components to join.
134
+
135
+ Returns:
136
+ A new StagePath with the joined path.
137
+
138
+ Raises:
139
+ NotImplementedError: the argument is a stage path.
140
+ """
124
141
  path = self
125
142
  for arg in args:
126
- path = path._make_child(arg)
143
+ if isinstance(arg, StagePath):
144
+ raise NotImplementedError
145
+ else:
146
+ # the arg might be an absolute path, so we need to remove the leading '/'
147
+ path = StagePath(f"{path.root}/{path._path.joinpath(arg).as_posix().lstrip('/')}")
127
148
  return path
128
-
129
- def _make_child(self, path: Union[str, PathLike[str]]) -> "StagePath":
130
- stage_path = path if isinstance(path, StagePath) else StagePath(os.fspath(path))
131
- if self.root == stage_path.root:
132
- child_path = self._path.joinpath(stage_path._path)
133
- return StagePath(self._compose_path(child_path))
134
- else:
135
- return stage_path
@@ -30,6 +30,10 @@ class PayloadPath(Protocol):
30
30
  def parent(self) -> "PayloadPath":
31
31
  ...
32
32
 
33
+ @property
34
+ def root(self) -> str:
35
+ ...
36
+
33
37
  def exists(self) -> bool:
34
38
  ...
35
39
 
@@ -98,12 +102,6 @@ class ComputeResources:
98
102
 
99
103
  @dataclass(frozen=True)
100
104
  class ImageSpec:
101
- repo: str
102
- image_name: str
103
- image_tag: str
104
105
  resource_requests: ComputeResources
105
106
  resource_limits: ComputeResources
106
-
107
- @property
108
- def full_name(self) -> str:
109
- return f"{self.repo}/{self.image_name}:{self.image_tag}"
107
+ container_image: str
@@ -199,7 +199,7 @@ class MLJob(Generic[T], SerializableSessionMixin):
199
199
  elapsed = time.monotonic() - start_time
200
200
  if elapsed >= timeout >= 0:
201
201
  raise TimeoutError(f"Job {self.name} did not complete within {timeout} seconds")
202
- elif status == "PENDING" and not warning_shown and elapsed >= 2: # Only show warning after 2s
202
+ elif status == "PENDING" and not warning_shown and elapsed >= 5: # Only show warning after 5s
203
203
  pool_info = _get_compute_pool_info(self._session, self._compute_pool)
204
204
  if (pool_info.max_nodes - pool_info.active_nodes) < self.min_instances:
205
205
  logger.warning(
@@ -426,7 +426,6 @@ def _submit_job(
426
426
 
427
427
  Raises:
428
428
  ValueError: If database or schema value(s) are invalid
429
- SnowparkSQLException: If there is an error submitting the job.
430
429
  """
431
430
  session = session or get_active_session()
432
431
 
@@ -504,18 +503,7 @@ def _submit_job(
504
503
  query_text, params = _generate_submission_query(
505
504
  spec, external_access_integrations, query_warehouse, target_instances, session, compute_pool, job_id
506
505
  )
507
- try:
508
- _ = query_helper.run_query(session, query_text, params=params)
509
- except SnowparkSQLException as e:
510
- if "Invalid spec: unknown option 'resourceManagement' for 'spec'." in e.message:
511
- logger.warning("Dropping 'resourceManagement' from spec because control policy is not enabled.")
512
- spec["spec"].pop("resourceManagement", None)
513
- query_text, params = _generate_submission_query(
514
- spec, external_access_integrations, query_warehouse, target_instances, session, compute_pool, job_id
515
- )
516
- _ = query_helper.run_query(session, query_text, params=params)
517
- else:
518
- raise
506
+ _ = query_helper.run_query(session, query_text, params=params)
519
507
  return get_job(job_id, session=session)
520
508
 
521
509