Parse the data.

        It is usually a better idea to override ``_parse_data()`` than
        this method in derived classes.

        :param charset: the charset of the data. Uses datamapper's
        default (``self.charset``) if not given.
        :returns:

def parse(self, data, charset=None):
        """ Parse the data.

        It is usually a better idea to override ``_parse_data()`` than
        this method in derived classes.

        :param charset: the charset of the data. Uses datamapper's
        default (``self.charset``) if not given.
        :returns:
        """

        charset = charset or self.charset
        return self._parse_data(data, charset)