class_docstr: Handle end-to-end training and deployment of custom RLEstimator code.
class_docstr_tok: ["Handle","end-to-end","training","and","deployment","of","custom","RLEstimator","code","."]
docstr: Convert the job description to init params.
  
  This is done so that the init params 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
docstr_tok: ["Convert","the","job","description","to","init","params",".","This","is","done","so","that","the","init","params","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"]
code: def _prepare_init_params_from_job_description(
      cls, job_details, model_channel_name=None
  ):
      """Convert the job description to init params.
  
      This is done so that the init params 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(
          RLEstimator, cls
      )._prepare_init_params_from_job_description(
          job_details, model_channel_name
      )
  
      image_uri = init_params.pop("image_uri")
      framework, _, tag, _ = fw_utils.framework_name_from_image(
          image_uri
      )
  
      if not framework:
          # If we were unable to parse the framework name from the image it is not one of our
          # officially supported images, in this case just add the image to the init params.
          init_params["image_uri"] = image_uri
          return init_params
  
      toolkit, toolkit_version = cls._toolkit_and_version_from_tag(tag)
  
      if not cls._is_combination_supported(
          toolkit, toolkit_version, framework
      ):
          raise ValueError(
              "Training job: {} didn't use image for requested framework".format(
                  job_details["TrainingJobName"]
              )
          )
  
      init_params["toolkit"] = RLToolkit(toolkit)
      init_params["toolkit_version"] = toolkit_version
      init_params["framework"] = RLFramework(framework)
  
      return init_params
  
imports: from __future__ import absolute_import
  import enum
  import logging
  import re
  from typing import Union, Optional, List, Dict
  from sagemaker import image_uris, fw_utils
  from sagemaker.estimator import Framework, EstimatorBase
  from sagemaker.model import FrameworkModel, SAGEMAKER_OUTPUT_LOCATION
  from sagemaker.mxnet.model import MXNetModel
  from sagemaker.tensorflow.model import TensorFlowModel
  from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT
  from sagemaker.workflow.entities import PipelineVariable
label_desc: Use image node_id 4 for calling the RLEstimator obj's underlying member method code with example usage: obj._prepare_init_params_from_job_description(cls, job_details, model_channel_name) and returns: init_params, init_params