docs: def fluoview_description_metadata(description, ignoresections=None):
      """Return metatata from FluoView image description as dict.
  
      The FluoView image description format is unspecified. Expect failures.
  
      >>> descr = ('[Intensity Mapping]\\nMap Ch0: Range=00000 to 02047\\n'
      ...          '[Intensity Mapping End]')
      >>> fluoview_description_metadata(descr)
      {'Intensity Mapping': {'Map Ch0: Range': '00000 to 02047'}}
  
      """
      if not description.startswith('['):
          raise ValueError('invalid FluoView image description')
      if ignoresections is None:
          ignoresections = {'Region Info (Fields)', 'Protocol Description'}
  
      result = {}
      sections = [result]
      comment = False
      for line in description.splitlines():
          if not comment:
              line = line.strip()
          if not line:
              continue
          if line[0] == '[':
              if line[-5:] == ' End]':
                  # close section
                  del sections[-1]
                  section = sections[-1]
                  name = line[1:-5]
                  if comment:
                      section[name] = '\n'.join(section[name])
                  if name[:4] == 'LUT ':
                      a = numpy.array(section[name], dtype='uint8')
                      a.shape = -1, 3
                      section[name] = a
                  continue
              # new section
              comment = False
              name = line[1:-1]
              if name[:4] == 'LUT ':
                  section = []
              elif name in ignoresections:
                  section = []
                  comment = True
              else:
                  section = {}
              sections.append(section)
              result[name] = section
              continue
          # add entry
          if comment:
              section.append(line)
              continue
          line = line.split('=', 1)
          if len(line) == 1:
              section[line[0].strip()] = None
              continue
          key, value = line
          if key[:4] == 'RGB ':
              section.extend(int(rgb) for rgb in value.split())
          else:
              section[key.strip()] = astype(value.strip())
      return result