In article <[EMAIL PROTECTED]>,
 "Fredrik Lundh" <[EMAIL PROTECTED]> wrote:

> Michael Yanowitz wrote:
> 
> > What would be the best way to split the following line (Python doesn't like
> > me to split it up between the comma-separated parameters):
> >
> >    top, ip1, ip2, ip3, ip4, messageCounter, ackRequired, dataType, utc1,
> > utc2, utc3, utc4, utc5, utc6, utc7, utc8, utc9, utc10, utc11, utc12, st1,
> > st2, st3, st4, st5, st6, numberOfLabels, dataWord =
> > struct.unpack("!H4BH20BHI", strMessage)
> 
>     data = struct.unpack("!H4BH20BHI", strMessage)
> 
>     (top, ip1, ip2, ip3, ip4, messageCounter, ackRequired,
>     dataType, utc1, utc2, utc3, utc4, utc5, utc6, utc7, utc8,
>     utc9, utc10, utc11, utc12, st1, st2, st3, st4, st5, st6,
>     numberOfLabels, dataWord) = data
> 
> </F> 

My general rule of thumb for formatting things like argument lists is 
either they all fit on one line, or they go one item per line.  So, I would 
do it:

    (top,
     ip1,
     ip2,
     ip3,
     ip4,
     messageCounter,
     ackRequired,
     dataType,
     utc1,
     utc2,
     utc3,
     utc4,
     utc5,
     utc6,
     utc7,
     utc8,
     utc9,
     utc10,
     utc11,
     utc12,
     st1,
     st2,
     st3,
     st4,
     st5,
     st6,
     numberOfLabels,
     dataWord) = data

All one one line, it's just a mess of text to read through.  Formatting 
like this, it immediately (at least to my eyes) jumps out that you've got a 
bunch of ips, a few other things, a bunch of utcs, a bunch of sts, and then 
some more random data.  Much easier to read.

The downside, of course, it it takes up mumble lines instead of 4.  I'm 
cool with that, but I could see how it might annoy some people.

It would be nice if struct.unpack() had a way to specify unpacking repeated 
items as a list, ie:

   data = struct.unpack ("! H 4(B) H 2B 12(B) 6(B) H I", strMessage)
   (top,
    ip,
    messageCounter,
    ackRequired,
    dataType,
    utc,
    st,
    numberOfLables,
    dataWord) = data

and you'd end up with ip, utc, and st being lists.  Hmmm, maybe that's 
worth a PEP?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to