code: def parse_temperature_response(
          temperature_string: str) -> Mapping[str, Optional[float]]:
      '''
      Example input: "T:none C:25"
      '''
      err_msg = 'Unexpected argument to parse_temperature_response: {}'.format(
          temperature_string)
      if not temperature_string or \
              not isinstance(temperature_string, str):
          raise ParseError(err_msg)
      parsed_values = temperature_string.strip().split(' ')
      if len(parsed_values) < 2:
          log.error(err_msg)
          raise ParseError(err_msg)
  
      data = {
          parse_key_from_substring(s): parse_number_from_substring(s)
          for s in parsed_values[:2]
      }
      if 'C' not in data or 'T' not in data:
          raise ParseError(err_msg)
      data = {
          'current': data['C'],
          'target': data['T']
      }
      return datf parse_temperature_response(
          temperature_string: str) -> Mapping[str, Optional[float]]:
      '''
      Example input: "T:none C:25"
      '''
      err_msg = 'Unexpected argument to parse_temperature_response: {}'.format(
          temperature_string)
      if not temperature_string or \
              not isinstance(temperature_string, str):
          raise ParseError(err_msg)
      parsed_values = temperature_string.strip().split(' ')
      if len(parsed_values) < 2:
          log.error(err_msg)
          raise ParseError(err_msg)
  
      data = {
          parse_key_from_substring(s): parse_number_from_substring(s)
          for s in parsed_values[:2]
      }
      if 'C' not in data or 'T' not in data:
          raise ParseError(err_msg)
      data = {
          'current': data['C'],
          'target': data['T']
      }
      return data
docs: Example input: "T:none C:25"