def __init__(self, fh):
        self.headers = odict.OrderedDict()
        self.fh = fh

        if not is_iterable(self.fh):
            return
        if not hasattr(self.fh, "seek"):
            return  # fh is not a file object, we're doomed.

        with save_pos(self.fh):
            self.read_headers()
            self.handle_encoding()
            self.replace_NONE_headers()
fh should be a seekable file-like byte stream object
dataset/ETHPy150Open jseutter/ofxparse/ofxparse/ofxparse.py/OfxFile.__init__