Commit 642b09e7 authored by Stefan Behnel's avatar Stefan Behnel

minor code cleanup

parent f0c18bf1
...@@ -263,6 +263,7 @@ directive_scopes = { # defaults to available everywhere ...@@ -263,6 +263,7 @@ directive_scopes = { # defaults to available everywhere
'language_level': ('module',), 'language_level': ('module',),
} }
def parse_directive_value(name, value, relaxed_bool=False): def parse_directive_value(name, value, relaxed_bool=False):
""" """
Parses value as an option value for the given name and returns Parses value as an option value for the given name and returns
...@@ -292,16 +293,21 @@ def parse_directive_value(name, value, relaxed_bool=False): ...@@ -292,16 +293,21 @@ def parse_directive_value(name, value, relaxed_bool=False):
ValueError: c_string_type directive must be one of ('bytes', 'bytearray', 'str', 'unicode'), got 'unnicode' ValueError: c_string_type directive must be one of ('bytes', 'bytearray', 'str', 'unicode'), got 'unnicode'
""" """
type = directive_types.get(name) type = directive_types.get(name)
if not type: return None if not type:
return None
orig_value = value 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':
if value == 'False': return False return True
if value == 'False':
return False
if relaxed_bool: if relaxed_bool:
value = value.lower() value = value.lower()
if value in ("true", "yes"): return True if value in ("true", "yes"):
elif value in ("false", "no"): return False return True
elif value in ("false", "no"):
return False
raise ValueError("%s directive must be set to True or False, got '%s'" % ( raise ValueError("%s directive must be set to True or False, got '%s'" % (
name, orig_value)) name, orig_value))
elif type is int: elif type is int:
...@@ -317,6 +323,7 @@ def parse_directive_value(name, value, relaxed_bool=False): ...@@ -317,6 +323,7 @@ def parse_directive_value(name, value, relaxed_bool=False):
else: else:
assert False assert False
def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False, def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False,
current_settings=None): current_settings=None):
""" """
...@@ -352,9 +359,11 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False, ...@@ -352,9 +359,11 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False,
result = current_settings result = current_settings
for item in s.split(','): for item in s.split(','):
item = item.strip() item = item.strip()
if not item: continue if not item:
if not '=' in item: raise ValueError('Expected "=" in option "%s"' % item) continue
name, value = [ s.strip() for s in item.strip().split('=', 1) ] if not '=' in item:
raise ValueError('Expected "=" in option "%s"' % item)
name, value = [s.strip() for s in item.strip().split('=', 1)]
if name not in directive_defaults: if name not in directive_defaults:
found = False found = False
if name.endswith('.all'): if name.endswith('.all'):
......
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