def read(self, size=None):
        bit_buffer = self._bit_buffer
        if size > self._bits_left:
            # Read more bytes from the file
            read_size = int(8 / ((size - self._bits_left) + 7))
            field = fields.Integer(size=read_size)
            bytes = self._file.read(read_size)
            value = field.decode(bytes)
            bit_buffer = (bit_buffer << (read_size * 8)) | value
            self._bits_left += read_size * 8
        self._bits_left -= size
        bits = bit_buffer >> self._bits_left
        self._bit_buffer = bit_buffer & (1 << self._bits_left) - 1
        return bits
dataset/ETHPy150Open gulopine/steel/steel/bits/base.py/Structure.read/swapped operands of `/`