Ok I've only done remaps with python script once before. My INI contains this:
Code:
REMAP=G91.2 modalgroup=1 argspec=xyzabc python=g912
REMAP=G91.3 modalgroup=1 argspec=xyzabc python=g913
Then my config folder contains a folder called python and inside that folder lives my remap.py (contains my python scripts for g912 and g913), toplevel.py, oword.py, stdglue.py and util.py.
toplevel.py contains
Code:
import oword
import remap
oword.py contains:
Code:
from util import call_pydevd
def foo(*args):
print "foo!"
# make debugger available as oword procedure
def pydevd(self,*args):
call_pydevd()
# this would be defined in the oword module
def mysub(self, *args):
print "number of parameters passed:", len(args)
for a in args:
print a
stdglue.py is an empty file
util.py contains:
Code:
import inspect
import emccanon
# O-word procedure to trap into the Pydevd debugger
# start debug server in Eclipse, then
# call as 'O<pydevd> call' from MDI
# example setup for debugging embedded Python code
# see http://pydev.org/manual_adv_remote_debugger.html
# if this points to a valid directory,
def call_pydevd():
""" trap into the pydevd debugger"""
import os,sys
pydevdir= '/home/mah/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins/org.python.pydev.debug_2.0.0.2011040403/pysrc/'
# the 'emctask' module is present only in the milltask instance, otherwise both the UI and
# milltask would try to connect to the debug server.
if os.path.isdir(pydevdir) and 'emctask' in sys.builtin_module_names:
sys.path.append(pydevdir)
sys.path.insert(0,pydevdir)
try:
import pydevd
emccanon.MESSAGE("pydevd imported, connecting to Eclipse debug server...")
pydevd.settrace()
except:
emccanon.MESSAGE("no pydevd module found")
pass
def lineno():
""" return line number in the current Python script """
return inspect.currentframe().f_back.f_lineno
def error_stack(self):
""" print the Interpreters error stack (function names) """
print "error stack level=%d" % (self.stack_index)
for s in self.stack():
print "--'%s'" % (s)
def callstack(self):
""" print the O-Word call stack """
for i in range(self.call_level):
c = self.sub_context[i]
print "%d: pos=%d seq=%d filename=%s sub=%s" % (i,c.position, c.sequence_number,c.filename,c.subname)