code: def set_values(self, profile, data, status, properties):
          ''' Update data based on data contained in properties '''
          if not self.init_ok or profile is None:
              return data, status
  
          for shortcut, value in properties.items():
              # find the given property from EEP
              target = profile.find(shortcut=shortcut)
              if not target:
                  # TODO: Should we raise an error?
                  self.logger.warning('Cannot find data description for shortcut %s', shortcut)
                  continue
  
              # update bit_data
              if target.name == 'value':
                  data = self._set_value(target, value, data)
              if target.name == 'enum':
                  data = self._set_enum(target, value, data)
              if target.name == 'status':
                  status = self._set_boolean(target, value, status)
          return data, statuf set_values(self, profile, data, status, properties):
          ''' Update data based on data contained in properties '''
          if not self.init_ok or profile is None:
              return data, status
  
          for shortcut, value in properties.items():
              # find the given property from EEP
              target = profile.find(shortcut=shortcut)
              if not target:
                  # TODO: Should we raise an error?
                  self.logger.warning('Cannot find data description for shortcut %s', shortcut)
                  continue
  
              # update bit_data
              if target.name == 'value':
                  data = self._set_value(target, value, data)
              if target.name == 'enum':
                  data = self._set_enum(target, value, data)
              if target.name == 'status':
                  status = self._set_boolean(target, value, status)
          return data, status
docs: Update data based on data contained in properties