code: def code128(self, data, **kwargs):
          
          if not re.match(r'^[\x20-\x7F]+$', data):
              raise ValueError('Invalid Code 128 symbology. Code 128 can encode '
                      'any ASCII character ranging from 32 (20h) to 127 (7Fh); '
                      'got {!r}'.format(data))
          codeset = kwargs.pop('codeset', barcode.CODE128_A)
          barcode.validate_barcode_args(**kwargs)
          return self._code128_impl(data, codeset=codeset, **kwargs)
docs: 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.