trim unneeded fun
[sfa.git] / sfa / managers / import_manager.py
1 from sfa.util.sfalogging import logger
2
3 def import_manager(kind, type):
4     """
5     kind expected in ['registry', 'aggregate', 'slice', 'component']
6     type is e.g. 'pl' or 'max' or whatever
7     """
8     basepath = 'sfa.managers'
9     qualified = "%s.%s_manager_%s"%(basepath,kind,type)
10     generic = "%s.%s_manager"%(basepath,kind)
11
12     message="import_manager for kind=%s and type=%s"%(kind,type)
13     try: 
14         manager = __import__(qualified, fromlist=[basepath])
15         logger.info ("%s: loaded %s"%(message,qualified))
16     except:
17         try:
18             manager = __import__ (generic, fromlist=[basepath])
19             if type != 'pl' : 
20                 logger.warn ("%s: using generic with type!='pl'"%(message))
21             logger.info("%s: loaded %s"%(message,generic))
22         except:
23             manager=None
24             logger.log_exc("%s: unable to import either %s or %s"%(message,qualified,generic))
25     return manager
26