code: def decode(self, encoding='utf-8', errors='strict'):
          
          # Py2 str.encode() takes encoding and errors as optional parameter,
          # not keyword arguments as in Python 3 str.
  
          from future.types.newstr import newstr
  
          if errors == 'surrogateescape':
              from future.utils.surrogateescape import register_surrogateescape
              register_surrogateescape()
  
          return newstr(super(newbytes, self).decode(encoding, errors))
docs: Returns a newstr (i.e. unicode subclass)
  
          Decode B using the codec registered for encoding. Default encoding
          is 'utf-8'. errors may be given to set a different error
          handling scheme.  Default is 'strict' meaning that encoding errors raise
          a UnicodeDecodeError.  Other possible values are 'ignore' and 'replace'
          as well as any other name registered with codecs.register_error that is
          able to handle UnicodeDecodeErrors.