code: def go_to_step(self, step):
          
          self.stackedWidget.setCurrentWidget(step)
  
          # Disable the Next button unless new data already entered
          self.pbnNext.setEnabled(step.is_ready_to_next_step())
  
          # Enable the Back button unless it's not the first step
          self.pbnBack.setEnabled(
              step not in [self.step_kw_purpose, self.step_fc_functions1]
              or self.parent_step is not None)
  
          # Set Next button label
          if (step in [self.step_kw_summary, self.step_fc_analysis]
                  and self.parent_step is None):
              self.pbnNext.setText(tr('Finish'))
          elif step == self.step_fc_summary:
              self.pbnNext.setText(tr('Run'))
          else:
              self.pbnNext.setText(tr('Next'))
  
          # Run analysis after switching to the new step
          if step == self.step_fc_analysis:
              self.step_fc_analysis.setup_and_run_analysis()
  
          # Set lblSelectCategory label if entering the kw mode
          # from the ifcw mode
          if step == self.step_kw_purpose and self.parent_step:
              if self.parent_step in [self.step_fc_hazlayer_from_canvas,
                                      self.step_fc_hazlayer_from_browser]:
                  text_label = category_question_hazard
              elif self.parent_step in [self.step_fc_explayer_from_canvas,
                                        self.step_fc_explayer_from_browser]:
                  text_label = category_question_exposure
              else:
                  text_label = category_question_aggregation
              self.step_kw_purpose.lblSelectCategory.setText(text_label)
docs: Set the stacked widget to the given step, set up the buttons,
             and run all operations that should start immediately after
             entering the new step.
  
          :param step: The step widget to be moved to.
          :type step: WizardStep