ANN: dnspython 1.1.0

Bob Halley halley@dnspython.org
10 Aug 2003 22:00:22 -0700


dnspython 1.1.0 has been released.  Here's the README:

dnspython

INTRODUCTION

dnspython is a DNS toolkit for Python. It supports almost all record
types. It can be used for queries, zone transfers, and dynamic
updates.  It supports TSIG authenticated messages and EDNS0.

dnspython provides both high and low level access to DNS. The high
level classes perform queries for data of a given name, type, and
class, and return an answer set.  The low level classes allow direct
manipulation of DNS zones, messages, names, and records.

To see a few of the ways dnspython can be used, look in the examples/
directory.

dnspython originated at Nominum where it was developed to facilitate
the testing of DNS software.  Nominum has generously allowed it to be
open sourced under a BSD-style license, and helps support its future
development by continuing to employ the author :).


ABOUT THIS RELEASE

This is dnspython 1.1.0.

New since 1.0.0:

	Message sections are now lists of RRsets, not lists of nodes.

        Nodes no longer have names; owner names are associated with
        nodes in the Zone object's nodes dictionary.

        Many tests have been added to the test suite; dnspython 1.0.0
        has 47 tests, 1.1.0 has 275.  The improved testing
        uncovered a number of bugs, all of which have been fixed.

        The NameDict class provides a dictionary whose keys are DNS
        names.  In addition to behaving like a normal Python
        dictionary, it also provides the get_deepest_match() method.
        If, for example, you had a dictionary containing the keys
        foo.com and com, then get_deepest_match() of the name
        a.b.foo.com would match the foo.com key.

        A new Renderer class for those applications which want finer
        control over the DNS wire format message generation process.

        Support for a "TooBig" exception if the size of wire format
        output exceeds a specified limit.

        Zones now have find_rrset() and find_rdataset() convenience
        methods.  They let you retrieve rdata with the specified name
        and type in one call, e.g.:

                rrset = zone.find_rrset('foo', 'mx')

	Other new zone convenience methods include: find_node(),
	delete_node(), delete_rdataset(), replace_rdataset(),
	iterate_rdatasets(), and iterate_rdatas().

	get_ variants of find_ methods are provided; the difference is
	that get_ methods return None if the desired object doesn't
	exist, whereas the find_ methods raise an exception.

	Zones now have a to_file() method.

	The message and zone from_file() methods allow Unicode
	filenames on platforms (and versions of python) which support
	them.  Universal newline support is also used if available.

        The Zone class now implements more of the standard mapping
        interface.  E.g. you can say zone.keys(), zone.get('name'),
        zone.iteritems(), etc.  __iter__() has been changed to iterate
        the keys rather than values to match the standard mapping
        interface's behavior.

	Rdatasets support more set operations

        Zone and Node factories may be specified, allowing applications
        to subclass Zone or Node and yet still use the algorithms which
        build zones from master files or AXFR data.

        dns.ipv6.inet_ntoa() now minimizes the text representation of
        IPv6 addresses in the usual way,
        e.g. "0000:0000:0000:0000:0000:0000:0000:0001" is minimized to
        "::1".

        dns.query functions now take an optional address family
        parameter.

This release fixes all known bugs.

See the ChangeLog file for more detailed information on changes since
the prior release.


REQUIREMENTS

Python 2.2 or later.


INSTALLATION

To build and install dnspython, type

	python setup.py install


HOME PAGE

For the latest in releases, documentation, and information, visit the
dnspython home page at

	http://www.dnspython.org/



DOCUMENTATION

Documentation is sparse at the moment.  Use pydoc, or read the HTML
documentation at the dnspython home page, or download the HTML
documentation.


BUG REPORTS

Bug reports may be sent to bugs@dnspython.org


MAILING LISTS

A number of mailing lists are available.  Visit the dnspython home
page to subscribe or unsubscribe.