snowflake-ml-python 1.34.0__tar.gz → 1.35.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 (506) hide show
  1. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/CHANGELOG.md +17 -1
  2. {snowflake_ml_python-1.34.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.35.0}/PKG-INFO +18 -2
  3. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/feature_flags.py +1 -1
  4. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +9 -2
  5. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +20 -4
  6. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/decorators.py +0 -1
  7. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/job_definition.py +31 -0
  8. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/manager.py +0 -3
  9. snowflake_ml_python-1.35.0/snowflake/ml/model/_client/model/batch_inference_definition.py +226 -0
  10. snowflake_ml_python-1.35.0/snowflake/ml/model/_client/model/batch_inference_serialization.py +56 -0
  11. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +4 -0
  12. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/model_version_impl.py +1 -0
  13. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/param_utils.py +77 -3
  14. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/service_ops.py +22 -57
  15. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +4 -0
  16. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
  17. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/_default.py +74 -0
  18. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_handler.py +142 -230
  19. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/_task_handler.py +90 -0
  20. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_utils.py +8 -0
  21. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/conversational.py +52 -0
  22. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/speech.py +39 -0
  23. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/text_generation.py +65 -0
  24. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/video.py +63 -0
  25. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/vision.py +66 -0
  26. snowflake_ml_python-1.35.0/snowflake/ml/model/_packager/model_handlers/huggingface/zero_shot.py +52 -0
  27. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/core.py +1 -0
  28. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/batch/__init__.py +7 -3
  29. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/version.py +1 -1
  30. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0/snowflake_ml_python.egg-info}/PKG-INFO +18 -2
  31. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/SOURCES.txt +10 -0
  32. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/LICENSE.txt +0 -0
  33. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/README.md +0 -0
  34. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/pyproject.toml +0 -0
  35. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/setup.cfg +0 -0
  36. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/__init__.py +0 -0
  37. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_classify_text.py +0 -0
  38. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_complete.py +0 -0
  39. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_embed_text_1024.py +0 -0
  40. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_embed_text_768.py +0 -0
  41. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_extract_answer.py +0 -0
  42. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_finetune.py +0 -0
  43. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_sentiment.py +0 -0
  44. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_sse_client.py +0 -0
  45. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_summarize.py +0 -0
  46. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_translate.py +0 -0
  47. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/cortex/_util.py +0 -0
  48. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/env.py +0 -0
  49. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/env_utils.py +0 -0
  50. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
  51. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
  52. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
  53. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
  54. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
  55. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
  56. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
  57. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
  58. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
  59. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/file_utils.py +0 -0
  60. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
  61. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
  62. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
  63. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
  64. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/init_utils.py +0 -0
  65. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
  66. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
  67. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
  68. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
  69. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/telemetry.py +0 -0
  70. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/type_utils.py +0 -0
  71. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
  72. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
  73. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
  74. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
  75. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
  76. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
  77. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
  78. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
  79. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
  80. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
  81. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/result.py +0 -0
  82. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
  83. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
  84. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
  85. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
  86. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
  87. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/tee.py +0 -0
  88. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
  89. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/_internal/utils/url.py +0 -0
  90. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/__init__.py +0 -0
  91. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
  92. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_connector.py +0 -0
  93. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_ingestor.py +0 -0
  94. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/data_source.py +0 -0
  95. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/ingestor_utils.py +0 -0
  96. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/data/torch_utils.py +0 -0
  97. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/__init__.py +0 -0
  98. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset.py +0 -0
  99. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
  100. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
  101. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
  102. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/__init__.py +0 -0
  103. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
  104. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
  105. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
  106. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
  107. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/run.py +0 -0
  108. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
  109. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
  110. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/__init__.py +0 -0
  111. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/experiment_logger.py +0 -0
  112. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/_logging/experiment_logging_context.py +0 -0
  113. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/keras.py +0 -0
  114. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
  115. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
  116. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/experiment_tracking.py +0 -0
  117. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/experiment/utils.py +0 -0
  118. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/__init__.py +0 -0
  119. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/access_manager.py +0 -0
  120. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/aggregation.py +0 -0
  121. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/entity.py +0 -0
  122. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
  123. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
  124. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
  125. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
  126. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
  127. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
  128. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
  129. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
  130. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
  131. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
  132. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
  133. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
  134. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
  135. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
  136. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
  137. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
  138. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
  139. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
  140. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
  141. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
  142. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
  143. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
  144. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature.py +0 -0
  145. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature_store.py +0 -0
  146. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/feature_view.py +0 -0
  147. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/interval_utils.py +0 -0
  148. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/metadata_manager.py +0 -0
  149. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/request_source.py +0 -0
  150. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/__init__.py +0 -0
  151. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/builder.py +0 -0
  152. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/enums.py +0 -0
  153. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/spec/models.py +0 -0
  154. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/stream_config.py +0 -0
  155. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/stream_source.py +0 -0
  156. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/streaming_registration.py +0 -0
  157. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/feature_store/tile_sql_generator.py +0 -0
  158. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
  159. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/fileset.py +0 -0
  160. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/sfcfs.py +0 -0
  161. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/snowfs.py +0 -0
  162. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/fileset/stage_fs.py +0 -0
  163. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/__init__.py +0 -0
  164. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/__init__.py +0 -0
  165. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/data_utils.py +0 -0
  166. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/dto_schema.py +0 -0
  167. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/exception_utils.py +0 -0
  168. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/legacy.py +0 -0
  169. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/protocols.py +0 -0
  170. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/results.py +0 -0
  171. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_interop/utils.py +0 -0
  172. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
  173. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/arg_protocol.py +0 -0
  174. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
  175. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
  176. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
  177. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
  178. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
  179. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
  180. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh +0 -0
  181. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/startup.sh +0 -0
  182. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
  183. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
  184. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/_utils/type_utils.py +0 -0
  185. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/jobs/job.py +0 -0
  186. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/lineage/__init__.py +0 -0
  187. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/lineage/lineage_node.py +0 -0
  188. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/__init__.py +0 -0
  189. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/inference_engine_utils.py +0 -0
  190. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
  191. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/deployment_step.py +0 -0
  192. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
  193. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/ops/model_ops.py +0 -0
  194. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/service/import_model_spec_schema.py +0 -0
  195. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
  196. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/model.py +0 -0
  197. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
  198. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/service.py +0 -0
  199. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
  200. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
  201. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
  202. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
  203. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
  204. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
  205. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
  206. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
  207. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_function_init_once.py_template +0 -0
  208. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
  209. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
  210. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
  211. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_method/utils.py +0 -0
  212. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
  213. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
  214. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
  215. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
  216. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
  217. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
  218. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
  219. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/__init__.py +0 -0
  220. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/huggingface/_openai_chat_wrapper.py +0 -0
  221. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
  222. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
  223. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
  224. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/prophet.py +0 -0
  225. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
  226. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
  227. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
  228. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
  229. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
  230. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
  231. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +0 -0
  232. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
  233. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
  234. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
  235. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
  236. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
  237. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
  238. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
  239. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +0 -0
  240. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
  241. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
  242. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
  243. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
  244. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
  245. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
  246. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
  247. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
  248. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
  249. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
  250. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
  251. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
  252. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
  253. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
  254. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
  255. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/_signatures/utils.py +0 -0
  256. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/code_path.py +0 -0
  257. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/compute_pool.py +0 -0
  258. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/custom_model.py +0 -0
  259. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/event_handler.py +0 -0
  260. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/inference_engine.py +0 -0
  261. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/model_signature.py +0 -0
  262. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/models/huggingface.py +0 -0
  263. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/models/huggingface_pipeline.py +0 -0
  264. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/openai_signatures.py +0 -0
  265. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/target_platform.py +0 -0
  266. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/task.py +0 -0
  267. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/type_hints.py +0 -0
  268. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/model/volatility.py +0 -0
  269. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
  270. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
  271. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
  272. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
  273. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
  274. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
  275. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
  276. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
  277. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
  278. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
  279. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
  280. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
  281. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
  282. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
  283. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
  284. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
  285. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
  286. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
  287. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
  288. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
  289. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
  290. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
  291. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
  292. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
  293. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
  294. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
  295. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
  296. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
  297. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
  298. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
  299. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
  300. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
  301. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
  302. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
  303. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
  304. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
  305. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
  306. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
  307. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
  308. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
  309. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
  310. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
  311. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
  312. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
  313. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
  314. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
  315. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
  316. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
  317. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
  318. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
  319. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
  320. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
  321. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
  322. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
  323. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
  324. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
  325. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
  326. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
  327. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
  328. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
  329. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
  330. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
  331. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
  332. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
  333. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
  334. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
  335. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
  336. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
  337. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
  338. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
  339. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
  340. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
  341. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
  342. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
  343. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
  344. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
  345. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
  346. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
  347. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
  348. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
  349. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
  350. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
  351. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/framework/base.py +0 -0
  352. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
  353. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
  354. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
  355. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
  356. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
  357. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
  358. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
  359. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
  360. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
  361. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
  362. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
  363. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
  364. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
  365. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
  366. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
  367. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
  368. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
  369. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
  370. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
  371. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
  372. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
  373. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
  374. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
  375. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
  376. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
  377. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
  378. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
  379. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
  380. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
  381. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
  382. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
  383. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
  384. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
  385. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
  386. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
  387. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
  388. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
  389. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
  390. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
  391. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
  392. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
  393. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
  394. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
  395. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
  396. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
  397. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
  398. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
  399. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
  400. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
  401. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
  402. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
  403. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
  404. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
  405. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
  406. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
  407. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
  408. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
  409. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
  410. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
  411. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
  412. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
  413. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
  414. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
  415. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
  416. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
  417. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
  418. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
  419. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
  420. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
  421. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
  422. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
  423. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
  424. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
  425. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
  426. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
  427. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
  428. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
  429. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
  430. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
  431. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
  432. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
  433. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
  434. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
  435. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
  436. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
  437. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
  438. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
  439. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
  440. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
  441. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
  442. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
  443. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
  444. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
  445. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
  446. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
  447. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
  448. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
  449. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
  450. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
  451. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
  452. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
  453. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
  454. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
  455. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
  456. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
  457. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
  458. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
  459. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
  460. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
  461. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
  462. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
  463. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
  464. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
  465. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
  466. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
  467. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
  468. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
  469. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
  470. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
  471. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
  472. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
  473. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
  474. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/svc.py +0 -0
  475. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/svm/svr.py +0 -0
  476. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
  477. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
  478. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
  479. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
  480. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
  481. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
  482. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
  483. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
  484. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
  485. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
  486. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
  487. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
  488. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
  489. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
  490. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
  491. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
  492. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
  493. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/monitoring/shap.py +0 -0
  494. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/__init__.py +0 -0
  495. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
  496. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
  497. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/registry/registry.py +0 -0
  498. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/authentication.py +0 -0
  499. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/connection_params.py +0 -0
  500. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/html_utils.py +0 -0
  501. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/sparse.py +0 -0
  502. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/sql_client.py +0 -0
  503. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake/ml/utils/stage_file.py +0 -0
  504. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
  505. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
  506. {snowflake_ml_python-1.34.0 → snowflake_ml_python-1.35.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,22 @@
1
1
  # Release History
2
2
 
3
- ## 1.34.0
3
+ ## 1.35.0
4
+
5
+ ### New Features
6
+
7
+ ### Bug Fixes
8
+
9
+ * Registry: Fixed `ParamSpec.from_mlflow_spec` dropping `shape`, which caused shaped scalar params
10
+ (e.g., array of ints) from MLflow to fail validation during model import.
11
+
12
+ ### Behavior Changes
13
+
14
+ * ML Jobs: `spec_overrides` now validates container keys and warns when keys other than `name` and `secrets`
15
+ are provided. Additional keys are not officially supported and may not behave as expected.
16
+
17
+ ### Deprecations
18
+
19
+ ## 1.34.0 (2026-04-08)
4
20
 
5
21
  ### New Features
6
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.34.0
3
+ Version: 1.35.0
4
4
  Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
5
5
  Author-email: "Snowflake, Inc" <support@snowflake.com>
6
6
  License:
@@ -416,7 +416,23 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
416
416
 
417
417
  # Release History
418
418
 
419
- ## 1.34.0
419
+ ## 1.35.0
420
+
421
+ ### New Features
422
+
423
+ ### Bug Fixes
424
+
425
+ * Registry: Fixed `ParamSpec.from_mlflow_spec` dropping `shape`, which caused shaped scalar params
426
+ (e.g., array of ints) from MLflow to fail validation during model import.
427
+
428
+ ### Behavior Changes
429
+
430
+ * ML Jobs: `spec_overrides` now validates container keys and warns when keys other than `name` and `secrets`
431
+ are provided. Additional keys are not officially supported and may not behave as expected.
432
+
433
+ ### Deprecations
434
+
435
+ ## 1.34.0 (2026-04-08)
420
436
 
421
437
  ### New Features
422
438
 
@@ -129,5 +129,5 @@ class FeatureFlags:
129
129
  ENABLE_RUNTIME_VERSIONS = _FeatureFlag("MLRS_ENABLE_RUNTIME_VERSIONS", default=True)
130
130
  ENABLE_STAGE_MOUNT_V2 = _FeatureFlag(
131
131
  "MLRS_ENABLE_STAGE_MOUNT_V2",
132
- default=_enabled_in_clouds(SnowflakeCloudType.GCP),
132
+ default=True,
133
133
  )
@@ -38,9 +38,16 @@ def get_first_instance(service_name: str) -> Optional[tuple[str, str, str]]:
38
38
  Returns:
39
39
  tuple[str, str]: A tuple containing (instance_id, ip_address) of the head instance.
40
40
  """
41
- from snowflake.runtime.utils import session_utils
41
+ try:
42
+ from snowflake import snowpark
43
+ from snowflake.ml._internal.utils.connection_params import SnowflakeLoginOptions
44
+ except ImportError:
45
+ from snowflake.ml.utils.connection_params import SnowflakeLoginOptions
46
+
47
+ config = SnowflakeLoginOptions()
48
+ config["client_session_keep_alive"] = "True"
49
+ session = snowpark.Session.builder.configs(config).create() # noqa: F841
42
50
 
43
- session = session_utils.get_session()
44
51
  result = session.sql(f"show service instances in service {service_name}").collect()
45
52
 
46
53
  if not result:
@@ -250,6 +250,25 @@ def save_mljob_result(result_obj: Any, is_error: bool, path: str) -> None:
250
250
  save_mljob_result_v1(result_obj, is_error, path)
251
251
 
252
252
 
253
+ def get_active_ray_nodes() -> list[dict[str, Any]]:
254
+ import ray
255
+
256
+ if not ray.is_initialized():
257
+ ray.init(
258
+ address="auto",
259
+ ignore_reinit_error=True,
260
+ log_to_driver=False,
261
+ logging_level="CRITICAL",
262
+ )
263
+ nodes = ray.nodes()
264
+ alive_nodes = [n for n in nodes if n["Alive"]]
265
+ return alive_nodes
266
+
267
+
268
+ def get_num_ray_nodes() -> int:
269
+ return len(get_active_ray_nodes())
270
+
271
+
253
272
  def wait_for_instances(
254
273
  min_instances: int,
255
274
  target_instances: int,
@@ -320,9 +339,6 @@ def wait_for_instances(
320
339
  # target_instances = 100 => min_wait_time = 19.9
321
340
  min_wait_time = min(3 * math.log2(target_instances), timeout / 10) # Clamp to timeout / 10
322
341
 
323
- # mljob_launcher runs inside the CR where mlruntime libraries are available, so we can import common_util directly
324
- from common_utils import common_util as mlrs_util
325
-
326
342
  start_time = time.time()
327
343
  current_interval = max(min(1, check_interval), 0.1) # Default 1s, minimum 0.1s
328
344
  logger.info(
@@ -333,7 +349,7 @@ def wait_for_instances(
333
349
  )
334
350
 
335
351
  while (elapsed := time.time() - start_time) < timeout:
336
- total_nodes = mlrs_util.get_num_ray_nodes()
352
+ total_nodes = get_num_ray_nodes()
337
353
  if total_nodes >= target_instances:
338
354
  # Best case scenario: target_instances are already available
339
355
  logger.info(f"Target instance requirement met: {total_nodes} instances available after {elapsed:.1f}s")
@@ -44,7 +44,6 @@ def remote(
44
44
  env_vars (dict): Environment variables to set in container.
45
45
  enable_metrics (bool): Whether to enable metrics publishing for the job.
46
46
  query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
47
- spec_overrides (dict): A dictionary of overrides for the service spec.
48
47
  imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
49
48
  runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
50
49
  e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
@@ -30,6 +30,35 @@ from snowflake.snowpark.exceptions import SnowparkSQLException
30
30
 
31
31
  _Args = ParamSpec("_Args")
32
32
  _ReturnValue = TypeVar("_ReturnValue")
33
+
34
+ _ALLOWED_CONTAINER_KEYS = {"name", "secrets"}
35
+ _ALLOWED_SPEC_KEYS = {"containers"}
36
+
37
+ logger = logging.getLogger(__name__)
38
+
39
+
40
+ def _validate_spec_overrides(spec_overrides: Any) -> None:
41
+ """Warn if spec_overrides contains keys beyond the officially supported set."""
42
+ spec = spec_overrides.get("spec", {})
43
+
44
+ disallowed_spec_keys = set(spec.keys()) - _ALLOWED_SPEC_KEYS
45
+ if disallowed_spec_keys:
46
+ logger.warning(
47
+ f"'spec_overrides.spec' keys {sorted(disallowed_spec_keys)} are not officially supported. "
48
+ f"Only {sorted(_ALLOWED_SPEC_KEYS)} are recommended. "
49
+ f"Additional keys may work but are not guaranteed — please validate your configuration carefully."
50
+ )
51
+
52
+ for container in spec.get("containers", []):
53
+ disallowed_container_keys = set(container.keys()) - _ALLOWED_CONTAINER_KEYS
54
+ if disallowed_container_keys:
55
+ logger.warning(
56
+ f"'spec_overrides' container keys {sorted(disallowed_container_keys)} are not officially supported. "
57
+ f"Only {sorted(_ALLOWED_CONTAINER_KEYS)} are recommended. "
58
+ f"Additional keys may work but are not guaranteed — please validate your configuration carefully."
59
+ )
60
+
61
+
33
62
  JOB_ID_PREFIX = "MLJOB_"
34
63
  _PROJECT = "MLJob"
35
64
  logger = logging.getLogger(__name__)
@@ -252,6 +281,8 @@ class MLJobDefinition(Generic[_Args, _ReturnValue], SerializableSessionMixin):
252
281
  external_access_integrations = kwargs.pop("external_access_integrations", None)
253
282
  env_vars = kwargs.pop("env_vars", None)
254
283
  spec_overrides = kwargs.pop("spec_overrides", None)
284
+ if spec_overrides is not None:
285
+ _validate_spec_overrides(spec_overrides)
255
286
  enable_metrics = kwargs.pop("enable_metrics", True)
256
287
  query_warehouse = kwargs.pop("query_warehouse", None)
257
288
  imports = kwargs.pop("imports", None)
@@ -222,7 +222,6 @@ def submit_file(
222
222
  env_vars (dict): Environment variables to set in container.
223
223
  enable_metrics (bool): Whether to enable metrics publishing for the job.
224
224
  query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
225
- spec_overrides (dict): A dictionary of overrides for the service spec.
226
225
  imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
227
226
  runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
228
227
  e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
@@ -286,7 +285,6 @@ def submit_directory(
286
285
  env_vars (dict): Environment variables to set in container.
287
286
  enable_metrics (bool): Whether to enable metrics publishing for the job.
288
287
  query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
289
- spec_overrides (dict): A dictionary of overrides for the service spec.
290
288
  imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
291
289
  runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
292
290
  e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
@@ -352,7 +350,6 @@ def submit_from_stage(
352
350
  env_vars (dict): Environment variables to set in container.
353
351
  enable_metrics (bool): Whether to enable metrics publishing for the job.
354
352
  query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
355
- spec_overrides (dict): A dictionary of overrides for the service spec.
356
353
  imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
357
354
  runtime_environment (str): The runtime image to use. Only support image tag or full image URL,
358
355
  e.g. "1.7.1" or "image_repo/image_name:image_tag". When it refers to a full image URL,
@@ -0,0 +1,226 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Optional
4
+
5
+ import yaml
6
+
7
+ from snowflake.ml._internal import telemetry
8
+ from snowflake.ml._internal.utils import identifier, sql_identifier
9
+ from snowflake.ml.model._client.model import (
10
+ batch_inference_serialization,
11
+ batch_inference_specs,
12
+ model_version_impl,
13
+ )
14
+ from snowflake.snowpark import dataframe
15
+
16
+ _TELEMETRY_PROJECT = "MLOps"
17
+ _TELEMETRY_SUBPROJECT = "ModelManagement"
18
+
19
+
20
+ class BatchInferenceDefinition:
21
+ """Definition for batch inference suitable for use as a DAGTask definition.
22
+
23
+ This class captures the full batch inference configuration and provides a
24
+ ``to_sql()`` method that returns the SQL needed to run the batch inference job,
25
+ suitable for use as a ``DAGTask`` definition in Snowflake task graphs.
26
+ """
27
+
28
+ @telemetry.send_api_usage_telemetry(
29
+ project=_TELEMETRY_PROJECT,
30
+ subproject=_TELEMETRY_SUBPROJECT,
31
+ func_params_to_log=[
32
+ "compute_pool",
33
+ "input_spec",
34
+ "output_spec",
35
+ "job_spec",
36
+ "inference_engine_options",
37
+ ],
38
+ )
39
+ def __init__(
40
+ self,
41
+ *,
42
+ model_version: model_version_impl.ModelVersion,
43
+ X: dataframe.DataFrame,
44
+ compute_pool: str,
45
+ output_spec: batch_inference_specs.OutputSpec,
46
+ input_spec: Optional[batch_inference_specs.InputSpec] = None,
47
+ job_spec: Optional[batch_inference_specs.JobSpec] = None,
48
+ inference_engine_options: Optional[dict[str, Any]] = None,
49
+ ) -> None:
50
+ self._fully_qualified_model_name: str = model_version.fully_qualified_model_name
51
+ self._version_name: str = model_version.version_name
52
+ self._compute_pool = compute_pool
53
+ self._output_spec = output_spec
54
+ self._input_spec = input_spec if input_spec is not None else batch_inference_specs.InputSpec()
55
+ self._job_spec = job_spec if job_spec is not None else batch_inference_specs.JobSpec()
56
+ self._inference_engine_options = inference_engine_options
57
+
58
+ # Resolve the inference function the same way as run_batch().
59
+ function_name = job_spec.function_name if (job_spec is not None and job_spec.function_name) else None
60
+ target_function_info = model_version._get_function_info(function_name=function_name)
61
+ self._function_name: str = target_function_info["target_method"]
62
+
63
+ # Serialize DataFrame queries for session-free replay
64
+ self._queries: list[str] = list(X.queries["queries"])
65
+ self._post_actions: list[str] = list(X.queries["post_actions"])
66
+
67
+ @telemetry.send_api_usage_telemetry(
68
+ project=_TELEMETRY_PROJECT,
69
+ subproject=_TELEMETRY_SUBPROJECT,
70
+ )
71
+ def to_sql(self) -> str:
72
+ """Generate the SQL statement to run a batch inference job.
73
+
74
+ Returns:
75
+ A SQL string suitable for use as a DAGTask definition.
76
+ """
77
+ self._validate()
78
+ spec_dict = self._build_spec_dict()
79
+ yaml_str = yaml.safe_dump(spec_dict, default_flow_style=False, sort_keys=False)
80
+ # Use dollar-quoted string to avoid escaping issues with single quotes in YAML content
81
+ return f"CALL SYSTEM$DEPLOY_MODEL($${yaml_str}$$)"
82
+
83
+ def _build_spec_dict(self) -> dict[str, Any]:
84
+ """Construct the full deployment spec dictionary.
85
+
86
+ Raises:
87
+ ValueError: If warehouse is not set in the job spec.
88
+
89
+ Returns:
90
+ A dictionary matching the ModelJobDeploymentSpec schema.
91
+ """
92
+ if self._job_spec.warehouse is None:
93
+ raise ValueError(
94
+ "warehouse must be set in JobSpec for task-based batch inference. "
95
+ "The session warehouse is not available in DAGTask context."
96
+ )
97
+
98
+ # Model section
99
+ models = [{"name": self._fully_qualified_model_name, "version": self._version_name}]
100
+
101
+ # Parse db.schema from the fully qualified model name for qualifying job names.
102
+ # Use sql_identifier to handle quoted/case-sensitive identifiers correctly.
103
+ db_id, schema_id, _ = sql_identifier.parse_fully_qualified_name(self._fully_qualified_model_name)
104
+
105
+ # TODO: Share job name qualification logic with service_ops.invoke_batch_job_method.
106
+ # Job name handling
107
+ job_name: Optional[str] = None
108
+ name_prefix: Optional[str] = None
109
+ if self._job_spec.job_name is not None:
110
+ parsed_job_db, parsed_job_schema, parsed_job_name = sql_identifier.parse_fully_qualified_name(
111
+ self._job_spec.job_name
112
+ )
113
+ job_db = parsed_job_db or db_id
114
+ job_schema = parsed_job_schema or schema_id
115
+ assert job_db is not None and job_schema is not None
116
+ job_name = identifier.get_schema_level_object_identifier(
117
+ job_db.identifier(), job_schema.identifier(), parsed_job_name.identifier()
118
+ )
119
+ elif self._job_spec.job_name_prefix is not None:
120
+ assert db_id is not None and schema_id is not None
121
+ job_name_prefix_qualified = identifier.get_schema_level_object_identifier(
122
+ db_id.identifier(), schema_id.identifier(), self._job_spec.job_name_prefix + "_"
123
+ )
124
+ name_prefix = job_name_prefix_qualified
125
+
126
+ function_name = self._function_name
127
+
128
+ # Output section
129
+ # TODO(SNOW-3351625): Propagate OutputSpec.mode (save_mode) to the deployment spec
130
+ # so the server can enforce OVERWRITE/ERROR semantics for repeated DAG runs.
131
+ # Currently the mode is only enforced client-side in run_batch() via _enforce_save_mode.
132
+ output_stage = self._output_spec.stage_location
133
+ if not output_stage.endswith("/"):
134
+ output_stage += "/"
135
+
136
+ # Input section
137
+ # TODO(SNOW-3316544): Remove input_stage_location once it's not required.
138
+ input_stage_location = f"{output_stage}_temporary/"
139
+ input_dict: dict[str, Any] = {
140
+ "input_stage_location": input_stage_location,
141
+ "queries": self._queries,
142
+ "post_actions": self._post_actions,
143
+ "input_file_pattern": "*",
144
+ }
145
+
146
+ # Encode params if present
147
+ params_encoded = batch_inference_serialization.encode_params(self._input_spec.params)
148
+ if params_encoded is not None:
149
+ input_dict["params"] = params_encoded
150
+
151
+ # Encode column handling if present
152
+ column_handling_encoded = batch_inference_serialization.encode_column_handling(self._input_spec.column_handling)
153
+ if column_handling_encoded is not None:
154
+ input_dict["column_handling"] = column_handling_encoded
155
+
156
+ if self._input_spec.partition_column is not None:
157
+ input_dict["partition_columns"] = [self._input_spec.partition_column]
158
+
159
+ output_dict: dict[str, Any] = {
160
+ "output_stage_location": output_stage,
161
+ "completion_filename": "_SUCCESS",
162
+ }
163
+
164
+ # Job section
165
+ job_dict: dict[str, Any] = {
166
+ "compute_pool": self._compute_pool,
167
+ "warehouse": self._job_spec.warehouse,
168
+ "function_name": function_name,
169
+ "input": input_dict,
170
+ "output": output_dict,
171
+ "sync": True,
172
+ }
173
+
174
+ if job_name is not None:
175
+ job_dict["name"] = job_name
176
+ if name_prefix is not None:
177
+ job_dict["name_prefix"] = name_prefix
178
+
179
+ # Resource fields — only if set
180
+ if self._job_spec.cpu_requests is not None:
181
+ job_dict["cpu"] = self._job_spec.cpu_requests
182
+ if self._job_spec.memory_requests is not None:
183
+ job_dict["memory"] = self._job_spec.memory_requests
184
+ if self._job_spec.gpu_requests is not None:
185
+ job_dict["gpu"] = self._job_spec.gpu_requests
186
+ if self._job_spec.num_workers is not None:
187
+ job_dict["num_workers"] = self._job_spec.num_workers
188
+ if self._job_spec.max_batch_rows is not None:
189
+ job_dict["max_batch_rows"] = self._job_spec.max_batch_rows
190
+ if self._job_spec.replicas is not None:
191
+ job_dict["replicas"] = self._job_spec.replicas
192
+
193
+ # Build the top-level spec
194
+ spec: dict[str, Any] = {
195
+ "models": models,
196
+ "job": job_dict,
197
+ }
198
+
199
+ # Inference engine spec OR image build
200
+ if self._inference_engine_options is not None:
201
+ engine = self._inference_engine_options["engine"]
202
+ engine_spec: dict[str, Any] = {"inference_engine_name": engine.value}
203
+ engine_args = self._inference_engine_options.get("engine_args_override")
204
+ if engine_args:
205
+ engine_spec["inference_engine_args"] = engine_args
206
+ job_dict["inference_engine_spec"] = engine_spec
207
+ else:
208
+ image_build: dict[str, Any] = {"compute_pool": self._compute_pool}
209
+ if self._job_spec.image_repo is not None:
210
+ image_build["image_repo"] = self._job_spec.image_repo
211
+ if self._job_spec.force_rebuild:
212
+ image_build["force_rebuild"] = True
213
+ spec["image_build"] = image_build
214
+
215
+ return spec
216
+
217
+ def _validate(self) -> None:
218
+ """Validate inputs before deployment. No-op for now.
219
+
220
+ Called by to_sql() before generating the deployment spec.
221
+ """
222
+ # TODO(SNOW-3351625): Implement client-side validation:
223
+ # - GPU compute pool validation if gpu_requests is set
224
+ # - Inference function validation
225
+ # - Input parameter validation
226
+ pass
@@ -0,0 +1,56 @@
1
+ import base64
2
+ import datetime
3
+ import json
4
+ from typing import Any, Optional
5
+
6
+ from pydantic import TypeAdapter
7
+
8
+ from snowflake.ml.model._client.model.batch_inference_specs import ColumnHandlingOptions
9
+
10
+ _UTF8_ENCODING = "utf-8"
11
+
12
+
13
+ def encode_params(params: Optional[dict[str, Any]]) -> Optional[str]:
14
+ """Encode params dictionary to a base64 string.
15
+
16
+ Args:
17
+ params: Optional dictionary of model inference parameters.
18
+
19
+ Returns:
20
+ Base64 encoded JSON string of the params, or None if input is None.
21
+ """
22
+ if params is None:
23
+ return None
24
+
25
+ def serialize_value(v: Any) -> Any:
26
+ """Convert non-JSON-serializable types to JSON-compatible formats."""
27
+ if isinstance(v, bytes):
28
+ return v.hex()
29
+ if isinstance(v, datetime.datetime):
30
+ return v.isoformat()
31
+ if isinstance(v, list):
32
+ return [serialize_value(item) for item in v]
33
+ if isinstance(v, dict):
34
+ return {k: serialize_value(val) for k, val in v.items()}
35
+ return v
36
+
37
+ serializable_params = {k: serialize_value(v) for k, v in params.items()}
38
+ return base64.b64encode(json.dumps(serializable_params).encode(_UTF8_ENCODING)).decode(_UTF8_ENCODING)
39
+
40
+
41
+ def encode_column_handling(
42
+ column_handling: Optional[dict[str, ColumnHandlingOptions]],
43
+ ) -> Optional[str]:
44
+ """Validate and encode column_handling to a base64 string.
45
+
46
+ Args:
47
+ column_handling: Optional dictionary mapping column names to file encoding options.
48
+
49
+ Returns:
50
+ Base64 encoded JSON string of the column handling options, or None if input is None.
51
+ """
52
+ if column_handling is None:
53
+ return None
54
+ adapter = TypeAdapter(dict[str, ColumnHandlingOptions])
55
+ validated_input = adapter.validate_python(column_handling)
56
+ return base64.b64encode(adapter.dump_json(validated_input)).decode(_UTF8_ENCODING)
@@ -136,6 +136,9 @@ class JobSpec(BaseModel):
136
136
  string values. Use CPU if None.
137
137
  replicas (Optional[int]): Number of SPCS job nodes used for distributed inference.
138
138
  If not specified, defaults to 1 replica.
139
+ block (bool): Whether the SPCS batch inference job runs synchronously
140
+ or asynchronously. When True, the call blocks until the job completes. When
141
+ False, the call returns immediately after job creation. Defaults to False.
139
142
 
140
143
  Example:
141
144
  >>> job_spec = JobSpec(
@@ -159,6 +162,7 @@ class JobSpec(BaseModel):
159
162
  memory_requests: Optional[str] = None
160
163
  gpu_requests: Optional[str] = None
161
164
  replicas: Optional[int] = None
165
+ block: bool = False
162
166
 
163
167
  @model_validator(mode="after")
164
168
  def _validate_job_name_exclusivity(self) -> "JobSpec":
@@ -845,6 +845,7 @@ class ModelVersion(lineage_node.LineageNode):
845
845
  job_name=job_spec.job_name,
846
846
  job_name_prefix=job_spec.job_name_prefix,
847
847
  replicas=job_spec.replicas,
848
+ block=job_spec.block,
848
849
  # input and output
849
850
  input_stage_location=input_stage_location,
850
851
  input_file_pattern="*",
@@ -86,14 +86,88 @@ def _validate_param_group_value(
86
86
  group_spec: The ParamGroupSpec defining the expected structure.
87
87
  value: The user-provided value to validate.
88
88
  param_path: Dot-separated path for error messages (e.g., "config.sampling").
89
+ """
90
+ if value is None:
91
+ return
92
+
93
+ # Shaped groups (e.g. shape=(2,)) represent a list of dicts.
94
+ # Validate by recursively unwrapping list dimensions first,
95
+ # then checking each leaf dict against the spec's children.
96
+ if group_spec.shape is not None:
97
+ _validate_shaped_param_group_value(group_spec, value, param_path, group_spec.shape)
98
+ return
99
+
100
+ # Unshaped groups represent a single dict — validate directly.
101
+ _validate_param_group_dict(group_spec, value, param_path)
102
+
103
+
104
+ def _validate_shaped_param_group_value(
105
+ group_spec: core.ParamGroupSpec,
106
+ value: Any,
107
+ param_path: str,
108
+ remaining_shape: tuple[int, ...],
109
+ ) -> None:
110
+ """Validate a shaped ParamGroupSpec value by unwrapping list dimensions.
111
+
112
+ Each dimension in the shape corresponds to one level of list nesting.
113
+ Once all dimensions are unwrapped, each leaf is validated as a dict.
114
+
115
+ Args:
116
+ group_spec: The ParamGroupSpec defining the expected structure.
117
+ value: The user-provided value to validate.
118
+ param_path: Path for error messages (e.g., "config.items[0][2]").
119
+ May include both dot-separated segments and bracket indices.
120
+ remaining_shape: Remaining shape dimensions to unwrap.
89
121
 
90
122
  Raises:
91
- SnowflakeMLException: If the value is not a dict, contains unknown keys,
92
- or child values fail type validation.
123
+ SnowflakeMLException: If the value structure doesn't match the shape.
93
124
  """
94
- if value is None:
125
+ # All shape dimensions consumed — validate the leaf value as a dict.
126
+ if not remaining_shape:
127
+ _validate_param_group_dict(group_spec, value, param_path)
95
128
  return
96
129
 
130
+ # Current dimension expects a list wrapper.
131
+ if not isinstance(value, list):
132
+ raise exceptions.SnowflakeMLException(
133
+ error_code=error_codes.INVALID_ARGUMENT,
134
+ original_exception=ValueError(
135
+ f"Parameter '{param_path}' expected a list (shape={group_spec.shape}), " f"got {type(value).__name__}."
136
+ ),
137
+ )
138
+
139
+ # -1 means variable length (skip length check); otherwise enforce exact match.
140
+ expected_len = remaining_shape[0]
141
+ if expected_len != -1 and len(value) != expected_len:
142
+ raise exceptions.SnowflakeMLException(
143
+ error_code=error_codes.INVALID_ARGUMENT,
144
+ original_exception=ValueError(
145
+ f"Parameter '{param_path}' expected length {expected_len}, got {len(value)}."
146
+ ),
147
+ )
148
+
149
+ # Recurse into each element with the next dimension.
150
+ for i, elem in enumerate(value):
151
+ _validate_shaped_param_group_value(group_spec, elem, f"{param_path}[{i}]", remaining_shape[1:])
152
+
153
+
154
+ def _validate_param_group_dict(
155
+ group_spec: core.ParamGroupSpec,
156
+ value: Any,
157
+ param_path: str,
158
+ ) -> None:
159
+ """Validate that a value is a dict matching the group spec's children.
160
+
161
+ Args:
162
+ group_spec: The ParamGroupSpec defining the expected structure.
163
+ value: The user-provided value to validate.
164
+ param_path: Dot-separated path for error messages (e.g., "config.sampling").
165
+
166
+ Raises:
167
+ SnowflakeMLException: If the value is not a dict, contains unknown keys,
168
+ non-string keys, duplicate case-insensitive keys, or child values
169
+ fail type validation.
170
+ """
97
171
  if not isinstance(value, dict):
98
172
  raise exceptions.SnowflakeMLException(
99
173
  error_code=error_codes.INVALID_ARGUMENT,