docs: def set_state_data(cls, entity, data):
          """
          Sets the state data for the given entity to the given data.
  
          This also works for unmanaged entities.
          """
          attr_names = get_domain_class_attribute_names(type(entity))
          nested_items = []
          for attr, new_attr_value in iteritems_(data):
              if not attr.entity_attr in attr_names:
                  raise ValueError('Can not set attribute "%s" for entity '
                                   '"%s".' % (attr.entity_attr, entity))
              if '.' in attr.entity_attr:
                  nested_items.append((attr, new_attr_value))
                  continue
              else:
                  setattr(entity, attr.entity_attr, new_attr_value)
          for attr, new_attr_value in nested_items:
              try:
                  set_nested_attribute(entity, attr.entity_attr, new_attr_value)
              except AttributeError as exc:
                  if not new_attr_value is None:
                      raise exc