
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.
participants (1)
-
Bob Halley