docs: def _prepare_init_params_from_job_description(cls, job_details, model_channel_name=None):
          """Convert the job description to init params that can be handled by the class constructor
  
          Args:
              job_details: the returned job details from a describe_training_job API call.
              model_channel_name (str): Name of the channel where pre-trained model data will be downloaded
  
          Returns:
               dictionary: The transformed init_params
  
          """
          init_params = super(Framework, cls)._prepare_init_params_from_job_description(job_details, model_channel_name)
  
          init_params['entry_point'] = json.loads(init_params['hyperparameters'].get(SCRIPT_PARAM_NAME))
          init_params['source_dir'] = json.loads(init_params['hyperparameters'].get(DIR_PARAM_NAME))
          init_params['enable_cloudwatch_metrics'] = json.loads(
              init_params['hyperparameters'].get(CLOUDWATCH_METRICS_PARAM_NAME))
          init_params['container_log_level'] = json.loads(
              init_params['hyperparameters'].get(CONTAINER_LOG_LEVEL_PARAM_NAME))
  
          hyperparameters = {}
          for k, v in init_params['hyperparameters'].items():
              # Tuning jobs add this special hyperparameter which is not JSON serialized
              if k == '_tuning_objective_metric':
                  if v.startswith('"') and v.endswith('"'):
                      v = v.strip('"')
                  hyperparameters[k] = v
              else:
                  hyperparameters[k] = json.loads(v)
  
          init_params['hyperparameters'] = hyperparameters
  
          return init_params