struct.pack bug?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jonathan Fine

    #1

    struct.pack bug?

    Hello

    I find the following inconsistent:
    ===
    >>sys.version
    '2.4.1a0 (#2, Feb 9 2005, 12:50:04) \n[GCC 3.3.5 (Debian 1:3.3.5-8)]'
    >>pack('>B', 256)
    '\x00'
    >>pack('<B', 256)
    '\x00'
    >>pack('B', 256)
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    struct.error: ubyte format requires 0<=number<=255
    >>>
    ===

    I was hoping that '>B' and '<B' would raise an exception,
    ust as 'B' does.


    On Oct 27 2006, 11:17 am, Jansson Christer reported a
    different anomoly to this newsgroup, using the same
    subject.

    --
    Jonathan

  • John Machin

    #2
    Re: struct.pack bug?

    On Feb 9, 8:58 am, Jonathan Fine <j...@pytex.org wrote:
    Hello
    >
    I find the following inconsistent:
    ===
    >>sys.version
    '2.4.1a0 (#2, Feb 9 2005, 12:50:04) \n[GCC 3.3.5 (Debian 1:3.3.5-8)]'
    >>pack('>B', 256)
    '\x00'
    >>pack('<B', 256)
    '\x00'
    >>pack('B', 256)
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    struct.error: ubyte format requires 0<=number<=255
    >>>
    ===
    >
    I was hoping that '>B' and '<B' would raise an exception,
    ust as 'B' does.
    >
    On Oct 27 2006, 11:17 am, Jansson Christer reported a
    different anomoly to this newsgroup, using the same
    subject.
    Your Python is out-of-date in two dimensions: the 2.4 series is way
    past 2.4.1, and Python 2.5 has been out for a while.

    Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
    (Intel)] on win
    32
    | >>from struct import pack
    | >>pack('<B', 256)
    | __main__:1: DeprecationWarn ing: 'B' format requires 0 <= number <=
    255
    | '\x00'

    Until the deprecation warning becomes an exception in 2.6, I'd suggest
    doing your own checking:
    assert 0 <= pack_B_candidat e <= 255

    HTH,
    John

    Comment

    Working...