[Python-Dev] Extending struct.unpack to produce nested tuples (original) (raw)

Guido van Rossum guido at python.org
Sat Nov 22 18:41:03 EST 2003


I was wondering if there would be any interest in extending the struct.unpack format notation to be able to express groups of data with parenthesis.

For example: >>> 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.

This is a reasonable suggestion. You should also be able to write things like '4(ii)' which would be equivalent to '(ii)(ii)(ii)(ii)'. Please use SourceForge to upload a patch. Without a patch nobody is going to be interested though, I suspect, so don't wait for someone else to implement this.

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list