mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-11-01 10:00:54 +00:00
implement unpack_one also for the cython version, and add a test for it
This commit is contained in:
parent
a7485eccb2
commit
ff858387d3
2 changed files with 32 additions and 1 deletions
|
|
@ -359,6 +359,24 @@ cdef class Unpacker(object):
|
|||
"""
|
||||
return self._unpack(unpack_construct, write_bytes)
|
||||
|
||||
def unpack_one(self, object write_bytes=None):
|
||||
"""
|
||||
unpack one object
|
||||
|
||||
If write_bytes is not None, it will be called with parts of the raw
|
||||
message as it is unpacked.
|
||||
|
||||
Raises `UnpackValueError` if there are no more bytes to unpack.
|
||||
Raises ``ExtraData`` if there are still bytes left after the unpacking.
|
||||
"""
|
||||
try:
|
||||
result = self.unpack()
|
||||
except OutOfData:
|
||||
raise UnpackValueError("Data is not enough")
|
||||
if self.buf_head < self.buf_tail:
|
||||
raise ExtraData(result, self.buf[self.buf_head:])
|
||||
return result
|
||||
|
||||
def skip(self, object write_bytes=None):
|
||||
"""
|
||||
read and ignore one object, returning None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue