The Python extension module now uses Py_ssize_t rather than int for
string lengths. This change makes the extension compatible with
Python 3.10.
Fixes#203.
while still compiling on recent Python2:
- change the handling of files, tweak the generator, get the fd
instead of the FILE *, dup it and fdopen based on mode, add a
Release function on Python3 and call to flush from the generated
python stubs
- switch to using Capsules instead of CObjects
- fix PyString to PyBytes
- fix PyInt to PyLong
- tweak the module registration to compile on both versions
- drop PyInstance check for passed xmlNodes and instead check
attributes presence
Daniel
It is possible to make xmlIO handle any protocol by means of
xmlRegisterInputCallback(). However, that function is currently only
available in C API. So, the natural solution seems to be implementing Python
bindings for the xmlRegisterInputCallback.
* python/generator.py: skip xmlPopInputCallbacks
* python/libxml.c python/libxml.py python/libxml_wrap.h: implement the
wrappers
* python/tests/input_callback.py python/tests/Makefile.am: also add a test case
* include/libxml/tree.h tree.c python/generator.py: adds
element traversal support
* valid.c: avoid a warning
* doc/*: regenerated
daniel
svn path=/trunk/; revision=3804
* python/generator.py python/setup.py: apply patch from Martin fixing
python whitespaces
* NEWS: following previous commit rebuilt now in UTF-8
Daniel
svn path=/trunk/; revision=3746
* tree.c: fix a bug introduced when fixing #438208 and reported by
Ashwin
* python/generator.py: fix an infinite loop bug
Daniel
svn path=/trunk/; revision=3733
* xpath.c: removed a potentially uninitialized variable error
* python/generator.py: fixed a deprecation warning
* python/tests/tstLastError.py: silent the damn test when Okay !
Daniel
* testapi.c runsuite.c runtest.c: fixing #307823 and a couple of
assorted bugs
* python/generator.py python/libxml2-python-api.xml: fixed
conditionals in generator too
* doc/apibuild.py doc/libxml2-api.xml doc/* elfgcchack.h: some
cleanups too and rebuilt
Daniel
* python/generator.py python/libxml.py: another patch from Brent
Hendricks to add new handlers with the various validity contexts
* python/tests/Makefile.am python/tests/validDTD.py
python/tests/validRNG.py python/tests/validSchemas.py: also
added the regression tests he provided
Daniel
* Makefile.am doc/examples/Makefile.am python/tests/Makefile.am
xstc/Makefile.am: try to fix a problem with valgrind.
* python/generator.py python/libxml.c python/tests/Makefile.am
python/tests/tstmem.py: applied memory leak fix from Brent Hendricks
c.f. bug #165349
Daniel
* pattern.c include/libxml/pattern.h xmllint.c: added a
streaming pattern detector for a subset of XPath, should
help Kasimier for identity constraints
* python/generator.py: applied Stephane Bidoul patch to find
paths without breaking.
Daniel
* python/generator.py: added most required entires to
foreign encoding table, plus some additional logic to
assure only the 1st param uses the 't#' format. Fixes
bug #152286, but may still have some other UTF-16 problems.
* Makefile.am, gentest.py: enhanced for enabling build in
a different directory. Added (optional) param to gentest.py
to specify the source directory (bug #155468)
* doc/Makefile.am: changed destination of NEWS from (top_srcdir)
to (top_builddir) (bug #155468)
* python/Makefile.am, python/generator.py: enhanced for enabling
build in a different directory(bug #155468). Added (optional)
param to generator.py to specify the source directory. Added
a new table of functions which have possible "foreign" encodings
(e.g. UTF16), and code to use python 't' format instead of
'z' format (mostly solving bug #152286, but still need to
populate the table).
* python/generator.py python/libxml.c python/libxml2class.txt
python/libxml_wrap.h python/types.c: Applied patch from Brent
Hendricks adding support for late DTD validation.
* python/tests/Makefile.am python/tests/dtdvalid.py
python/tests/test.dtd: integrated the provided regression test
Daniel
* python/generator.py python/libxml.c python/tests/outbuf.py:
applied patch from Malcolm Tredinnick fixing bug #154294
related to saving to python file objects.
Daniel
* xmlschemas.c include/libxml/xmlschemas.h python/generator.py
python/libxml.c python/libxml_wrap.h python/types.c
python/tests/schema.py python/tests/Makefile.am: Applied patch
from Torkel Lyng to add Schemas support to the Python bindings
and extend the schemas error API, registered a new test.
* doc/* elfgcchack.h: rebuilt to regenerate the bindings
Daniel
* python/generator.py: added a check on the argument for some
classes (e.g. xmlDoc and xmlNode) to prevent a segfault (as
reported on the list). Further enhancement should be done
to auto-create the appropriate object.
* python/libxml.c: minor fix for a warning message; added a
routine, currently not used, to report the description of a
PyCObject.
* python/libxml2class.txt: regenerated
* python/libxml.c python/generator.py python/libxml.py
python/libxml2-python-api.xml python/libxml2class.txt:
applied patch from Stphane Bidoul to fix some Python bindings
initialization, then had to change the parserCleanup()
to handle memory released there.
* xmlmemory.c: added more debugging comments.
Daniel
* python/generator.py: do not provide functions used as destructor
of classes as public methods to avoid double-free problem like
in bug #145185
Daniel
* python/libxml2-python-api.xml python/libxml_wrap.h python/types.c
python/tests/Makefile.am python/tests/tstLastError.py: applied
patch from Stephane Bidoul for structured error handling from
python, and the associated test
Daniel
* python/generator.py, python/libxml2class.txt: fixed problem
pointed out by Stphane Bidoul on the list.
* xinclude.c, xpointer.c, xpath.c, include/libxml/xpointer.h:
completed modifications required to fix Bug 129967 (at last!).
Now wait to see how long before further trouble...
* python/generator.py python/libxml.c python/libxml_wrap.h:
cleanup the output buffer support to at least get the basic
to work
* python/tests/outbuf.py python/tests/serialize.py: fixes and
cleanup.
* include/libxml/xmlwriter.h: cleanup
Daniel
* genUnicode.py, xmlunicode.c, include/libxml/xmlunicode.h,
python/libxml2class.txt: enhanced for range checking,
updated to Unicode version 4.0.1 (API docs also updated)
* python/generator.py: minor change to fix a warning
* python/generator.py: small enhancement to assure ATTRIBUTE_UNUSED
appears after the variable declaration.
* valid.c: trivial change to eliminate a warning message
* Makefile.am configure.in xmldwalk.c xmlreader.c
include/libxml/Makefile.am include/libxml/xmldwalk.h
include/libxml/xmlversion.h.in: removing xmldwalk module
since it got merged with the xmlreader.
* parser.c: cleanup
* win32/libxml2.def.src python/libxml2class.txt doc/libxml2-api.xml:
rebuilt the API
* python/tests/Makefile.am python/tests/reader7.py
python/tests/walker.py: adding regression testing for the
new xmlreader APIs, new APIs for reader creation, including
makeing reader "walker" operating on preparsed document trees.
Daniel
* python/generator.py: fixed a problem in the generator where
the way functions are remapped as methods on classes was
not symetric and dependant on python internal hash order,
as reported by Stphane Bidoul
Daniel
* relaxng.c: more bug-hunting
* testRelax.c include/libxml/relaxng.h: added --tree to dump the
intermediate rng tree
* python/generator.py: patch from Stephane Bidoul to fix the generator
on python < 2.2
Daniel
* xpath.c: fixed doc comment problems
* python/generator.py python/libxml_wrap.h python/types.c: adding
RelaxNG wrappers
* python/tests/Makefile.am python/tests/relaxng.py: added a specific
test of those early Python RelaxNG bindings
Daniel
* HTMLparser.c tree.c xmlIO.c: comments cleanups
* Makefile.am: use xmllint for doing the RelaxNG tests
* configure.in: preparing 2.5.2 made schemas support default to
on instead of off
* relaxng.c: removed the verbosity
* xmllint.c: added --relaxng option
* python/generator.py python/libxml_wrap.h: prepared the integration
of the new RelaxNG module and schemas
* result/relaxng/*: less verbose output
Daniel
* xmlreader.c python/drv_libxml2.py python/generator.py
python/libxml.c python/libxml.py python/libxml_wrap.h
python/types.c: patch from Stphane Bidoul for better per
context error message APIs
* python/tests/ctxterror.py python/tests/readererr.py:
update of the tests
Daniel
* xmlreader.c include/libxml/xmlreader.h python/generator.py
python/libxml.c python/libxml.py win32/libxml2.def.src: applied
a patch from Stphane Bidoul to allow per XMLtextReader error
and warning handling
* python/tests/Makefile.am python/tests/readererr.py: adding the
specific regression test
Daniel
* python/generator.py python/libxml.c python/libxml.py
python/libxml_wrap.h python/types.c: applied and fixed a patch
from Stephane Bibould to provide per parser error handlers at the
Python level.
* python/tests/Makefile.am python/tests/ctxterror.py: added a
regression test for it.
Daniel
* python/generator.py: modified the generator to allow keeping
class references when creating new classes, needed to fix a bug
pointed by Stphane Bidoul where the input buffer of the
xmlTextReader instance gets destroyed if the python wrapper for
the input is not referenced anymore.
Daniel
* python/generator.py python/libxml2class.txt
python/tests/reader.py python/tests/reader2.py: changed the
generator to provide casing for the XmlTextReader similar to
C# so that examples and documentation are more directly transposable.
Fixed the couple of tests in the suite.
Daniel
* xmlreader.c doc/libxml2-api.xml: added the close and getattribute
methods of XmlTextReader.
* python/generator.py python/libxml_wrap.h python/types.c
python/libxml2class.txt: added the reader to the Python bindings
* python/tests/Makefile.am python/tests/reader.py: added a specific
test for the Python bindings of the Reader APIs
* parser.c: small cleanup.
Daniel