opental-checkins
[Top][All Lists]
Advanced

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

[OpenTAL-checkins] opental/OpenTAL tal_tester.py


From: Fernando Lalo Martins
Subject: [OpenTAL-checkins] opental/OpenTAL tal_tester.py
Date: Thu, 13 Mar 2003 21:02:29 -0500

CVSROOT:        /cvsroot/opental
Module name:    opental
Changes by:     Fernando Lalo Martins <address@hidden>  03/03/13 21:02:18

Modified files:
        OpenTAL        : tal_tester.py 

Log message:
        better make this script work, since it seems to be the first thing 
people check

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/OpenTAL/tal_tester.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: opental/OpenTAL/tal_tester.py
diff -u opental/OpenTAL/tal_tester.py:1.1 opental/OpenTAL/tal_tester.py:1.2
--- opental/OpenTAL/tal_tester.py:1.1   Thu Jan 16 17:52:46 2003
+++ opental/OpenTAL/tal_tester.py       Thu Mar 13 21:02:16 2003
@@ -18,27 +18,38 @@
 
 # tester: handle the tal: and metal: namespaces
 
-from tal_handler import tal_handler, tal_ns
-from metal_handler import metal_handler, metal_ns, metal_compilefile, 
metal_getmacros
+# ATTENTION: this script is NOT the best way to find out how to use
+# OpenTAL from Python, and it's not particularly useful either
+# (because its Context has no useful bindings).
+# A more useful tool is the Static subpackage.
+# This script is not guaranteed to be kept up-to-date either.
+
+from tal_handler import *
+from metal_handler import *
 
 if __name__ == '__main__':
     import sys, pax, pax.paxtransform
-    zpt_tr_engine = pax.paxtransform.Engine()
-    zpt_tr_engine.add_handler(metal_ns, metal_handler)
-    zpt_tr_engine.add_handler(tal_ns, tal_handler)
-    import DummyEngine
-    default = DummyEngine.Default
-    class DumbContext:
-        def __init__(self, tr_engine, macros=None):
-            self.engine = DummyEngine.DummyEngine(macros)
-            self.tr_engine = tr_engine
-            self.engine.compilefile = metal_compilefile
-            self.engine.getmacros = metal_getmacros
+    compile_engine = pax.paxtransform.Engine()
+    compile_engine.add_handler(metal_ns, metal_handler)
+    compile_engine.add_handler(tal_ns, tal_handler)
+    render_engine = pax.paxtransform.RenderingEngine()
+    render_engine.add_handler(metal_ns, metal_handler)
+    render_engine.add_handler(tal_ns, tal_handler)
     if len(sys.argv) > 1:
         srcfile = open(sys.argv[1])
     else:
         srcfile = sys.stdin
         sys.stderr.write('Reading source from stdin\n')
-    source = pax.xml2pax(srcfile.read())
-    macros = metal_getmacros(source)
-    print pax.XML(zpt_tr_engine.transform(source, DumbContext(zpt_tr_engine, 
macros)))
+    source = pax.text2pax(srcfile.read(), builtin_namespaces={'tal': tal_ns, 
'metal': metal_ns})
+    print source
+    import Context, Expressions
+    expr_engine = Expressions.Engine()
+    context = Context.Context(expr_engine)
+    compile_engine.initialize(context)
+    compiled = compile_engine.transform(source, context)
+    macros = getattr(context, 'metal_macros', None)
+    context = Context.Context(expr_engine, names={'macros': macros})
+    context.encoding = sys.getdefaultencoding()
+    context.root_xmlns_map = {}
+    render_engine.initialize(context)
+    print render_engine.transform(compiled, context).text




reply via email to

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