commit-gnue
[Top][All Lists]
Advanced

[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" + \





reply via email to

[Prev in Thread] Current Thread [Next in Thread]