:returns: actual number of processes to use """ if (processes in [None, Auto]) : if (os.name == "nt") or (sys.version_info < (2,6)) : return 1 from libtbx import introspection auto_adjust = (processes is Auto) processes = introspection.number_of_processors() if (auto_adjust) : processes = max(ifloor(processes - os.getloadavg()[0]), 1) else : assert (processes > 0) return processes from weakref import WeakValueDictionary as _ fixed_func_registry = _() class fixed_func_proxy(object): """Implementation detail""" def __init__(self, key, func): self.key = key fixed_func_registry[key] = func def __call__(self, arg): key = self.key func = fixed_func_registry[key] assert func is not None return func(arg) from itertools import count as _ fixed_func_registry_key_generator = _()