code: def parse_flags(line):
      """
      Parse a line from a config file containing compile flags.
  
      Parameters
      ----------
      line : str
          A single line containing one or more compile flags.
  
      Returns
      -------
      d : dict
          Dictionary of parsed flags, split into relevant categories.
          These categories are the keys of `d`:
  
          * 'include_dirs'
          * 'library_dirs'
          * 'libraries'
          * 'macros'
          * 'ignored'
  
      """
      d = {
          "include_dirs": [],
          "library_dirs": [],
          "libraries": [],
          "macros": [],
          "ignored": [],
      }
  
      flags = (" " + line).split(" -")
      for flag in flags:
          flag = "-" + flag
          if len(flag) > 0:
              if flag.startswith("-I"):
                  d["include_dirs"].append(flag[2:].strip())
              elif flag.startswith("-L"):
                  d["library_dirs"].append(flag[2:].strip())
              elif flag.startswith("-l"):
                  d["libraries"].append(flag[2:].strip())
              elif flag.startswith("-D"):
                  d["macros"].append(flag[2:].strip())
              else:
                  d["ignored"].append(flag)
  
      return d
  
imports: import sys
  import re
  import os
  from configparser import RawConfigParser
label_desc: Use image node_id 1 for calling a global function with example usage: parse_flags(line) and returns: d