Commit 31fac6c5 authored by Stefan Behnel's avatar Stefan Behnel

better error output

parent db6f9896
...@@ -102,11 +102,12 @@ def parse_directive_value(name, value, relaxed_bool=False): ...@@ -102,11 +102,12 @@ def parse_directive_value(name, value, relaxed_bool=False):
>>> parse_directive_value('boundscheck', 'true') >>> parse_directive_value('boundscheck', 'true')
Traceback (most recent call last): Traceback (most recent call last):
... ...
ValueError: boundscheck directive must be set to True or False ValueError: boundscheck directive must be set to True or False, got 'true'
""" """
type = directive_types.get(name) type = directive_types.get(name)
if not type: return None if not type: return None
orig_value = value
if type is bool: if type is bool:
value = str(value) value = str(value)
if value == 'True': return True if value == 'True': return True
...@@ -115,12 +116,14 @@ def parse_directive_value(name, value, relaxed_bool=False): ...@@ -115,12 +116,14 @@ def parse_directive_value(name, value, relaxed_bool=False):
value = value.lower() value = value.lower()
if value in ("true", "yes"): return True if value in ("true", "yes"): return True
elif value in ("false", "no"): return False elif value in ("false", "no"): return False
raise ValueError("%s directive must be set to True or False" % name) raise ValueError("%s directive must be set to True or False, got %r" % (
name, orig_value))
elif type is int: elif type is int:
try: try:
return int(value) return int(value)
except ValueError: except ValueError:
raise ValueError("%s directive must be set to an integer" % name) raise ValueError("%s directive must be set to an integer, got %r" % (
name, orig_value))
elif type is str: elif type is str:
return str(value) return str(value)
else: else:
...@@ -143,7 +146,7 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False): ...@@ -143,7 +146,7 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False):
>>> parse_directive_list('boundscheck=hey') >>> parse_directive_list('boundscheck=hey')
Traceback (most recent call last): Traceback (most recent call last):
... ...
ValueError: boundscheck directive must be set to True or False ValueError: boundscheck directive must be set to True or False, got 'hey'
>>> parse_directive_list('unknown=True') >>> parse_directive_list('unknown=True')
Traceback (most recent call last): Traceback (most recent call last):
... ...
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment