def _scan_experiments(wd, log): r = dict() for f in os.listdir(wd): if f.endswith(".py"): try: worker = Worker({"log": lambda message: log("scan", message)}) try: description = yield from worker.examine(os.path.join( wd, f)) finally: yield from worker.close() for class_name, class_desc in description.items(): name = class_desc["name"] arguments = class_desc["arguments"] if name in r: logger.warning("Duplicate experiment name: '%s'", name) basename = name i = 1 while name in r: name = basename + str(i) i += 1 entry = { "file": f, "class_name": class_name, "arguments": arguments } r[name] = entry except: logger.warning("Skipping file '%s'", f, exc_info=True) return r
def _scan_experiments(wd, log): r = dict() for f in os.listdir(wd): if f.endswith(".py"): try: worker = Worker({"log": lambda message: log("scan", message)}) try: description = yield from worker.examine(os.path.join(wd, f)) finally: yield from worker.close() for class_name, class_desc in description.items(): name = class_desc["name"] arguments = class_desc["arguments"] if name in r: logger.warning("Duplicate experiment name: '%s'", name) basename = name i = 1 while name in r: name = basename + str(i) i += 1 entry = { "file": f, "class_name": class_name, "arguments": arguments } r[name] = entry except: logger.warning("Skipping file '%s'", f, exc_info=True) return r