VirtualBox

source: vbox/trunk/src/libs/libxslt-1.1.22/python/libxsl.py@ 15410

Last change on this file since 15410 was 7296, checked in by vboxsync, 17 years ago

Added libxslt-1.1.22 sources.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 3.7 KB
Line 
1#
2# Both libxml2mod and libxsltmod have a dependancy on libxml2.so
3# and they should share the same module, try to convince the python
4# loader to work in that mode if feasible
5#
6import sys
7if not hasattr(sys,'getdlopenflags'):
8 import libxml2mod
9 import libxsltmod
10 import libxml2
11else:
12 try:
13 from dl import RTLD_GLOBAL, RTLD_NOW
14 except ImportError:
15 RTLD_GLOBAL = -1
16 RTLD_NOW = -1
17 try:
18 import os
19 osname = os.uname()[0]
20 if osname == 'Linux' or osname == 'SunOS':
21 RTLD_GLOBAL = 0x00100
22 RTLD_NOW = 0x00002
23 elif osname == 'Darwin':
24 RTLD_GLOBAL = 0x8
25 RTLD_NOW = 0x2
26 #
27 # is there a better method ?
28 #
29# else:
30# print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
31# "on this platform: %s" % (osname)
32 except:
33 pass
34# print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
35# "on this platform: %s" % (osname)
36 except:
37 RTLD_GLOBAL = -1
38 RTLD_NOW = -1
39
40 if RTLD_GLOBAL != -1 and RTLD_NOW != -1:
41 try:
42 flags = sys.getdlopenflags()
43 sys.setdlopenflags(RTLD_GLOBAL | RTLD_NOW)
44 try:
45 import libxml2mod
46 import libxsltmod
47 import libxml2
48 finally:
49 sys.setdlopenflags(flags)
50 except:
51 import libxml2mod
52 import libxsltmod
53 import libxml2
54 else:
55 import libxml2mod
56 import libxsltmod
57 import libxml2
58
59
60class transformCtxtBase:
61 def __init__(self, _obj=None):
62 if _obj != None:
63 self._o = _obj;
64 return
65 self._o = None
66 def __hash__(self):
67 v = libxsltmod.xsltGetTransformContextHashCode(self._o)
68 return v
69 def __eq__(self, other):
70 if other == None:
71 return 0
72 v = libxsltmod.xsltCompareTransformContextsEqual(self._o, other._o)
73 return v
74
75class stylesheetBase:
76 def __init__(self, _obj=None):
77 if _obj != None:
78 self._o = _obj;
79 return
80 self._o = None
81 def __hash__(self):
82 v = libxsltmod.xsltGetStylesheetHashCode(self._o)
83 return v
84 def __eq__(self, other):
85 if other == None:
86 return 0
87 v = libxsltmod.xsltCompareStylesheetsEqual(self._o, other._o)
88 return v
89
90class extensionModule:
91 def _styleInit(self, style, URI):
92 return self.styleInit(stylesheet(_obj=style), URI)
93
94 def _styleShutdown(self, style, URI, data):
95 return self.styleShutdown(stylesheet(_obj=style), URI, data)
96
97 def _ctxtInit(self, ctxt, URI):
98 return self.ctxtInit(transformCtxt(_obj=ctxt), URI)
99
100 def _ctxtShutdown(self, ctxt, URI, data):
101 return self.ctxtShutdown(transformCtxt(_obj=ctxt), URI, data)
102
103 def styleInit(self, style, URI):
104 """Callback function when used in a newly compiled stylesheet,
105 the return value is passed in subsequent calls"""
106 pass
107
108 def styleShutdown(self, style, URI, data):
109 """Callback function when a stylesheet using it is destroyed"""
110 pass
111
112 def ctxtInit(self, ctxt, URI):
113 """Callback function when used in a new transformation process,
114 the return value is passed in subsequent calls"""
115 pass
116
117 def ctxtShutdown(self, ctxt, URI, data):
118 """Callback function when a transformation using it finishes"""
119 pass
120
121def cleanup():
122 """Cleanup all libxslt and libxml2 memory allocated"""
123 libxsltmod.xsltPythonCleanup()
124 libxml2.cleanupParser()
125
126#
127# Everything below this point is automatically generated
128#
129
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette