docs: def _object_with_attr(self, name):
          """
          Returns the first object that has the attribute `name`
  
          :param name: the attribute to filter by
          :type name: `str`
          :raises AttributeError: when no object has the named attribute
          """
          for obj in self._objects:
              if hasattr(obj, name):
                  return obj
  
          raise AttributeError("No object has attribute {!r}".format(name))