<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def listobs(vis):
 """Textually describe the contents of a measurement set. vis (str) The path to the dataset. Returns A generator of lines of human-readable output Errors can only be detected by looking at the output. Example:: from pwkit.environments.casa import tasks for line in tasks.listobs('mydataset.ms'):
 print(line) """

    def inner_list(sink):
        try:
            ms = util.tools.ms()
            ms.open(vis)
            ms.summary(verbose=True)
            ms.close()
        except Exception as e:
            sink.post(b'listobs failed: %s' % e, priority=b'SEVERE')

    for line in util.forkandlog(inner_list):
        info = line.rstrip().split('\t', 3) # date, priority, origin, message
        if len(info) > 3:
            yield info[3]
        else:
            yield ''