research/brotlidump.py
def readPrefixCode(self, alphabet):
        """give alphabet the prefix code that is read from the stream
        Called for the following alphabets, in this order:
        The alphabet in question must have a "logical" order,
        otherwise the assignment of symbols doesn't work.
        """
        mode, numberOfSymbols = self.verboseRead(PrefixCodeHeader(alphabet.name))
        if mode=='Complex':
            #for a complex code, numberOfSymbols means hskip
            self.readComplexCode(numberOfSymbols, alphabet)
            return alphabet
        else:
            table = []
            #Set table of lengths for mnemonic function
            lengths = [[0], [1,1], [1,2,2], '????'][numberOfSymbols-1]
            #adjust mnemonic function of alphabet class
            def myMnemonic(index):
                return '{} bit{}: {}'.format(
                    lengths[i],
                    '' if lengths[i]==1 else 's',
                    alphabet.__class__.mnemonic(alphabet, index)
                    )
            alphabet.mnemonic = myMnemonic
            for i in range(numberOfSymbols):
                table.append(self.verboseRead(alphabet, skipExtra=True).index)
            #restore mnemonic
            del alphabet.mnemonic
            if numberOfSymbols==4:
                #read tree shape to redefine lengths
                lengths = self.verboseRead(TreeShapeAlhabet())
            #construct the alphabet prefix code
            alphabet.setLength(dict(zip(table, lengths)))
        return alphabet
def readPrefixCode(self, alphabet):
        """give alphabet the prefix code that is read from the stream
        Called for the following alphabets, in this order:
        The alphabet in question must have a "logical" order,
        otherwise the assignment of symbols doesn't work.
        """
        mode, numberOfSymbols = self.verboseRead(PrefixCodeHeader(alphabet.name))
        if mode=='Complex':
            #for a complex code, numberOfSymbols means hskip
            self.readComplexCode(numberOfSymbols, alphabet)
            return alphabet
        else:
            table = []
            #Set table of lengths for mnemonic function
            lengths = [[0], [1,1], [1,2,2], '????'][numberOfSymbols-1]
            #adjust mnemonic function of alphabet class
            def myMnemonic(index):
                return '{} bit{}: {}'.format(
                    lengths[i],
                    '' if lengths[i]==1 else 's',
                    alphabet.__class__.mnemonic(alphabet, index)
                    )
            alphabet.mnemonic = myMnemonic
            for i in range(numberOfSymbols):
                table.append(self.verboseRead(alphabet, skipExtra=True).index)
            #restore mnemonic
            del alphabet.mnemonic
            if numberOfSymbols==4:
                #read tree shape to redefine lengths
                lengths = self.verboseRead(TreeShapeAlhabet())
            #construct the alphabet prefix code
            alphabet.setLength(dict(zip(table, lengths)))
        return alphabet
def readPrefixCode ( self , alphabet ) : mode , numberOfSymbols = self . verboseRead ( PrefixCodeHeader ( alphabet . name ) ) if mode == 'Complex' : #for a complex code, numberOfSymbols means hskip self . readComplexCode ( numberOfSymbols , alphabet ) return alphabet else : table = [ ] #Set table of lengths for mnemonic function lengths = [ [ 0 ] , [ 1 , 1 ] , [ 1 , 2 , 2 ] , '????' ] [ numberOfSymbols - 1 ] #adjust mnemonic function of alphabet class def myMnemonic ( index ) : return '{} bit{}: {}' . format ( lengths [ i ] , '' if lengths [ i ] == 1 else 's' , alphabet . __class__ . mnemonic ( alphabet , index ) ) alphabet . mnemonic = myMnemonic for i in range ( numberOfSymbols ) : table . append ( self . verboseRead ( alphabet , skipExtra = True ) . index ) #restore mnemonic del alphabet . mnemonic if numberOfSymbols == 4 : #read tree shape to redefine lengths lengths = self . verboseRead ( TreeShapeAlhabet ( ) ) #construct the alphabet prefix code alphabet . setLength ( dict ( zip ( table , lengths ) ) ) return alphabet
give alphabet the prefix code that is read from the stream
        Called for the following alphabets, in this order:
        The alphabet in question must have a "logical" order,
        otherwise the assignment of symbols doesn't work.
give alphabet the prefix code that is read from the stream Called for the following alphabets in this order : The alphabet in question must have a logical order otherwise the assignment of symbols doesn t work .