[Top][All Lists]
[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
# -----------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5622 - in trunk/gnue-common/src/logic: . adapters,
jamest <=