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
@@ -0,0 +1,13 @@
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
+ """Utilities for providing a more pythonic style wrapper of boto."""
@@ -0,0 +1,228 @@
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
+ """Provides utilities for custom boto type objects."""
14
+ from __future__ import absolute_import
15
+
16
+ from sagemaker.core.apiutils import _boto_functions, _utils
17
+ from sagemaker.core.common_utils import format_tags
18
+
19
+
20
+ class ApiObject(object):
21
+ """A Python class representation of a boto API object.
22
+
23
+ Converts boto dicts of 'UpperCamelCase' names to dicts into/from a Python object with standard
24
+ python members. Clients invoke to_boto on an instance of ApiObject to transform the ApiObject
25
+ into a boto representation. Clients invoke from_boto on a sub-class of ApiObject to
26
+ instantiate an instance of that class from a boto representation.
27
+ """
28
+
29
+ # A map from boto 'UpperCamelCase' name to member name. If a boto name does not appear in
30
+ # this dict then it is converted to lower_snake_case.
31
+ _custom_boto_names = {}
32
+
33
+ # A map from name to an ApiObject subclass. Allows ApiObjects to contain ApiObject members.
34
+ _custom_boto_types = {}
35
+
36
+ def __init__(self, **kwargs):
37
+ """Init ApiObject."""
38
+ self.__dict__.update(kwargs)
39
+
40
+ @classmethod
41
+ def _boto_ignore(cls):
42
+ """Response fields to ignore by default."""
43
+ return ["ResponseMetadata"]
44
+
45
+ @classmethod
46
+ def from_boto(cls, boto_dict, **kwargs):
47
+ """Construct an instance of this ApiObject from a boto response.
48
+
49
+ Args:
50
+ boto_dict (dict): A dictionary of a boto response.
51
+ **kwargs: Arbitrary keyword arguments
52
+ """
53
+ if boto_dict is None:
54
+ return None
55
+
56
+ boto_dict = {k: v for k, v in boto_dict.items() if k not in cls._boto_ignore()}
57
+ custom_boto_names_to_member_names = {a: b for b, a in cls._custom_boto_names.items()}
58
+ cls_kwargs = _boto_functions.from_boto(
59
+ boto_dict, custom_boto_names_to_member_names, cls._custom_boto_types
60
+ )
61
+ cls_kwargs.update(kwargs)
62
+ return cls(**cls_kwargs)
63
+
64
+ @classmethod
65
+ def to_boto(cls, obj):
66
+ """Convert an object to a boto representation.
67
+
68
+ Args:
69
+ obj (dict): The object to convert to boto.
70
+ """
71
+ if not isinstance(obj, dict):
72
+ var_dict = vars(obj)
73
+ else:
74
+ var_dict = obj
75
+ return _boto_functions.to_boto(var_dict, cls._custom_boto_names, cls._custom_boto_types)
76
+
77
+ def __eq__(self, other):
78
+ """Return True if this ApiObject equals other."""
79
+ if isinstance(other, self.__class__):
80
+ return self.__dict__ == other.__dict__
81
+ return False
82
+
83
+ def __ne__(self, other):
84
+ """Return True if this ApiObject does not equal other."""
85
+ return not self.__eq__(other)
86
+
87
+ def __hash__(self):
88
+ """Return a hashcode for this ApiObject."""
89
+ return hash(tuple(sorted(self.__dict__.items())))
90
+
91
+ def __repr__(self):
92
+ """Return a string representation of this ApiObject."""
93
+ return "{}({})".format(
94
+ type(self).__name__,
95
+ ",".join(["{}={}".format(k, repr(v)) for k, v in vars(self).items()]),
96
+ )
97
+
98
+
99
+ class Record(ApiObject):
100
+ """A boto based Active Record class based on convention of CRUD operations."""
101
+
102
+ # update / delete / list method names
103
+ _boto_update_method = None
104
+ _boto_delete_method = None
105
+ _boto_list_method = None
106
+
107
+ # List of member names to convert to boto representations and pass to the update method.
108
+ _boto_update_members = []
109
+
110
+ # List of member names to convert to boto representations and pass to the delete method.
111
+ _boto_delete_members = []
112
+
113
+ def __init__(self, sagemaker_session=None, **kwargs):
114
+ """Init Record."""
115
+ self.sagemaker_session = sagemaker_session
116
+ super(Record, self).__init__(**kwargs)
117
+
118
+ @classmethod
119
+ def _list(
120
+ cls,
121
+ boto_list_method,
122
+ list_item_factory,
123
+ boto_list_items_name,
124
+ boto_next_token_name="NextToken",
125
+ sagemaker_session=None,
126
+ **kwargs,
127
+ ):
128
+ """List objects from the SageMaker API."""
129
+ sagemaker_session = sagemaker_session or _utils.default_session()
130
+ sagemaker_client = sagemaker_session.sagemaker_client
131
+ next_token = None
132
+ try:
133
+ while True:
134
+ list_request_kwargs = _boto_functions.to_boto(
135
+ kwargs, cls._custom_boto_names, cls._custom_boto_types
136
+ )
137
+ if next_token:
138
+ list_request_kwargs[boto_next_token_name] = next_token
139
+ list_method = getattr(sagemaker_client, boto_list_method)
140
+ list_method_response = list_method(**list_request_kwargs)
141
+ list_items = list_method_response.get(boto_list_items_name, [])
142
+ next_token = list_method_response.get(boto_next_token_name)
143
+ for item in list_items:
144
+ yield list_item_factory(item)
145
+ if not next_token:
146
+ break
147
+ except StopIteration:
148
+ return
149
+
150
+ @classmethod
151
+ def _search(
152
+ cls,
153
+ search_resource,
154
+ search_item_factory,
155
+ boto_next_token_name="NextToken",
156
+ sagemaker_session=None,
157
+ **kwargs,
158
+ ):
159
+ """Search for objects with the SageMaker API."""
160
+ sagemaker_session = sagemaker_session or _utils.default_session()
161
+ sagemaker_client = sagemaker_session.sagemaker_client
162
+
163
+ next_token = None
164
+ try:
165
+ while True:
166
+ search_request_kwargs = _boto_functions.to_boto(
167
+ kwargs, cls._custom_boto_names, cls._custom_boto_types
168
+ )
169
+ search_request_kwargs["Resource"] = search_resource
170
+ if next_token:
171
+ search_request_kwargs[boto_next_token_name] = next_token
172
+ search_method = getattr(sagemaker_client, "search")
173
+ search_method_response = search_method(**search_request_kwargs)
174
+ search_items = search_method_response.get("Results", [])
175
+ next_token = search_method_response.get(boto_next_token_name)
176
+ for item in search_items:
177
+ # _TrialComponent class in experiments module is not public currently
178
+ class_name = cls.__name__.lstrip("_")
179
+ if class_name in item:
180
+ yield search_item_factory(item[class_name])
181
+ if not next_token:
182
+ break
183
+ except StopIteration:
184
+ return
185
+
186
+ @classmethod
187
+ def _construct(cls, boto_method_name, sagemaker_session=None, **kwargs):
188
+ """Create and invoke a SageMaker API call request."""
189
+ sagemaker_session = sagemaker_session or _utils.default_session()
190
+ instance = cls(sagemaker_session, **kwargs)
191
+ return instance._invoke_api(boto_method_name, kwargs)
192
+
193
+ def _set_tags(self, resource_arn=None, tags=None):
194
+ """Set tags on this ApiObject.
195
+
196
+ Args:
197
+ resource_arn (str): The arn of the Record
198
+ tags (Optional[Tags]): An array of Tag objects that set to Record
199
+
200
+ Returns:
201
+ A list of key, value pair objects. i.e. [{"key":"value"}]
202
+ """
203
+ tag_list = self.sagemaker_session.sagemaker_client.add_tags(
204
+ ResourceArn=resource_arn, Tags=format_tags(tags)
205
+ )["Tags"]
206
+ return tag_list
207
+
208
+ def with_boto(self, boto_dict):
209
+ """Update this ApiObject with a boto response.
210
+
211
+ Args:
212
+ boto_dict (dict): A dictionary of a boto response.
213
+ """
214
+ custom_boto_names_to_member_names = {a: b for b, a in self._custom_boto_names.items()}
215
+ self.__dict__.update(
216
+ **_boto_functions.from_boto(
217
+ boto_dict, custom_boto_names_to_member_names, self._custom_boto_types
218
+ )
219
+ )
220
+ return self
221
+
222
+ def _invoke_api(self, boto_method, boto_method_members):
223
+ """Invoke a SageMaker API."""
224
+ api_values = {k: v for k, v in vars(self).items() if k in boto_method_members}
225
+ api_kwargs = self.to_boto(api_values)
226
+ api_method = getattr(self.sagemaker_session.sagemaker_client, boto_method)
227
+ api_boto_response = api_method(**api_kwargs)
228
+ return self.with_boto(api_boto_response)
@@ -0,0 +1,130 @@
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
+ """Provides utilities for converting between python style and boto style."""
14
+ from __future__ import absolute_import
15
+
16
+ import re
17
+
18
+
19
+ def to_camel_case(snake_case):
20
+ """Convert a snake case string to camel case.
21
+
22
+ Args:
23
+ snake_case (str): String to convert to camel case.
24
+
25
+ Returns:
26
+ str: String converted to camel case.
27
+ """
28
+ return "".join([x.title() for x in snake_case.split("_")])
29
+
30
+
31
+ def to_pascal_case(snake_case):
32
+ """Convert a snake case string to PascalCase.
33
+
34
+ Args:
35
+ snake_case (str): String to convert to PascalCase.
36
+
37
+ Returns:
38
+ str: String converted to PascalCase.
39
+ """
40
+ return "".join(word.capitalize() for word in snake_case.split("_"))
41
+
42
+
43
+ def to_snake_case(name):
44
+ """Convert a camel case string to snake case.
45
+
46
+ Args:
47
+ name (str): String to convert to snake case.
48
+
49
+ Returns:
50
+ str: String converted to snake case.
51
+ """
52
+ s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name)
53
+ return re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower()
54
+
55
+
56
+ def from_boto(boto_dict, boto_name_to_member_name, member_name_to_type):
57
+ """Convert an UpperCamelCase boto response to a snake case representation.
58
+
59
+ Args:
60
+ boto_dict (dict[str, ?]): A boto response dictionary.
61
+ boto_name_to_member_name (dict[str, str]): A map from boto name to snake_case name.
62
+ If a given boto name is not in the map then a default mapping is applied.
63
+ member_name_to_type (dict[str, (_base_types.ApiObject, boolean)]): A map from snake case
64
+ name to a type description tuple. The first element of the tuple, a subclass of
65
+ ApiObject, is the type of the mapped object. The second element indicates whether the
66
+ mapped element is a collection or singleton.
67
+
68
+ Returns:
69
+ dict: Boto response in snake case.
70
+ """
71
+ from_boto_values = {}
72
+ for boto_name, boto_value in boto_dict.items():
73
+ # Convert the boto_name to a snake-case name by preferentially looking up the boto name in
74
+ # boto_name_to_member_name before defaulting to the snake case representation
75
+ member_name = boto_name_to_member_name.get(boto_name, to_snake_case(boto_name))
76
+
77
+ # If the member name maps to a subclass of _base_types.ApiObject
78
+ # (i.e. it's in member_name_to_type), then transform its boto dictionary using that type:
79
+ if member_name in member_name_to_type:
80
+ api_type, is_collection = member_name_to_type[member_name]
81
+ if is_collection:
82
+ if isinstance(boto_value, dict):
83
+ member_value = {
84
+ key: api_type.from_boto(value) for key, value in boto_value.items()
85
+ }
86
+ else:
87
+ member_value = [api_type.from_boto(item) for item in boto_value]
88
+ else:
89
+ member_value = api_type.from_boto(boto_value)
90
+ # If the member name does not have a custom type definition then simply assign it the
91
+ # boto value. Appropriate if the type is simple and requires not further conversion (e.g.
92
+ # a number or list of strings).
93
+ else:
94
+ member_value = boto_value
95
+ from_boto_values[member_name] = member_value
96
+ return from_boto_values
97
+
98
+
99
+ def to_boto(member_vars, member_name_to_boto_name, member_name_to_type):
100
+ """Convert a dict of of snake case names to values into a boto UpperCamelCase representation.
101
+
102
+ Args:
103
+ member_vars dict[str, ?]: A map from snake case name to value.
104
+ member_name_to_boto_name dict[str, ?]: A map from snake_case name to boto name.
105
+
106
+ Returns:
107
+ dict: boto dict converted to snake case
108
+
109
+ """
110
+ to_boto_values = {}
111
+ # Strip out all entries in member_vars that have a None value. None values are treated as
112
+ # not having a value
113
+ # set, required as API operations can have optional parameters that may not take a null value.
114
+ member_vars = {k: v for k, v in member_vars.items() if v is not None}
115
+
116
+ # Iterate over each snake_case name and its value and map to a camel case name. If the value
117
+ # is an ApiObject subclass then recursively map its entries.
118
+ for member_name, member_value in member_vars.items():
119
+ boto_name = member_name_to_boto_name.get(member_name, to_camel_case(member_name))
120
+ api_type, is_api_collection_type = member_name_to_type.get(member_name, (None, None))
121
+ if is_api_collection_type and isinstance(member_value, dict):
122
+ boto_value = {
123
+ k: api_type.to_boto(v) if api_type else v for k, v in member_value.items()
124
+ }
125
+ elif is_api_collection_type and isinstance(member_value, list):
126
+ boto_value = [api_type.to_boto(v) if api_type else v for v in member_value]
127
+ else:
128
+ boto_value = api_type.to_boto(member_value) if api_type else member_value
129
+ to_boto_values[boto_name] = boto_value
130
+ return to_boto_values
@@ -0,0 +1,34 @@
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
+ """Provides utilities for instantiating dependencies to boto-python objects."""
14
+ from __future__ import absolute_import
15
+
16
+ import random
17
+ import time
18
+ from sagemaker.core.helper.session_helper import Session
19
+
20
+
21
+ def suffix():
22
+ """Generate a random string of length 4."""
23
+ alph = "abcdefghijklmnopqrstuvwxyz"
24
+ return "-".join([time.strftime("%Y-%m-%d-%H%M%S"), "".join(random.sample(alph, 4))])
25
+
26
+
27
+ def name(prefix):
28
+ """Generate a new name with the specified prefix."""
29
+ return "-".join([prefix, suffix()])
30
+
31
+
32
+ def default_session():
33
+ """Create a default session."""
34
+ return Session()
@@ -0,0 +1,35 @@
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
+ """Backward compatibility module for base deserializers.
14
+
15
+ This module provides backward compatibility for code importing from
16
+ sagemaker.core.base_deserializers. The actual implementation is in
17
+ sagemaker.core.deserializers.
18
+
19
+ .. deprecated:: 3.0.0
20
+ Use :mod:`sagemaker.core.deserializers` instead.
21
+ """
22
+ from __future__ import absolute_import
23
+
24
+ import warnings
25
+
26
+ # Re-export all deserializers from the correct location
27
+ from sagemaker.core.deserializers import * # noqa: F401, F403
28
+
29
+ # Issue deprecation warning
30
+ warnings.warn(
31
+ "Importing from sagemaker.core.base_deserializers is deprecated. "
32
+ "Use sagemaker.core.deserializers instead.",
33
+ DeprecationWarning,
34
+ stacklevel=2,
35
+ )
@@ -0,0 +1,35 @@
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
+ """Backward compatibility module for base serializers.
14
+
15
+ This module provides backward compatibility for code importing from
16
+ sagemaker.core.base_serializers. The actual implementation is in
17
+ sagemaker.core.serializers.
18
+
19
+ .. deprecated:: 3.0.0
20
+ Use :mod:`sagemaker.core.serializers` instead.
21
+ """
22
+ from __future__ import absolute_import
23
+
24
+ import warnings
25
+
26
+ # Re-export all serializers from the correct location
27
+ from sagemaker.core.serializers import * # noqa: F401, F403
28
+
29
+ # Issue deprecation warning
30
+ warnings.warn(
31
+ "Importing from sagemaker.core.base_serializers is deprecated. "
32
+ "Use sagemaker.core.serializers instead.",
33
+ DeprecationWarning,
34
+ stacklevel=2,
35
+ )