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 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 ''