4
4
import struct
5
5
6
6
7
- if sys .version_info < (3 , 5 ):
8
- # Ugly hack...
9
- RecursionError = RuntimeError
10
-
11
- def _is_recursionerror (e ):
12
- return (
13
- len (e .args ) == 1
14
- and isinstance (e .args [0 ], str )
15
- and e .args [0 ].startswith ("maximum recursion depth exceeded" )
16
- )
17
-
18
- else :
19
-
20
- def _is_recursionerror (e ):
21
- return True
22
-
23
-
24
7
if hasattr (sys , "pypy_version_info" ):
25
8
# StringIO is slow on PyPy, StringIO is faster. However: PyPy's own
26
9
# StringBuilder is fastest.
@@ -32,7 +15,7 @@ def _is_recursionerror(e):
32
15
from __pypy__ .builders import StringBuilder
33
16
USING_STRINGBUILDER = True
34
17
35
- class StringIO ( object ) :
18
+ class StringIO :
36
19
def __init__ (self , s = b"" ):
37
20
if s :
38
21
self .builder = StringBuilder (len (s ))
@@ -109,10 +92,8 @@ def unpackb(packed, **kwargs):
109
92
ret = unpacker ._unpack ()
110
93
except OutOfData :
111
94
raise ValueError ("Unpack failed: incomplete input" )
112
- except RecursionError as e :
113
- if _is_recursionerror (e ):
114
- raise StackError
115
- raise
95
+ except RecursionError :
96
+ raise StackError
116
97
if unpacker ._got_extradata ():
117
98
raise ExtraData (ret , unpacker ._get_extradata ())
118
99
return ret
@@ -151,7 +132,7 @@ def unpackb(packed, **kwargs):
151
132
}
152
133
153
134
154
- class Unpacker ( object ) :
135
+ class Unpacker :
155
136
"""Streaming unpacker.
156
137
157
138
Arguments:
@@ -334,9 +315,7 @@ def __init__(
334
315
if object_pairs_hook is not None and not callable (object_pairs_hook ):
335
316
raise TypeError ("`object_pairs_hook` is not callable" )
336
317
if object_hook is not None and object_pairs_hook is not None :
337
- raise TypeError (
338
- "object_pairs_hook and object_hook are mutually " "exclusive"
339
- )
318
+ raise TypeError ("object_pairs_hook and object_hook are mutually exclusive" )
340
319
if not callable (ext_hook ):
341
320
raise TypeError ("`ext_hook` is not callable" )
342
321
@@ -428,20 +407,18 @@ def _read_header(self):
428
407
n = b & 0b00011111
429
408
typ = TYPE_RAW
430
409
if n > self ._max_str_len :
431
- raise ValueError ("%s exceeds max_str_len(%s)" % ( n , self ._max_str_len ) )
410
+ raise ValueError (f" { n } exceeds max_str_len({ self ._max_str_len } )" )
432
411
obj = self ._read (n )
433
412
elif b & 0b11110000 == 0b10010000 :
434
413
n = b & 0b00001111
435
414
typ = TYPE_ARRAY
436
415
if n > self ._max_array_len :
437
- raise ValueError (
438
- "%s exceeds max_array_len(%s)" % (n , self ._max_array_len )
439
- )
416
+ raise ValueError (f"{ n } exceeds max_array_len({ self ._max_array_len } )" )
440
417
elif b & 0b11110000 == 0b10000000 :
441
418
n = b & 0b00001111
442
419
typ = TYPE_MAP
443
420
if n > self ._max_map_len :
444
- raise ValueError ("%s exceeds max_map_len(%s)" % ( n , self ._max_map_len ) )
421
+ raise ValueError (f" { n } exceeds max_map_len({ self ._max_map_len } )" )
445
422
elif b == 0xC0 :
446
423
obj = None
447
424
elif b == 0xC2 :
@@ -457,15 +434,15 @@ def _read_header(self):
457
434
n = self ._buffer [self ._buff_i ]
458
435
self ._buff_i += size
459
436
if n > self ._max_bin_len :
460
- raise ValueError ("%s exceeds max_bin_len(%s)" % ( n , self ._max_bin_len ) )
437
+ raise ValueError (f" { n } exceeds max_bin_len({ self ._max_bin_len } )" )
461
438
obj = self ._read (n )
462
439
elif 0xC7 <= b <= 0xC9 :
463
440
size , fmt , typ = _MSGPACK_HEADERS [b ]
464
441
self ._reserve (size )
465
442
L , n = struct .unpack_from (fmt , self ._buffer , self ._buff_i )
466
443
self ._buff_i += size
467
444
if L > self ._max_ext_len :
468
- raise ValueError ("%s exceeds max_ext_len(%s)" % ( L , self ._max_ext_len ) )
445
+ raise ValueError (f" { L } exceeds max_ext_len({ self ._max_ext_len } )" )
469
446
obj = self ._read (L )
470
447
elif 0xCA <= b <= 0xD3 :
471
448
size , fmt = _MSGPACK_HEADERS [b ]
@@ -478,9 +455,7 @@ def _read_header(self):
478
455
elif 0xD4 <= b <= 0xD8 :
479
456
size , fmt , typ = _MSGPACK_HEADERS [b ]
480
457
if self ._max_ext_len < size :
481
- raise ValueError (
482
- "%s exceeds max_ext_len(%s)" % (size , self ._max_ext_len )
483
- )
458
+ raise ValueError (f"{ size } exceeds max_ext_len({ self ._max_ext_len } )" )
484
459
self ._reserve (size + 1 )
485
460
n , obj = struct .unpack_from (fmt , self ._buffer , self ._buff_i )
486
461
self ._buff_i += size + 1
@@ -493,24 +468,22 @@ def _read_header(self):
493
468
n = self ._buffer [self ._buff_i ]
494
469
self ._buff_i += size
495
470
if n > self ._max_str_len :
496
- raise ValueError ("%s exceeds max_str_len(%s)" % ( n , self ._max_str_len ) )
471
+ raise ValueError (f" { n } exceeds max_str_len({ self ._max_str_len } )" )
497
472
obj = self ._read (n )
498
473
elif 0xDC <= b <= 0xDD :
499
474
size , fmt , typ = _MSGPACK_HEADERS [b ]
500
475
self ._reserve (size )
501
476
(n ,) = struct .unpack_from (fmt , self ._buffer , self ._buff_i )
502
477
self ._buff_i += size
503
478
if n > self ._max_array_len :
504
- raise ValueError (
505
- "%s exceeds max_array_len(%s)" % (n , self ._max_array_len )
506
- )
479
+ raise ValueError (f"{ n } exceeds max_array_len({ self ._max_array_len } )" )
507
480
elif 0xDE <= b <= 0xDF :
508
481
size , fmt , typ = _MSGPACK_HEADERS [b ]
509
482
self ._reserve (size )
510
483
(n ,) = struct .unpack_from (fmt , self ._buffer , self ._buff_i )
511
484
self ._buff_i += size
512
485
if n > self ._max_map_len :
513
- raise ValueError ("%s exceeds max_map_len(%s)" % ( n , self ._max_map_len ) )
486
+ raise ValueError (f" { n } exceeds max_map_len({ self ._max_map_len } )" )
514
487
else :
515
488
raise FormatError ("Unknown header: 0x%x" % b )
516
489
return typ , n , obj
@@ -549,17 +522,14 @@ def _unpack(self, execute=EX_CONSTRUCT):
549
522
return
550
523
if self ._object_pairs_hook is not None :
551
524
ret = self ._object_pairs_hook (
552
- (self ._unpack (EX_CONSTRUCT ), self ._unpack (EX_CONSTRUCT ))
553
- for _ in range (n )
525
+ (self ._unpack (EX_CONSTRUCT ), self ._unpack (EX_CONSTRUCT )) for _ in range (n )
554
526
)
555
527
else :
556
528
ret = {}
557
529
for _ in range (n ):
558
530
key = self ._unpack (EX_CONSTRUCT )
559
531
if self ._strict_map_key and type (key ) not in (str , bytes ):
560
- raise ValueError (
561
- "%s is not allowed for map key" % str (type (key ))
562
- )
532
+ raise ValueError ("%s is not allowed for map key" % str (type (key )))
563
533
if type (key ) is str :
564
534
key = sys .intern (key )
565
535
ret [key ] = self ._unpack (EX_CONSTRUCT )
@@ -634,7 +604,7 @@ def tell(self):
634
604
return self ._stream_offset
635
605
636
606
637
- class Packer ( object ) :
607
+ class Packer :
638
608
"""
639
609
MessagePack Packer
640
610
@@ -844,9 +814,9 @@ def _pack(
844
814
continue
845
815
846
816
if self ._datetime and check (obj , _DateTime ):
847
- raise ValueError ("Cannot serialize %r where tzinfo=None" % ( obj ,) )
817
+ raise ValueError (f "Cannot serialize { obj !r } where tzinfo=None" )
848
818
849
- raise TypeError ("Cannot serialize %r" % ( obj ,) )
819
+ raise TypeError (f "Cannot serialize { obj !r } " )
850
820
851
821
def pack (self , obj ):
852
822
try :
@@ -933,7 +903,7 @@ def _pack_map_header(self, n):
933
903
934
904
def _pack_map_pairs (self , n , pairs , nest_limit = DEFAULT_RECURSE_LIMIT ):
935
905
self ._pack_map_header (n )
936
- for ( k , v ) in pairs :
906
+ for k , v in pairs :
937
907
self ._pack (k , nest_limit - 1 )
938
908
self ._pack (v , nest_limit - 1 )
939
909
0 commit comments