Looking for 'unqualified exec is not allowed in function' lead here...
This is a collaborative thing... so here's all of the code (some parts just description of eventual 'future' implementation) for a universal code parser (biiig name for a smaaaall thing, that is not working at all yet, and is limited to python)...
#!/usr/bin/python2.5
## acknowledgements: python, http://www.faqs.org/docs/diveintopython/regression_divein.html, ...
"""
Moody documentation style...
Philosophy
Errors are part of the process, so we try... and catch...
Vars
caller: for eventual context stuff
callee: what you think? ok... the path called...
called: whaaaat you think? pffff... the item (method, variable...) we attempt to get, call, whatever...
arguments: ...called item arguments
"""
import os
print 'callee, called, arguments...'
caller=sys.argv[0]
callee=sys.argv[1]
called=sys.argv[2]
arguments=sys.argv[2]
def try_call():
for dirpath, dirnames, filenames in os.walk(callee, followlinks=True):
filename_to_module_name = lambda f: os.path.splitext(f)[0]
module_names = map(filename_to_module_name, filenames)
os.chdir(dirpath)
modules = map(__import__, moduleNames)
for _m in modules:
for key in _m.__dict__:
## do we include the built ins somwhere in the future? goood question...
if key != '__builtins__':
try:
## PROCESS:
## check in db if call pattern saved, and if so execute
## - if result not ok: save call data in db and analyze
## else: check the type, if function, get arguments, infer/map/(all the suff) and execute, if variable bla bla...
## - if result ok: save call data pattern
## ....
## all of the above (eventually) for somewhen in the future... for now simple call...
exec('res=%s.%s()' % (_m, _m.__dict__[key]))
print repr(res)
if sys.argv[1]=='ok':
## see process above
print 'great...'
except Exception, ex:
print 'wooopsy... error...'
print '---| call stuff: %s - %s ' % (key, repr(_m.__dict__[key]))
print '---| ex : %s ' % repr(ex)
Ideas about implementing a different kind of operating system? http://code.google.com/p/sibos/
There's more, the new ideas might have outdated this, so...
Thanks...