code: def parse(self, callback_data: str) -> typing.Dict[str, str]:
          
          prefix, *parts = callback_data.split(self.sep)
          if prefix != self.prefix:
              raise ValueError("Passed callback data can't be parsed with that prefix.")
          elif len(parts) != len(self._part_names):
              raise ValueError('Invalid parts count!')
  
          result = {'@': prefix}
          result.update(zip(self._part_names, parts))
          return result
docs: Parse data from the callback data
  
          :param callback_data:
          :return: