1
0
mirror of https://gitlab.gnome.org/GNOME/libxslt synced 2025-04-19 05:42:15 +03:00
libxslt/python/libxsl.py
Yegor Yefremov 5df99903ae python: fix typos
Typos were found with codespell.
2024-10-14 10:20:33 +02:00

130 lines
3.7 KiB
Python

#
# Both libxml2mod and libxsltmod have a dependency on libxml2.so
# and they should share the same module, try to convince the python
# loader to work in that mode if feasible
#
import sys
if not hasattr(sys,'getdlopenflags'):
import libxml2mod
import libxsltmod
import libxml2
else:
try:
from dl import RTLD_GLOBAL, RTLD_NOW
except ImportError:
RTLD_GLOBAL = -1
RTLD_NOW = -1
try:
import os
osname = os.uname()[0]
if osname == 'Linux' or osname == 'SunOS':
RTLD_GLOBAL = 0x00100
RTLD_NOW = 0x00002
elif osname == 'Darwin':
RTLD_GLOBAL = 0x8
RTLD_NOW = 0x2
#
# is there a better method ?
#
# else:
# print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
# "on this platform: %s" % (osname)
except:
pass
# print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
# "on this platform: %s" % (osname)
except:
RTLD_GLOBAL = -1
RTLD_NOW = -1
if RTLD_GLOBAL != -1 and RTLD_NOW != -1:
try:
flags = sys.getdlopenflags()
sys.setdlopenflags(RTLD_GLOBAL | RTLD_NOW)
try:
import libxml2mod
import libxsltmod
import libxml2
finally:
sys.setdlopenflags(flags)
except:
import libxml2mod
import libxsltmod
import libxml2
else:
import libxml2mod
import libxsltmod
import libxml2
class transformCtxtBase:
def __init__(self, _obj=None):
if _obj != None:
self._o = _obj;
return
self._o = None
def __hash__(self):
v = libxsltmod.xsltGetTransformContextHashCode(self._o)
return v
def __eq__(self, other):
if other == None:
return 0
v = libxsltmod.xsltCompareTransformContextsEqual(self._o, other._o)
return v
class stylesheetBase:
def __init__(self, _obj=None):
if _obj != None:
self._o = _obj;
return
self._o = None
def __hash__(self):
v = libxsltmod.xsltGetStylesheetHashCode(self._o)
return v
def __eq__(self, other):
if other == None:
return 0
v = libxsltmod.xsltCompareStylesheetsEqual(self._o, other._o)
return v
class extensionModule:
def _styleInit(self, style, URI):
return self.styleInit(stylesheet(_obj=style), URI)
def _styleShutdown(self, style, URI, data):
return self.styleShutdown(stylesheet(_obj=style), URI, data)
def _ctxtInit(self, ctxt, URI):
return self.ctxtInit(transformCtxt(_obj=ctxt), URI)
def _ctxtShutdown(self, ctxt, URI, data):
return self.ctxtShutdown(transformCtxt(_obj=ctxt), URI, data)
def styleInit(self, style, URI):
"""Callback function when used in a newly compiled stylesheet,
the return value is passed in subsequent calls"""
pass
def styleShutdown(self, style, URI, data):
"""Callback function when a stylesheet using it is destroyed"""
pass
def ctxtInit(self, ctxt, URI):
"""Callback function when used in a new transformation process,
the return value is passed in subsequent calls"""
pass
def ctxtShutdown(self, ctxt, URI, data):
"""Callback function when a transformation using it finishes"""
pass
def cleanup():
"""Cleanup all libxslt and libxml2 memory allocated"""
libxsltmod.xsltPythonCleanup()
libxml2.cleanupParser()
#
# Everything below this point is automatically generated
#