The check argument of the add_option()
method is used to provide
a function to check the option setting. In addition the function may also
do any further conversions, but it is recommended that the type
argument be used when possible. The check function must accept a single
argument, the option setting. The function must return a tuple containing
the option setting and an error message. If no error, the error message
should be set to None
.
For example:
# file: check.ini timeout = 10 # seconds timeout2 = 101 # invalid
And script:
# file: check.py def in_range(value): error = None if (value <= 0) or (value >= 100): error = "'%d' not valid. Must be between 0 and 100 seconds." % value value = value * 1000 # convert to milliseconds return value,error import cfgparse c = cfgparse.ConfigParser() c.add_file('check.ini') c.add_option('timeout', type='int', check=in_range) opts = c.parse() print "Valid timeout:",opts.timeout c.add_option('timeout2', type='int', check=in_range) opts = c.parse()
Results in:
$ python check.py Valid timeout: 10000 ERROR: Configuration File Parser Option: timeout2 File: [CWD]/check.ini Section: [DEFAULT] Line: 3 '101' not valid. Must be between 0 and 100 seconds.