code: def _prepare_for_training(self, job_name=None):
          
          if job_name is not None:
              self._current_job_name = job_name
          else:
              # honor supplied base_job_name or generate it
              if self.base_job_name:
                  base_name = self.base_job_name
              elif isinstance(self, sagemaker.algorithm.AlgorithmEstimator):
                  base_name = self.algorithm_arn.split('/')[-1]  # pylint: disable=no-member
              else:
                  base_name = base_name_from_image(self.train_image())
  
              self._current_job_name = name_from_base(base_name)
  
          # if output_path was specified we use it otherwise initialize here.
          # For Local Mode with local_code=True we don't need an explicit output_path
          if self.output_path is None:
              local_code = get_config_value('local.local_code', self.sagemaker_session.config)
              if self.sagemaker_session.local_mode and local_code:
                  self.output_path = ''
              else:
                  self.output_path = 's3://{}/'.format(self.sagemaker_session.default_bucket())
docs: Set any values in the estimator that need to be set before training.
  
          Args:
              * job_name (str): Name of the training job to be created. If not specified, one is generated,
                  using the base name given to the constructor if applicable.