mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-28 00:21:53 +03:00
Justin Fletcher found some parts of the code needing cleanup Fixed the
* parserInternals.c valid.c: Justin Fletcher found some parts of the code needing cleanup * libxml.spec.in python/Makefile.am python/generator.py python/libxml.c python/libxml.py: Fixed the python Makefiles corrected a bug showing up on ia64, changed the name of the python internal module too Daniel
This commit is contained in:
@ -1,11 +1,14 @@
|
||||
# Makefile for libxml2 python library
|
||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
|
||||
SUBDIRS= . tests
|
||||
|
||||
LIBS=-L../.libs -L.. $(XML_LIBS)
|
||||
INCLUDES=-I/usr/include/python$(PYTHON_VERSION) -I$(PYTHON_INCLUDES) -I$(top_srcdir)/include
|
||||
SHCFLAGS=$(INCLUDES) -Wall -fPIC -g
|
||||
LINK_FLAGS= -shared
|
||||
DOCS_DIR = $(prefix)/share/doc/libxml2-python-$(LIBXML_VERSION)
|
||||
INCLUDES = \
|
||||
-I/usr/include/python$(PYTHON_VERSION) \
|
||||
-I$(PYTHON_INCLUDES) \
|
||||
-I$(top_srcdir)/include
|
||||
|
||||
DOCS_DIR = $(prefix)/share/doc/libxml2-python-$(LIBXML_VERSION)
|
||||
DOCS = TODO libxml2class.txt
|
||||
|
||||
EXTRA_DIST = \
|
||||
@ -18,31 +21,37 @@ EXTRA_DIST = \
|
||||
$(DOCS)
|
||||
|
||||
if WITH_PYTHON
|
||||
all: _libxml.so libxml2.py
|
||||
mylibs = \
|
||||
$(top_builddir)/libxml2.la
|
||||
|
||||
all: libxml2mod.so libxml2.py
|
||||
|
||||
LDADD = -lxml2
|
||||
CFLAGS = -Wall -g
|
||||
|
||||
pythondir = $(prefix)/lib/python${PYTHON_VERSION}/site-packages
|
||||
python_PROGRAMS = libxml2mod.so
|
||||
|
||||
libxml2mod_so_SOURCES =
|
||||
libxml2mod_so_LDFLAGS = $(mylibs) $(LIBS) -shared -Wl,-soname,libxml2mod.so
|
||||
|
||||
noinst_LTLIBRARIES = libxmlmodule.la
|
||||
libxmlmodule_la_SOURCES = libxml.c types.c libxml2-py.c
|
||||
|
||||
libxml2mod.so: $(libxmlmodule_la_OBJECTS)
|
||||
$(LINK) -o $@ $(libxmlmodule_la_OBJECTS) $(libxml2mod_so_LDFLAGS)
|
||||
|
||||
|
||||
libxml2.py: $(srcdir)/libxml.py libxml2class.py
|
||||
cat $(srcdir)/libxml.py libxml2class.py > libxml2.py
|
||||
|
||||
_libxml.so: libxml.o libxml2-py.o types.o
|
||||
$(CC) $(LINK_FLAGS) libxml.o libxml2-py.o types.o $(LIBS) -o _libxml.so
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(PYTHON_SITE_PACKAGES)
|
||||
-@INSTALL@ -m 0644 libxml2.py $(DESTDIR)$(PYTHON_SITE_PACKAGES)
|
||||
-@INSTALL@ -m 0755 _libxml.so $(DESTDIR)$(PYTHON_SITE_PACKAGES)
|
||||
$(mkinstalldirs) $(DESTDIR)$(DOCS_DIR)
|
||||
-@(for doc in $(DOCS) ; \
|
||||
do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done)
|
||||
|
||||
libxml.o: libxml.c libxml2-export.c libxml_wrap.h
|
||||
$(CC) $(SHCFLAGS) -c -o libxml.o $(srcdir)/libxml.c
|
||||
|
||||
types.o: types.c libxml_wrap.h
|
||||
$(CC) $(SHCFLAGS) -c -o types.o $(srcdir)/types.c
|
||||
|
||||
libxml2-py.o: libxml2-py.c libxml2-py.h libxml_wrap.h
|
||||
$(CC) $(SHCFLAGS) -c -o libxml2-py.o $(srcdir)/libxml2-py.c
|
||||
|
||||
GENERATE = generator.py
|
||||
API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml
|
||||
GENERATED= $(srcdir)/libxml2class.py \
|
||||
|
@ -378,7 +378,8 @@ def print_function_wrapper(name, output, export, include):
|
||||
include.write("PyObject * ")
|
||||
include.write("libxml_%s(PyObject *self, PyObject *args);\n" % (name))
|
||||
|
||||
export.write(" { \"%s\", libxml_%s, METH_VARARGS },\n" % (name, name))
|
||||
export.write(" { \"%s\", libxml_%s, METH_VARARGS, NULL },\n" %
|
||||
(name, name))
|
||||
|
||||
if file == "python":
|
||||
# Those have been manually generated
|
||||
@ -726,7 +727,7 @@ if function_classes.has_key("None"):
|
||||
classes.write(" ret = ");
|
||||
else:
|
||||
classes.write(" ");
|
||||
classes.write("_libxml.%s(" % name)
|
||||
classes.write("libxml2mod.%s(" % name)
|
||||
n = 0
|
||||
for arg in args:
|
||||
if n != 0:
|
||||
@ -775,7 +776,7 @@ for classname in classes_list:
|
||||
if classes_destructors.has_key(classname):
|
||||
classes.write(" def __del__(self):\n")
|
||||
classes.write(" if self._o != None:\n")
|
||||
classes.write(" _libxml.%s(self._o)\n" %
|
||||
classes.write(" libxml2mod.%s(self._o)\n" %
|
||||
classes_destructors[classname]);
|
||||
classes.write(" self._o = None\n\n");
|
||||
flist = function_classes[classname]
|
||||
@ -816,7 +817,7 @@ for classname in classes_list:
|
||||
classes.write(" ret = ");
|
||||
else:
|
||||
classes.write(" ");
|
||||
classes.write("_libxml.%s(" % name)
|
||||
classes.write("libxml2mod.%s(" % name)
|
||||
n = 0
|
||||
for arg in args:
|
||||
if n != 0:
|
||||
|
@ -1351,20 +1351,21 @@ libxml_xmlNodeGetNs(PyObject *self, PyObject *args) {
|
||||
************************************************************************/
|
||||
static PyMethodDef libxmlMethods[] = {
|
||||
#include "libxml2-export.c"
|
||||
{ "name", libxml_name, METH_VARARGS },
|
||||
{ "children", libxml_children, METH_VARARGS },
|
||||
{ "properties", libxml_properties, METH_VARARGS },
|
||||
{ "last", libxml_last, METH_VARARGS },
|
||||
{ "prev", libxml_prev, METH_VARARGS },
|
||||
{ "next", libxml_next, METH_VARARGS },
|
||||
{ "parent", libxml_parent, METH_VARARGS },
|
||||
{ "type", libxml_type, METH_VARARGS },
|
||||
{ "doc", libxml_doc, METH_VARARGS },
|
||||
{ "name", libxml_name, METH_VARARGS, NULL },
|
||||
{ "children", libxml_children, METH_VARARGS, NULL },
|
||||
{ "properties", libxml_properties, METH_VARARGS, NULL },
|
||||
{ "last", libxml_last, METH_VARARGS, NULL },
|
||||
{ "prev", libxml_prev, METH_VARARGS, NULL },
|
||||
{ "next", libxml_next, METH_VARARGS, NULL },
|
||||
{ "parent", libxml_parent, METH_VARARGS, NULL },
|
||||
{ "type", libxml_type, METH_VARARGS, NULL },
|
||||
{ "doc", libxml_doc, METH_VARARGS, NULL },
|
||||
{ NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
void init_libxml(void) {
|
||||
void initlibxml2mod(void) {
|
||||
PyObject *m;
|
||||
m = Py_InitModule("_libxml", libxmlMethods);
|
||||
m = Py_InitModule("libxml2mod", libxmlMethods);
|
||||
libxml_xmlErrorInitialize();
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import _libxml
|
||||
import libxml2mod
|
||||
|
||||
#
|
||||
# This class is the ancestor of all the Node classes. It provides
|
||||
@ -15,43 +15,43 @@ class xmlCore:
|
||||
|
||||
def __getattr__(self, attr):
|
||||
if attr == "parent":
|
||||
ret = _libxml.parent(self._o)
|
||||
ret = libxml2mod.parent(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
elif attr == "properties":
|
||||
ret = _libxml.properties(self._o)
|
||||
ret = libxml2mod.properties(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlAttr(_obj=ret)
|
||||
elif attr == "children":
|
||||
ret = _libxml.children(self._o)
|
||||
ret = libxml2mod.children(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
elif attr == "last":
|
||||
ret = _libxml.last(self._o)
|
||||
ret = libxml2mod.last(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
elif attr == "next":
|
||||
ret = _libxml.next(self._o)
|
||||
ret = libxml2mod.next(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
elif attr == "prev":
|
||||
ret = _libxml.prev(self._o)
|
||||
ret = libxml2mod.prev(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
elif attr == "content":
|
||||
return _libxml.xmlNodeGetContent(self._o)
|
||||
return libxml2mod.xmlNodeGetContent(self._o)
|
||||
elif attr == "name":
|
||||
return _libxml.name(self._o)
|
||||
return libxml2mod.name(self._o)
|
||||
elif attr == "type":
|
||||
return _libxml.type(self._o)
|
||||
return libxml2mod.type(self._o)
|
||||
elif attr == "doc":
|
||||
ret = _libxml.doc(self._o)
|
||||
ret = libxml2mod.doc(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlDoc(_doc=ret)
|
||||
@ -61,62 +61,62 @@ class xmlCore:
|
||||
# Those are common attributes to nearly all type of nodes
|
||||
#
|
||||
def get_parent(self):
|
||||
ret = _libxml.parent(self._o)
|
||||
ret = libxml2mod.parent(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
def get_children(self):
|
||||
ret = _libxml.children(self._o)
|
||||
ret = libxml2mod.children(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
def get_last(self):
|
||||
ret = _libxml.last(self._o)
|
||||
ret = libxml2mod.last(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
def get_next(self):
|
||||
ret = _libxml.next(self._o)
|
||||
ret = libxml2mod.next(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
def get_properties(self):
|
||||
ret = _libxml.properties(self._o)
|
||||
ret = libxml2mod.properties(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlAttr(_obj=ret)
|
||||
def get_doc(self):
|
||||
ret = _libxml.doc(self._o)
|
||||
ret = libxml2mod.doc(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlDoc(_obj=ret)
|
||||
def get_prev(self):
|
||||
ret = _libxml.prev(self._o)
|
||||
ret = libxml2mod.prev(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlNode(_obj=ret)
|
||||
def get_content(self):
|
||||
return _libxml.xmlNodeGetContent(self._o)
|
||||
return libxml2mod.xmlNodeGetContent(self._o)
|
||||
def getContent(self):
|
||||
return _libxml.xmlNodeGetContent(self._o)
|
||||
return libxml2mod.xmlNodeGetContent(self._o)
|
||||
def get_name(self):
|
||||
return _libxml.name(self._o)
|
||||
return libxml2mod.name(self._o)
|
||||
def get_type(self):
|
||||
return _libxml.type(self._o)
|
||||
return libxml2mod.type(self._o)
|
||||
def get_doc(self):
|
||||
ret = _libxml.doc(self._o)
|
||||
ret = libxml2mod.doc(self._o)
|
||||
if ret == None:
|
||||
return None
|
||||
return xmlDoc(_doc=ret)
|
||||
def free(self):
|
||||
_libxml.freeDoc(self._o)
|
||||
libxml2mod.freeDoc(self._o)
|
||||
|
||||
#
|
||||
# converters to present a nicer view of the XPath returns
|
||||
#
|
||||
def nodeWrap(o):
|
||||
# TODO try to cast to the most appropriate node class
|
||||
name = _libxml.name(o)
|
||||
name = libxml2mod.name(o)
|
||||
if name == "element" or name == "text":
|
||||
return xmlNode(_obj=o)
|
||||
if name == "attribute":
|
||||
@ -145,7 +145,7 @@ def xpathObjectRet(o):
|
||||
# register an XPath function
|
||||
#
|
||||
def registerXPathFunction(ctxt, name, ns_uri, f):
|
||||
ret = _libxml.xmlRegisterXPathFunction(ctxt, name, ns_uri, f)
|
||||
ret = libxml2mod.xmlRegisterXPathFunction(ctxt, name, ns_uri, f)
|
||||
|
||||
#
|
||||
# Everything below this point is automatically generated
|
||||
|
Reference in New Issue
Block a user