Package CHEM :: Package datatype :: Module compress :: Class IntegerCodec
[hide private]
[frames] | no frames]

Class IntegerCodec



Codec --+
        |
       IntegerCodec


OPTIONS:
  bits = DEFAULT=32 bitwidth (not including sign)
  sign = DEFAULT=FALSE, signed our unsigned
  truncate = DEFAULT=True, throw exceptions or set out of range data to MaxInt or MinInt?

FORMAT:
  1-bit for sign (optional) = +/- --> 1/0
  $bits$-bits of Integer  



Instance Methods [hide private]
 
__init__(self, bits=32, sign=False, truncate=True)
 
encodeL(self, data)
 
decodeI(self, iter)

Inherited from Codec: __call__, decode, finger

Method Details [hide private]

__init__(self, bits=32, sign=False, truncate=True)
(Constructor)

 
>>> C=IntegerCodec()
>>> for x in xrange(0,10):
...   if x!=C.decode(C(x)): print x, C.decode(C(x)), C(x)
>>> C=IntegerCodec(sign=True)
>>> for x in xrange(-10,10):
...   if x!=C.decode(C(x)): print x, C.decode(C(x)), C(x)
>>> C=IntegerCodec(bits=3)
>>> C.decode(iter(C(123123)))==7
1
>>> C.decode(C(-1))==0
1
>>> C=IntegerCodec(bits=3,truncate=False)
>>> C.decode(iter(C(123123)))==7
Traceback (most recent call last):
  ...
ValueError: data out of range
>>>
Overrides: Codec.__init__

encodeL(self, data)

 
Overrides: Codec.encodeL

decodeI(self, iter)

 
Overrides: Codec.decodeI