List directory contents on the device.

    Args:
      path: List the contents of this directory.
      timeout: Timeout to use for this operation.

    Returns:
      Generator yielding DeviceFileStat tuples representing the contents of
    the requested path.

def list(self, path, timeout=None):
    """List directory contents on the device.

    Args:
      path: List the contents of this directory.
      timeout: Timeout to use for this operation.

    Returns:
      Generator yielding DeviceFileStat tuples representing the contents of
    the requested path.
    """
    transport = DentFilesyncTransport(self.stream)
    transport.write_data('LIST', path, timeout)
    return (DeviceFileStat(dent_msg.name, dent_msg.mode,
                           dent_msg.size, dent_msg.time) for dent_msg in
            transport.read_until_done('DENT', timeout))