mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-09-04 04:12:42 +01:00
Add support for Python 3
Add support for running under Python 3, while maintaining compatibility with Python 2. See http://python-future.org/compatible_idioms.html for more details behind these changes.
This commit is contained in:
committed by
Marc Bonnici
parent
c3ddb31d4d
commit
b3de85455a
@@ -28,7 +28,7 @@ def list_target_descriptions(loader=pluginloader):
|
||||
raise PluginLoaderError(msg.format(desc.name, prev_dtor.name,
|
||||
descriptor.name))
|
||||
targets[desc.name] = desc
|
||||
return targets.values()
|
||||
return list(targets.values())
|
||||
|
||||
|
||||
def get_target_description(name, loader=pluginloader):
|
||||
@@ -47,11 +47,11 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
|
||||
tp, pp, cp = {}, {}, {}
|
||||
|
||||
for supported_params, new_params in (target_params, tp), (platform_params, pp), (conn_params, cp):
|
||||
for name, value in supported_params.iteritems():
|
||||
for name, value in supported_params.items():
|
||||
if value.default and name == value.name:
|
||||
new_params[name] = value.default
|
||||
|
||||
for name, value in params.iteritems():
|
||||
for name, value in params.items():
|
||||
if name in target_params:
|
||||
tp[name] = value
|
||||
elif name in platform_params:
|
||||
@@ -64,7 +64,7 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
|
||||
msg = 'Unexpected parameter for {}: {}'
|
||||
raise ValueError(msg.format(tdesc.name, name))
|
||||
|
||||
for pname, pval in (extra_platform_params or {}).iteritems():
|
||||
for pname, pval in (extra_platform_params or {}).items():
|
||||
if pname in pp:
|
||||
raise RuntimeError('Platform parameter clash: {}'.format(pname))
|
||||
pp[pname] = pval
|
||||
@@ -121,7 +121,7 @@ class TargetDescription(object):
|
||||
vals = []
|
||||
elif isiterable(vals):
|
||||
if hasattr(vals, 'values'):
|
||||
vals = v.values()
|
||||
vals = list(v.values())
|
||||
else:
|
||||
msg = '{} must be iterable; got "{}"'
|
||||
raise ValueError(msg.format(attr, vals))
|
||||
@@ -453,11 +453,11 @@ class DefaultTargetDescriptor(TargetDescriptor):
|
||||
|
||||
def get_descriptions(self):
|
||||
result = []
|
||||
for target_name, target_tuple in TARGETS.iteritems():
|
||||
for target_name, target_tuple in TARGETS.items():
|
||||
(target, conn), target_params = self._get_item(target_tuple)
|
||||
assistant = ASSISTANTS[target_name]
|
||||
conn_params = CONNECTION_PARAMS[conn]
|
||||
for platform_name, platform_tuple in PLATFORMS.iteritems():
|
||||
for platform_name, platform_tuple in PLATFORMS.items():
|
||||
(platform, plat_conn), platform_params = self._get_item(platform_tuple)
|
||||
name = '{}_{}'.format(platform_name, target_name)
|
||||
td = TargetDescription(name, self)
|
||||
@@ -484,11 +484,11 @@ class DefaultTargetDescriptor(TargetDescriptor):
|
||||
return cls, params
|
||||
|
||||
param_map = OrderedDict((p.name, copy(p)) for p in params)
|
||||
for name, value in defaults.iteritems():
|
||||
for name, value in defaults.items():
|
||||
if name not in param_map:
|
||||
raise ValueError('Unexpected default "{}"'.format(name))
|
||||
param_map[name].default = value
|
||||
return cls, param_map.values()
|
||||
return cls, list(param_map.values())
|
||||
|
||||
|
||||
|
||||
@@ -522,7 +522,7 @@ def create_target_description(name, *args, **kwargs):
|
||||
def _get_target_defaults(target):
|
||||
specificity = 0
|
||||
res = ('linux', TARGETS['linux']) # fallback to a generic linux target
|
||||
for name, ttup in TARGETS.iteritems():
|
||||
for name, ttup in TARGETS.items():
|
||||
if issubclass(target, ttup[0][0]):
|
||||
new_spec = len(inspect.getmro(ttup[0][0]))
|
||||
if new_spec > specificity:
|
||||
@@ -540,7 +540,7 @@ def add_description_for_target(target, description=None, **kwargs):
|
||||
if 'platform' not in kwargs:
|
||||
kwargs['platform'] = Platform
|
||||
if 'platform_params' not in kwargs:
|
||||
for (plat, conn), params, _ in PLATFORMS.itervalues():
|
||||
for (plat, conn), params, _ in PLATFORMS.values():
|
||||
if plat == kwargs['platform']:
|
||||
kwargs['platform_params'] = params
|
||||
if conn is not None and kwargs['conn'] is None:
|
||||
|
@@ -10,7 +10,7 @@ def cpuinfo_from_pod(pod):
|
||||
cpuinfo.sections = pod['cpuinfo']
|
||||
lines = []
|
||||
for section in cpuinfo.sections:
|
||||
for key, value in section.iteritems():
|
||||
for key, value in section.items():
|
||||
line = '{}: {}'.format(key, value)
|
||||
lines.append(line)
|
||||
lines.append('')
|
||||
@@ -35,7 +35,7 @@ def kernel_config_from_pod(pod):
|
||||
config = KernelConfig('')
|
||||
config._config = pod['kernel_config']
|
||||
lines = []
|
||||
for key, value in config._config.iteritems():
|
||||
for key, value in config._config.items():
|
||||
if value == 'n':
|
||||
lines.append('# {} is not set'.format(key))
|
||||
else:
|
||||
|
@@ -33,7 +33,7 @@ class RuntimeConfig(Plugin):
|
||||
|
||||
@property
|
||||
def supported_parameters(self):
|
||||
return self._runtime_params.values()
|
||||
return list(self._runtime_params.values())
|
||||
|
||||
@property
|
||||
def core_names(self):
|
||||
@@ -166,12 +166,12 @@ class HotplugRuntimeConfig(RuntimeConfig):
|
||||
|
||||
def validate_parameters(self):
|
||||
if len(self.num_cores) == self.target.number_of_cpus:
|
||||
if all(v is False for v in self.num_cores.values()):
|
||||
if all(v is False for v in list(self.num_cores.values())):
|
||||
raise ValueError('Cannot set number of all cores to 0')
|
||||
|
||||
def commit(self):
|
||||
'''Online all CPUs required in order before then off-lining'''
|
||||
num_cores = sorted(self.num_cores.iteritems())
|
||||
num_cores = sorted(self.num_cores.items())
|
||||
for cpu, online in num_cores:
|
||||
if online:
|
||||
self.target.hotplug.online(cpu)
|
||||
@@ -190,7 +190,7 @@ class SysfileValuesRuntimeConfig(RuntimeConfig):
|
||||
#pylint: disable=unused-argument
|
||||
@staticmethod
|
||||
def set_sysfile(obj, value, core):
|
||||
for path, value in value.iteritems():
|
||||
for path, value in value.items():
|
||||
verify = True
|
||||
if path.endswith('!'):
|
||||
verify = False
|
||||
@@ -222,7 +222,7 @@ class SysfileValuesRuntimeConfig(RuntimeConfig):
|
||||
return
|
||||
|
||||
def commit(self):
|
||||
for path, (value, verify) in self.sysfile_values.iteritems():
|
||||
for path, (value, verify) in self.sysfile_values.items():
|
||||
self.target.write_value(path, value, verify=verify)
|
||||
|
||||
def clear(self):
|
||||
@@ -255,7 +255,7 @@ class FreqValue(object):
|
||||
raise TargetError(msg.format(value))
|
||||
elif isinstance(value, int) and value in self.values:
|
||||
return value
|
||||
elif isinstance(value, basestring):
|
||||
elif isinstance(value, str):
|
||||
value = caseless_string(value)
|
||||
if value in ['min', 'max']:
|
||||
return value
|
||||
@@ -675,7 +675,7 @@ class IdleStateValue(object):
|
||||
if self.values is None:
|
||||
return value
|
||||
|
||||
if isinstance(value, basestring):
|
||||
if isinstance(value, str):
|
||||
value = caseless_string(value)
|
||||
if value == 'all':
|
||||
return [state[0] for state in self.values]
|
||||
|
@@ -39,7 +39,7 @@ class RuntimeParameterManager(object):
|
||||
def merge_runtime_parameters(self, parameters):
|
||||
merged_params = obj_dict()
|
||||
for source in parameters:
|
||||
for name, value in parameters[source].iteritems():
|
||||
for name, value in parameters[source].items():
|
||||
cp = self.get_cfg_point(name)
|
||||
cp.set_value(merged_params, value)
|
||||
return dict(merged_params)
|
||||
@@ -60,7 +60,7 @@ class RuntimeParameterManager(object):
|
||||
|
||||
# Stores a set of parameters performing isolated validation when appropriate
|
||||
def set_runtime_parameters(self, parameters):
|
||||
for name, value in parameters.iteritems():
|
||||
for name, value in parameters.items():
|
||||
cfg = self.get_config_for_name(name)
|
||||
if cfg is None:
|
||||
msg = 'Unsupported runtime parameter: "{}"'
|
||||
@@ -74,14 +74,14 @@ class RuntimeParameterManager(object):
|
||||
|
||||
def get_config_for_name(self, name):
|
||||
name = caseless_string(name)
|
||||
for k, v in self.runtime_params.iteritems():
|
||||
for k, v in self.runtime_params.items():
|
||||
if name == k:
|
||||
return v.rt_config
|
||||
return None
|
||||
|
||||
def get_cfg_point(self, name):
|
||||
name = caseless_string(name)
|
||||
for k, v in self.runtime_params.iteritems():
|
||||
for k, v in self.runtime_params.items():
|
||||
if name == k:
|
||||
return v.cfg_point
|
||||
raise ConfigError('Unknown runtime parameter: {}'.format(name))
|
||||
|
Reference in New Issue
Block a user