def __init__(self, source):
if isinstance(source, bytes):<EOL><INDENT>self.input = BytesIO(source)<EOL><DEDENT>elif hasattr(source, '<STR_LIT>'):<EOL><INDENT>self.input = source<EOL><DEDENT>else:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>')<EOL><DEDENT>self.bitcount = self.bits = <NUM_LIT:0><EOL>
Source should be either a file-like object with a read() method, or
        a plain (non-unicode) string.