def batchexe(name,**kwargs): """!Returns a prog.ImmutableRunner object that represents a small serial program that can be safely run on a busy batch node. @param name the executable name or path @param kwargs passed to produtil.prog.Runner.__init__ @returns a new produtil.prog.ImmutableRunner""" return prog.ImmutableRunner([str(name)],**kwargs)
def alias(arg): """!Attempts to generate an unmodifiable "copy on write" version of the argument. The returned copy will generate a modifiable duplicate of itself if you attempt to change it. @returns a produtil.prog.ImmutableRunner @param arg a produtil.prog.Runner or produtil.prog.ImmutableRunner""" if isinstance(arg,prog.Runner): return prog.ImmutableRunner(arg) elif isinstance(arg,mpiprog.MPIRanksBase): arg.make_runners_immutable() return arg else: raise InvalidRunArgument('Arguments to alias() must be Runner objects (such as from exe()) or MPIRanksBase objects (such as from mpi() or mpiserial()). Got: %s'%(repr(arg),))