sagemaker-core 1.0.62__py3-none-any.whl → 2.1.1__py3-none-any.whl

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 (362) hide show
  1. sagemaker/core/__init__.py +16 -0
  2. sagemaker/core/_studio.py +116 -0
  3. sagemaker/core/_version.py +11 -0
  4. sagemaker/core/accept_types.py +131 -0
  5. sagemaker/core/analytics.py +744 -0
  6. sagemaker/core/apiutils/__init__.py +13 -0
  7. sagemaker/core/apiutils/_base_types.py +228 -0
  8. sagemaker/core/apiutils/_boto_functions.py +130 -0
  9. sagemaker/core/apiutils/_utils.py +34 -0
  10. sagemaker/core/base_deserializers.py +35 -0
  11. sagemaker/core/base_serializers.py +35 -0
  12. sagemaker/core/clarify/__init__.py +2898 -0
  13. sagemaker/core/collection.py +467 -0
  14. sagemaker/core/common_utils.py +2281 -0
  15. sagemaker/core/compute_resource_requirements/__init__.py +18 -0
  16. sagemaker/core/compute_resource_requirements/resource_requirements.py +94 -0
  17. sagemaker/core/config/__init__.py +181 -0
  18. sagemaker/core/config/config.py +238 -0
  19. sagemaker/core/config/config_manager.py +595 -0
  20. sagemaker/core/config/config_schema.py +1220 -0
  21. sagemaker/core/config/config_utils.py +297 -0
  22. {sagemaker_core/main → sagemaker/core}/config_schema.py +408 -3
  23. sagemaker/core/constants.py +73 -0
  24. sagemaker/core/content_types.py +137 -0
  25. sagemaker/core/debugger/__init__.py +39 -0
  26. sagemaker/core/debugger/debugger.py +945 -0
  27. sagemaker/core/debugger/framework_profile.py +292 -0
  28. sagemaker/core/debugger/metrics_config.py +468 -0
  29. sagemaker/core/debugger/profiler.py +42 -0
  30. sagemaker/core/debugger/profiler_config.py +190 -0
  31. sagemaker/core/debugger/profiler_constants.py +40 -0
  32. sagemaker/core/debugger/utils.py +148 -0
  33. sagemaker/core/deprecations.py +254 -0
  34. sagemaker/core/deserializers/__init__.py +10 -0
  35. sagemaker/core/deserializers/base.py +424 -0
  36. sagemaker/core/deserializers/implementations.py +157 -0
  37. sagemaker/core/drift_check_baselines.py +106 -0
  38. sagemaker/core/enums.py +51 -0
  39. sagemaker/core/environment_variables.py +101 -0
  40. sagemaker/core/exceptions.py +108 -0
  41. sagemaker/core/experiments/__init__.py +53 -0
  42. sagemaker/core/experiments/_api_types.py +251 -0
  43. sagemaker/core/experiments/_environment.py +124 -0
  44. sagemaker/core/experiments/_helper.py +294 -0
  45. sagemaker/core/experiments/_metrics.py +333 -0
  46. sagemaker/core/experiments/_run_context.py +58 -0
  47. sagemaker/core/experiments/_utils.py +216 -0
  48. sagemaker/core/experiments/experiment.py +244 -0
  49. sagemaker/core/experiments/run.py +970 -0
  50. sagemaker/core/experiments/trial.py +296 -0
  51. sagemaker/core/experiments/trial_component.py +387 -0
  52. sagemaker/core/explainer/__init__.py +24 -0
  53. sagemaker/core/explainer/clarify_explainer_config.py +298 -0
  54. sagemaker/core/explainer/explainer_config.py +44 -0
  55. sagemaker/core/fw_utils.py +1176 -0
  56. sagemaker/core/git_utils.py +349 -0
  57. sagemaker/core/helper/pipeline_variable.py +82 -0
  58. sagemaker/core/helper/session_helper.py +2965 -0
  59. sagemaker/core/huggingface/__init__.py +29 -0
  60. sagemaker/core/huggingface/llm_utils.py +150 -0
  61. sagemaker/core/huggingface/processing.py +139 -0
  62. sagemaker/core/huggingface/training_compiler/config.py +167 -0
  63. sagemaker/core/hyperparameters.py +172 -0
  64. sagemaker/core/image_retriever/__init__.py +3 -0
  65. sagemaker/core/image_retriever/image_retriever.py +640 -0
  66. sagemaker/core/image_retriever/image_retriever_utils.py +511 -0
  67. sagemaker/core/image_retriever/test.py +7 -0
  68. sagemaker/core/image_uri_config/__init__.py +13 -0
  69. sagemaker/core/image_uri_config/autogluon.json +1335 -0
  70. sagemaker/core/image_uri_config/blazingtext.json +50 -0
  71. sagemaker/core/image_uri_config/chainer.json +104 -0
  72. sagemaker/core/image_uri_config/clarify.json +39 -0
  73. sagemaker/core/image_uri_config/coach-mxnet.json +70 -0
  74. sagemaker/core/image_uri_config/coach-tensorflow.json +186 -0
  75. sagemaker/core/image_uri_config/data-wrangler.json +91 -0
  76. sagemaker/core/image_uri_config/debugger.json +34 -0
  77. sagemaker/core/image_uri_config/detailed-profiler.json +18 -0
  78. sagemaker/core/image_uri_config/djl-deepspeed.json +385 -0
  79. sagemaker/core/image_uri_config/djl-fastertransformer.json +167 -0
  80. sagemaker/core/image_uri_config/djl-lmi.json +136 -0
  81. sagemaker/core/image_uri_config/djl-neuronx.json +258 -0
  82. sagemaker/core/image_uri_config/djl-tensorrtllm.json +262 -0
  83. sagemaker/core/image_uri_config/factorization-machines.json +50 -0
  84. sagemaker/core/image_uri_config/forecasting-deepar.json +50 -0
  85. sagemaker/core/image_uri_config/huggingface-llm-neuronx.json +660 -0
  86. sagemaker/core/image_uri_config/huggingface-llm.json +1158 -0
  87. sagemaker/core/image_uri_config/huggingface-neuron.json +52 -0
  88. sagemaker/core/image_uri_config/huggingface-neuronx.json +510 -0
  89. sagemaker/core/image_uri_config/huggingface-tei-cpu.json +298 -0
  90. sagemaker/core/image_uri_config/huggingface-tei.json +298 -0
  91. sagemaker/core/image_uri_config/huggingface-training-compiler.json +195 -0
  92. sagemaker/core/image_uri_config/huggingface.json +2138 -0
  93. sagemaker/core/image_uri_config/hyperpod-recipes-neuron.json +52 -0
  94. sagemaker/core/image_uri_config/image-classification-neo.json +43 -0
  95. sagemaker/core/image_uri_config/image-classification.json +50 -0
  96. sagemaker/core/image_uri_config/inferentia-mxnet.json +88 -0
  97. sagemaker/core/image_uri_config/inferentia-pytorch.json +127 -0
  98. sagemaker/core/image_uri_config/inferentia-tensorflow.json +88 -0
  99. sagemaker/core/image_uri_config/instance_gpu_info.json +782 -0
  100. sagemaker/core/image_uri_config/ipinsights.json +50 -0
  101. sagemaker/core/image_uri_config/kmeans.json +50 -0
  102. sagemaker/core/image_uri_config/knn.json +50 -0
  103. sagemaker/core/image_uri_config/lda.json +26 -0
  104. sagemaker/core/image_uri_config/linear-learner.json +50 -0
  105. sagemaker/core/image_uri_config/model-monitor.json +42 -0
  106. sagemaker/core/image_uri_config/mxnet.json +1154 -0
  107. sagemaker/core/image_uri_config/neo-mxnet.json +64 -0
  108. sagemaker/core/image_uri_config/neo-pytorch.json +341 -0
  109. sagemaker/core/image_uri_config/neo-tensorflow.json +109 -0
  110. sagemaker/core/image_uri_config/ntm.json +50 -0
  111. sagemaker/core/image_uri_config/object-detection.json +50 -0
  112. sagemaker/core/image_uri_config/object2vec.json +50 -0
  113. sagemaker/core/image_uri_config/pca.json +50 -0
  114. sagemaker/core/image_uri_config/pytorch-neuron.json +43 -0
  115. sagemaker/core/image_uri_config/pytorch-smp.json +218 -0
  116. sagemaker/core/image_uri_config/pytorch-training-compiler.json +80 -0
  117. sagemaker/core/image_uri_config/pytorch.json +3101 -0
  118. sagemaker/core/image_uri_config/randomcutforest.json +50 -0
  119. sagemaker/core/image_uri_config/ray-pytorch.json +46 -0
  120. sagemaker/core/image_uri_config/ray-tensorflow.json +194 -0
  121. sagemaker/core/image_uri_config/sagemaker-base-python.json +46 -0
  122. sagemaker/core/image_uri_config/sagemaker-distribution.json +37 -0
  123. sagemaker/core/image_uri_config/sagemaker-geospatial.json +13 -0
  124. sagemaker/core/image_uri_config/sagemaker-tritonserver.json +212 -0
  125. sagemaker/core/image_uri_config/semantic-segmentation.json +50 -0
  126. sagemaker/core/image_uri_config/seq2seq.json +50 -0
  127. sagemaker/core/image_uri_config/sklearn.json +446 -0
  128. sagemaker/core/image_uri_config/spark.json +280 -0
  129. sagemaker/core/image_uri_config/sparkml-serving.json +97 -0
  130. sagemaker/core/image_uri_config/stabilityai.json +53 -0
  131. sagemaker/core/image_uri_config/tensorflow.json +5086 -0
  132. sagemaker/core/image_uri_config/vw.json +25 -0
  133. sagemaker/core/image_uri_config/xgboost-neo.json +43 -0
  134. sagemaker/core/image_uri_config/xgboost.json +888 -0
  135. sagemaker/core/image_uris.py +810 -0
  136. sagemaker/core/inference_config.py +144 -0
  137. sagemaker/core/inference_recommender/__init__.py +18 -0
  138. sagemaker/core/inference_recommender/inference_recommender_mixin.py +622 -0
  139. sagemaker/core/inputs.py +366 -0
  140. sagemaker/core/instance_group.py +61 -0
  141. sagemaker/core/instance_types.py +164 -0
  142. sagemaker/core/instance_types_gpu_info.py +43 -0
  143. sagemaker/core/interactive_apps/__init__.py +41 -0
  144. sagemaker/core/interactive_apps/base_interactive_app.py +204 -0
  145. sagemaker/core/interactive_apps/detail_profiler_app.py +139 -0
  146. sagemaker/core/interactive_apps/tensorboard.py +149 -0
  147. sagemaker/core/iterators.py +186 -0
  148. sagemaker/core/job.py +380 -0
  149. sagemaker/core/jumpstart/__init__.py +156 -0
  150. sagemaker/core/jumpstart/accessors.py +390 -0
  151. sagemaker/core/jumpstart/artifacts/__init__.py +69 -0
  152. sagemaker/core/jumpstart/artifacts/environment_variables.py +252 -0
  153. sagemaker/core/jumpstart/artifacts/hyperparameters.py +120 -0
  154. sagemaker/core/jumpstart/artifacts/image_uris.py +139 -0
  155. sagemaker/core/jumpstart/artifacts/incremental_training.py +87 -0
  156. sagemaker/core/jumpstart/artifacts/instance_types.py +223 -0
  157. sagemaker/core/jumpstart/artifacts/kwargs.py +289 -0
  158. sagemaker/core/jumpstart/artifacts/metric_definitions.py +117 -0
  159. sagemaker/core/jumpstart/artifacts/model_packages.py +202 -0
  160. sagemaker/core/jumpstart/artifacts/model_uris.py +252 -0
  161. sagemaker/core/jumpstart/artifacts/payloads.py +96 -0
  162. sagemaker/core/jumpstart/artifacts/predictors.py +540 -0
  163. sagemaker/core/jumpstart/artifacts/resource_names.py +86 -0
  164. sagemaker/core/jumpstart/artifacts/resource_requirements.py +162 -0
  165. sagemaker/core/jumpstart/artifacts/script_uris.py +172 -0
  166. sagemaker/core/jumpstart/cache.py +663 -0
  167. sagemaker/core/jumpstart/configs.py +50 -0
  168. sagemaker/core/jumpstart/constants.py +198 -0
  169. sagemaker/core/jumpstart/deserializers.py +81 -0
  170. sagemaker/core/jumpstart/document.py +76 -0
  171. sagemaker/core/jumpstart/enums.py +168 -0
  172. sagemaker/core/jumpstart/exceptions.py +236 -0
  173. sagemaker/core/jumpstart/factory/utils.py +833 -0
  174. sagemaker/core/jumpstart/filters.py +597 -0
  175. sagemaker/core/jumpstart/hub/constants.py +16 -0
  176. sagemaker/core/jumpstart/hub/hub.py +291 -0
  177. sagemaker/core/jumpstart/hub/interfaces.py +936 -0
  178. sagemaker/core/jumpstart/hub/parser_utils.py +70 -0
  179. sagemaker/core/jumpstart/hub/parsers.py +288 -0
  180. sagemaker/core/jumpstart/hub/types.py +35 -0
  181. sagemaker/core/jumpstart/hub/utils.py +260 -0
  182. sagemaker/core/jumpstart/models.py +499 -0
  183. sagemaker/core/jumpstart/notebook_utils.py +575 -0
  184. sagemaker/core/jumpstart/parameters.py +20 -0
  185. sagemaker/core/jumpstart/payload_utils.py +239 -0
  186. sagemaker/core/jumpstart/region_config.json +163 -0
  187. sagemaker/core/jumpstart/search.py +171 -0
  188. sagemaker/core/jumpstart/serializers.py +81 -0
  189. sagemaker/core/jumpstart/session_utils.py +234 -0
  190. sagemaker/core/jumpstart/types.py +3044 -0
  191. sagemaker/core/jumpstart/utils.py +1731 -0
  192. sagemaker/core/jumpstart/validators.py +257 -0
  193. sagemaker/core/lambda_helper.py +312 -0
  194. sagemaker/core/lineage/__init__.py +42 -0
  195. sagemaker/core/lineage/_api_types.py +239 -0
  196. sagemaker/core/lineage/_utils.py +49 -0
  197. sagemaker/core/lineage/action.py +345 -0
  198. sagemaker/core/lineage/artifact.py +646 -0
  199. sagemaker/core/lineage/association.py +190 -0
  200. sagemaker/core/lineage/context.py +505 -0
  201. sagemaker/core/lineage/lineage_trial_component.py +191 -0
  202. sagemaker/core/lineage/query.py +732 -0
  203. sagemaker/core/lineage/visualizer.py +346 -0
  204. sagemaker/core/local/__init__.py +18 -0
  205. sagemaker/core/local/data.py +413 -0
  206. sagemaker/core/local/entities.py +678 -0
  207. sagemaker/core/local/exceptions.py +17 -0
  208. sagemaker/core/local/image.py +1243 -0
  209. sagemaker/core/local/local_session.py +739 -0
  210. sagemaker/core/local/utils.py +245 -0
  211. sagemaker/core/logs.py +181 -0
  212. sagemaker/core/metadata_properties.py +56 -0
  213. sagemaker/core/metric_definitions.py +91 -0
  214. sagemaker/core/mlflow/__init__.py +38 -0
  215. sagemaker/core/mlflow/forward_sagemaker_metrics.py +44 -0
  216. sagemaker/core/model_card/__init__.py +26 -0
  217. sagemaker/core/model_life_cycle.py +51 -0
  218. sagemaker/core/model_metrics.py +160 -0
  219. sagemaker/core/model_monitor/__init__.py +66 -0
  220. sagemaker/core/model_monitor/clarify_model_monitoring.py +1495 -0
  221. sagemaker/core/model_monitor/cron_expression_generator.py +82 -0
  222. sagemaker/core/model_monitor/data_capture_config.py +115 -0
  223. sagemaker/core/model_monitor/data_quality_monitoring_config.py +66 -0
  224. sagemaker/core/model_monitor/dataset_format.py +102 -0
  225. sagemaker/core/model_monitor/model_monitoring.py +4266 -0
  226. sagemaker/core/model_monitor/monitoring_alert.py +76 -0
  227. sagemaker/core/model_monitor/monitoring_files.py +506 -0
  228. sagemaker/core/model_monitor/utils.py +793 -0
  229. sagemaker/core/model_registry.py +480 -0
  230. sagemaker/core/model_uris.py +97 -0
  231. sagemaker/core/modules/__init__.py +19 -0
  232. sagemaker/core/modules/configs.py +226 -0
  233. sagemaker/core/modules/constants.py +37 -0
  234. sagemaker/core/modules/distributed.py +182 -0
  235. sagemaker/core/modules/local_core/__init__.py +0 -0
  236. sagemaker/core/modules/local_core/local_container.py +605 -0
  237. sagemaker/core/modules/templates.py +83 -0
  238. sagemaker/core/modules/train/__init__.py +14 -0
  239. sagemaker/core/modules/train/container_drivers/__init__.py +14 -0
  240. sagemaker/core/modules/train/container_drivers/common/__init__.py +14 -0
  241. sagemaker/core/modules/train/container_drivers/common/utils.py +213 -0
  242. sagemaker/core/modules/train/container_drivers/distributed_drivers/__init__.py +14 -0
  243. sagemaker/core/modules/train/container_drivers/distributed_drivers/basic_script_driver.py +81 -0
  244. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_driver.py +123 -0
  245. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_utils.py +302 -0
  246. sagemaker/core/modules/train/container_drivers/distributed_drivers/torchrun_driver.py +129 -0
  247. sagemaker/core/modules/train/container_drivers/scripts/__init__.py +14 -0
  248. sagemaker/core/modules/train/container_drivers/scripts/environment.py +305 -0
  249. sagemaker/core/modules/train/sm_recipes/__init__.py +0 -0
  250. sagemaker/core/modules/train/sm_recipes/utils.py +330 -0
  251. sagemaker/core/modules/types.py +19 -0
  252. sagemaker/core/modules/utils.py +194 -0
  253. sagemaker/core/network.py +185 -0
  254. sagemaker/core/parameter.py +173 -0
  255. sagemaker/core/payloads.py +185 -0
  256. sagemaker/core/processing.py +1597 -0
  257. sagemaker/core/remote_function/__init__.py +19 -0
  258. sagemaker/core/remote_function/checkpoint_location.py +47 -0
  259. sagemaker/core/remote_function/client.py +1285 -0
  260. sagemaker/core/remote_function/core/__init__.py +0 -0
  261. sagemaker/core/remote_function/core/_custom_dispatch_table.py +72 -0
  262. sagemaker/core/remote_function/core/pipeline_variables.py +353 -0
  263. sagemaker/core/remote_function/core/serialization.py +422 -0
  264. sagemaker/core/remote_function/core/stored_function.py +226 -0
  265. sagemaker/core/remote_function/custom_file_filter.py +128 -0
  266. sagemaker/core/remote_function/errors.py +104 -0
  267. sagemaker/core/remote_function/invoke_function.py +172 -0
  268. sagemaker/core/remote_function/job.py +2140 -0
  269. sagemaker/core/remote_function/logging_config.py +38 -0
  270. sagemaker/core/remote_function/runtime_environment/__init__.py +14 -0
  271. sagemaker/core/remote_function/runtime_environment/bootstrap_runtime_environment.py +605 -0
  272. sagemaker/core/remote_function/runtime_environment/mpi_utils_remote.py +252 -0
  273. sagemaker/core/remote_function/runtime_environment/runtime_environment_manager.py +554 -0
  274. sagemaker/core/remote_function/runtime_environment/spark_app.py +18 -0
  275. sagemaker/core/remote_function/spark_config.py +149 -0
  276. sagemaker/core/resource_requirements.py +168 -0
  277. {sagemaker_core/main → sagemaker/core}/resources.py +19098 -10895
  278. sagemaker/core/s3/__init__.py +41 -0
  279. sagemaker/core/s3/client.py +367 -0
  280. sagemaker/core/s3/utils.py +175 -0
  281. sagemaker/core/script_uris.py +93 -0
  282. sagemaker/core/serializers/__init__.py +11 -0
  283. sagemaker/core/serializers/base.py +510 -0
  284. sagemaker/core/serializers/implementations.py +159 -0
  285. sagemaker/core/serializers/utils.py +223 -0
  286. sagemaker/core/serverless_inference_config.py +63 -0
  287. sagemaker/core/session_settings.py +55 -0
  288. sagemaker/core/shapes/__init__.py +3 -0
  289. sagemaker/core/shapes/model_card_shapes.py +159 -0
  290. {sagemaker_core/main → sagemaker/core/shapes}/shapes.py +5810 -1806
  291. sagemaker/core/spark/__init__.py +16 -0
  292. sagemaker/core/spark/defaults.py +16 -0
  293. sagemaker/core/spark/processing.py +1380 -0
  294. sagemaker/core/telemetry/__init__.py +23 -0
  295. sagemaker/core/telemetry/constants.py +84 -0
  296. sagemaker/core/telemetry/telemetry_logging.py +284 -0
  297. sagemaker/core/tools/__init__.py +1 -0
  298. {sagemaker_core → sagemaker/core}/tools/codegen.py +4 -4
  299. {sagemaker_core → sagemaker/core}/tools/constants.py +23 -15
  300. {sagemaker_core → sagemaker/core}/tools/data_extractor.py +1 -1
  301. {sagemaker_core → sagemaker/core}/tools/method.py +1 -1
  302. sagemaker/core/tools/model_card/generate_model_card_from_schema.py +562 -0
  303. {sagemaker_core → sagemaker/core}/tools/resources_codegen.py +165 -98
  304. {sagemaker_core → sagemaker/core}/tools/resources_extractor.py +5 -13
  305. {sagemaker_core → sagemaker/core}/tools/shapes_codegen.py +16 -17
  306. {sagemaker_core → sagemaker/core}/tools/shapes_extractor.py +29 -67
  307. {sagemaker_core → sagemaker/core}/tools/templates.py +39 -17
  308. sagemaker/core/training/__init__.py +14 -0
  309. sagemaker/core/training/configs.py +333 -0
  310. sagemaker/core/training/constants.py +37 -0
  311. sagemaker/core/training/utils.py +77 -0
  312. sagemaker/core/training_compiler/__init__.py +16 -0
  313. sagemaker/core/training_compiler/config.py +197 -0
  314. sagemaker/core/training_compiler_config.py +197 -0
  315. sagemaker/core/transformer.py +793 -0
  316. sagemaker/core/user_agent.py +76 -0
  317. sagemaker/core/utilities/__init__.py +24 -0
  318. sagemaker/core/utilities/cache.py +169 -0
  319. sagemaker/core/utilities/search_expression.py +133 -0
  320. sagemaker/core/utils/__init__.py +48 -0
  321. sagemaker/core/utils/code_injection/__init__.py +0 -0
  322. {sagemaker_core/main → sagemaker/core/utils}/code_injection/codec.py +2 -2
  323. {sagemaker_core/main → sagemaker/core/utils}/code_injection/shape_dag.py +5979 -176
  324. {sagemaker_core/main → sagemaker/core/utils}/exceptions.py +8 -8
  325. sagemaker_core/main/default_configs_helper.py → sagemaker/core/utils/intelligent_defaults_helper.py +5 -6
  326. {sagemaker_core/main → sagemaker/core/utils}/logs.py +1 -2
  327. {sagemaker_core/main → sagemaker/core/utils}/utils.py +27 -22
  328. sagemaker/core/workflow/__init__.py +152 -0
  329. sagemaker/core/workflow/conditions.py +313 -0
  330. sagemaker/core/workflow/entities.py +58 -0
  331. sagemaker/core/workflow/execution_variables.py +89 -0
  332. sagemaker/core/workflow/functions.py +193 -0
  333. sagemaker/core/workflow/parameters.py +222 -0
  334. sagemaker/core/workflow/pipeline_context.py +394 -0
  335. sagemaker/core/workflow/pipeline_definition_config.py +31 -0
  336. sagemaker/core/workflow/properties.py +285 -0
  337. sagemaker/core/workflow/step_outputs.py +65 -0
  338. sagemaker/core/workflow/utilities.py +507 -0
  339. sagemaker/lineage/__init__.py +33 -0
  340. sagemaker/lineage/action.py +28 -0
  341. sagemaker/lineage/artifact.py +28 -0
  342. sagemaker/lineage/context.py +28 -0
  343. sagemaker/lineage/lineage_trial_component.py +28 -0
  344. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.1.1.dist-info}/METADATA +28 -9
  345. sagemaker_core-2.1.1.dist-info/RECORD +355 -0
  346. sagemaker_core-2.1.1.dist-info/top_level.txt +1 -0
  347. sagemaker_core/_version.py +0 -3
  348. sagemaker_core/helper/session_helper.py +0 -769
  349. sagemaker_core/resources/__init__.py +0 -1
  350. sagemaker_core/shapes/__init__.py +0 -1
  351. sagemaker_core/tools/__init__.py +0 -1
  352. sagemaker_core-1.0.62.dist-info/RECORD +0 -35
  353. sagemaker_core-1.0.62.dist-info/top_level.txt +0 -1
  354. {sagemaker_core → sagemaker/core/helper}/__init__.py +0 -0
  355. {sagemaker_core/helper → sagemaker/core/huggingface/training_compiler}/__init__.py +0 -0
  356. {sagemaker_core/main → sagemaker/core/jumpstart/factory}/__init__.py +0 -0
  357. {sagemaker_core/main/code_injection → sagemaker/core/jumpstart/hub}/__init__.py +0 -0
  358. {sagemaker_core/main → sagemaker/core/utils}/code_injection/base.py +0 -0
  359. {sagemaker_core/main → sagemaker/core/utils}/code_injection/constants.py +0 -0
  360. {sagemaker_core/main → sagemaker/core/utils}/user_agent.py +0 -0
  361. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.1.1.dist-info}/WHEEL +0 -0
  362. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.1.1.dist-info}/licenses/LICENSE +0 -0
File without changes
@@ -0,0 +1,72 @@
1
+ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ """SageMaker remote function data serializer/deserializer."""
14
+ from __future__ import absolute_import
15
+
16
+ from sagemaker.core.remote_function.errors import SerializationError
17
+
18
+ from sagemaker.core.helper.pipeline_variable import PipelineVariable
19
+ from sagemaker.core.workflow.parameters import (
20
+ ParameterInteger,
21
+ ParameterFloat,
22
+ ParameterString,
23
+ ParameterBoolean,
24
+ )
25
+ from sagemaker.core.workflow.execution_variables import ExecutionVariable
26
+ from sagemaker.core.workflow.properties import (
27
+ Properties,
28
+ PropertiesMap,
29
+ PropertiesList,
30
+ )
31
+
32
+
33
+ # Lazy import to avoid circular dependency
34
+ # DelayedReturn is in MLOps package which depends on Core
35
+ def _get_delayed_return_class():
36
+ """Lazy import of DelayedReturn to avoid circular dependency."""
37
+ try:
38
+ from sagemaker.mlops.workflow.function_step import DelayedReturn
39
+
40
+ return DelayedReturn
41
+ except ImportError:
42
+ # If MLOps is not installed, return None
43
+ return None
44
+
45
+
46
+ def _pipeline_variable_reducer(pipeline_variable):
47
+ """Reducer for pipeline variable."""
48
+
49
+ raise SerializationError(
50
+ """Please pass the pipeline variable to the function decorated with @step as an argument.
51
+ Referencing to a pipeline variable from within the function
52
+ or passing a pipeline variable nested in a data structure are not supported."""
53
+ )
54
+
55
+
56
+ # Build dispatch table with lazy loading for DelayedReturn
57
+ dispatch_table = {
58
+ ParameterInteger: _pipeline_variable_reducer,
59
+ ParameterFloat: _pipeline_variable_reducer,
60
+ ParameterString: _pipeline_variable_reducer,
61
+ ParameterBoolean: _pipeline_variable_reducer,
62
+ ExecutionVariable: _pipeline_variable_reducer,
63
+ PipelineVariable: _pipeline_variable_reducer,
64
+ Properties: _pipeline_variable_reducer,
65
+ PropertiesMap: _pipeline_variable_reducer,
66
+ PropertiesList: _pipeline_variable_reducer,
67
+ }
68
+
69
+ # Add DelayedReturn to dispatch table if MLOps is available
70
+ _delayed_return_class = _get_delayed_return_class()
71
+ if _delayed_return_class is not None:
72
+ dispatch_table[_delayed_return_class] = _pipeline_variable_reducer
@@ -0,0 +1,353 @@
1
+ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ """SageMaker remote function data serializer/deserializer."""
14
+ from __future__ import absolute_import
15
+
16
+ from concurrent.futures import ThreadPoolExecutor
17
+ from dataclasses import dataclass, field
18
+ from typing import Any, Union, Dict, List, Tuple
19
+
20
+ from sagemaker.core.s3 import s3_path_join
21
+ from sagemaker.core.remote_function.core.serialization import deserialize_obj_from_s3
22
+ from sagemaker.core.workflow.step_outputs import get_step
23
+
24
+
25
+ @dataclass
26
+ class Context:
27
+ """Context for an execution."""
28
+
29
+ step_name: str = None
30
+ execution_id: str = None
31
+ property_references: Dict[str, str] = field(default_factory=dict)
32
+ serialize_output_to_json: bool = False
33
+ func_step_s3_dir: str = None
34
+
35
+
36
+ @dataclass
37
+ class _Parameter:
38
+ """Parameter to a function."""
39
+
40
+ name: str
41
+
42
+
43
+ class _ParameterInteger(_Parameter):
44
+ """Integer parameter to a function."""
45
+
46
+ ...
47
+
48
+
49
+ class _ParameterFloat(_Parameter):
50
+ """Float parameter to a function."""
51
+
52
+ ...
53
+
54
+
55
+ class _ParameterString(_Parameter):
56
+ """String parameter to a function."""
57
+
58
+ ...
59
+
60
+
61
+ class _ParameterBoolean(_Parameter):
62
+ """Boolean parameter to a function."""
63
+
64
+ ...
65
+
66
+
67
+ @dataclass
68
+ class _Properties:
69
+ """Properties of classic steps."""
70
+
71
+ path: str
72
+
73
+
74
+ @dataclass
75
+ class _ExecutionVariable:
76
+ """Execution variable."""
77
+
78
+ name: str
79
+
80
+
81
+ @dataclass
82
+ class _S3BaseUriIdentifier:
83
+ """Identifies that the class refers to function step s3 base uri.
84
+
85
+ The s3_base_uri = s3_root_uri + pipeline_name.
86
+ This identifier is resolved in function step runtime by SDK.
87
+ """
88
+
89
+ NAME = "S3_BASE_URI"
90
+
91
+
92
+ @dataclass
93
+ class _DelayedReturn:
94
+ """Delayed return from a function."""
95
+
96
+ uri: Union[_Properties, List[Union[str, _Parameter, _ExecutionVariable]]]
97
+ reference_path: Tuple = field(default_factory=tuple)
98
+
99
+
100
+ class _ExecutionVariableResolver:
101
+ """Resolve execution variables."""
102
+
103
+ def __init__(self, context: Context):
104
+ """Resolve execution variables."""
105
+ self._context = context
106
+
107
+ def resolve(self, execution_variable: _ExecutionVariable):
108
+ """Resolve a single execution variable.
109
+
110
+ Args:
111
+ execution_variable: execution variable to resolve.
112
+ Returns:
113
+ resolved value
114
+ """
115
+ return self._context.property_references[f"Execution.{execution_variable.name}"]
116
+
117
+
118
+ class _ParameterResolver:
119
+ """Resolve parameters."""
120
+
121
+ def __init__(self, context: Context):
122
+ """Resolve parameters."""
123
+ self._context = context
124
+
125
+ def resolve(self, parameter: _Parameter):
126
+ """Resolve a single property reference.
127
+
128
+ Args:
129
+ parameter: parameter to resolve.
130
+ Returns:
131
+ resolved value
132
+ """
133
+ if isinstance(parameter, _ParameterInteger):
134
+ return int(self._context.property_references[f"Parameters.{parameter.name}"])
135
+ if isinstance(parameter, _ParameterFloat):
136
+ return float(self._context.property_references[f"Parameters.{parameter.name}"])
137
+ if isinstance(parameter, _ParameterString):
138
+ return self._context.property_references[f"Parameters.{parameter.name}"]
139
+
140
+ return self._context.property_references[f"Parameters.{parameter.name}"] == "true"
141
+
142
+
143
+ class _PropertiesResolver:
144
+ """Resolve classic step properties."""
145
+
146
+ def __init__(self, context: Context):
147
+ """Resolve classic step properties."""
148
+ self._context = context
149
+
150
+ def resolve(self, properties: _Properties):
151
+ """Resolve classic step properties.
152
+
153
+ Args:
154
+ properties: classic step properties.
155
+ Returns:
156
+ resolved value
157
+ """
158
+ return self._context.property_references[properties.path]
159
+
160
+
161
+ class _DelayedReturnResolver:
162
+ """Resolve delayed returns."""
163
+
164
+ def __init__(
165
+ self,
166
+ delayed_returns: List[_DelayedReturn],
167
+ hmac_key: str,
168
+ properties_resolver: _PropertiesResolver,
169
+ parameter_resolver: _ParameterResolver,
170
+ execution_variable_resolver: _ExecutionVariableResolver,
171
+ s3_base_uri: str,
172
+ **settings,
173
+ ):
174
+ """Resolve delayed return.
175
+
176
+ Args:
177
+ delayed_returns: list of delayed returns to resolve.
178
+ hmac_key: key used to encrypt serialized and deserialized function and arguments.
179
+ properties_resolver: resolver used to resolve step properties.
180
+ parameter_resolver: resolver used to pipeline parameters.
181
+ execution_variable_resolver: resolver used to resolve execution variables.
182
+ s3_base_uri (str): the s3 base uri of the function step that
183
+ the serialized artifacts will be uploaded to.
184
+ The s3_base_uri = s3_root_uri + pipeline_name.
185
+ **settings: settings to pass to the deserialization function.
186
+ """
187
+ self._s3_base_uri = s3_base_uri
188
+ self._parameter_resolver = parameter_resolver
189
+ self._execution_variable_resolver = execution_variable_resolver
190
+ self._properties_resolver = properties_resolver
191
+ # different delayed returns can have the same uri, so we need to dedupe
192
+ uris = {
193
+ self._resolve_delayed_return_uri(delayed_return) for delayed_return in delayed_returns
194
+ }
195
+
196
+ def deserialization_task(uri):
197
+ return uri, deserialize_obj_from_s3(
198
+ sagemaker_session=settings["sagemaker_session"],
199
+ s3_uri=uri,
200
+ hmac_key=hmac_key,
201
+ )
202
+
203
+ with ThreadPoolExecutor() as executor:
204
+ self._deserialized_objects = dict(executor.map(deserialization_task, uris))
205
+
206
+ def resolve(self, delayed_return: _DelayedReturn) -> Any:
207
+ """Resolve a single delayed return.
208
+
209
+ Args:
210
+ delayed_return: delayed return to resolve.
211
+ Returns:
212
+ resolved delayed return.
213
+ """
214
+ deserialized_obj = self._deserialized_objects[
215
+ self._resolve_delayed_return_uri(delayed_return)
216
+ ]
217
+ return _retrieve_child_item(delayed_return, deserialized_obj)
218
+
219
+ def _resolve_delayed_return_uri(self, delayed_return: _DelayedReturn):
220
+ """Resolve the s3 uri of the delayed return."""
221
+ if isinstance(delayed_return.uri, _Properties):
222
+ return self._properties_resolver.resolve(delayed_return.uri)
223
+
224
+ # Keep the following old resolution logics to keep backward compatible
225
+ uri = []
226
+ for component in delayed_return.uri:
227
+ if isinstance(component, _Parameter):
228
+ uri.append(self._parameter_resolver.resolve(component))
229
+ elif isinstance(component, _ExecutionVariable):
230
+ uri.append(self._execution_variable_resolver.resolve(component))
231
+ elif isinstance(component, _S3BaseUriIdentifier):
232
+ uri.append(self._s3_base_uri)
233
+ else:
234
+ uri.append(component)
235
+ return s3_path_join(*uri)
236
+
237
+
238
+ def _retrieve_child_item(delayed_return: _DelayedReturn, deserialized_obj: Any):
239
+ """Retrieve child item from deserialized object."""
240
+ result = deserialized_obj
241
+ for component in delayed_return.reference_path:
242
+ result = result[component[1]]
243
+ return result
244
+
245
+
246
+ def resolve_pipeline_variables(
247
+ context: Context,
248
+ func_args: Tuple,
249
+ func_kwargs: Dict,
250
+ hmac_key: str,
251
+ s3_base_uri: str,
252
+ **settings,
253
+ ):
254
+ """Resolve pipeline variables.
255
+
256
+ Args:
257
+ context: context for the execution.
258
+ func_args: function args.
259
+ func_kwargs: function kwargs.
260
+ hmac_key: key used to encrypt serialized and deserialized function and arguments.
261
+ s3_base_uri: the s3 base uri of the function step that the serialized artifacts
262
+ will be uploaded to. The s3_base_uri = s3_root_uri + pipeline_name.
263
+ **settings: settings to pass to the deserialization function.
264
+ """
265
+
266
+ delayed_returns = []
267
+
268
+ if func_args is not None:
269
+ for arg in func_args:
270
+ if isinstance(arg, _DelayedReturn):
271
+ delayed_returns.append(arg)
272
+ if func_kwargs is not None:
273
+ for arg in func_kwargs.values():
274
+ if isinstance(arg, _DelayedReturn):
275
+ delayed_returns.append(arg)
276
+
277
+ # build the resolvers
278
+ parameter_resolver = _ParameterResolver(context)
279
+ execution_variable_resolver = _ExecutionVariableResolver(context)
280
+ properties_resolver = _PropertiesResolver(context)
281
+ delayed_return_resolver = _DelayedReturnResolver(
282
+ delayed_returns=delayed_returns,
283
+ hmac_key=hmac_key,
284
+ properties_resolver=properties_resolver,
285
+ parameter_resolver=parameter_resolver,
286
+ execution_variable_resolver=execution_variable_resolver,
287
+ s3_base_uri=s3_base_uri,
288
+ **settings,
289
+ )
290
+
291
+ # resolve the pipeline variables
292
+ resolved_func_args = None
293
+ if func_args is not None:
294
+ resolved_func_args = []
295
+ for arg in func_args:
296
+ if isinstance(arg, _Parameter):
297
+ resolved_func_args.append(parameter_resolver.resolve(arg))
298
+ elif isinstance(arg, _ExecutionVariable):
299
+ resolved_func_args.append(execution_variable_resolver.resolve(arg))
300
+ elif isinstance(arg, _Properties):
301
+ resolved_func_args.append(properties_resolver.resolve(arg))
302
+ elif isinstance(arg, _DelayedReturn):
303
+ resolved_func_args.append(delayed_return_resolver.resolve(arg))
304
+ else:
305
+ resolved_func_args.append(arg)
306
+ resolved_func_args = tuple(resolved_func_args)
307
+
308
+ resolved_func_kwargs = None
309
+ if func_kwargs is not None:
310
+ resolved_func_kwargs = {}
311
+ for key, value in func_kwargs.items():
312
+ if isinstance(value, _Parameter):
313
+ resolved_func_kwargs[key] = parameter_resolver.resolve(value)
314
+ elif isinstance(value, _ExecutionVariable):
315
+ resolved_func_kwargs[key] = execution_variable_resolver.resolve(value)
316
+ elif isinstance(value, _Properties):
317
+ resolved_func_kwargs[key] = properties_resolver.resolve(value)
318
+ elif isinstance(value, _DelayedReturn):
319
+ resolved_func_kwargs[key] = delayed_return_resolver.resolve(value)
320
+ else:
321
+ resolved_func_kwargs[key] = value
322
+
323
+ return resolved_func_args, resolved_func_kwargs
324
+
325
+
326
+ def convert_pipeline_variables_to_pickleable(func_args: Tuple, func_kwargs: Dict):
327
+ """Convert pipeline variables to pickleable.
328
+
329
+ Args:
330
+ func_args: function args.
331
+ func_kwargs: function kwargs.
332
+ """
333
+
334
+ from sagemaker.core.helper.pipeline_variable import PipelineVariable
335
+
336
+ from sagemaker.mlops.workflow.function_step import DelayedReturn
337
+
338
+ def convert(arg):
339
+ if isinstance(arg, DelayedReturn):
340
+ return _DelayedReturn(
341
+ uri=get_step(arg)._properties.OutputDataConfig.S3OutputPath._pickleable,
342
+ reference_path=arg._reference_path,
343
+ )
344
+
345
+ if isinstance(arg, PipelineVariable):
346
+ return arg._pickleable
347
+
348
+ return arg
349
+
350
+ converted_func_args = tuple(convert(arg) for arg in func_args)
351
+ converted_func_kwargs = {key: convert(arg) for key, arg in func_kwargs.items()}
352
+
353
+ return converted_func_args, converted_func_kwargs