<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_step_by_name(self, name):
 """Extracts step by name from the pipeline. Extracted Step is a fully functional pipeline as well. All upstream Steps are already defined. Args: name (str):
 name of the step to be fetched Returns: Step (obj):
 extracted step """

        self._validate_step_name(name)
        name = str(name)
        try:
            return self.all_upstream_steps[name]
        except KeyError as e:
            msg = 'No Step with name "{}" found. ' \
                  'You have following Steps: {}'.format(name, list(self.all_upstream_steps.keys()))
            raise StepError(msg) from e