<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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))