Package DebTorrent :: Module bitfield
[hide private]
[frames] | no frames]

Module bitfield

source code

Manage creation and modification of bitfields.

Classes [hide private]
  Bitfield
A bitfield, a indicating the pieces a peer has.
Functions [hide private]
 
negsum(a) source code
tuple of list of boolean
_int_to_booleans(x)
Convert an integer to a list of booleans.
source code
 
test_bitfield()
Test the bitfield implementation.
source code
Variables [hide private]
list of tuple of boolean lookup_table = [(False, False, False, False, False, False, Fal...
A lookup table for converting characters to a tuple of booleans.
dictionary reverse_lookup_table = {(False, False, False, False, False, Fa...
A reverse mapping of lookup_table.
  i = 255
  x = (True, True, True, True, True, True, True, True)
Function Details [hide private]

_int_to_booleans(x)

source code 
Convert an integer to a list of booleans.
Parameters:
  • x (int) - the integer to convert
Returns: tuple of list of boolean
the list of booleans

Variables Details [hide private]

lookup_table

A lookup table for converting characters to a tuple of booleans. Each tuple has 8 booleans, which are true for all the bits in the character that are set.
Type:
list of tuple of boolean
Value:
[(False, False, False, False, False, False, False, False),
 (False, False, False, False, False, False, False, True),
 (False, False, False, False, False, False, True, False),
 (False, False, False, False, False, False, True, True),
 (False, False, False, False, False, True, False, False),
 (False, False, False, False, False, True, False, True),
 (False, False, False, False, False, True, True, False),
 (False, False, False, False, False, True, True, True),
...

reverse_lookup_table

A reverse mapping of lookup_table. The keys are the tuples of 8 booleans, which map to values that are the characters the tuples were created from.
Type:
dictionary
Value:
{(False, False, False, False, False, False, False, False): '\x00',
 (False, False, False, False, False, False, False, True): '\x01',
 (False, False, False, False, False, False, True, False): '\x02',
 (False, False, False, False, False, False, True, True): '\x03',
 (False, False, False, False, False, True, False, False): '\x04',
 (False, False, False, False, False, True, False, True): '\x05',
 (False, False, False, False, False, True, True, False): '\x06',
 (False, False, False, False, False, True, True, True): '\x07',
...