class_docstr: Wrapper around the standard 'getopt()' module that provides some
  handy extra functionality:
    * short and long options are tied together
    * options have help strings, and help text can be assembled
      from them
    * options set attributes of a passed-in object
    * boolean options can have "negative aliases" -- eg. if
      --quiet is the "negative alias" of --verbose, then "--quiet"
      on the command line sets 'verbose' to false
code: def __init__(self, option_table=None):
      # The option table is (currently) a list of tuples.  The
      # tuples may have 3 or four values:
      #   (long_option, short_option, help_string [, repeatable])
      # if an option takes an argument, its long_option should have '='
      # appended; short_option should just be a single character, no ':'
      # in any case.  If a long_option doesn't have a corresponding
      # short_option, short_option should be None.  All option tuples
      # must have long options.
      self.option_table = option_table
  
      # 'option_index' maps long option names to entries in the option
      # table (ie. those 3-tuples).
      self.option_index = {}
      if self.option_table:
          self._build_index()
  
      # 'alias' records (duh) alias options; {'foo': 'bar'} means
      # --foo is an alias for --bar
      self.alias = {}
  
      # 'negative_alias' keeps track of options that are the boolean
      # opposite of some other option
      self.negative_alias = {}
  
      # These keep track of the information in the option table.  We
      # don't actually populate these structures until we're ready to
      # parse the command-line, since the 'option_table' passed in here
      # isn't necessarily the final word.
      self.short_opts = []
      self.long_opts = []
      self.short2long = {}
      self.attr_name = {}
      self.takes_arg = {}
  
      # And 'option_order' is filled up in 'getopt()'; it records the
      # original order of options (and their values) on the command-line,
      # but expands short options, converts aliases, etc.
      self.option_order = []
  
imports: import sys, string, re
  import getopt
  from distutils.errors import *
label_desc: Use image node_id 1 to create a new FancyGetopt object  with example: obj = FancyGetopt(option_table)