/[opental]/opental/OpenTAL/tal_tester.py
ViewVC logotype

Diff of /opental/OpenTAL/tal_tester.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by lalo, Thu Jan 16 22:52:46 2003 UTC revision 1.2 by lalo, Fri Mar 14 02:02:16 2003 UTC
# Line 18  Line 18 
18    
19  # tester: handle the tal: and metal: namespaces  # tester: handle the tal: and metal: namespaces
20    
21  from tal_handler import tal_handler, tal_ns  # ATTENTION: this script is NOT the best way to find out how to use
22  from metal_handler import metal_handler, metal_ns, metal_compilefile, metal_getmacros  # OpenTAL from Python, and it's not particularly useful either
23    # (because its Context has no useful bindings).
24    # A more useful tool is the Static subpackage.
25    # This script is not guaranteed to be kept up-to-date either.
26    
27    from tal_handler import *
28    from metal_handler import *
29    
30  if __name__ == '__main__':  if __name__ == '__main__':
31      import sys, pax, pax.paxtransform      import sys, pax, pax.paxtransform
32      zpt_tr_engine = pax.paxtransform.Engine()      compile_engine = pax.paxtransform.Engine()
33      zpt_tr_engine.add_handler(metal_ns, metal_handler)      compile_engine.add_handler(metal_ns, metal_handler)
34      zpt_tr_engine.add_handler(tal_ns, tal_handler)      compile_engine.add_handler(tal_ns, tal_handler)
35      import DummyEngine      render_engine = pax.paxtransform.RenderingEngine()
36      default = DummyEngine.Default      render_engine.add_handler(metal_ns, metal_handler)
37      class DumbContext:      render_engine.add_handler(tal_ns, tal_handler)
         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  
38      if len(sys.argv) > 1:      if len(sys.argv) > 1:
39          srcfile = open(sys.argv[1])          srcfile = open(sys.argv[1])
40      else:      else:
41          srcfile = sys.stdin          srcfile = sys.stdin
42          sys.stderr.write('Reading source from stdin\n')          sys.stderr.write('Reading source from stdin\n')
43      source = pax.xml2pax(srcfile.read())      source = pax.text2pax(srcfile.read(), builtin_namespaces={'tal': tal_ns, 'metal': metal_ns})
44      macros = metal_getmacros(source)      print source
45      print pax.XML(zpt_tr_engine.transform(source, DumbContext(zpt_tr_engine, macros)))      import Context, Expressions
46        expr_engine = Expressions.Engine()
47        context = Context.Context(expr_engine)
48        compile_engine.initialize(context)
49        compiled = compile_engine.transform(source, context)
50        macros = getattr(context, 'metal_macros', None)
51        context = Context.Context(expr_engine, names={'macros': macros})
52        context.encoding = sys.getdefaultencoding()
53        context.root_xmlns_map = {}
54        render_engine.initialize(context)
55        print render_engine.transform(compiled, context).text

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26