from twisted.python.components import registerAdapter from twisted.python.reflect import namedAny csvpath = 'components.csv' for zow in [ [x.strip() for x in l.split(',')] for l in file(csvpath).read().strip().split('\n') ]: adapter, original, interface = zow registerAdapter(*map(namedAny, zow)) description = "Automated adapter registration: %s(%s) => %s" % ( interface, original, adapter ) register( "adapter", None, adapter=adapter, original=original, interface=interface, type="adapterRegistration", description=description )