code: def __init__(self, rawOptions, numFiles):
      self.onlyTables = []
      self.skipTables = []
      self.fontNumber = -1
      for option, value in rawOptions:
          # general options
          if option == "-h":
              print(__doc__)
              sys.exit(0)
          elif option == "--version":
              from fontTools import version
  
              print(version)
              sys.exit(0)
          elif option == "-d":
              if not os.path.isdir(value):
                  raise getopt.GetoptError(
                      "The -d option value must be an existing directory"
                  )
              self.outputDir = value
          elif option == "-o":
              self.outputFile = value
          elif option == "-f":
              self.overWrite = True
          elif option == "-v":
              self.verbose = True
          elif option == "-q":
              self.quiet = True
          # dump options
          elif option == "-l":
              self.listTables = True
          elif option == "-t":
              # pad with space if table tag length is less than 4
              value = value.ljust(4)
              self.onlyTables.append(value)
          elif option == "-x":
              # pad with space if table tag length is less than 4
              value = value.ljust(4)
              self.skipTables.append(value)
          elif option == "-s":
              self.splitTables = True
          elif option == "-g":
              # -g implies (and forces) splitTables
              self.splitGlyphs = True
              self.splitTables = True
          elif option == "-i":
              self.disassembleInstructions = False
          elif option == "-z":
              validOptions = ("raw", "row", "bitwise", "extfile")
              if value not in validOptions:
                  raise getopt.GetoptError(
                      "-z does not allow %s as a format. Use %s"
                      % (option, validOptions)
                  )
              self.bitmapGlyphDataFormat = value
          elif option == "-y":
              self.fontNumber = int(value)
          # compile options
          elif option == "-m":
              self.mergeFile = value
          elif option == "-b":
              self.recalcBBoxes = False
          elif option == "-e":
              self.ignoreDecompileErrors = False
          elif option == "--unicodedata":
              self.unicodedata = value
          elif option == "--newline":
              validOptions = ("LF", "CR", "CRLF")
              if value == "LF":
                  self.newlinestr = "\n"
              elif value == "CR":
                  self.newlinestr = "\r"
              elif value == "CRLF":
                  self.newlinestr = "\r\n"
              else:
                  raise getopt.GetoptError(
                      "Invalid choice for --newline: %r (choose from %s)"
                      % (value, ", ".join(map(repr, validOptions)))
                  )
          elif option == "--recalc-timestamp":
              self.recalcTimestamp = True
          elif option == "--no-recalc-timestamp":
              self.recalcTimestamp = False
          elif option == "--flavor":
              self.flavor = value
          elif option == "--with-zopfli":
              self.useZopfli = True
      if self.verbose and self.quiet:
          raise getopt.GetoptError(
              "-q and -v options are mutually exclusive"
          )
      if self.verbose:
          self.logLevel = logging.DEBUG
      elif self.quiet:
          self.logLevel = logging.WARNING
      else:
          self.logLevel = logging.INFO
      if self.mergeFile and self.flavor:
          raise getopt.GetoptError(
              "-m and --flavor options are mutually exclusive"
          )
      if self.onlyTables and self.skipTables:
          raise getopt.GetoptError(
              "-t and -x options are mutually exclusive"
          )
      if self.mergeFile and numFiles > 1:
          raise getopt.GetoptError(
              "Must specify exactly one TTX source file when using -m"
          )
      if self.flavor != "woff" and self.useZopfli:
          raise getopt.GetoptError(
              "--with-zopfli option requires --flavor 'woff'"
          )
  
imports: from fontTools.ttLib import TTFont, TTLibError
  from fontTools.misc.macCreatorType import getMacCreatorAndType
  from fontTools.unicode import setUnicodeData
  from fontTools.misc.textTools import Tag, tostr
  from fontTools.misc.timeTools import timestampSinceEpoch
  from fontTools.misc.loggingTools import Timer
  from fontTools.misc.cliTools import makeOutputFileName
  import os
  import sys
  import getopt
  import re
  import logging
label_desc: Use image node_id 1 to create a new Options object from inherited base classes: object with example: obj = Options(rawOptions, numFiles)