code: def _parse_axis_from_substring(smoothie_substring):
      '''
      Returns the axis in the expected string "N:12.3", where "N" is the
      axis, and "12.3" is a floating point value for the axis' position
      '''
      try:
          return smoothie_substring.split(':')[0].title()  # upper 1st letter
      except (ValueError, IndexError, TypeError, AttributeError):
          log.exception('Unexpected argument to _parse_axis_from_substring:')
          raise ParseError(
              'Unexpected argument to _parse_axis_from_substring: {}'.format(
                  smoothie_substring)f _parse_axis_from_substring(smoothie_substring):
      '''
      Returns the axis in the expected string "N:12.3", where "N" is the
      axis, and "12.3" is a floating point value for the axis' position
      '''
      try:
          return smoothie_substring.split(':')[0].title()  # upper 1st letter
      except (ValueError, IndexError, TypeError, AttributeError):
          log.exception('Unexpected argument to _parse_axis_from_substring:')
          raise ParseError(
              'Unexpected argument to _parse_axis_from_substring: {}'.format(
                  smoothie_substring))
docs: Returns the axis in the expected string "N:12.3", where "N" is the
      axis, and "12.3" is a floating point value for the axis' position