3838INT64_MAX = 2 ** 63
3939
4040
41- EndOfStream = object ()
42-
43-
4441class Structure :
4542
4643 def __init__ (self , tag , * fields ):
@@ -196,9 +193,6 @@ def pack_list_header(self, size):
196193 else :
197194 raise OverflowError ("List header size out of range" )
198195
199- def pack_list_stream_header (self ):
200- self ._write (b"\xD7 " )
201-
202196 def pack_map_header (self , size ):
203197 write = self ._write
204198 if size <= 0x0F :
@@ -215,9 +209,6 @@ def pack_map_header(self, size):
215209 else :
216210 raise OverflowError ("Map header size out of range" )
217211
218- def pack_map_stream_header (self ):
219- self ._write (b"\xDB " )
220-
221212 def pack_struct (self , signature , fields ):
222213 if len (signature ) != 1 or not isinstance (signature , bytes ):
223214 raise ValueError ("Structure signature must be a single byte value" )
@@ -231,9 +222,6 @@ def pack_struct(self, signature, fields):
231222 for field in fields :
232223 self ._pack (field )
233224
234- def pack_end_of_stream (self ):
235- self ._write (b"\xDF " )
236-
237225
238226class Unpacker :
239227
@@ -316,11 +304,11 @@ def _unpack(self):
316304 return decode (self .read (size ), "utf-8" )
317305
318306 # List
319- elif 0x90 <= marker <= 0x9F or 0xD4 <= marker <= 0xD7 :
307+ elif 0x90 <= marker <= 0x9F or 0xD4 <= marker <= 0xD6 :
320308 return list (self ._unpack_list_items (marker ))
321309
322310 # Map
323- elif 0xA0 <= marker <= 0xAF or 0xD8 <= marker <= 0xDB :
311+ elif 0xA0 <= marker <= 0xAF or 0xD8 <= marker <= 0xDA :
324312 return self ._unpack_map (marker )
325313
326314 # Structure
@@ -331,9 +319,6 @@ def _unpack(self):
331319 value [i ] = self ._unpack ()
332320 return value
333321
334- elif marker == 0xDF : # END_OF_STREAM:
335- return EndOfStream
336-
337322 else :
338323 raise ValueError ("Unknown PackStream marker %02X" % marker )
339324
@@ -360,12 +345,6 @@ def _unpack_list_items(self, marker):
360345 size , = struct_unpack (">I" , self .read (4 ))
361346 for _ in range (size ):
362347 yield self ._unpack ()
363- elif marker == 0xD7 : # LIST_STREAM:
364- item = None
365- while item is not EndOfStream :
366- item = self ._unpack ()
367- if item is not EndOfStream :
368- yield item
369348 else :
370349 return
371350
@@ -403,14 +382,6 @@ def _unpack_map(self, marker):
403382 key = self ._unpack ()
404383 value [key ] = self ._unpack ()
405384 return value
406- elif marker == 0xDB : # MAP_STREAM:
407- value = {}
408- key = None
409- while key is not EndOfStream :
410- key = self ._unpack ()
411- if key is not EndOfStream :
412- value [key ] = self ._unpack ()
413- return value
414385 else :
415386 return None
416387
0 commit comments