code: def _readData(self, id3, data):
          
  
          for reader in self._framespec:
              if len(data) or reader.handle_nodata:
                  try:
                      value, data = reader.read(id3, self, data)
                  except SpecError as e:
                      raise ID3JunkFrameError(e)
              else:
                  raise ID3JunkFrameError("no data left")
              self._setattr(reader.name, value)
  
          for reader in self._optionalspec:
              if len(data) or reader.handle_nodata:
                  try:
                      value, data = reader.read(id3, self, data)
                  except SpecError as e:
                      raise ID3JunkFrameError(e)
              else:
                  break
              self._setattr(reader.name, value)
  
          return data
docs: Raises ID3JunkFrameError; Returns leftover data