MCPcopy Create free account
hub / github.com/babel/minify / compute_tables

Function compute_tables

scripts/pyflate.py:326–347  ·  view source on GitHub ↗
(b, huffman_groups, symbols_in_use)

Source from the content-addressed store, hash-verified

324 return selectors_list
325
326def compute_tables(b, huffman_groups, symbols_in_use):
327 groups_lengths = []
328 for j in range(huffman_groups):
329 length = start_huffman_length = b.readbits(5)
330 #print 'start_huffman_length', start_huffman_length
331 lengths = []
332 for i in range(symbols_in_use):
333 if not 0 <= length <= 20:
334 raise "Bzip2 Huffman length code outside range 0..20"
335 while b.readbits(1):
336 length -= (b.readbits(1) * 2) - 1
337 lengths += [length]
338 groups_lengths += [lengths]
339 #print groups_lengths
340
341 tables = []
342 for g in groups_lengths:
343 codes = OrderedHuffmanTable(g)
344 codes.populate_huffman_symbols()
345 codes.min_max_bits()
346 tables.append(codes)
347 return tables
348
349def decode_huffman_block(b, out):
350 print 'bzip2 Huffman block'

Callers 1

decode_huffman_blockFunction · 0.85

Calls 4

OrderedHuffmanTableClass · 0.85
min_max_bitsMethod · 0.80
readbitsMethod · 0.45

Tested by

no test coverage detected