00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 from subprocess import Popen, PIPE
00024
00025
00026
00027
00028
00029 def get_par_act( target, source, env ):
00030
00031 par = env['par']
00032 src = source[0].path
00033 suffix = source[0].suffix
00034 GETPAR = env['GETPAR'][suffix]
00035
00036 if isinstance( GETPAR, str ):
00037 GETPAR = env.subst( GETPAR, source=source )
00038 p0 = Popen( GETPAR, shell=True, stdout=PIPE )
00039 err = p0.wait()
00040
00041 if err:
00042 raise Exception("command: '%s' failed" %GETPAR )
00043
00044 val = p0.stdout.readline()
00045 type = env.get('type',eval)
00046 value = type( val )
00047 else:
00048 value = GETPAR( source, env, par )
00049
00050 print "\t%(par)s=%(value)s " %vars( )
00051 target[0].write( value )
00052 return
00053
00054
00055
00056
00057
00058 def get_par_method( self,source, par, *p,**kw ):
00059
00060 target=self.Value( par )
00061 return self._GetPar( target, source, par=par, *p, **kw )
00062
00063
00064
00065
00066
00067 def get_par_emitter( target, source, env ):
00068
00069 targets = []
00070 for src in source:
00071 targets.append( env.Value( env['par'] ) )
00072
00073 return targets, source
00074
00075