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: 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  # 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 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
52 -def has_plugin(pname):
53 return plugins.has_key(pname)
54
55 -def configured_plugins():
56 return plugins.keys()
57
58 -def ipinspect(pname,pretty=False):
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
75 -def mtype(var):
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