Skip to content

Commit ca2fd64

Browse files
authored
Merge pull request #1970 from mbedmicro/config_bool_to_int
Config bool to int
2 parents 8e8f389 + 6858117 commit ca2fd64

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

tools/config.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ class ConfigParameter:
3535
def __init__(self, name, data, unit_name, unit_kind):
3636
self.name = self.get_full_name(name, unit_name, unit_kind, allow_prefix = False)
3737
self.defined_by = self.get_display_name(unit_name, unit_kind)
38-
self.set_by = self.defined_by
38+
self.set_value(data.get("value", None), unit_name, unit_kind)
3939
self.help_text = data.get("help", None)
40-
self.value = data.get("value", None)
4140
self.required = data.get("required", False)
4241
self.macro_name = data.get("macro_name", "MBED_CONF_%s" % self.sanitize(self.name.upper()))
4342
self.config_errors = []
@@ -93,13 +92,14 @@ def get_display_name(unit_name, unit_kind, label = None):
9392
def sanitize(name):
9493
return name.replace('.', '_').replace('-', '_')
9594

96-
# Sets a value for this parameter, remember the place where it was set
95+
# Sets a value for this parameter, remember the place where it was set.
96+
# If the value is a boolean, it is converted to 1 (for True) or to 0 (for False).
9797
# value: the value of the parameter
9898
# unit_name: the unit (target/library/application) that defines this parameter
9999
# unit_ kind: the kind of the unit ("target", "library" or "application")
100100
# label: the name of the label in the 'target_config_overrides' section (optional)
101101
def set_value(self, value, unit_name, unit_kind, label = None):
102-
self.value = value
102+
self.value = int(value) if isinstance(value, bool) else value
103103
self.set_by = self.get_display_name(unit_name, unit_kind, label)
104104

105105
# Return the string representation of this configuration parameter
@@ -233,7 +233,7 @@ def remove_features(self, features):
233233
# Remove features from the available features
234234
def add_features(self, features):
235235
for feature in features:
236-
if (feature in self.removed_features
236+
if (feature in self.removed_features
237237
or (self.removed_unecessary_features and feature not in self.added_features)):
238238
raise ConfigException("Configuration conflict. Feature %s both added and removed." % feature)
239239

@@ -273,7 +273,7 @@ def _process_config_and_overrides(self, data, params, unit_name, unit_kind):
273273
if full_name in params:
274274
params[full_name].set_value(v, unit_name, unit_kind, label)
275275
else:
276-
self.config_errors.append(ConfigException("Attempt to override undefined parameter '%s' in '%s'"
276+
self.config_errors.append(ConfigException("Attempt to override undefined parameter '%s' in '%s'"
277277
% (full_name, ConfigParameter.get_display_name(unit_name, unit_kind, label))))
278278
return params
279279

@@ -396,7 +396,7 @@ def validate_config(self):
396396
raise self.config_errors[0]
397397
return True
398398

399-
399+
400400
# Loads configuration data from resources. Also expands resources based on defined features settings
401401
def load_resources(self, resources):
402402
# Update configuration files until added features creates no changes
@@ -418,7 +418,7 @@ def load_resources(self, resources):
418418
self.validate_config()
419419

420420
return resources
421-
421+
422422

423423
# Return the configuration data converted to the content of a C header file,
424424
# meant to be included to a C/C++ file. The content is returned as a string.

0 commit comments

Comments
 (0)