snowflake-ml-python 1.8.5__tar.gz → 1.9.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 (435) hide show
  1. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/CHANGELOG.md +63 -18
  2. {snowflake_ml_python-1.8.5/snowflake_ml_python.egg-info → snowflake_ml_python-1.9.0}/PKG-INFO +64 -19
  3. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/telemetry.py +6 -9
  4. snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/connection_params.py +196 -0
  5. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/identifier.py +1 -1
  6. snowflake_ml_python-1.9.0/snowflake/ml/_internal/utils/mixins.py +61 -0
  7. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/__init__.py +2 -0
  8. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/constants.py +3 -2
  9. snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/function_payload_utils.py +43 -0
  10. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/interop_utils.py +63 -4
  11. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/payload_utils.py +89 -40
  12. snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/query_helper.py +9 -0
  13. snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/scripts/constants.py +26 -0
  14. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +8 -26
  15. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/spec_utils.py +29 -5
  16. snowflake_ml_python-1.9.0/snowflake/ml/jobs/_utils/stage_utils.py +119 -0
  17. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/types.py +5 -1
  18. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/decorators.py +20 -28
  19. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/job.py +197 -61
  20. snowflake_ml_python-1.9.0/snowflake/ml/jobs/manager.py +542 -0
  21. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/model/model_impl.py +58 -0
  22. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/model/model_version_impl.py +90 -0
  23. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/ops/model_ops.py +18 -6
  24. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/ops/service_ops.py +23 -6
  25. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +2 -0
  26. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/service.py +68 -20
  27. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/stage.py +5 -2
  28. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +38 -10
  29. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_env/model_env.py +35 -27
  30. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +5 -1
  31. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +103 -73
  32. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +3 -1
  33. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/core.py +24 -0
  34. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/snowpark_handler.py +55 -3
  35. snowflake_ml_python-1.9.0/snowflake/ml/model/target_platform.py +11 -0
  36. snowflake_ml_python-1.9.0/snowflake/ml/model/task.py +9 -0
  37. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/type_hints.py +5 -13
  38. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/metrics_utils.py +2 -0
  39. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/explain_visualize.py +2 -2
  40. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/model_monitor.py +0 -4
  41. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/registry/_manager/model_manager.py +30 -15
  42. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/registry/registry.py +144 -47
  43. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/utils/connection_params.py +1 -1
  44. snowflake_ml_python-1.9.0/snowflake/ml/utils/html_utils.py +263 -0
  45. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/version.py +1 -1
  46. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0/snowflake_ml_python.egg-info}/PKG-INFO +64 -19
  47. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake_ml_python.egg-info/SOURCES.txt +8 -1
  48. snowflake_ml_python-1.8.5/snowflake/ml/jobs/_utils/scripts/constants.py +0 -10
  49. snowflake_ml_python-1.8.5/snowflake/ml/jobs/manager.py +0 -410
  50. snowflake_ml_python-1.8.5/snowflake/ml/monitoring/model_monitor_version.py +0 -1
  51. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/LICENSE.txt +0 -0
  52. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/README.md +0 -0
  53. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/pyproject.toml +0 -0
  54. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/setup.cfg +0 -0
  55. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/__init__.py +0 -0
  56. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_classify_text.py +0 -0
  57. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_complete.py +0 -0
  58. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  59. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_embed_text_768.py +0 -0
  60. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_extract_answer.py +0 -0
  61. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_finetune.py +0 -0
  62. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_sentiment.py +0 -0
  63. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_sse_client.py +0 -0
  64. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_summarize.py +0 -0
  65. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_translate.py +0 -0
  66. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/cortex/_util.py +0 -0
  67. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/env.py +0 -0
  68. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/env_utils.py +0 -0
  69. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  70. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  71. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  72. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  73. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  74. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  75. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  76. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  77. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  78. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/file_utils.py +0 -0
  79. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  80. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  81. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  82. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  83. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/init_utils.py +0 -0
  84. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  85. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  86. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  87. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  88. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/type_utils.py +0 -0
  89. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  90. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  91. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  92. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  93. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  94. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  95. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  96. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/result.py +0 -0
  97. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  98. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  99. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  100. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  101. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  102. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  103. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/__init__.py +0 -0
  104. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  105. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/data_connector.py +0 -0
  106. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/data_ingestor.py +0 -0
  107. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/data_source.py +0 -0
  108. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  109. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/data/torch_utils.py +0 -0
  110. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/dataset/__init__.py +0 -0
  111. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/dataset/dataset.py +0 -0
  112. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  113. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  114. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  115. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/__init__.py +0 -0
  116. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  117. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/entity.py +0 -0
  118. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  119. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  120. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  121. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  122. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  123. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  124. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  125. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  126. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  127. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  128. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  129. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  130. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  131. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  132. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  133. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  134. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  135. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  136. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  137. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  138. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  139. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  140. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/feature_store.py +0 -0
  141. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  142. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  143. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/fileset/fileset.py +0 -0
  144. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  145. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/fileset/snowfs.py +0 -0
  146. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  147. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
  148. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  149. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  150. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/lineage/__init__.py +0 -0
  151. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  152. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/__init__.py +0 -0
  153. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  154. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +0 -0
  155. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  156. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  157. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  158. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  159. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  160. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  161. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  162. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  163. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  164. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  165. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  166. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  167. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  168. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  169. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  170. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  171. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  172. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  173. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +0 -0
  174. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  175. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  176. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  177. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  178. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  179. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  180. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  181. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  182. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  183. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  184. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  185. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  186. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  187. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  188. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  189. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  190. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  191. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  192. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  193. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  194. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  195. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  196. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  197. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  198. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  199. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  200. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  201. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  202. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  203. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  204. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/custom_model.py +0 -0
  205. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/model_signature.py +0 -0
  206. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  207. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  208. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  209. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  210. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  211. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  212. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  213. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  214. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  215. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  216. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  217. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  218. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  219. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  220. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  221. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  222. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  223. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  224. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  225. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  226. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  227. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  228. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  229. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  230. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  231. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  232. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  233. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  234. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  235. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  236. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  237. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  238. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  239. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  240. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  241. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  242. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  243. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  244. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  245. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  246. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  247. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  248. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  249. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  250. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  251. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  252. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  253. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  254. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  255. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  256. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  257. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  258. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  259. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  260. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  261. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  262. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  263. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  264. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  265. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  266. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  267. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  268. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  269. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  270. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  271. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  272. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  273. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  274. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  275. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  276. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  277. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  278. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  279. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  280. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  281. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  282. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  283. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  284. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  285. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  286. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  287. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  288. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  289. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/framework/base.py +0 -0
  290. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  291. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  292. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  293. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  294. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  295. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  296. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  297. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  298. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  299. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  300. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  301. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  302. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  303. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  304. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  305. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  306. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  307. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  308. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  309. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  310. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  311. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  312. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  313. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  314. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  315. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  316. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  317. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  318. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  319. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  320. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  321. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  322. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  323. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  324. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  325. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  326. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  327. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  328. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  329. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  330. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  331. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  332. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  333. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  334. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  335. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  336. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  337. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  338. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  339. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  340. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  341. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  342. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  343. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  344. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  345. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  346. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  347. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  348. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  349. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  350. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  351. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  352. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  353. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  354. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  355. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  356. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  357. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  358. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  359. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  360. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  361. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  362. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  363. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  364. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  365. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  366. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  367. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  368. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  369. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  370. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  371. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  372. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  373. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  374. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  375. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  376. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  377. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  378. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  379. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  380. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  381. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  382. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  383. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  384. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  385. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  386. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  387. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  388. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  389. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  390. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  391. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  392. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  393. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  394. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  395. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  396. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  397. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  398. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  399. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  400. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  401. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  402. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  403. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  404. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  405. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  406. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  407. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  408. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  409. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  410. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  411. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  412. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  413. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  414. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  415. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  416. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  417. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  418. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  419. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  420. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  421. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  422. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  423. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  424. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  425. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  426. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  427. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  428. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/monitoring/shap.py +0 -0
  429. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/registry/__init__.py +0 -0
  430. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/utils/authentication.py +0 -0
  431. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/utils/sparse.py +0 -0
  432. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake/ml/utils/sql_client.py +0 -0
  433. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  434. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  435. {snowflake_ml_python-1.8.5 → snowflake_ml_python-1.9.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,5 +1,48 @@
1
1
  # Release History
2
2
 
3
+ ## 1.9.0
4
+
5
+ ### Bug Fixes
6
+
7
+ - Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
8
+ parameter is enabled
9
+ - Registry: Fixed duplicate UserWarning logs during model packaging
10
+
11
+ ### Behavior Changes
12
+
13
+ - ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
14
+ optional `database` and `schema` parameters have been added, the return type has changed
15
+ from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
16
+ to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
17
+ `target_instances`, `created_time`, and `completed_time`.
18
+ - Registry: Set `relax_version` to false when pip_requirements are specified while logging model
19
+ - Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
20
+
21
+ ### New Features
22
+
23
+ - Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
24
+ or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
25
+ - Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
26
+ `snowflake.ml.model.task.Task`.
27
+ - ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
28
+ - Moved less frequently used job submission parameters to `**kwargs`
29
+ - Platform metrics are now enabled by default
30
+ - `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
31
+
32
+ ## 1.8.6
33
+
34
+ ### Bug Fixes
35
+
36
+ - Fixed fatal errors from internal telemetry wrappers.
37
+
38
+ ### New Features
39
+
40
+ - Registry: Add service container info to logs.
41
+ - ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
42
+ - ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
43
+ `@remote` decorated functions. `Session` object will be injected from context in
44
+ the job execution environment.
45
+
3
46
  ## 1.8.5
4
47
 
5
48
  ### Bug Fixes
@@ -9,16 +52,21 @@
9
52
  - Explainability: bump minimum streamlit version down to 1.30
10
53
  - Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
11
54
 
12
- ### Breaking change
55
+ ### Behavior Changes
13
56
 
14
- - ML Job: Rename argument `num_instances` to `target_instances` in job submission APIs and
57
+ - ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
15
58
  change type from `Optional[int]` to `int`
16
59
 
17
60
  ### New Features
18
61
 
19
62
  - Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
20
63
  an SPCS-only model.
21
- - ML Job: Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
64
+ - ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
65
+ - ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
66
+
67
+ ### Deprecations
68
+
69
+ - `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
22
70
 
23
71
  ## 1.8.4 (2025-05-12)
24
72
 
@@ -29,32 +77,29 @@
29
77
  - Registry: Fixed a bug when logging pytroch and tensorflow models that caused
30
78
  `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
31
79
 
32
- ### Breaking change
80
+ ### Behavior Changes
33
81
 
34
- - ML Job: Updated property `id` to be fully qualified name; Introduced new property `name` to represent the ML Job name
35
- - ML Job: Modified `list_jobs()` to return ML Job `name` instead of `id`
82
+ - ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
83
+ to represent the ML Job name
84
+ - ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
36
85
  - Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
37
86
  Snowpark Container Services, instead of just user warning.
38
87
 
39
88
  ### New Features
40
89
 
41
- - ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
90
+ - ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
42
91
  `schema` parameters
43
- - ML Job: Support querying by fully qualified name in `get_job()`
92
+ - ML Job (PuPr): Support querying by fully qualified name in `get_job()`
44
93
  - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
45
94
  - Explainability: Support explain for categorical transforms for sklearn pipeline
46
95
  - Support categorical type for `xgboost.DMatrix` inputs.
47
96
 
48
97
  ## 1.8.3
49
98
 
50
- ### Bug Fixes
51
-
52
- ### Behavior Change
53
-
54
99
  ### New Features
55
100
 
56
101
  - Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
57
- - ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
102
+ - ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
58
103
  as a list of strings
59
104
  - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
60
105
  - DataConnector: Removed PrPr decorators
@@ -65,11 +110,11 @@
65
110
  ### New Features
66
111
 
67
112
  - ML Job now available as a PuPr feature
68
- - ML Job: Add ability to retrieve results for `@remote` decorated functions using
69
- new `MLJobWithResult.result()` API, which will return the unpickled result
70
- or raise an exception if the job execution failed.
71
- - ML Job: Pre-created Snowpark Session is now available inside job payloads using
72
- `snowflake.snowpark.context.get_active_session()`
113
+ - Add ability to retrieve results for `@remote` decorated functions using
114
+ new `MLJobWithResult.result()` API, which will return the unpickled result
115
+ or raise an exception if the job execution failed.
116
+ - Pre-created Snowpark Session is now available inside job payloads using
117
+ `snowflake.snowpark.context.get_active_session()`
73
118
  - Registry: Introducing `save_location` to `log_model` using the `options` argument.
74
119
  User's can provide the path to write the model version's files that get stored in Snowflake's stage.
75
120
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.8.5
3
+ Version: 1.9.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:
@@ -408,6 +408,49 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
408
408
 
409
409
  # Release History
410
410
 
411
+ ## 1.9.0
412
+
413
+ ### Bug Fixes
414
+
415
+ - Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
416
+ parameter is enabled
417
+ - Registry: Fixed duplicate UserWarning logs during model packaging
418
+
419
+ ### Behavior Changes
420
+
421
+ - ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
422
+ optional `database` and `schema` parameters have been added, the return type has changed
423
+ from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
424
+ to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
425
+ `target_instances`, `created_time`, and `completed_time`.
426
+ - Registry: Set `relax_version` to false when pip_requirements are specified while logging model
427
+ - Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
428
+
429
+ ### New Features
430
+
431
+ - Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
432
+ or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
433
+ - Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
434
+ `snowflake.ml.model.task.Task`.
435
+ - ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
436
+ - Moved less frequently used job submission parameters to `**kwargs`
437
+ - Platform metrics are now enabled by default
438
+ - `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
439
+
440
+ ## 1.8.6
441
+
442
+ ### Bug Fixes
443
+
444
+ - Fixed fatal errors from internal telemetry wrappers.
445
+
446
+ ### New Features
447
+
448
+ - Registry: Add service container info to logs.
449
+ - ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
450
+ - ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
451
+ `@remote` decorated functions. `Session` object will be injected from context in
452
+ the job execution environment.
453
+
411
454
  ## 1.8.5
412
455
 
413
456
  ### Bug Fixes
@@ -417,16 +460,21 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
460
  - Explainability: bump minimum streamlit version down to 1.30
418
461
  - Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
419
462
 
420
- ### Breaking change
463
+ ### Behavior Changes
421
464
 
422
- - ML Job: Rename argument `num_instances` to `target_instances` in job submission APIs and
465
+ - ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
423
466
  change type from `Optional[int]` to `int`
424
467
 
425
468
  ### New Features
426
469
 
427
470
  - Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
428
471
  an SPCS-only model.
429
- - ML Job: Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
472
+ - ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
473
+ - ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
474
+
475
+ ### Deprecations
476
+
477
+ - `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
430
478
 
431
479
  ## 1.8.4 (2025-05-12)
432
480
 
@@ -437,32 +485,29 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
437
485
  - Registry: Fixed a bug when logging pytroch and tensorflow models that caused
438
486
  `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
439
487
 
440
- ### Breaking change
488
+ ### Behavior Changes
441
489
 
442
- - ML Job: Updated property `id` to be fully qualified name; Introduced new property `name` to represent the ML Job name
443
- - ML Job: Modified `list_jobs()` to return ML Job `name` instead of `id`
490
+ - ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
491
+ to represent the ML Job name
492
+ - ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
444
493
  - Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
445
494
  Snowpark Container Services, instead of just user warning.
446
495
 
447
496
  ### New Features
448
497
 
449
- - ML Job: Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
498
+ - ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
450
499
  `schema` parameters
451
- - ML Job: Support querying by fully qualified name in `get_job()`
500
+ - ML Job (PuPr): Support querying by fully qualified name in `get_job()`
452
501
  - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
453
502
  - Explainability: Support explain for categorical transforms for sklearn pipeline
454
503
  - Support categorical type for `xgboost.DMatrix` inputs.
455
504
 
456
505
  ## 1.8.3
457
506
 
458
- ### Bug Fixes
459
-
460
- ### Behavior Change
461
-
462
507
  ### New Features
463
508
 
464
509
  - Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
465
- - ML Job: Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
510
+ - ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
466
511
  as a list of strings
467
512
  - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
468
513
  - DataConnector: Removed PrPr decorators
@@ -473,11 +518,11 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
473
518
  ### New Features
474
519
 
475
520
  - ML Job now available as a PuPr feature
476
- - ML Job: Add ability to retrieve results for `@remote` decorated functions using
477
- new `MLJobWithResult.result()` API, which will return the unpickled result
478
- or raise an exception if the job execution failed.
479
- - ML Job: Pre-created Snowpark Session is now available inside job payloads using
480
- `snowflake.snowpark.context.get_active_session()`
521
+ - Add ability to retrieve results for `@remote` decorated functions using
522
+ new `MLJobWithResult.result()` API, which will return the unpickled result
523
+ or raise an exception if the job execution failed.
524
+ - Pre-created Snowpark Session is now available inside job payloads using
525
+ `snowflake.snowpark.context.get_active_session()`
481
526
  - Registry: Introducing `save_location` to `log_model` using the `options` argument.
482
527
  User's can provide the path to write the model version's files that get stored in Snowflake's stage.
483
528
 
@@ -411,16 +411,13 @@ def send_custom_usage(
411
411
  **kwargs: Any,
412
412
  ) -> None:
413
413
  conn = _get_snowflake_connection()
414
- if conn is None:
415
- raise ValueError(
416
- """Snowflake connection is required to send custom telemetry. This means there
417
- must be at least one active session, or that telemetry is being sent from within an SPCS service."""
418
- )
419
414
 
420
- client = _SourceTelemetryClient(conn=conn, project=project, subproject=subproject)
421
- common_metrics = client._create_basic_telemetry_data(telemetry_type=telemetry_type)
422
- data = {**common_metrics, TelemetryField.KEY_DATA.value: data, **kwargs}
423
- client._send(msg=data)
415
+ # Send telemetry if Snowflake connection is available.
416
+ if conn is not None:
417
+ client = _SourceTelemetryClient(conn=conn, project=project, subproject=subproject)
418
+ common_metrics = client._create_basic_telemetry_data(telemetry_type=telemetry_type)
419
+ data = {**common_metrics, TelemetryField.KEY_DATA.value: data, **kwargs}
420
+ client._send(msg=data)
424
421
 
425
422
 
426
423
  def send_api_usage_telemetry(
@@ -0,0 +1,196 @@
1
+ import configparser
2
+ import os
3
+ from typing import Optional, Union
4
+
5
+ from absl import logging
6
+ from cryptography.hazmat import backends
7
+ from cryptography.hazmat.primitives import serialization
8
+
9
+ _DEFAULT_CONNECTION_FILE = "~/.snowsql/config"
10
+
11
+
12
+ def _read_token(token_file: str = "") -> str:
13
+ """
14
+ Reads token from environment or file provided.
15
+
16
+ First tries to read the token from environment variable
17
+ (`SNOWFLAKE_TOKEN`) followed by the token file.
18
+ Both the options are tried out in SnowServices.
19
+
20
+ Args:
21
+ token_file: File from which token needs to be read. Optional.
22
+
23
+ Returns:
24
+ the token.
25
+ """
26
+ token = os.getenv("SNOWFLAKE_TOKEN", "")
27
+ if token:
28
+ return token
29
+ if token_file and os.path.exists(token_file):
30
+ with open(token_file) as f:
31
+ token = f.read()
32
+ return token
33
+
34
+
35
+ _ENCRYPTED_PKCS8_PK_HEADER = b"-----BEGIN ENCRYPTED PRIVATE KEY-----"
36
+ _UNENCRYPTED_PKCS8_PK_HEADER = b"-----BEGIN PRIVATE KEY-----"
37
+
38
+
39
+ def _load_pem_to_der(private_key_path: str) -> bytes:
40
+ """Given a private key file path (in PEM format), decode key data into DER format."""
41
+ with open(private_key_path, "rb") as f:
42
+ private_key_pem = f.read()
43
+ private_key_passphrase: Optional[str] = os.getenv("SNOWFLAKE_PRIVATE_KEY_PASSPHRASE", None)
44
+
45
+ # Only PKCS#8 format key will be accepted. However, openssl
46
+ # transparently handle PKCS#8 and PKCS#1 format (by some fallback
47
+ # logic) and their is no function to distinguish between them. By
48
+ # reading openssl source code, apparently they also relies on header
49
+ # to determine if give bytes is PKCS#8 format or not
50
+ if not private_key_pem.startswith(_ENCRYPTED_PKCS8_PK_HEADER) and not private_key_pem.startswith(
51
+ _UNENCRYPTED_PKCS8_PK_HEADER
52
+ ):
53
+ raise Exception("Private key provided is not in PKCS#8 format. Please use correct format.")
54
+
55
+ if private_key_pem.startswith(_ENCRYPTED_PKCS8_PK_HEADER) and private_key_passphrase is None:
56
+ raise Exception(
57
+ "Private key is encrypted but passphrase could not be found. "
58
+ "Please set SNOWFLAKE_PRIVATE_KEY_PASSPHRASE env variable."
59
+ )
60
+
61
+ if private_key_pem.startswith(_UNENCRYPTED_PKCS8_PK_HEADER):
62
+ private_key_passphrase = None
63
+
64
+ private_key = serialization.load_pem_private_key(
65
+ private_key_pem,
66
+ str.encode(private_key_passphrase) if private_key_passphrase is not None else private_key_passphrase,
67
+ backends.default_backend(),
68
+ )
69
+
70
+ return private_key.private_bytes(
71
+ encoding=serialization.Encoding.DER,
72
+ format=serialization.PrivateFormat.PKCS8,
73
+ encryption_algorithm=serialization.NoEncryption(),
74
+ )
75
+
76
+
77
+ def _connection_properties_from_env() -> dict[str, str]:
78
+ """Returns a dict with all possible login related env variables."""
79
+ sf_conn_prop = {
80
+ # Mandatory fields
81
+ "account": os.environ["SNOWFLAKE_ACCOUNT"],
82
+ "database": os.environ["SNOWFLAKE_DATABASE"],
83
+ # With a default value
84
+ "token_file": os.getenv("SNOWFLAKE_TOKEN_FILE", "/snowflake/session/token"),
85
+ "ssl": os.getenv("SNOWFLAKE_SSL", "on"),
86
+ "protocol": os.getenv("SNOWFLAKE_PROTOCOL", "https"),
87
+ }
88
+ # With empty default value
89
+ for key, env_var in {
90
+ "user": "SNOWFLAKE_USER",
91
+ "authenticator": "SNOWFLAKE_AUTHENTICATOR",
92
+ "password": "SNOWFLAKE_PASSWORD",
93
+ "host": "SNOWFLAKE_HOST",
94
+ "port": "SNOWFLAKE_PORT",
95
+ "schema": "SNOWFLAKE_SCHEMA",
96
+ "warehouse": "SNOWFLAKE_WAREHOUSE",
97
+ "private_key_path": "SNOWFLAKE_PRIVATE_KEY_PATH",
98
+ }.items():
99
+ value = os.getenv(env_var, "")
100
+ if value:
101
+ sf_conn_prop[key] = value
102
+ return sf_conn_prop
103
+
104
+
105
+ def _load_from_snowsql_config_file(connection_name: str, login_file: str = "") -> dict[str, str]:
106
+ """Loads the dictionary from snowsql config file."""
107
+ snowsql_config_file = login_file if login_file else os.path.expanduser(_DEFAULT_CONNECTION_FILE)
108
+ if not os.path.exists(snowsql_config_file):
109
+ logging.error(f"Connection name given but snowsql config file is not found at: {snowsql_config_file}")
110
+ raise Exception("Snowflake SnowSQL config not found.")
111
+
112
+ config = configparser.ConfigParser(inline_comment_prefixes="#")
113
+
114
+ snowflake_connection_name = os.getenv("SNOWFLAKE_CONNECTION_NAME")
115
+ if snowflake_connection_name is not None:
116
+ connection_name = snowflake_connection_name
117
+
118
+ if connection_name:
119
+ if not connection_name.startswith("connections."):
120
+ connection_name = "connections." + connection_name
121
+ else:
122
+ # See https://docs.snowflake.com/en/user-guide/snowsql-start.html#configuring-default-connection-settings
123
+ connection_name = "connections"
124
+
125
+ logging.info(f"Reading {snowsql_config_file} for connection parameters defined as {connection_name}")
126
+ config.read(snowsql_config_file)
127
+ conn_params = dict(config[connection_name])
128
+ # Remap names to appropriate args in Python Connector API
129
+ # Note: "dbname" should become "database"
130
+ conn_params = {k.replace("name", ""): v.strip('"') for k, v in conn_params.items()}
131
+ if "db" in conn_params:
132
+ conn_params["database"] = conn_params["db"]
133
+ del conn_params["db"]
134
+ return conn_params
135
+
136
+
137
+ def SnowflakeLoginOptions(connection_name: str = "", login_file: Optional[str] = None) -> dict[str, Union[str, bytes]]:
138
+ """Returns a dict that can be used directly into snowflake python connector or Snowpark session config.
139
+
140
+ NOTE: Token/Auth information is sideloaded in all cases above, if provided in following order:
141
+ 1. If SNOWFLAKE_TOKEN is defined in the environment, it will be used.
142
+ 2. If SNOWFLAKE_TOKEN_FILE is defined in the environment and file matching the value found, content of the file
143
+ will be used.
144
+
145
+ If token is found, username, password will be reset and 'authenticator' will be set to 'oauth'.
146
+
147
+ Python Connector:
148
+ >> ctx = snowflake.connector.connect(**(SnowflakeLoginOptions()))
149
+
150
+ Snowpark Session:
151
+ >> session = Session.builder.configs(SnowflakeLoginOptions()).create()
152
+
153
+ Usage Note:
154
+ Ideally one should have a snowsql config file. Read more here:
155
+ https://docs.snowflake.com/en/user-guide/snowsql-start.html#configuring-default-connection-settings
156
+
157
+ If snowsql config file does not exist, it tries auth from env variables.
158
+
159
+ Args:
160
+ connection_name: Name of the connection to look for inside the config file. If environment variable
161
+ SNOWFLAKE_CONNECTION_NAME is provided, it will override the input connection_name.
162
+ login_file: If provided, this is used as config file instead of default one (_DEFAULT_CONNECTION_FILE).
163
+
164
+ Returns:
165
+ A dict with connection parameters.
166
+
167
+ Raises:
168
+ Exception: if none of config file and environment variable are present.
169
+ """
170
+ conn_prop: dict[str, Union[str, bytes]] = {}
171
+ login_file = login_file or os.path.expanduser(_DEFAULT_CONNECTION_FILE)
172
+ # If login file exists, use this exclusively.
173
+ if os.path.exists(login_file):
174
+ conn_prop = {**(_load_from_snowsql_config_file(connection_name, login_file))}
175
+ else:
176
+ # If environment exists for SNOWFLAKE_ACCOUNT, assume everything
177
+ # comes from environment. Mixing it not allowed.
178
+ account = os.getenv("SNOWFLAKE_ACCOUNT", "")
179
+ if account:
180
+ conn_prop = {**_connection_properties_from_env()}
181
+ else:
182
+ raise Exception("Snowflake credential is neither set in env nor a login file was provided.")
183
+
184
+ # Token, if specified, is always side-loaded in all cases.
185
+ token = _read_token(str(conn_prop["token_file"]) if "token_file" in conn_prop else "")
186
+ if token:
187
+ conn_prop["token"] = token
188
+ if "authenticator" not in conn_prop or conn_prop["authenticator"]:
189
+ conn_prop["authenticator"] = "oauth"
190
+ elif "private_key_path" in conn_prop and "private_key" not in conn_prop:
191
+ conn_prop["private_key"] = _load_pem_to_der(str(conn_prop["private_key_path"]))
192
+
193
+ if "ssl" in conn_prop and conn_prop["ssl"].lower() == "off":
194
+ conn_prop["protocol"] = "http"
195
+
196
+ return conn_prop
@@ -240,7 +240,7 @@ def get_schema_level_object_identifier(
240
240
  """
241
241
 
242
242
  for identifier in (db, schema, object_name):
243
- if identifier is not None and SF_IDENTIFIER_RE.match(identifier) is None:
243
+ if identifier is not None and SF_IDENTIFIER_RE.fullmatch(identifier) is None:
244
244
  raise ValueError(f"Invalid identifier {identifier}")
245
245
 
246
246
  if others is None:
@@ -0,0 +1,61 @@
1
+ from typing import Any, Optional
2
+
3
+ from snowflake.ml._internal.utils import identifier
4
+ from snowflake.snowpark import session
5
+
6
+
7
+ class SerializableSessionMixin:
8
+ """Mixin that provides pickling capabilities for objects with Snowpark sessions."""
9
+
10
+ def __getstate__(self) -> dict[str, Any]:
11
+ """Customize pickling to exclude non-serializable session and related components."""
12
+ state = self.__dict__.copy()
13
+
14
+ # Save session metadata for validation during unpickling
15
+ if hasattr(self, "_session") and self._session is not None:
16
+ try:
17
+ state["__session-account__"] = self._session.get_current_account()
18
+ state["__session-role__"] = self._session.get_current_role()
19
+ state["__session-database__"] = self._session.get_current_database()
20
+ state["__session-schema__"] = self._session.get_current_schema()
21
+ except Exception:
22
+ pass
23
+
24
+ state["_session"] = None
25
+ return state
26
+
27
+ def __setstate__(self, state: dict[str, Any]) -> None:
28
+ """Restore session from context during unpickling."""
29
+ saved_account = state.pop("__session-account__", None)
30
+ saved_role = state.pop("__session-role__", None)
31
+ saved_database = state.pop("__session-database__", None)
32
+ saved_schema = state.pop("__session-schema__", None)
33
+ self.__dict__.update(state)
34
+
35
+ if saved_account is not None:
36
+
37
+ def identifiers_match(saved: Optional[str], current: Optional[str]) -> bool:
38
+ saved_resolved = identifier.resolve_identifier(saved) if saved is not None else saved
39
+ current_resolved = identifier.resolve_identifier(current) if current is not None else current
40
+ return saved_resolved == current_resolved
41
+
42
+ for active_session in session._get_active_sessions():
43
+ try:
44
+ current_account = active_session.get_current_account()
45
+ current_role = active_session.get_current_role()
46
+ current_database = active_session.get_current_database()
47
+ current_schema = active_session.get_current_schema()
48
+
49
+ if (
50
+ identifiers_match(saved_account, current_account)
51
+ and identifiers_match(saved_role, current_role)
52
+ and identifiers_match(saved_database, current_database)
53
+ and identifiers_match(saved_schema, current_schema)
54
+ ):
55
+ self._session = active_session
56
+ return
57
+ except Exception:
58
+ continue
59
+
60
+ # No matching session found or no metadata available
61
+ raise RuntimeError("No active Snowpark session available. Please create a session.")
@@ -7,6 +7,7 @@ from snowflake.ml.jobs.manager import (
7
7
  list_jobs,
8
8
  submit_directory,
9
9
  submit_file,
10
+ submit_from_stage,
10
11
  )
11
12
 
12
13
  __all__ = [
@@ -18,4 +19,5 @@ __all__ = [
18
19
  "delete_job",
19
20
  "MLJob",
20
21
  "JOB_STATUS",
22
+ "submit_from_stage",
21
23
  ]
@@ -6,6 +6,7 @@ DEFAULT_CONTAINER_NAME = "main"
6
6
  PAYLOAD_DIR_ENV_VAR = "MLRS_PAYLOAD_DIR"
7
7
  RESULT_PATH_ENV_VAR = "MLRS_RESULT_PATH"
8
8
  MIN_INSTANCES_ENV_VAR = "MLRS_MIN_INSTANCES"
9
+ RUNTIME_IMAGE_TAG_ENV_VAR = "MLRS_CONTAINER_IMAGE_TAG"
9
10
  MEMORY_VOLUME_NAME = "dshm"
10
11
  STAGE_VOLUME_NAME = "stage-volume"
11
12
  STAGE_VOLUME_MOUNT_PATH = "/mnt/app"
@@ -14,7 +15,7 @@ STAGE_VOLUME_MOUNT_PATH = "/mnt/app"
14
15
  DEFAULT_IMAGE_REPO = "/snowflake/images/snowflake_images"
15
16
  DEFAULT_IMAGE_CPU = "st_plat/runtime/x86/runtime_image/snowbooks"
16
17
  DEFAULT_IMAGE_GPU = "st_plat/runtime/x86/generic_gpu/runtime_image/snowbooks"
17
- DEFAULT_IMAGE_TAG = "1.2.3"
18
+ DEFAULT_IMAGE_TAG = "1.5.0"
18
19
  DEFAULT_ENTRYPOINT_PATH = "func.py"
19
20
 
20
21
  # Percent of container memory to allocate for /dev/shm volume
@@ -43,7 +44,7 @@ ENABLE_HEALTH_CHECKS = "false"
43
44
 
44
45
  # Job status polling constants
45
46
  JOB_POLL_INITIAL_DELAY_SECONDS = 0.1
46
- JOB_POLL_MAX_DELAY_SECONDS = 1
47
+ JOB_POLL_MAX_DELAY_SECONDS = 30
47
48
 
48
49
  # Magic attributes
49
50
  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)