Hi Christian, 2020-05-07, Christian Ehrhardt: > Without this fix in a pure python3 environment this will run into > issues like: > ModuleNotFoundError: No module named 'StringIO' > or later string encoding issues on check_output. > > Signed-off-by: Christian Ehrhardt <christian.ehrha...@canonical.com>
> @@ -45,11 +45,9 @@ def get_numa_nodes(): > def first_cpu_on_node(node_nr): > cpu_path = glob.glob("/sys/devices/system/node/node%d/cpu*" % node_nr) > r = re.compile(r"cpu(\d+)") > - cpu_name = filter(None, > - map(r.match, > - map(os.path.basename, cpu_path) > - ) > - ) > + cpu_name = [_f for _f in map(r.match, > + list(map(os.path.basename, cpu_path)) > + ) if _f] Since filter() is not available on Python 3, maybe this function could be made a little simpler: def first_cpu_on_node(node_nr): for fname in os.listdir("/sys/devices/system/node/node%d" % node_nr): match = re.match(r"cpu(\d+)", fname) if match: return int(match.group(1)) raise ValueError("no cpu on node %d" % node_nr) The rest looks good to me. -- Robin