docs: def _set_view_data(self, object_content):
          """Update the local object from the passed in object_content."""
          # A debugging convenience, allows inspection of the object_content
          # that was used to create the object
          logger.info("Setting view data for a %s", self.__class__)
          self._object_content = object_content
  
          for dynprop in object_content.propSet:
              # If the class hasn't defined the property, don't use it
              if dynprop.name not in self._valid_attrs:
                  logger.error("Server returned a property '%s' but the object"
                               " hasn't defined it so it is being ignored." %
                               dynprop.name)
                  continue
  
              try:
                  if not len(dynprop.val):
                      logger.info("Server returned empty value for %s",
                                  dynprop.name)
              except TypeError:
                  # This except allows us to pass over:
                  # TypeError: object of type 'datetime.datetime' has no len()
                  # It will be processed in the next code block
                  logger.info("%s of type %s has no len!",
                              dynprop.name, type(dynprop.val))
                  pass
  
              try:
                  # See if we have a cache attribute
                  cache = self._cache
              except AttributeError:
                  # If we don't create one and use it
                  cache = self._cache = {}
  
              # Values which contain classes starting with Array need
              # to be converted into a nicer Python list
              if dynprop.val.__class__.__name__.startswith('Array'):
                  # suds returns a list containing a single item, which
                  # is another list. Use the first item which is the real list
                  logger.info("Setting value of an Array* property")
                  logger.debug("%s being set to %s",
                               dynprop.name, dynprop.val[0])
                  now = time.time()
                  cache[dynprop.name] = (dynprop.val[0], now)
              else:
                  logger.info("Setting value of a single-valued property")
                  logger.debug("DynamicProperty value is a %s: ",
                               dynprop.val.__class__.__name__)
                  logger.debug("%s being set to %s", dynprop.name, dynprop.val)
                  now = time.time()
                  cache[dynprop.name] = (dynprop.val, now)