@@ -2466,32 +2466,55 @@ def update_model_card(self, model_card: Union[ModelCard, ModelPackageModelCard])
2466
2466
desc_model_package = sagemaker_session .sagemaker_client .describe_model_package (
2467
2467
ModelPackageName = self .model_package_arn
2468
2468
)
2469
+ if hasattr (model_card , "model_package_details" ):
2470
+ model_card .model_package_details = None
2469
2471
update_model_card_req = model_card ._create_request_args ()
2470
- if update_model_card_req ["ModelCardStatus" ] is not None :
2471
- if (
2472
- desc_model_package ["ModelCard" ]["ModelCardStatus" ]
2473
- == update_model_card_req ["ModelCardStatus" ]
2474
- ):
2475
- del update_model_card_req ["ModelCardStatus" ]
2476
-
2477
2472
if update_model_card_req .get ("ModelCardName" ) is not None :
2478
2473
del update_model_card_req ["ModelCardName" ]
2479
- if update_model_card_req .get ("Content" ) is not None :
2480
- previous_content_hash = _hash_content_str (
2481
- desc_model_package ["ModelCard" ]["ModelCardContent" ]
2482
- )
2483
- current_content_hash = _hash_content_str (update_model_card_req ["Content" ])
2484
- if (
2485
- previous_content_hash == current_content_hash
2486
- or update_model_card_req .get ("Content" ) == "{}"
2487
- or update_model_card_req .get ("Content" ) == "null"
2488
- ):
2489
- del update_model_card_req ["Content" ]
2490
- else :
2491
- update_model_card_req ["ModelCardContent" ] = update_model_card_req ["Content" ]
2492
- del update_model_card_req ["Content" ]
2493
- update_model_package_args = {
2494
- "ModelPackageArn" : self .model_package_arn ,
2495
- "ModelCard" : update_model_card_req ,
2496
- }
2497
- sagemaker_session .sagemaker_client .update_model_package (** update_model_package_args )
2474
+ if update_model_card_req ["Content" ] is not None :
2475
+ if "model_package_details" in update_model_card_req ["Content" ]:
2476
+ update_model_card_req ["Content" ].pop ("model_package_details" , None )
2477
+ update_model_card_req ["ModelCardContent" ] = update_model_card_req ["Content" ]
2478
+ del update_model_card_req ["Content" ]
2479
+
2480
+ if "ModelCard" in desc_model_package :
2481
+ if update_model_card_req ["ModelCardStatus" ] is not None :
2482
+ if (
2483
+ desc_model_package ["ModelCard" ]["ModelCardStatus" ]
2484
+ != update_model_card_req ["ModelCardStatus" ]
2485
+ ):
2486
+ new_mc_mp_req = update_model_card_req
2487
+ del new_mc_mp_req ["ModelCardContent" ]
2488
+ update_model_package_args = {
2489
+ "ModelPackageArn" : self .model_package_arn ,
2490
+ "ModelCard" : new_mc_mp_req ,
2491
+ }
2492
+ sagemaker_session .sagemaker_client .update_model_package (
2493
+ ** update_model_package_args
2494
+ )
2495
+
2496
+ if update_model_card_req .get ("ModelCardContent" ) is not None :
2497
+ previous_content_hash = _hash_content_str (
2498
+ desc_model_package ["ModelCard" ]["ModelCardContent" ]
2499
+ )
2500
+ current_content_hash = _hash_content_str (update_model_card_req ["ModelCardContent" ])
2501
+ if not (
2502
+ previous_content_hash == current_content_hash
2503
+ or update_model_card_req .get ("ModelCardContent" ) == "{}"
2504
+ or update_model_card_req .get ("ModelCardContent" ) == "null"
2505
+ ):
2506
+ new_mc_mp_req = update_model_card_req
2507
+ del new_mc_mp_req ["ModelCardStatus" ]
2508
+ update_model_package_args = {
2509
+ "ModelPackageArn" : self .model_package_arn ,
2510
+ "ModelCard" : new_mc_mp_req ,
2511
+ }
2512
+ sagemaker_session .sagemaker_client .update_model_package (
2513
+ ** update_model_package_args
2514
+ )
2515
+ else :
2516
+ update_model_package_args = {
2517
+ "ModelPackageArn" : self .model_package_arn ,
2518
+ "ModelCard" : update_model_card_req ,
2519
+ }
2520
+ sagemaker_session .sagemaker_client .update_model_package (** update_model_package_args )
0 commit comments