[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5064 - in trunk: gnue-appserver/src gnue-common/src/logic/language gnue
From: |
jan |
Subject: |
r5064 - in trunk: gnue-appserver/src gnue-common/src/logic/language gnue-common/src/logic/language/python |
Date: |
Mon, 2 Feb 2004 16:07:49 -0600 (CST) |
Author: jan
Date: 2004-02-02 16:07:47 -0600 (Mon, 02 Feb 2004)
New Revision: 5064
Modified:
trunk/gnue-appserver/src/geasInstance.py
trunk/gnue-common/src/logic/language/Base.py
trunk/gnue-common/src/logic/language/python/Adapter.py
Log:
improve error handling by passing a context description
Modified: trunk/gnue-appserver/src/geasInstance.py
===================================================================
--- trunk/gnue-appserver/src/geasInstance.py 2004-02-02 20:28:18 UTC (rev
5063)
+++ trunk/gnue-appserver/src/geasInstance.py 2004-02-02 22:07:47 UTC (rev
5064)
@@ -287,7 +287,11 @@
rtlist = self._session.sm._langRuntimes
cx=rtlist[language].createNewContext()
-
+
+ # describe the context
+ cx.setDescription('%s.%s' % (self._classdef.fullName,procedurename),
+ 'a gnue-appserver procedure')
+
# the object itself
cx.bindObject( 'self', obj, Object.Object)
@@ -302,21 +306,13 @@
cx.bindFunction('direct_load', self._session.load)
cx.bindFunction('direct_store', self._session.store)
cx.bindFunction('direct_call', self._session.call)
-
+
try:
method = cx.buildMethod(proceduredef.gnue_name, proceduredef.gnue_code)
retcode = method(params)
except Exception, msg:
print "Error occured during method invokation: %s" % msg
retcode = -1
-
- # procedure = compile (proceduredef.gnue_code,
- # '<' + self._classdef.fullName + '.'
- # + procedurename + '>',
- # 'exec')
-
- # Execute the procedure, where "self" is the current object
- #exec procedure in {}, {'self': obj}
# Save changes made by the procedure
obj.store ()
Modified: trunk/gnue-common/src/logic/language/Base.py
===================================================================
--- trunk/gnue-common/src/logic/language/Base.py 2004-02-02 20:28:18 UTC
(rev 5063)
+++ trunk/gnue-common/src/logic/language/Base.py 2004-02-02 22:07:47 UTC
(rev 5064)
@@ -62,12 +62,14 @@
pass
def createNewContext(self):
- return ExecutionContext()
+ return ExecutionContext(None)
class ExecutionContext:
def __init__(self, runtime):
self._runtime=runtime
+ self._shortname = "unknown_executioncontext"
+ self._description = "There is no description provided."
######
#
@@ -110,7 +112,15 @@
def buildFunction(self, name, code, parameter):
return VirtualFunction(self, name, code, parameter)
+ #####
+ #
+ # a possibility to set Description o
+ #
+ def setDescription(self, shortname, description):
+ self._shortname = shortname
+ self._description = description
+
class VirtualFunction:
def __init__(self, context, name, code, parameter):
self._code = code
Modified: trunk/gnue-common/src/logic/language/python/Adapter.py
===================================================================
--- trunk/gnue-common/src/logic/language/python/Adapter.py 2004-02-02
20:28:18 UTC (rev 5063)
+++ trunk/gnue-common/src/logic/language/python/Adapter.py 2004-02-02
22:07:47 UTC (rev 5064)
@@ -37,12 +37,13 @@
#
# Class used to implement triggers
#
-class LanguageEngine:
+class LanguageEngine(Base.LanguageEngine):
def createNewContext(self):
- return ExecutionContext()
+ return ExecutionContext(None)
-class ExecutionContext:
- def __init__(self):
+class ExecutionContext(Base.ExecutionContext):
+ def __init__(self, runtime):
+ Base.ExecutionContext.__init__(self, runtime)
GDebug.printMesg(2,'Using python language connector.')
self._globalns={}
self._triggerns={}
@@ -75,6 +76,8 @@
self._localns = {}
self._globalns = context._globalns
self._triggerns = context._triggerns
+ print context._shortname
+ self._contextname = context._shortname
self.compile()
self.updateNamespaces()
# direct compile after method creation
@@ -110,7 +113,8 @@
"pass\n"
try:
- self._comp_code = compile(revisedTriggerCode, '<string>', 'exec')
+ self._comp_code = compile(revisedTriggerCode, '<%s>' % self._contextname,
+ 'exec')
except SyntaxError, err:
_handleVirtualCodeException(self, err)
@@ -161,6 +165,11 @@
else:
name = triggertype
+ if hasattr(self, '_contextname'):
+ name = self._contextname
+ else:
+ name = triggertype
+
if isinstance(err, SyntaxError):
msg = _('There is an error in one of this document\'s
triggers.\n\nTraceback:\n') + \
' Trigger "%s" (%s), line %s' % (name, triggertype, err.lineno - 1)
+ "\n" + \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5064 - in trunk: gnue-appserver/src gnue-common/src/logic/language gnue-common/src/logic/language/python,
jan <=