# HG changeset patch # User paulb # Date 1124130536 0 # Node ID a776fa1ff4f2504a5b2dca51fe41e53ef70a8878 # Parent 7f83a03de77aa29c01df94702c1425762aa7c8f7 [project @ 2005-08-15 18:28:56 by paulb] Reorganised the documentation, providing a format more like software such as WebStack. Moved the libxml2macro details into a separate file. Added a PyPI package information file. diff -r 7f83a03de77a -r a776fa1ff4f2 PKG-INFO --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PKG-INFO Mon Aug 15 18:28:56 2005 +0000 @@ -0,0 +1,23 @@ +Metadata-Version: 1.1 +Name: libxml2dom +Version: 0.2 +Author: Paul Boddie +Author-email: paul at boddie org uk +Maintainer: Paul Boddie +Maintainer-email: paul at boddie org uk +Home-page: http://www.boddie.org.uk/python/libxml2dom.html +Download-url: http://www.boddie.org.uk/python/downloads/libxml2dom-0.2.tar.gz +Summary: PyXML-style API for the libxml2 Python bindings +License: MIT +Description: The libxml2dom package provides a traditional DOM wrapper around the Python + bindings for libxml2. In contrast to the libxml2 bindings, libxml2dom provides + an API reminiscent of minidom, pxdom and other Python-based and Python-related + XML toolkits. +Keywords: XML libxml2 +Platform: Any +Classifier: Development Status :: 3 - Alpha +Classifier: License :: OSI Approved :: MIT License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Text Processing :: Markup :: XML diff -r 7f83a03de77a -r a776fa1ff4f2 README.txt --- a/README.txt Mon Aug 15 17:50:11 2005 +0000 +++ b/README.txt Mon Aug 15 18:28:56 2005 +0000 @@ -1,11 +1,37 @@ +Introduction +------------ + See docs/index.html for the libxml2dom documentation. +Contact, Copyright and Licence Information +------------------------------------------ + +The current Web page for libxml2dom at the time of release is: + +http://www.boddie.org.uk/python/libxml2dom.html + +Copyright and licence information can be found in the docs directory - see +docs/COPYING.txt for more information. + +Dependencies +------------ + +libxml2 Tested with libxml2 2.6.17. + Use --with-python= if building from + source. Previous releases of libxml2 in the 2.6 series may work, + but releases before 2.6.16 are not recommended. +Python Tested with Python 2.4. + Python releases from 2.2 onwards should be compatible with + libxml2dom. The principal requirement from such releases is the + new-style class support which permits the use of properties in + the libxml2dom implementation. + Testing ------- Some of the tests require libxml2macro.py to be run on the test source code first. Read the docstrings for the various test files before attempting to run -any of them. +any of them. See also docs/NOTES_libxml2macro.txt for more information. Issues ------ @@ -18,51 +44,79 @@ libxml2dom.macrolib implementation, too). A way is needed to get libxml2 to do the node copying itself. -Experiments ------------ +New in libxml2dom 0.2.1 (Changes since libxml2dom 0.2) +------------------------------------------------------ + + * Moved libxml2macro script to the tools directory. + * Added getElementsByTagNameNS. + * Added HTML parsing support. + * Improved some of the API documentation. -The libxml2macro.py program, along with the libxml2dom.macrolib package -provide support for writing DOM-style code which is then translated to -libxml2mod-style code before being compiled to normal Python modules. This -special translation should eliminate the need for high-level wrapper objects -in most cases as well as low-level libxml2 objects, since the actual compiled -code will be using the libxml2mod functions directly. +New in libxml2dom 0.2 (Changes since libxml2dom 0.1.3) +------------------------------------------------------ + + * Adopted libxml2macro code within the libxml2dom classes, removing any + dependencies on the libxml2 module - this makes everything much faster + and virtually removes any necessity to use libxml2macro. + * Improved attribute and document node handling. + * Introduced document reference management. + * Introduced NodeList wrapper objects. -To use libxml2macro.py, first write your code using the typical PyXML DOM -style, but make sure that you use a common prefix for all node variables and -which is not used by any other kind of variable, and make sure that you do not -re-use node variables to refer to other kinds of object. Here is an example of -the coding style: +New in libxml2dom 0.1.3 (Changes since libxml2dom 0.1.2) +-------------------------------------------------------- + + * Fixed createElement. + * Introduced experimental libxml2macro tools, tests and libraries. + +New in libxml2dom 0.1.2 (Changes since libxml2dom 0.1.1) +-------------------------------------------------------- - # My module. - - import libxml2macro as my_ + * Fixed getAttributeNode and getAttributeNodeNS. + * Added comment node creation. + * Fixed empty namespace usage with elements and attributes. + * Introduced usage of the libxml2 file and memory parsing features. + * Introduced suppression of DTD retrieval and validation as the default + behaviour. + * Added experimental XPath method support. - def processing_function(my_document, some_args): - - # Perform actions on nodes: +New in libxml2dom 0.1.1 +----------------------- - my_node = my_document.createElementNS("namespace", "some-name") - - # Perform actions on other data as normal: + * Fixed text node creation. + * Fixed setAttributeNS. + * Added encoding parameters to convenience methods. + * Added the missing previousSibling property. + * Added release number to the package. - some_function(some_args) - -Then, run libxml2macro.py on the module like this (using tests/macrotest.py as -an example): - - tools/libxml2macro.py tests/macrotest.py +Release Procedures +------------------ -This produces a compiled module that can be imported into Python; for example: +Update the libxml2dom/__init__.py and libxml2dom/macrolib/__init__.py +__version__ attributes. +Change the version number and package filename/directory in the documentation. +Change code examples in the documentation if appropriate. +Update the release notes (see above). +Update the package release notes (in the packages directory). +Check the setup.py file and ensure that all package directories are mentioned. +Tag, export. +Archive, upload. +Make packages (see below). +Update PyPI, PythonInfo Wiki, Vaults of Parnassus entries. - cd tests - python - import macrotest +Making Packages +--------------- -It should be possible to run the module directly; for example: +To make Debian packages: - python tests/macrotest.pyc + 1. Create new package directories under packages/debian if necessary. + 2. Make a symbolic link in the distribution's root directory to keep the + Debian tools happy: -Note that running the module using the source filename will probably result in -the compiled module being overwritten and various errors being produced. So -don't do that! + ln -s packages/debian/python2.4-libxml2dom/debian/ + + 3. Run the package builder: + + dpkg-buildpackage -rfakeroot + + 4. Locate and tidy up the packages in the parent directory of the + distribution's root directory.