import sys
import lua as _lua # lua (lunatic-pathon)
import os # bash
import scipy.weave # Cpp
# more languages can and should be added
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
# Definition of Decorators
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
def lua(function):
def wrapper(*args):
# 1. Do some preprocessing.
#print function.__doc__
# 2. Call 'function' with given arguments.
_lua.execute(function.__doc__)
function(*args)
# 3. Do some postprocessing.
# ...
return wrapper
def bash(function):
def wrapper(*args):
# 1. Do some preprocessing.
#print function.__doc__
# 2. Call 'function' with given arguments.
os.system(function.__doc__)
function(*args)
# 3. Do some postprocessing.
# ...
return wrapper
def Cpp(function):
def wrapper(*args):
# 1. Do some preprocessing.
#print function.__doc__
# 2. Call 'function' with given arguments.
#scipy.weave.inline(function.__doc__,
# ['u', 'dx2', 'dy2', 'dnr_inv', 'nx', 'ny'],
# type_converters=converters.blitz,
# compiler = 'gcc')
scipy.weave.inline(function.__doc__)
function(*args)
# 3. Do some postprocessing.
# ...
return wrapper
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
# Example
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
@lua
def lua_test():
"""print('lua run')
print('Hello lua World')
print('lua ok')
"""
pass
@bash
def bash_test():
"""echo bash run
echo Hello bash world!
ls -la
echo bash ok
"""
pass
@Cpp
def Cpp_test():
"""printf("C++ run\\n");
printf("Hello C++ world!\\n");
printf("C++ ok\\n");
"""
pass
print "run\n"
lua_test()
print "\n"
bash_test()
print "\n"
Cpp_test()
print "\n"
print "ok"