code: def reset(self):
          
          self.clean_cache_upstream()
          self.set_mode_train()
          for step_obj in self.all_upstream_steps.values():
              step_obj.is_fittable = DEFAULT_TRAINING_SETUP['is_fittable']
              step_obj.force_fitting = DEFAULT_TRAINING_SETUP['force_fitting']
              step_obj.persist_output = DEFAULT_TRAINING_SETUP['persist_output']
              step_obj.cache_output = DEFAULT_TRAINING_SETUP['cache_output']
              step_obj.load_persisted_output = DEFAULT_TRAINING_SETUP['load_persisted_output']
          logger.info('Step {}, reset all upstream Steps to default training parameters, '
                      'including this Step'.format(self.name))
          return self
docs: Reset all upstream Steps to the default training parameters and
          cleans cache for all upstream Steps including this Step.
          Defaults are:
              'mode': 'train',
              'is_fittable': True,
              'force_fitting': True,
              'persist_output': False,
              'cache_output': False,
              'load_persisted_output': False