def unicode_internal_decode(space, w_string, errors="strict"): if errors is None: errors = 'strict' # special case for this codec: unicodes are returned as is if space.isinstance_w(w_string, space.w_unicode): return space.newtuple([w_string, space.len(w_string)]) string = space.readbuf_w(w_string).as_str() if len(string) == 0: return space.newtuple([space.wrap(u''), space.wrap(0)]) final = True state = space.fromcache(CodecState) result, consumed = runicode.str_decode_unicode_internal( string, len(string), errors, final, state.decode_error_handler) return space.newtuple([space.wrap(result), space.wrap(consumed)])
def unicode_internal_decode(space, w_string, errors="strict"): if errors is None: errors = 'strict' # special case for this codec: unicodes are returned as is if space.isinstance_w(w_string, space.w_unicode): return space.newtuple([w_string, space.len(w_string)]) string = space.charbuf_w(w_string) space.warn(space.newtext("unicode_internal codec has been deprecated"), space.w_DeprecationWarning) if len(string) == 0: return space.newtuple([space.newunicode(u''), space.newint(0)]) final = True state = space.fromcache(CodecState) result, consumed = runicode.str_decode_unicode_internal( string, len(string), errors, final, state.decode_error_handler) return space.newtuple([space.newunicode(result), space.newint(consumed)])