[Announce] Gnosis Utils 1.2.0

  • Thread starter David Mertz, Ph.D.
  • Start date
D

David Mertz, Ph.D.

David Mertz ([email protected])
Frank McIngvale ([email protected])

This release of the Gnosis Utilities contains several new modules,
as well as fixes, enhancements, and speedups in existing
subpackages.

Try it out, have fun, send feedback!

NEW SUBPACKAGES
------------------------------------------------------------------------

ADDED gnosis.utils.hashcash (also runs standalone). Python
implementation of Hashcash v.1 (backward compatible with hashcash
v.0).

ADDED disthelper. A collection of scripts and modules that are
generally useful for building/maintaining a Python source
distribution.

- To use disthelper in your own distribution, copy the entire
disthelper/ tree into the toplevel of your tree, as has been done
in Gnosis_Utils.
- See disthelper/README for details.

ADDED gnosis.pyconfig. Detect actual capabilities available in a
Python interpreter. gnosis.pyconfig lets you write much more
robust/readable code than simply relying on sys.version_info.

ADDED gnosis.xml.xmlmap. Unicode->XML legality testing & Unicode
helper functions.

- For detailed background information on the motivation for
this module, see "All About Python and Unicode" at:
http://boodebr.org/python/pyunicode/index.html

ENHANCEMENTS
------------------------------------------------------------------------

There is one critical change in gnosis.xml.pickle; all xml.pickle
users are encouraged to upgrade.

Catch unpickleable data in gnosis.xml.pickle and abort, instead of
creating pickles that can't be reloaded.

- Recommend all xml.pickle users upgrade to 1.2.0.
- Issues: not all valid Unicode strings are valid XML CDATA or
attribute values.
- There have not been any reports of data loss due to this, but it
is a possibility with 1.1.1.
- A future Gnosis release will fix this so that the 'bad' data can
be pickled, instead of just bailing out.

Numerous new convenience functions for gnosis.xml.objectify. See
gnosis/docs/xml_matters_39.txt for more discussion.

- addChild() # moved to utils subpackage
- walk_xo() # Recursively traverse the nodes
- write_xml() # Serialize an _XO_ object back into XML
- XPath() # Find node(s) within an _XO_ object
- pyobj_printer() # moved to utils subpackage

Some of older conveniences have been tweaked and/or were not announced
previously:

- content() # The (mixed) content of o as a list
- children() # The child nodes (not PCDATA) of o
- text() # List of textual children
- dumps(): # The PCDATA in o (preserves whitespace)
- normalize() # Whitespace normalize string,
# e.g. o.PCDATA==normalize(dumps(o))
- tagname() # The element tag o was generated from
- attributes()# List of (XML) attributes of o

Fixed two bugs causing leaks in long running gnosis.xml.objectify
processes (file close and expat base class).

Significant speedups by miscellaneous refactoring/cleanup in
gnosis.xml.objectify.

Fixes to gnosis.xml.indexer suggested by Uche Ogbuju.

Security fixes to gnosis.utils.convert.dmText2Html.

DOWNLOADING:
------------------------------------------------------------------------

Browse the latest development snapshot or download it using 'wget -r'
or similar tools:

http://gnosis.cx/download/gnosis/

It may be obtained at:

http://gnosis.cx/download/Gnosis_Utils-1.2.0.tar.gz

The current release is always available as:

http://gnosis.cx/download/Gnosis_Utils-current.tar.gz

Other distribution formats and older versions can be found at:

http://gnosis.cx/download/Gnosis_Utils.More/


BACKGROUND:
------------------------------------------------------------------------

Gnosis Utilities contains a number of Python libraries, most (but not
all) related to working with XML. These include:

disthelper (Create more flexible distutils archives)
gnosis.indexer (Full-text indexing/searching)
gnosis.xml.pickle (XML pickling of Python objects)
gnosis.xml.objectify (Any XML to "native" Python objects)
gnosis.xml.validity (Enforce validity constraints)
gnosis.xml.relax (Tools for working with RelaxNG)
gnosis.xml.indexer (XPATH indexing of XML documents)
[...].convert.txt2html (Convert ASCII source files to HTML)
gnosis.util.dtd2sql (DTD -> SQL 'CREATE TABLE' statements)
gnosis.util.sql2dtd (SQL query -> DTD for query results)
gnosis.util.xml2sql (XML -> SQL 'INSERT INTO' statements)
gnosis.util.combinators (Combinatorial higher-order functions)
gnosis.util.introspect (Introspect Python objects)
gnosis.utils.hashcash (Hashcash proof-of-work protocol)
gnosis.magic (Multimethods, metaclasses, etc)
gnosis.trigramlib (Work w/ trigrams, e.g. spam filtering)
gnosis.pyconfig (Capability-based version adaptation)

....and so much more! :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top