http://pyconstruct.wikispaces.com
Construct is a library for parsing and building (AKA packing and unpacking) of data structures such as in-memory structures, file formats, or network protocols. Unlike other libraries, Construct is _declarative_, meaning you define the data structure, and not the code that parses/builds it. As a result, constructs can do both parsing and building, with no extra code. The library comes with many built-in primitives, and a large inventory of protocols and file formats. A full tutorial can be found on the site. Note: the docs are work-in-progress until the final 2.0 release will be made in the next two weeks. If you wish to get a quick taste of the library, consider the following snippet: >>> from construct import * >>> >>> >>> ethernet_header = Struct("ethernet_header", ... Bytes("dest", 6), ... Bytes("source", 6), ... Enum(UBInt16("type"), ... IP = 0x0800, ... ARP = 0x0806, ... X25 = 0x0805 ... ) ... ) >>> >>> >>> print ethernet_header.parse("ABCDEF123456\x08\x00") Container: dest = 'ABCDEF' source = '123456' type = 'IP' >>> >>> >>> ethernet_header.build(Container(dest = "aaabbb", source = "333444", type = >>> "X25")) 'aaabbb333444\x08\x05' -tomer -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html