[Python-Dev] Extending struct.unpack to produce nested tuples
Matthew F. Barnes
mfb at lotusland.dyndns.org
Sat Nov 22 18:27:24 EST 2003
I posted this to c.l.py the other day but didn't get any replies, so I
thought I might see how it fares on python-dev. It's just an idea I had
earlier this week. I'll attempt a patch if the response is positive.
I was wondering if there would be any interest in extending the
struct.unpack format notation to be able to express groups of data
>>> data = struct.pack('iiii', 1, 2, 3, 4)
>>> struct.unpack('i(ii)i', data) # Note the parentheses
(1, (2, 3), 4)
Use Case: I have a program written in C that contains a bunch of
aggregate data structures (arrays of structs, structs containing
arrays, etc.) and I'm transmitting these structures over a socket
connection to a Python program that then unpacks the data using the
struct module. Problem is that I have to unpack the incoming data as
a flat sequence of data elements, and then repartition the sequence
into nested sequences to better reflect how the data is structured in
the C program. It would be more convenient to express these groupings
as I'm unpacking the raw data.
I'm sure there are plenty of other use cases for such a feature.
More information about the Python-Dev