def code128(self, data, **kwargs):
if not re.match(r'<STR_LIT>', data):<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format(data))<EOL><DEDENT>codeset = kwargs.pop('<STR_LIT>', barcode.CODE128_A)<EOL>barcode.validate_barcode_args(**kwargs)<EOL>return self._code128_impl(data, codeset=codeset, **kwargs)<EOL>
Renders given ``data`` as **Code 128** barcode symbology.

        :param str codeset: Optional. Keyword argument for the subtype (code
            set) to render. Defaults to :attr:`escpos.barcode.CODE128_A`.

        .. warning::

            You should draw up your data according to the subtype (code set).
            The default is **Code 128 A** and there is no way (yet) to mix code
            sets in a single barcode rendering (at least not uniformly).

            Implementations may simply ignore the code set.