Package iceprod :: Package modules
[hide private]
[frames] | no frames]

Source Code for Package iceprod.modules

 1  # -*- coding: utf-8 -*- 
 2  """ 
 3   Interface for configuring pre/post icetray scripts 
 4   
 5   copyright  (c) 2005 the icecube collaboration 
 6   
 7   @version: $Revision: $ 
 8   @date: Wed Aug 27 18:47:09 CDT 2008 
 9   @author: Juan Carlos Diaz Velez <juancarlos@icecube.wisc.edu> 
10  """ 
11  import os 
12  import glob 
13  import types 
14  import ipmodule 
15  import fileutils 
16  import inspect 
17  from modulefinder import * 
18   
19  __version__ = '0.1.1' 
20   
21  plugins = {} 
22   
23  plugins['ipmodule.Hello'] = ipmodule.Hello 
24  plugins['ipmodule.GoodBye'] = ipmodule.GoodBye 
25  plugins['fileutils.RenameFile']  = fileutils.RenameFile 
26  plugins['fileutils.RemoveFiles']  = fileutils.RemoveFiles 
27  plugins['fileutils.RenameMultipleFiles'] = fileutils.RenameMultipleFiles 
28   
29  # Aliases for backwards compatibility 
30  plugins['RenameFile']  = fileutils.RenameFile 
31  plugins['RemoveFiles']  = fileutils.RemoveFiles 
32  plugins['RenameMultipleFiles'] = fileutils.RenameMultipleFiles 
33   
34  sep = '.' 
35   
36 -def dirname(path):
37 return sep.join(path.split(sep)[:-1])
38
39 -def basename(path):
40 return path.split(sep)[-1]
41
42 -def get_plugin(pname):
43 if isinstance(pname,types.ClassType): 44 return pname 45 if plugins.has_key(pname): 46 return plugins[pname] 47 else: 48 modname = dirname(pname) 49 classname = basename(pname) 50 mod = __import__(modname, globals(),locals(),[classname]) 51 plugins[pname] = getattr(mod,classname) 52 return plugins[pname]
53
54 -def has_plugin(pname):
55 return plugins.has_key(pname)
56
57 -def configured_plugins():
58 return plugins.keys()
59
60 -def ipinspect(pname,pretty=False):
61 mod = __import__(pname, globals(),locals(),['*']) 62 classlist = {} 63 if pretty: 64 print '%s' % mod.__name__ 65 for i in dir(mod): 66 c = getattr(mod,i) 67 if inspect.isclass(c) and issubclass(c,ipmodule.IPBaseClass): 68 classlist["%s.%s"%(pname,i)] = c().ShowParameters() 69 if pretty: 70 print '\t %s' % c.__name__ 71 for p in c().ShowParameters(): 72 print "\t %s (%s)" % (p[0],mtype(p[1])) 73 print "\t Description: %s" % p[2] 74 print "\t Default : %s" % p[1] 75 return classlist
76
77 -def mtype(var):
78 if type(var) in types.StringTypes: return 'string' 79 elif type(var) == type(1): return 'int' 80 elif type(var) == type(1.0): return 'float' 81 elif type(var) == type(True): return 'bool' 82 elif type(var) == type([]): return 'list' 83 else: return 'NaT'
84