@staticmethod
def _parse_wf_header(header):
    """
        Parse a waveform header send by our custom WF_HEADER command
        The reason why we are not using WFM:Outpre is that the documentation
        was not so sure about how its response might look

        Args:
            head (str): the result of a WF_HEADER command

        Returns:
            dict
        """
    head = header.split(';')
    keys = ['bytno', 'enc', 'npoints', 'xzero', 'xincr', 'yzero', 'yoff',
        'ymult', 'xunit', 'yunit']
    assert len(head) == len(keys
        ), 'Cannot read out all the header info I want!'
    parsed = dict(zip(keys, head))
    for k in parsed:
        try:
            f = float(parsed[k])
            parsed[k] = f
        except ValueError:
            continue
        parsed['xunit'] = parsed['xunit'].replace('"', '')
        parsed['yunit'] = parsed['yunit'].replace('"', '')
        parsed['npoints'] = int(parsed['npoints'])
    return parsed
