Skip to content

Commit 7b0e41c

Browse files
committed
Reverts jython and legacy python / _buffer_view changes.
1 parent d1060de commit 7b0e41c

File tree

1 file changed

+25
-38
lines changed

1 file changed

+25
-38
lines changed

msgpack/fallback.py

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
110103
def 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

Comments
 (0)