[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[OpenTAL-checkins] opental/pax core.py paxtransform.py setup.py xm...
From: |
Fernando Lalo Martins |
Subject: |
[OpenTAL-checkins] opental/pax core.py paxtransform.py setup.py xm... |
Date: |
Wed, 26 Feb 2003 14:59:14 -0500 |
CVSROOT: /cvsroot/opental
Module name: opental
Changes by: Fernando Lalo Martins <address@hidden> 03/02/26 14:59:14
Modified files:
pax : core.py paxtransform.py setup.py
xmlpaxparser.py
Log message:
paxtransform now allows handlers to set error treatment - see OpenTAL
for an example of how to use it
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/pax/core.py.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/pax/paxtransform.py.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/pax/setup.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/pax/xmlpaxparser.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
Patches:
Index: opental/pax/core.py
diff -u opental/pax/core.py:1.15 opental/pax/core.py:1.16
--- opental/pax/core.py:1.15 Fri Feb 21 13:37:05 2003
+++ opental/pax/core.py Wed Feb 26 14:59:14 2003
@@ -203,3 +203,7 @@
def __repr__(self):
return '<Literal %s>' % repr(self.text)
+
+ def pack(self):
+ "do nothing, since this is already an immutable leaf"
+ pass
Index: opental/pax/paxtransform.py
diff -u opental/pax/paxtransform.py:1.23 opental/pax/paxtransform.py:1.24
--- opental/pax/paxtransform.py:1.23 Mon Jan 27 02:10:54 2003
+++ opental/pax/paxtransform.py Wed Feb 26 14:59:14 2003
@@ -27,6 +27,12 @@
handler = optional
self.handlers += ((ns, hash(ns), handler),)
+ def pop_error_handler(self, context):
+ if hasattr(context, 'error_handler'):
+ handler = context.error_handler
+ del context.error_handler
+ return handler
+
def initialize(self, context):
context.tr_engine = self
context.postprocess_queue = []
@@ -76,10 +82,25 @@
if type(result) is types.ListType:
# further mark it as "immutable"
result = tuple(result)
+ except:
+ error_handler = self.pop_error_handler(context)
+ if error_handler:
+ result = error_handler()
+ else:
+ context.postprocess_queue.pop()
+ raise
else:
if not hasattr(result, 'join'):
- for index, child in enumerate(result):
- result[index] = self.transform(child, context)
+ error_handler = self.pop_error_handler(context)
+ try:
+ for index, child in enumerate(result):
+ result[index] = self.transform(child, context)
+ except:
+ if error_handler:
+ result = error_handler()
+ else:
+ context.postprocess_queue.pop()
+ raise
try:
result.pack()
except AttributeError:
@@ -87,6 +108,7 @@
result = pack_list(result)
except:
pass
+ self.pop_error_handler(context)
try:
result = self.postprocess(result, context)
except StopTransform, data:
Index: opental/pax/setup.py
diff -u opental/pax/setup.py:1.5 opental/pax/setup.py:1.6
--- opental/pax/setup.py:1.5 Sun Dec 29 19:05:41 2002
+++ opental/pax/setup.py Wed Feb 26 14:59:14 2003
@@ -1,12 +1,24 @@
#!/usr/bin/env python
+# patch distutils if it can't cope with the "classifiers" keyword
+import sys
+if sys.version < '2.2.3':
+ from distutils.dist import DistributionMetadata
+ DistributionMetadata.classifiers = None
+
from distutils.core import setup
setup (name = "pax",
- version = "1.0",
+ version = "1.0alpha",
description = "The Pythonic API for XML",
+ long_description = "A DOM-like library for handling structure
(typically XML) data in a way that makes sense for python programmers",
+ keywords = "xml library transform",
+ classifiers = [
+ 'Topic :: Text Processing :: Markup :: XML'
+ ],
author = "Lalo Martins",
author_email = "address@hidden",
url = "http://python.laranja.org/pax/",
+ license = "public domain",
package_dir = {'pax':'.'},
- packages = ['pax']
+ packages = ['pax'],
)
Index: opental/pax/xmlpaxparser.py
diff -u opental/pax/xmlpaxparser.py:1.9 opental/pax/xmlpaxparser.py:1.10
--- opental/pax/xmlpaxparser.py:1.9 Thu Feb 20 05:41:19 2003
+++ opental/pax/xmlpaxparser.py Wed Feb 26 14:59:14 2003
@@ -28,7 +28,10 @@
parser.EndNamespaceDeclHandler = self.pop_namespace
parser.CommentHandler = self.comment
parser.returns_unicode = True
- parser.buffer_text = True
+ try:
+ parser.buffer_text = True
+ except AttributeError:
+ pass
def __raw(self):
return self.parser.GetInputContext().split('>')[0] + u'>'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [OpenTAL-checkins] opental/pax core.py paxtransform.py setup.py xm...,
Fernando Lalo Martins <=