1
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
30 plugins['RenameFile'] = fileutils.RenameFile
31 plugins['RemoveFiles'] = fileutils.RemoveFiles
32 plugins['RenameMultipleFiles'] = fileutils.RenameMultipleFiles
33
34 sep = '.'
35
37 return sep.join(path.split(sep)[:-1])
38
40 return path.split(sep)[-1]
41
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
56
59
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
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