@@ -100,13 +100,6 @@ def _get_data_from_buffer(obj):
100100 return view
101101
102102
103- # Jython's memoryview support is incomplete
104- # See https://github.com/msgpack/msgpack-python/issues/303
105- _is_jython = sys .platform .startswith ('java' )
106- if _is_jython :
107- _get_data_from_buffer = bytes
108-
109-
110103def unpack (stream , ** kwargs ):
111104 warnings .warn (
112105 "Direct calling implementation's unpack() is deprecated, Use msgpack.unpack() or unpackb() instead." ,
@@ -241,12 +234,6 @@ def __init__(self, file_like=None, read_size=0, use_list=True, raw=True,
241234
242235 #: array of bytes fed.
243236 self ._buffer = bytearray ()
244- # Some very old pythons don't support `struct.unpack_from()` with a
245- # `bytearray`. So we wrap it in a `buffer()` there.
246- if sys .version_info < (2 , 7 , 6 ):
247- self ._buffer_view = buffer (self ._buffer )
248- else :
249- self ._buffer_view = self ._buffer
250237 #: Which position we currently reads
251238 self ._buff_i = 0
252239
@@ -401,117 +388,117 @@ def _read_header(self, execute=EX_CONSTRUCT):
401388 elif b == 0xc5 :
402389 typ = TYPE_BIN
403390 self ._reserve (2 )
404- n = struct .unpack_from (">H" , self ._buffer_view , self ._buff_i )[0 ]
391+ n = struct .unpack_from (">H" , self ._buffer , self ._buff_i )[0 ]
405392 self ._buff_i += 2
406393 if n > self ._max_bin_len :
407394 raise UnpackValueError ("%s exceeds max_bin_len(%s)" % (n , self ._max_bin_len ))
408395 obj = self ._read (n )
409396 elif b == 0xc6 :
410397 typ = TYPE_BIN
411398 self ._reserve (4 )
412- n = struct .unpack_from (">I" , self ._buffer_view , self ._buff_i )[0 ]
399+ n = struct .unpack_from (">I" , self ._buffer , self ._buff_i )[0 ]
413400 self ._buff_i += 4
414401 if n > self ._max_bin_len :
415402 raise UnpackValueError ("%s exceeds max_bin_len(%s)" % (n , self ._max_bin_len ))
416403 obj = self ._read (n )
417404 elif b == 0xc7 : # ext 8
418405 typ = TYPE_EXT
419406 self ._reserve (2 )
420- L , n = struct .unpack_from ('Bb' , self ._buffer_view , self ._buff_i )
407+ L , n = struct .unpack_from ('Bb' , self ._buffer , self ._buff_i )
421408 self ._buff_i += 2
422409 if L > self ._max_ext_len :
423410 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (L , self ._max_ext_len ))
424411 obj = self ._read (L )
425412 elif b == 0xc8 : # ext 16
426413 typ = TYPE_EXT
427414 self ._reserve (3 )
428- L , n = struct .unpack_from ('>Hb' , self ._buffer_view , self ._buff_i )
415+ L , n = struct .unpack_from ('>Hb' , self ._buffer , self ._buff_i )
429416 self ._buff_i += 3
430417 if L > self ._max_ext_len :
431418 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (L , self ._max_ext_len ))
432419 obj = self ._read (L )
433420 elif b == 0xc9 : # ext 32
434421 typ = TYPE_EXT
435422 self ._reserve (5 )
436- L , n = struct .unpack_from ('>Ib' , self ._buffer_view , self ._buff_i )
423+ L , n = struct .unpack_from ('>Ib' , self ._buffer , self ._buff_i )
437424 self ._buff_i += 5
438425 if L > self ._max_ext_len :
439426 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (L , self ._max_ext_len ))
440427 obj = self ._read (L )
441428 elif b == 0xca :
442429 self ._reserve (4 )
443- obj = struct .unpack_from (">f" , self ._buffer_view , self ._buff_i )[0 ]
430+ obj = struct .unpack_from (">f" , self ._buffer , self ._buff_i )[0 ]
444431 self ._buff_i += 4
445432 elif b == 0xcb :
446433 self ._reserve (8 )
447- obj = struct .unpack_from (">d" , self ._buffer_view , self ._buff_i )[0 ]
434+ obj = struct .unpack_from (">d" , self ._buffer , self ._buff_i )[0 ]
448435 self ._buff_i += 8
449436 elif b == 0xcc :
450437 self ._reserve (1 )
451438 obj = self ._buffer [self ._buff_i ]
452439 self ._buff_i += 1
453440 elif b == 0xcd :
454441 self ._reserve (2 )
455- obj = struct .unpack_from (">H" , self ._buffer_view , self ._buff_i )[0 ]
442+ obj = struct .unpack_from (">H" , self ._buffer , self ._buff_i )[0 ]
456443 self ._buff_i += 2
457444 elif b == 0xce :
458445 self ._reserve (4 )
459- obj = struct .unpack_from (">I" , self ._buffer_view , self ._buff_i )[0 ]
446+ obj = struct .unpack_from (">I" , self ._buffer , self ._buff_i )[0 ]
460447 self ._buff_i += 4
461448 elif b == 0xcf :
462449 self ._reserve (8 )
463- obj = struct .unpack_from (">Q" , self ._buffer_view , self ._buff_i )[0 ]
450+ obj = struct .unpack_from (">Q" , self ._buffer , self ._buff_i )[0 ]
464451 self ._buff_i += 8
465452 elif b == 0xd0 :
466453 self ._reserve (1 )
467- obj = struct .unpack_from ("b" , self ._buffer_view , self ._buff_i )[0 ]
454+ obj = struct .unpack_from ("b" , self ._buffer , self ._buff_i )[0 ]
468455 self ._buff_i += 1
469456 elif b == 0xd1 :
470457 self ._reserve (2 )
471- obj = struct .unpack_from (">h" , self ._buffer_view , self ._buff_i )[0 ]
458+ obj = struct .unpack_from (">h" , self ._buffer , self ._buff_i )[0 ]
472459 self ._buff_i += 2
473460 elif b == 0xd2 :
474461 self ._reserve (4 )
475- obj = struct .unpack_from (">i" , self ._buffer_view , self ._buff_i )[0 ]
462+ obj = struct .unpack_from (">i" , self ._buffer , self ._buff_i )[0 ]
476463 self ._buff_i += 4
477464 elif b == 0xd3 :
478465 self ._reserve (8 )
479- obj = struct .unpack_from (">q" , self ._buffer_view , self ._buff_i )[0 ]
466+ obj = struct .unpack_from (">q" , self ._buffer , self ._buff_i )[0 ]
480467 self ._buff_i += 8
481468 elif b == 0xd4 : # fixext 1
482469 typ = TYPE_EXT
483470 if self ._max_ext_len < 1 :
484471 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (1 , self ._max_ext_len ))
485472 self ._reserve (2 )
486- n , obj = struct .unpack_from ("b1s" , self ._buffer_view , self ._buff_i )
473+ n , obj = struct .unpack_from ("b1s" , self ._buffer , self ._buff_i )
487474 self ._buff_i += 2
488475 elif b == 0xd5 : # fixext 2
489476 typ = TYPE_EXT
490477 if self ._max_ext_len < 2 :
491478 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (2 , self ._max_ext_len ))
492479 self ._reserve (3 )
493- n , obj = struct .unpack_from ("b2s" , self ._buffer_view , self ._buff_i )
480+ n , obj = struct .unpack_from ("b2s" , self ._buffer , self ._buff_i )
494481 self ._buff_i += 3
495482 elif b == 0xd6 : # fixext 4
496483 typ = TYPE_EXT
497484 if self ._max_ext_len < 4 :
498485 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (4 , self ._max_ext_len ))
499486 self ._reserve (5 )
500- n , obj = struct .unpack_from ("b4s" , self ._buffer_view , self ._buff_i )
487+ n , obj = struct .unpack_from ("b4s" , self ._buffer , self ._buff_i )
501488 self ._buff_i += 5
502489 elif b == 0xd7 : # fixext 8
503490 typ = TYPE_EXT
504491 if self ._max_ext_len < 8 :
505492 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (8 , self ._max_ext_len ))
506493 self ._reserve (9 )
507- n , obj = struct .unpack_from ("b8s" , self ._buffer_view , self ._buff_i )
494+ n , obj = struct .unpack_from ("b8s" , self ._buffer , self ._buff_i )
508495 self ._buff_i += 9
509496 elif b == 0xd8 : # fixext 16
510497 typ = TYPE_EXT
511498 if self ._max_ext_len < 16 :
512499 raise UnpackValueError ("%s exceeds max_ext_len(%s)" % (16 , self ._max_ext_len ))
513500 self ._reserve (17 )
514- n , obj = struct .unpack_from ("b16s" , self ._buffer_view , self ._buff_i )
501+ n , obj = struct .unpack_from ("b16s" , self ._buffer , self ._buff_i )
515502 self ._buff_i += 17
516503 elif b == 0xd9 :
517504 typ = TYPE_RAW
@@ -524,43 +511,43 @@ def _read_header(self, execute=EX_CONSTRUCT):
524511 elif b == 0xda :
525512 typ = TYPE_RAW
526513 self ._reserve (2 )
527- n , = struct .unpack_from (">H" , self ._buffer_view , self ._buff_i )
514+ n , = struct .unpack_from (">H" , self ._buffer , self ._buff_i )
528515 self ._buff_i += 2
529516 if n > self ._max_str_len :
530517 raise UnpackValueError ("%s exceeds max_str_len(%s)" , n , self ._max_str_len )
531518 obj = self ._read (n )
532519 elif b == 0xdb :
533520 typ = TYPE_RAW
534521 self ._reserve (4 )
535- n , = struct .unpack_from (">I" , self ._buffer_view , self ._buff_i )
522+ n , = struct .unpack_from (">I" , self ._buffer , self ._buff_i )
536523 self ._buff_i += 4
537524 if n > self ._max_str_len :
538525 raise UnpackValueError ("%s exceeds max_str_len(%s)" , n , self ._max_str_len )
539526 obj = self ._read (n )
540527 elif b == 0xdc :
541528 typ = TYPE_ARRAY
542529 self ._reserve (2 )
543- n , = struct .unpack_from (">H" , self ._buffer_view , self ._buff_i )
530+ n , = struct .unpack_from (">H" , self ._buffer , self ._buff_i )
544531 self ._buff_i += 2
545532 if n > self ._max_array_len :
546533 raise UnpackValueError ("%s exceeds max_array_len(%s)" , n , self ._max_array_len )
547534 elif b == 0xdd :
548535 typ = TYPE_ARRAY
549536 self ._reserve (4 )
550- n , = struct .unpack_from (">I" , self ._buffer_view , self ._buff_i )
537+ n , = struct .unpack_from (">I" , self ._buffer , self ._buff_i )
551538 self ._buff_i += 4
552539 if n > self ._max_array_len :
553540 raise UnpackValueError ("%s exceeds max_array_len(%s)" , n , self ._max_array_len )
554541 elif b == 0xde :
555542 self ._reserve (2 )
556- n , = struct .unpack_from (">H" , self ._buffer_view , self ._buff_i )
543+ n , = struct .unpack_from (">H" , self ._buffer , self ._buff_i )
557544 self ._buff_i += 2
558545 if n > self ._max_map_len :
559546 raise UnpackValueError ("%s exceeds max_map_len(%s)" , n , self ._max_map_len )
560547 typ = TYPE_MAP
561548 elif b == 0xdf :
562549 self ._reserve (4 )
563- n , = struct .unpack_from (">I" , self ._buffer_view , self ._buff_i )
550+ n , = struct .unpack_from (">I" , self ._buffer , self ._buff_i )
564551 self ._buff_i += 4
565552 if n > self ._max_map_len :
566553 raise UnpackValueError ("%s exceeds max_map_len(%s)" , n , self ._max_map_len )
0 commit comments