from targets import * class TargetFactory: @staticmethod def createAllTargets(): result = dict() glo = globals() # Save globals so the dict does not change during execution of the script for key in glo: if type(glo[key]) is not type or "TargetFactory" in key: continue target = glo[key] if 'Target' in key and 'Bank' not in key and key not in ['Target', 'BankTarget']: targetObject = target() result[targetObject.name] = targetObject elif 'Bank' in key and 'Target' not in key and key not in ['Bank', 'BankTarget']: targets = TargetFactory.createBankTarget(target) result.update(targets) # todo check with driver? return result @staticmethod def createBankTarget(target): bankTarget = target() targets = dict() targets[bankTarget.name] = bankTarget for target in bankTarget.targets: targets[target.name] = target return targets