You've added three `if data` checks (one here and then the next two sections of the diff). I don't think these are needed. If we hit an exception in or before `self.fp.read()`, we'll stop execution at that point, and so can't possibly reach these 'if' statements. I simply don't think we need these if statements.