1
2 """
3 Interface for configuring pre/post icetray scripts
4
5 copyright (c) 2005 the icecube collaboration
6
7 @version: $Revision: $
8 @date: mar abr 6 11:38:39 CDT 2010
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.3.5'
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 plugins.has_key(pname):
44 return plugins[pname]
45 else:
46 modname = dirname(pname)
47 classname = basename(pname)
48 mod = __import__(modname, globals(),locals(),[classname])
49 plugins[pname] = getattr(mod,classname)
50 return plugins[pname]
51
54
57
59 mod = __import__(pname, globals(),locals(),['*'])
60 classlist = {}
61 if pretty:
62 print '%s' % mod.__name__
63 for i in dir(mod):
64 c = getattr(mod,i)
65 if inspect.isclass(c) and issubclass(c,ipmodule.IPBaseClass):
66 classlist["%s.%s"%(pname,i)] = c().ShowParameters()
67 if pretty:
68 print '\t %s' % c.__name__
69 for p in c().ShowParameters():
70 print "\t %s (%s)" % (p[0],mtype(p[1]))
71 print "\t Description: %s" % p[2]
72 print "\t Default : %s" % p[1]
73 return classlist
74
76 if type(var) in types.StringTypes: return 'string'
77 elif type(var) == type(1): return 'int'
78 elif type(var) == type(1.0): return 'float'
79 elif type(var) == type(True): return 'bool'
80 elif type(var) == type([]): return 'list'
81 else: return 'NaT'
82