code: def load_headers(fsns:List[int]):
      
      ip = get_ipython()
      ip.user_ns['_headers'] = {}
      for type_ in ['raw', 'processed']:
          print("Loading %d headers (%s)" % (len(fsns), type_), flush=True)
          processed = type_ == 'processed'
          headers = []
          for f in fsns:
              for l in [l_ for l_ in ip.user_ns['_loaders'] if l_.processed == processed]:
                  try:
                      headers.append(l.loadheader(f))
                      break
                  except FileNotFoundError:
                      continue
          allsamplenames = {h.title for h in headers}
          if not headers:
              print('NO HEADERS READ FOR TYPE "%s"' % type_)
          else:
              print("%d headers (%s) out of %d have been loaded successfully." % (len(headers), type_, len(fsns)))
              print('Read FSN range:', min([h.fsn for h in headers]), 'to', max([h.fsn for h in headers]))
              print("Samples covered by these headers:")
              print("    " + "\n    ".join(sorted(allsamplenames)), flush=True)
          if processed:
              ip.user_ns['allsamplenames'] = allsamplenames
          ip.user_ns['_headers'][type_] = headers
docs: Load header files