docs: def addConfig(self, name, default=None, cast=None, required=False, description=None):
          """
          Adds the given configuration option to the ConfigManager.
  
          Inputs: name        - The configuration name to accept.
                  required    - A boolean indicating whether or not the configuration option is required or not.
                  cast        - A type (or function accepting 1 argument and returning an object) to cast the input as.
                                If any error occurs during casting an InvalidConfigurationException will be raised.
                  default     - The default value to assign to this configuration option.  Note that None is not a valid
                                default if required=True.
                  description - A human readable description of this configuration parameter.  Will be displayed when the
                                program is run with a -h flag.
          """
  
          # Validate the name
          if not self.configNameRE.match(name):
              raise InvalidConfigurationException("Invalid configuration name: %s" % name)
  
          self.configs[self._sanitizeName(name)] = {
              'default': default,
              'cast': cast,
              'required': required,
              'description': description
          }