def decode_w(self, object, final=False): space = self.space state = space.fromcache(CodecState) if len(self.pending) > 0: object = self.pending + object try: output = c_codecs.decodeex(self.decodebuf, object, self.errors, state.decode_error_handler, self.name, get_ignore_error(final)) except c_codecs.EncodeDecodeError as e: raise wrap_unicodedecodeerror(space, e, object, self.name) except RuntimeError: raise wrap_runtimeerror(space) pos = c_codecs.pypy_cjk_dec_inbuf_consumed(self.decodebuf) assert 0 <= pos <= len(object) self.pending = object[pos:] return space.newunicode(output)
def decode_w(self, object, final=False): space = self.space state = space.fromcache(CodecState) if len(self.pending) > 0: object = self.pending + object try: output = c_codecs.decodeex(self.decodebuf, object, self.errors, state.decode_error_handler, self.name, get_ignore_error(final)) except c_codecs.EncodeDecodeError as e: raise wrap_unicodedecodeerror(space, e, object, self.name) except RuntimeError: raise wrap_runtimeerror(space) pos = c_codecs.pypy_cjk_dec_inbuf_consumed(self.decodebuf) assert 0 <= pos <= len(object) self.pending = object[pos:] return space.wrap(output)
@unwrap_spec(object=str, final=bool) def decode_w(self, object, final=False): space = self.space state = space.fromcache(CodecState) if len(self.pending) > 0: object = self.pending + object try: output = c_codecs.decodeex(self.decodebuf, object, self.errors, state.decode_error_handler, self.name, get_ignore_error(final)) except c_codecs.EncodeDecodeError, e: raise wrap_unicodedecodeerror(space, e, object, self.name) except RuntimeError: raise wrap_runtimeerror(space) pos = c_codecs.pypy_cjk_dec_inbuf_consumed(self.decodebuf) assert 0 <= pos <= len(object) self.pending = object[pos:] return space.wrap(output) @unwrap_spec(errors="str_or_None") def mbidecoder_new(space, w_subtype, errors=None): r = space.allocate_instance(MultibyteIncrementalDecoder, w_subtype) r.__init__(space, errors) return space.wrap(r) MultibyteIncrementalDecoder.typedef = TypeDef( 'MultibyteIncrementalDecoder', __new__=interp2app(mbidecoder_new),
@unwrap_spec(object=str, final=bool) def decode_w(self, object, final=False): space = self.space state = space.fromcache(CodecState) if len(self.pending) > 0: object = self.pending + object try: output = c_codecs.decodeex(self.decodebuf, object, self.errors, state.decode_error_handler, self.name, get_ignore_error(final)) except c_codecs.EncodeDecodeError, e: raise wrap_unicodedecodeerror(space, e, object, self.name) except RuntimeError: raise wrap_runtimeerror(space) pos = c_codecs.pypy_cjk_dec_inbuf_consumed(self.decodebuf) assert 0 <= pos <= len(object) self.pending = object[pos:] return space.wrap(output) @unwrap_spec(errors="str_or_None") def mbidecoder_new(space, w_subtype, errors=None): r = space.allocate_instance(MultibyteIncrementalDecoder, w_subtype) r.__init__(space, errors) return space.wrap(r) MultibyteIncrementalDecoder.typedef = TypeDef( 'MultibyteIncrementalDecoder', __new__ = interp2app(mbidecoder_new), decode = interp2app(MultibyteIncrementalDecoder.decode_w),