code: def getOption(self, name):
          
          try:
              value = lock_and_call(
                  lambda: self._impl.getOption(name).value(),
                  self._lock
              )
          except RuntimeError:
              return None
          else:
              try:
                  return int(value)
              except ValueError:
                  try:
                      return float(value)
                  except ValueError:
                      return value
docs: Get the current value of the specified option. If the option does not
           exist, returns None.
  
           Args:
              name: Option name.
  
          Returns:
              Value of the option.
  
          Raises:
              InvalidArgumet: if the option name is not valid.