sagemaker-core 1.0.47__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 (363) 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 +410 -4
  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/__init__.py +0 -0
  176. sagemaker/core/jumpstart/hub/constants.py +16 -0
  177. sagemaker/core/jumpstart/hub/hub.py +291 -0
  178. sagemaker/core/jumpstart/hub/interfaces.py +936 -0
  179. sagemaker/core/jumpstart/hub/parser_utils.py +70 -0
  180. sagemaker/core/jumpstart/hub/parsers.py +288 -0
  181. sagemaker/core/jumpstart/hub/types.py +35 -0
  182. sagemaker/core/jumpstart/hub/utils.py +260 -0
  183. sagemaker/core/jumpstart/models.py +499 -0
  184. sagemaker/core/jumpstart/notebook_utils.py +575 -0
  185. sagemaker/core/jumpstart/parameters.py +20 -0
  186. sagemaker/core/jumpstart/payload_utils.py +239 -0
  187. sagemaker/core/jumpstart/region_config.json +163 -0
  188. sagemaker/core/jumpstart/search.py +171 -0
  189. sagemaker/core/jumpstart/serializers.py +81 -0
  190. sagemaker/core/jumpstart/session_utils.py +234 -0
  191. sagemaker/core/jumpstart/types.py +3044 -0
  192. sagemaker/core/jumpstart/utils.py +1731 -0
  193. sagemaker/core/jumpstart/validators.py +257 -0
  194. sagemaker/core/lambda_helper.py +312 -0
  195. sagemaker/core/lineage/__init__.py +42 -0
  196. sagemaker/core/lineage/_api_types.py +239 -0
  197. sagemaker/core/lineage/_utils.py +49 -0
  198. sagemaker/core/lineage/action.py +345 -0
  199. sagemaker/core/lineage/artifact.py +646 -0
  200. sagemaker/core/lineage/association.py +190 -0
  201. sagemaker/core/lineage/context.py +505 -0
  202. sagemaker/core/lineage/lineage_trial_component.py +191 -0
  203. sagemaker/core/lineage/query.py +732 -0
  204. sagemaker/core/lineage/visualizer.py +346 -0
  205. sagemaker/core/local/__init__.py +18 -0
  206. sagemaker/core/local/data.py +413 -0
  207. sagemaker/core/local/entities.py +678 -0
  208. sagemaker/core/local/exceptions.py +17 -0
  209. sagemaker/core/local/image.py +1243 -0
  210. sagemaker/core/local/local_session.py +739 -0
  211. sagemaker/core/local/utils.py +245 -0
  212. sagemaker/core/logs.py +181 -0
  213. sagemaker/core/metadata_properties.py +56 -0
  214. sagemaker/core/metric_definitions.py +91 -0
  215. sagemaker/core/mlflow/__init__.py +38 -0
  216. sagemaker/core/mlflow/forward_sagemaker_metrics.py +44 -0
  217. sagemaker/core/model_card/__init__.py +26 -0
  218. sagemaker/core/model_life_cycle.py +51 -0
  219. sagemaker/core/model_metrics.py +160 -0
  220. sagemaker/core/model_monitor/__init__.py +66 -0
  221. sagemaker/core/model_monitor/clarify_model_monitoring.py +1495 -0
  222. sagemaker/core/model_monitor/cron_expression_generator.py +82 -0
  223. sagemaker/core/model_monitor/data_capture_config.py +115 -0
  224. sagemaker/core/model_monitor/data_quality_monitoring_config.py +66 -0
  225. sagemaker/core/model_monitor/dataset_format.py +102 -0
  226. sagemaker/core/model_monitor/model_monitoring.py +4266 -0
  227. sagemaker/core/model_monitor/monitoring_alert.py +76 -0
  228. sagemaker/core/model_monitor/monitoring_files.py +506 -0
  229. sagemaker/core/model_monitor/utils.py +793 -0
  230. sagemaker/core/model_registry.py +480 -0
  231. sagemaker/core/model_uris.py +97 -0
  232. sagemaker/core/modules/__init__.py +19 -0
  233. sagemaker/core/modules/configs.py +226 -0
  234. sagemaker/core/modules/constants.py +37 -0
  235. sagemaker/core/modules/distributed.py +182 -0
  236. sagemaker/core/modules/local_core/__init__.py +0 -0
  237. sagemaker/core/modules/local_core/local_container.py +605 -0
  238. sagemaker/core/modules/templates.py +83 -0
  239. sagemaker/core/modules/train/__init__.py +14 -0
  240. sagemaker/core/modules/train/container_drivers/__init__.py +14 -0
  241. sagemaker/core/modules/train/container_drivers/common/__init__.py +14 -0
  242. sagemaker/core/modules/train/container_drivers/common/utils.py +213 -0
  243. sagemaker/core/modules/train/container_drivers/distributed_drivers/__init__.py +14 -0
  244. sagemaker/core/modules/train/container_drivers/distributed_drivers/basic_script_driver.py +81 -0
  245. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_driver.py +123 -0
  246. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_utils.py +302 -0
  247. sagemaker/core/modules/train/container_drivers/distributed_drivers/torchrun_driver.py +129 -0
  248. sagemaker/core/modules/train/container_drivers/scripts/__init__.py +14 -0
  249. sagemaker/core/modules/train/container_drivers/scripts/environment.py +305 -0
  250. sagemaker/core/modules/train/sm_recipes/__init__.py +0 -0
  251. sagemaker/core/modules/train/sm_recipes/utils.py +330 -0
  252. sagemaker/core/modules/types.py +19 -0
  253. sagemaker/core/modules/utils.py +194 -0
  254. sagemaker/core/network.py +185 -0
  255. sagemaker/core/parameter.py +173 -0
  256. sagemaker/core/payloads.py +185 -0
  257. sagemaker/core/processing.py +1597 -0
  258. sagemaker/core/remote_function/__init__.py +19 -0
  259. sagemaker/core/remote_function/checkpoint_location.py +47 -0
  260. sagemaker/core/remote_function/client.py +1285 -0
  261. sagemaker/core/remote_function/core/__init__.py +0 -0
  262. sagemaker/core/remote_function/core/_custom_dispatch_table.py +72 -0
  263. sagemaker/core/remote_function/core/pipeline_variables.py +353 -0
  264. sagemaker/core/remote_function/core/serialization.py +422 -0
  265. sagemaker/core/remote_function/core/stored_function.py +226 -0
  266. sagemaker/core/remote_function/custom_file_filter.py +128 -0
  267. sagemaker/core/remote_function/errors.py +104 -0
  268. sagemaker/core/remote_function/invoke_function.py +172 -0
  269. sagemaker/core/remote_function/job.py +2140 -0
  270. sagemaker/core/remote_function/logging_config.py +38 -0
  271. sagemaker/core/remote_function/runtime_environment/__init__.py +14 -0
  272. sagemaker/core/remote_function/runtime_environment/bootstrap_runtime_environment.py +605 -0
  273. sagemaker/core/remote_function/runtime_environment/mpi_utils_remote.py +252 -0
  274. sagemaker/core/remote_function/runtime_environment/runtime_environment_manager.py +554 -0
  275. sagemaker/core/remote_function/runtime_environment/spark_app.py +18 -0
  276. sagemaker/core/remote_function/spark_config.py +149 -0
  277. sagemaker/core/resource_requirements.py +168 -0
  278. {sagemaker_core/main → sagemaker/core}/resources.py +20121 -11728
  279. sagemaker/core/s3/__init__.py +41 -0
  280. sagemaker/core/s3/client.py +367 -0
  281. sagemaker/core/s3/utils.py +175 -0
  282. sagemaker/core/script_uris.py +93 -0
  283. sagemaker/core/serializers/__init__.py +11 -0
  284. sagemaker/core/serializers/base.py +510 -0
  285. sagemaker/core/serializers/implementations.py +159 -0
  286. sagemaker/core/serializers/utils.py +223 -0
  287. sagemaker/core/serverless_inference_config.py +63 -0
  288. sagemaker/core/session_settings.py +55 -0
  289. sagemaker/core/shapes/__init__.py +3 -0
  290. sagemaker/core/shapes/model_card_shapes.py +159 -0
  291. {sagemaker_core/main → sagemaker/core/shapes}/shapes.py +6384 -1865
  292. sagemaker/core/spark/__init__.py +16 -0
  293. sagemaker/core/spark/defaults.py +16 -0
  294. sagemaker/core/spark/processing.py +1380 -0
  295. sagemaker/core/telemetry/__init__.py +23 -0
  296. sagemaker/core/telemetry/constants.py +84 -0
  297. sagemaker/core/telemetry/telemetry_logging.py +284 -0
  298. sagemaker/core/tools/__init__.py +1 -0
  299. {sagemaker_core → sagemaker/core}/tools/codegen.py +4 -4
  300. {sagemaker_core → sagemaker/core}/tools/constants.py +23 -15
  301. {sagemaker_core → sagemaker/core}/tools/data_extractor.py +1 -1
  302. {sagemaker_core → sagemaker/core}/tools/method.py +1 -1
  303. sagemaker/core/tools/model_card/generate_model_card_from_schema.py +562 -0
  304. {sagemaker_core → sagemaker/core}/tools/resources_codegen.py +165 -98
  305. {sagemaker_core → sagemaker/core}/tools/resources_extractor.py +5 -13
  306. {sagemaker_core → sagemaker/core}/tools/shapes_codegen.py +16 -17
  307. {sagemaker_core → sagemaker/core}/tools/shapes_extractor.py +29 -67
  308. {sagemaker_core → sagemaker/core}/tools/templates.py +39 -17
  309. sagemaker/core/training/__init__.py +14 -0
  310. sagemaker/core/training/configs.py +333 -0
  311. sagemaker/core/training/constants.py +37 -0
  312. sagemaker/core/training/utils.py +77 -0
  313. sagemaker/core/training_compiler/__init__.py +16 -0
  314. sagemaker/core/training_compiler/config.py +197 -0
  315. sagemaker/core/training_compiler_config.py +197 -0
  316. sagemaker/core/transformer.py +793 -0
  317. sagemaker/core/user_agent.py +76 -0
  318. sagemaker/core/utilities/__init__.py +24 -0
  319. sagemaker/core/utilities/cache.py +169 -0
  320. sagemaker/core/utilities/search_expression.py +133 -0
  321. sagemaker/core/utils/__init__.py +48 -0
  322. sagemaker/core/utils/code_injection/__init__.py +0 -0
  323. {sagemaker_core/main → sagemaker/core/utils}/code_injection/codec.py +2 -2
  324. {sagemaker_core/main → sagemaker/core/utils}/code_injection/shape_dag.py +6479 -136
  325. {sagemaker_core/main → sagemaker/core/utils}/exceptions.py +8 -8
  326. sagemaker_core/main/default_configs_helper.py → sagemaker/core/utils/intelligent_defaults_helper.py +5 -6
  327. {sagemaker_core/main → sagemaker/core/utils}/logs.py +1 -2
  328. {sagemaker_core/main → sagemaker/core/utils}/utils.py +25 -20
  329. sagemaker/core/workflow/__init__.py +152 -0
  330. sagemaker/core/workflow/conditions.py +313 -0
  331. sagemaker/core/workflow/entities.py +58 -0
  332. sagemaker/core/workflow/execution_variables.py +89 -0
  333. sagemaker/core/workflow/functions.py +193 -0
  334. sagemaker/core/workflow/parameters.py +222 -0
  335. sagemaker/core/workflow/pipeline_context.py +394 -0
  336. sagemaker/core/workflow/pipeline_definition_config.py +31 -0
  337. sagemaker/core/workflow/properties.py +285 -0
  338. sagemaker/core/workflow/step_outputs.py +65 -0
  339. sagemaker/core/workflow/utilities.py +507 -0
  340. sagemaker/lineage/__init__.py +33 -0
  341. sagemaker/lineage/action.py +28 -0
  342. sagemaker/lineage/artifact.py +28 -0
  343. sagemaker/lineage/context.py +28 -0
  344. sagemaker/lineage/lineage_trial_component.py +28 -0
  345. {sagemaker_core-1.0.47.dist-info → sagemaker_core-2.1.1.dist-info}/METADATA +28 -9
  346. sagemaker_core-2.1.1.dist-info/RECORD +355 -0
  347. sagemaker_core-2.1.1.dist-info/top_level.txt +1 -0
  348. sagemaker_core/__init__.py +0 -4
  349. sagemaker_core/_version.py +0 -3
  350. sagemaker_core/helper/session_helper.py +0 -769
  351. sagemaker_core/resources/__init__.py +0 -1
  352. sagemaker_core/shapes/__init__.py +0 -1
  353. sagemaker_core/tools/__init__.py +0 -1
  354. sagemaker_core-1.0.47.dist-info/RECORD +0 -35
  355. sagemaker_core-1.0.47.dist-info/top_level.txt +0 -1
  356. {sagemaker_core → sagemaker/core}/helper/__init__.py +0 -0
  357. {sagemaker_core/main → sagemaker/core/huggingface/training_compiler}/__init__.py +0 -0
  358. {sagemaker_core/main/code_injection → sagemaker/core/jumpstart/factory}/__init__.py +0 -0
  359. {sagemaker_core/main → sagemaker/core/utils}/code_injection/base.py +0 -0
  360. {sagemaker_core/main → sagemaker/core/utils}/code_injection/constants.py +0 -0
  361. {sagemaker_core/main → sagemaker/core/utils}/user_agent.py +0 -0
  362. {sagemaker_core-1.0.47.dist-info → sagemaker_core-2.1.1.dist-info}/WHEEL +0 -0
  363. {sagemaker_core-1.0.47.dist-info → sagemaker_core-2.1.1.dist-info}/licenses/LICENSE +0 -0
@@ -16,17 +16,13 @@ import pprint
16
16
  from functools import lru_cache
17
17
  from typing import Optional, Any
18
18
 
19
- from sagemaker_core.tools.constants import (
20
- BASIC_JSON_TYPES_TO_PYTHON_TYPES,
21
- SHAPE_DAG_FILE_PATH,
22
- SHAPES_WITH_JSON_FIELD_ALIAS,
23
- )
24
- from sagemaker_core.main.utils import (
19
+ from sagemaker.core.tools.constants import BASIC_JSON_TYPES_TO_PYTHON_TYPES, SHAPE_DAG_FILE_PATH
20
+ from sagemaker.core.utils.utils import (
25
21
  reformat_file_with_black,
26
22
  convert_to_snake_case,
27
23
  snake_to_pascal,
28
24
  )
29
- from sagemaker_core.tools.data_extractor import load_combined_shapes_data
25
+ from sagemaker.core.tools.data_extractor import load_combined_shapes_data
30
26
 
31
27
 
32
28
  class ShapesExtractor:
@@ -103,11 +99,6 @@ class ShapesExtractor:
103
99
  _dag[shape] = {"type": "structure", "members": []}
104
100
  for member, member_attrs in shape_data["members"].items():
105
101
  shape_node_member = {"name": member, "shape": member_attrs["shape"]}
106
- # Add alias if field name is json, to address the Bug: https://github.com/aws/sagemaker-python-sdk/issues/4944
107
- if shape in SHAPES_WITH_JSON_FIELD_ALIAS and member == "Json":
108
- shape_node_member["name"] = "JsonFormat"
109
- shape_node_member["alias"] = "json"
110
-
111
102
  member_shape_dict = _all_shapes[member_attrs["shape"]]
112
103
  shape_node_member["type"] = member_shape_dict["type"]
113
104
  _dag[shape]["members"].append(shape_node_member)
@@ -126,21 +117,19 @@ class ShapesExtractor:
126
117
  _dag[shape]["value_type"] = _all_shapes[_map_value_shape]["type"]
127
118
  return _dag
128
119
 
129
- def _evaluate_list_type(self, member_shape, add_shapes_prefix=True):
120
+ def _evaluate_list_type(self, member_shape):
130
121
  list_shape_name = member_shape["member"]["shape"]
131
122
  list_shape_member = self.combined_shapes[list_shape_name]
132
123
  list_shape_type = list_shape_member["type"]
133
124
  if list_shape_type == "list":
134
- member_type = f"List[{self._evaluate_list_type(list_shape_member, add_shapes_prefix)}]"
125
+ member_type = f"List[{self._evaluate_list_type(list_shape_member)}]"
135
126
  elif list_shape_type == "map":
136
- member_type = f"List[{self._evaluate_map_type(list_shape_member, add_shapes_prefix)}]"
127
+ member_type = f"List[{self._evaluate_map_type(list_shape_member)}]"
137
128
  elif list_shape_type == "structure":
138
129
  # handling an edge case of nested structure
139
130
  if list_shape_name == "SearchExpression":
140
131
  member_type = f"List['{list_shape_name}']"
141
132
  else:
142
- if add_shapes_prefix:
143
- list_shape_name = f"shapes.{list_shape_name}"
144
133
  member_type = f"List[{list_shape_name}]"
145
134
  elif list_shape_type in BASIC_JSON_TYPES_TO_PYTHON_TYPES.keys():
146
135
  member_type = f"List[{BASIC_JSON_TYPES_TO_PYTHON_TYPES[list_shape_type]}]"
@@ -150,7 +139,7 @@ class ShapesExtractor:
150
139
  )
151
140
  return member_type
152
141
 
153
- def _evaluate_map_type(self, member_shape, add_shapes_prefix=True):
142
+ def _evaluate_map_type(self, member_shape):
154
143
  map_key_shape_name = member_shape["key"]["shape"]
155
144
  map_value_shape_name = member_shape["value"]["shape"]
156
145
  map_key_shape = self.combined_shapes[map_key_shape_name]
@@ -163,8 +152,6 @@ class ShapesExtractor:
163
152
  "Unhandled map shape key type encountered, needs extra logic to handle this"
164
153
  )
165
154
  if map_value_shape_type == "structure":
166
- if add_shapes_prefix:
167
- map_value_shape_name = f"shapes.{map_value_shape_name}"
168
155
  member_type = (
169
156
  f"Dict[{BASIC_JSON_TYPES_TO_PYTHON_TYPES[map_key_shape_type]}, "
170
157
  f"{map_value_shape_name}]"
@@ -172,12 +159,12 @@ class ShapesExtractor:
172
159
  elif map_value_shape_type == "list":
173
160
  member_type = (
174
161
  f"Dict[{BASIC_JSON_TYPES_TO_PYTHON_TYPES[map_key_shape_type]}, "
175
- f"{self._evaluate_list_type(map_value_shape, add_shapes_prefix)}]"
162
+ f"{self._evaluate_list_type(map_value_shape)}]"
176
163
  )
177
164
  elif map_value_shape_type == "map":
178
165
  member_type = (
179
166
  f"Dict[{BASIC_JSON_TYPES_TO_PYTHON_TYPES[map_key_shape_type]}, "
180
- f"{self._evaluate_map_type(map_value_shape, add_shapes_prefix)}]"
167
+ f"{self._evaluate_map_type(map_value_shape)}]"
181
168
  )
182
169
  else:
183
170
  member_type = (
@@ -187,13 +174,9 @@ class ShapesExtractor:
187
174
  return member_type
188
175
 
189
176
  def generate_data_shape_members_and_string_body(
190
- self,
191
- shape,
192
- resource_plan: Optional[Any] = None,
193
- required_override=(),
194
- add_shapes_prefix=True,
177
+ self, shape, resource_plan: Optional[Any] = None, required_override=()
195
178
  ):
196
- shape_members = self.generate_shape_members(shape, required_override, add_shapes_prefix)
179
+ shape_members = self.generate_shape_members(shape, required_override)
197
180
  resource_names = None
198
181
  if resource_plan is not None:
199
182
  resource_names = [row["resource_name"] for _, row in resource_plan.iterrows()]
@@ -207,31 +190,29 @@ class ShapesExtractor:
207
190
  and snake_to_pascal(attr[: -len("_name")]) in resource_names
208
191
  ):
209
192
  if value.startswith("Optional"):
210
- init_data_body += f"{attr}: Optional[Union[str, object]] = Unassigned()\n"
193
+ init_data_body += (
194
+ f"{attr}: Optional[Union[StrPipeVar, object]] = Unassigned()\n"
195
+ )
211
196
  else:
212
- init_data_body += f"{attr}: Union[str, object]\n"
197
+ init_data_body += f"{attr}: Union[StrPipeVar, object]\n"
213
198
  elif attr == "lambda":
214
199
  init_data_body += f"# {attr}: {value}\n"
215
200
  else:
216
201
  init_data_body += f"{attr}: {value}\n"
217
202
  return shape_members, init_data_body
218
203
 
219
- def generate_data_shape_string_body(
220
- self, shape, resource_plan, required_override=(), add_shapes_prefix=True
221
- ):
204
+ def generate_data_shape_string_body(self, shape, resource_plan, required_override=()):
222
205
  return self.generate_data_shape_members_and_string_body(
223
- shape, resource_plan, required_override, add_shapes_prefix
206
+ shape, resource_plan, required_override
224
207
  )[1]
225
208
 
226
- def generate_data_shape_members(
227
- self, shape, resource_plan, required_override=(), add_shapes_prefix=True
228
- ):
209
+ def generate_data_shape_members(self, shape, resource_plan, required_override=()):
229
210
  return self.generate_data_shape_members_and_string_body(
230
- shape, resource_plan, required_override, add_shapes_prefix
211
+ shape, resource_plan, required_override
231
212
  )[0]
232
213
 
233
214
  @lru_cache
234
- def generate_shape_members(self, shape, required_override=(), add_shapes_prefix=True):
215
+ def generate_shape_members(self, shape, required_override=()):
235
216
  shape_dict = self.combined_shapes[shape]
236
217
  members = shape_dict["members"]
237
218
  required_args = list(required_override) or shape_dict.get("required", [])
@@ -239,48 +220,29 @@ class ShapesExtractor:
239
220
  # bring the required members in front
240
221
  ordered_members = {key: members[key] for key in required_args if key in members}
241
222
  ordered_members.update(members)
242
- field_aliases = {}
243
-
244
223
  for member_name, member_attrs in ordered_members.items():
245
224
  member_shape_name = member_attrs["shape"]
246
225
  if self.combined_shapes[member_shape_name]:
247
226
  member_shape = self.combined_shapes[member_shape_name]
248
227
  member_shape_type = member_shape["type"]
249
228
  if member_shape_type == "structure":
250
- if add_shapes_prefix:
251
- member_shape_name = f"shapes.{member_shape_name}"
252
- member_type = f"{member_shape_name}"
229
+ member_type = member_shape_name
253
230
  elif member_shape_type == "list":
254
- member_type = self._evaluate_list_type(member_shape, add_shapes_prefix)
231
+ member_type = self._evaluate_list_type(member_shape)
255
232
  elif member_shape_type == "map":
256
- member_type = self._evaluate_map_type(member_shape, add_shapes_prefix)
233
+ member_type = self._evaluate_map_type(member_shape)
257
234
  else:
258
235
  # Shape is a simple type like string
259
236
  member_type = BASIC_JSON_TYPES_TO_PYTHON_TYPES[member_shape_type]
260
237
  else:
261
238
  raise Exception("The Shape definition mush exist. The Json Data might be corrupt")
262
-
263
- is_required = member_name in required_args
264
- # Add alias if field name is json, to address the Bug: https://github.com/aws/sagemaker-python-sdk/issues/4944
265
- if shape in SHAPES_WITH_JSON_FIELD_ALIAS and member_name == "Json":
266
- updated_member_name_snake_case = "json_format"
267
- field_aliases[updated_member_name_snake_case] = "json"
268
- init_data_body[f"{updated_member_name_snake_case}"] = (
269
- (
270
- f"{member_type} = Field(alias='{field_aliases[updated_member_name_snake_case]}')"
271
- )
272
- if is_required
273
- else f"Optional[{member_type}] = Field(default=Unassigned(), alias='json')"
274
- )
239
+ member_name_snake_case = convert_to_snake_case(member_name)
240
+ if member_name in required_args:
241
+ init_data_body[f"{member_name_snake_case}"] = f"{member_type}"
275
242
  else:
276
- member_name_snake_case = convert_to_snake_case(member_name)
277
- if is_required:
278
- init_data_body[f"{member_name_snake_case}"] = f"{member_type}"
279
- else:
280
- init_data_body[f"{member_name_snake_case}"] = (
281
- f"Optional[{member_type}] = Unassigned()"
282
- )
283
-
243
+ init_data_body[f"{member_name_snake_case}"] = (
244
+ f"Optional[{member_type}] = Unassigned()"
245
+ )
284
246
  return init_data_body
285
247
 
286
248
  @lru_cache
@@ -40,7 +40,7 @@ def create(
40
40
  cls,
41
41
  {create_args}
42
42
  session: Optional[Session] = None,
43
- region: Optional[str] = None,
43
+ region: Optional[StrPipeVar] = None,
44
44
  ) -> Optional["{resource_name}"]:
45
45
  {docstring}
46
46
  logger.info("Creating {resource_lower} resource.")
@@ -71,7 +71,7 @@ def create(
71
71
  cls,
72
72
  {create_args}
73
73
  session: Optional[Session] = None,
74
- region: Optional[str] = None,
74
+ region: Optional[StrPipeVar] = None,
75
75
  ) -> Optional["{resource_name}"]:
76
76
  {docstring}
77
77
  logger.info("Creating {resource_lower} resource.")
@@ -102,7 +102,7 @@ def load(
102
102
  cls,
103
103
  {import_args}
104
104
  session: Optional[Session] = None,
105
- region: Optional[str] = None,
105
+ region: Optional[StrPipeVar] = None,
106
106
  ) -> Optional["{resource_name}"]:
107
107
  {docstring}
108
108
  logger.info(f"Importing {resource_lower} resource.")
@@ -214,7 +214,7 @@ def get(
214
214
  cls,
215
215
  {describe_args}
216
216
  session: Optional[Session] = None,
217
- region: Optional[str] = None,
217
+ region: Optional[StrPipeVar] = None,
218
218
  ) -> Optional["{resource_name}"]:
219
219
  {docstring}
220
220
  operation_input_args = {{
@@ -454,7 +454,7 @@ if "delete_failed" in current_status.lower() or "deletefailed" in current_status
454
454
 
455
455
  DELETED_STATUS_CHECK = """
456
456
  if current_status.lower() == "deleted":
457
- print("Resource was deleted.")
457
+ logger.info("Resource was deleted.")
458
458
  return
459
459
  """
460
460
 
@@ -504,7 +504,7 @@ def get_all(
504
504
  cls,
505
505
  {get_all_args}
506
506
  session: Optional[Session] = None,
507
- region: Optional[str] = None,
507
+ region: Optional[StrPipeVar] = None,
508
508
  ) -> ResourceIterator["{resource}"]:
509
509
  {docstring}
510
510
  client = Base.get_sagemaker_client(session=session, region_name=region, service_name="{service_name}")
@@ -512,7 +512,6 @@ def get_all(
512
512
  operation_input_args = {{
513
513
  {operation_input_args}
514
514
  }}
515
- {extract_name_mapping}
516
515
  {custom_key_mapping}
517
516
  # serialize the input request
518
517
  operation_input_args = serialize(operation_input_args)
@@ -529,7 +528,7 @@ GET_ALL_METHOD_NO_ARGS_TEMPLATE = '''
529
528
  def get_all(
530
529
  cls,
531
530
  session: Optional[Session] = None,
532
- region: Optional[str] = None,
531
+ region: Optional[StrPipeVar] = None,
533
532
  ) -> ResourceIterator["{resource}"]:
534
533
  """
535
534
  Get all {resource} resources.
@@ -543,7 +542,6 @@ def get_all(
543
542
 
544
543
  """
545
544
  client = Base.get_sagemaker_client(session=session, region_name=region, service_name="{service_name}")
546
- {extract_name_mapping}
547
545
  {custom_key_mapping}
548
546
  return ResourceIterator(
549
547
  {resource_iterator_args}
@@ -602,7 +600,8 @@ DESERIALIZE_INPUT_AND_RESPONSE_TO_CLS_TEMPLATE = """
602
600
 
603
601
  RESOURCE_BASE_CLASS_TEMPLATE = """
604
602
  class Base(BaseModel):
605
- model_config = ConfigDict(protected_namespaces=(), validate_assignment=True, extra="forbid")
603
+ model_config = ConfigDict(protected_namespaces=(), validate_assignment=True, extra="forbid", arbitrary_types_allowed=True)
604
+ config_manager: ClassVar[SageMakerConfig] = SageMakerConfig()
606
605
 
607
606
  @classmethod
608
607
  def get_sagemaker_client(cls, session = None, region_name = None, service_name = 'sagemaker'):
@@ -615,17 +614,17 @@ class Base(BaseModel):
615
614
  try:
616
615
  for configurable_attribute in config_schema_for_resource:
617
616
  if kwargs.get(configurable_attribute) is None:
618
- resource_defaults = load_default_configs_for_resource_name(
617
+ resource_defaults = Base.config_manager.load_default_configs_for_resource_name(
619
618
  resource_name=resource_name
620
619
  )
621
- global_defaults = load_default_configs_for_resource_name(
620
+ global_defaults = Base.config_manager.load_default_configs_for_resource_name(
622
621
  resource_name="GlobalDefaults"
623
622
  )
624
- if config_value := get_config_value(
623
+ if config_value := Base.config_manager.get_resolved_config_value(
625
624
  configurable_attribute, resource_defaults, global_defaults
626
625
  ):
627
626
  resource_name = snake_to_pascal(configurable_attribute)
628
- class_object = getattr(shapes, resource_name, None) or globals().get(resource_name)
627
+ class_object = globals()[resource_name]
629
628
  kwargs[configurable_attribute] = class_object(**config_value)
630
629
  except BaseException as e:
631
630
  logger.debug("Could not load Default Configs. Continuing.", exc_info=True)
@@ -671,9 +670,7 @@ class Base(BaseModel):
671
670
  @staticmethod
672
671
  def _get_chained_attribute(item_value: Any):
673
672
  resource_name = type(item_value).__name__
674
- class_object = globals().get(resource_name) or getattr(shapes, resource_name, None)
675
- if class_object is None:
676
- return item_value
673
+ class_object = globals()[resource_name]
677
674
  return class_object(**Base.populate_chained_attributes(
678
675
  resource_name=resource_name,
679
676
  operation_input_args=vars(item_value)
@@ -714,3 +711,28 @@ Raises:
714
711
  error_message = e.response['Error']['Message']
715
712
  error_code = e.response['Error']['Code']
716
713
  ```"""
714
+
715
+ SERIALIZE_INPUT_ENDPOINT_TEMPLATE = """
716
+ use_serializer = False
717
+ if ((self.serializer is not None and self.deserializer is None) or
718
+ (self.serializer is None and self.deserializer is not None)):
719
+ raise ValueError("Both serializer and deserializer must be provided together, or neither should be provided")
720
+ if self.serializer is not None and self.deserializer is not None:
721
+ use_serializer = True
722
+ if use_serializer:
723
+ body = self.serializer.serialize(body)
724
+ operation_input_args = {{
725
+ {operation_input_args}
726
+ }}
727
+ # serialize the input request
728
+ operation_input_args = serialize(operation_input_args)
729
+ logger.debug(f"Serialized input request: {{operation_input_args}}")"""
730
+
731
+ DESERIALIZE_RESPONSE_ENDPOINT_TEMPLATE = """
732
+ transformed_response = transform(response, 'InvokeEndpointOutput')
733
+ # Deserialize the body if a deserializer is provided
734
+ if use_serializer:
735
+ body_content = transformed_response["body"]
736
+ deserialized_body = self.deserializer.deserialize(body_content, transformed_response["content_type"])
737
+ transformed_response["body"] = deserialized_body
738
+ return {return_type_conversion}(**transformed_response)"""
@@ -0,0 +1,14 @@
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
+ """Training configuration and utilities."""
14
+ from __future__ import absolute_import