commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5622 - in trunk/gnue-common/src/logic: . adapters


From: jamest
Subject: r5622 - in trunk/gnue-common/src/logic: . adapters
Date: Fri, 2 Apr 2004 15:58:11 -0600 (CST)

Author: jamest
Date: 2004-04-02 15:58:10 -0600 (Fri, 02 Apr 2004)
New Revision: 5622

Modified:
   trunk/gnue-common/src/logic/GTrigger.py
   trunk/gnue-common/src/logic/adapters/Base.py
   trunk/gnue-common/src/logic/adapters/python.py
   trunk/gnue-common/src/logic/language.py
Log:
working abort() function in python language adaptor


Modified: trunk/gnue-common/src/logic/GTrigger.py
===================================================================
--- trunk/gnue-common/src/logic/GTrigger.py     2004-04-02 21:50:40 UTC (rev 
5621)
+++ trunk/gnue-common/src/logic/GTrigger.py     2004-04-02 21:58:10 UTC (rev 
5622)
@@ -38,18 +38,18 @@
 from xml.sax import saxutils
 from gnue.common.definitions.GParserHelpers import GContent
 from gnue.common.logic.language import getLanguageAdapter, RuntimeError
+from gnue.common.logic.language import AbortRequest
 
+# class TriggerError(StandardError):
+#   pass
+# 
+# class TriggerAbort:
+#   pass
+# class TriggerStop:
+#   pass
+# class TriggerSuccess:
+#   pass
 
-class TriggerError(StandardError):
-  pass
-
-class TriggerAbort:
-  pass
-class TriggerStop:
-  pass
-class TriggerSuccess:
-  pass
-
 #######################################################################
 #
 # Trigger instance classes
@@ -271,7 +271,7 @@
     else:
       GDebug.printMesg(0, "%s %s" % (_("Invalid trigger "),key))
 
-  def processTrigger(self, key):
+  def processTrigger(self, key, ignoreAbort=True):
     """
     Fires the requested trigger if a trigger of that type
     has been associated with this object.
@@ -281,7 +281,8 @@
     
     @param key: The name of the trigger
     @type key: string
-    
+    @param consumeAbort: If true then AbortRequests from the trigger are 
ignored
+    @type consumeAbort: boolean
     """
     key = string.upper(key)
     if key in self._validTriggers.keys():
@@ -291,6 +292,9 @@
           #   function.updateNamespace()
           try:
             function(self)
+          except AbortRequest, msg:
+            if not ignoreAbort:
+              raise AbortRequest(msg)
           except RuntimeError, msg:
             # call my own exceptionHandler here.
             print "Runtime Error occured:\n %s" % msg

Modified: trunk/gnue-common/src/logic/adapters/Base.py
===================================================================
--- trunk/gnue-common/src/logic/adapters/Base.py        2004-04-02 21:50:40 UTC 
(rev 5621)
+++ trunk/gnue-common/src/logic/adapters/Base.py        2004-04-02 21:58:10 UTC 
(rev 5622)
@@ -24,7 +24,7 @@
 import traceback
 import string
 
-from gnue.common.logic.language import ImplementationError
+from gnue.common.logic.language import ImplementationError, AbortRequest
 from gnue.common.logic.NamespaceCore import NamespaceElement, NamespaceFunction
 
 
@@ -124,8 +124,6 @@
     """
     raise ImplementationError, (self.__class__, 'buildFunction ()')
 
-
-
 # =============================================================================
 # Base class of a virtual function
 # =============================================================================
@@ -162,6 +160,17 @@
 
 
   # ---------------------------------------------------------------------------
+  # Generate a user requested abort 
+  # ---------------------------------------------------------------------------
+
+  def requestAbort (self, message):
+    """
+    Abstract: Generate a user abort request.  Linked into the execution 
namespace
+    so that scripts can request an abort.
+    """
+    raise AbortRequest(message)
+  
+  # ---------------------------------------------------------------------------
   # redirect a call of an instance to the execute () function.
   # ---------------------------------------------------------------------------
 

Modified: trunk/gnue-common/src/logic/adapters/python.py
===================================================================
--- trunk/gnue-common/src/logic/adapters/python.py      2004-04-02 21:50:40 UTC 
(rev 5621)
+++ trunk/gnue-common/src/logic/adapters/python.py      2004-04-02 21:58:10 UTC 
(rev 5622)
@@ -194,6 +194,7 @@
       localNS = copy.copy (self._context._localNS)
       localNS.update (params)
       localNS ['__namespace'] = localNS
+      localNS ['abort'] = self.requestAbort
 
       # make sure we only use safe identifiers in our namespace
       self.__makeSafeNamespace (localNS)
@@ -204,9 +205,9 @@
         return localNS ['__result']
       else:
         return None
-
-
-    except:
+    except language.AbortRequest, t:
+      raise language.AbortRequest(t)
+    except language.AbortRequest :
       raise language.RuntimeError, self._traceback (2)
 
 

Modified: trunk/gnue-common/src/logic/language.py
===================================================================
--- trunk/gnue-common/src/logic/language.py     2004-04-02 21:50:40 UTC (rev 
5621)
+++ trunk/gnue-common/src/logic/language.py     2004-04-02 21:58:10 UTC (rev 
5622)
@@ -63,8 +63,9 @@
 class RuntimeError (gException):
   pass
 
+class AbortRequest (gException):
+  pass
 
-
 # -----------------------------------------------------------------------------
 # Get or create an instance of a given language adapter
 # -----------------------------------------------------------------------------





reply via email to

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