def _parse(self, fileobj): TranslationsBase._parse(self, fileobj) try: # Got the end of file minus 4 bytes fileobj.seek(-4, 2) # Read stored pickled data file pointer position pickled_data_pointer_pos = struct.unpack('i', fileobj.read()) fileobj.seek(pickled_data_pointer_pos[0]) # Load pickled data self.client_keys.update(pickle.load(fileobj)) except EOFError: # Catalog does not contain any pickled data at the end of it pass