Traceback (most recent call last):
...
ValueError: Unknown option: "unknown"
+ >>> warnings = parse_directive_list('warn.all=True')
+ >>> len(warnings) > 1
+ True
+ >>> sum(warnings.values()) == len(warnings) # all true.
+ True
"""
if current_settings is None:
result = {}
if not item: continue
if not '=' in item: raise ValueError('Expected "=" in option "%s"' % item)
name, value = [ s.strip() for s in item.strip().split('=', 1) ]
- parsed_value = parse_directive_value(name, value, relaxed_bool=relaxed_bool)
- if parsed_value is None:
- if not ignore_unknown:
+ if name not in directive_defaults:
+ found = False
+ if name.endswith('.all'):
+ prefix = name[:-3]
+ for directive in directive_defaults:
+ if directive.startswith(prefix):
+ found = True
+ parsed_value = parse_directive_value(directive, value, relaxed_bool=relaxed_bool)
+ result[directive] = parsed_value
+ if not found and not ignore_unknown:
raise ValueError('Unknown option: "%s"' % name)
else:
+ parsed_value = parse_directive_value(name, value, relaxed_bool=relaxed_bool)
result[name] = parsed_value
return result