Skip to content

Commit 682b861

Browse files
authored
Drop list stream and map stream from packstream implementation (#713)
Ever since, were they unused and undocumented.
1 parent b2187f3 commit 682b861

File tree

2 files changed

+2
-78
lines changed

2 files changed

+2
-78
lines changed

neo4j/packstream.py

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@
3838
INT64_MAX = 2 ** 63
3939

4040

41-
EndOfStream = object()
42-
43-
4441
class 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

238226
class 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

tests/unit/common/data/test_packing.py

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -221,29 +221,6 @@ def test_list_32(self):
221221
def test_nested_lists(self):
222222
self.assert_packable([[[]]], b"\x91\x91\x90")
223223

224-
def test_list_stream(self):
225-
packed_value = b"\xD7\x01\x02\x03\xDF"
226-
unpacked_value = [1, 2, 3]
227-
stream_out = BytesIO()
228-
packer = Packer(stream_out)
229-
packer.pack_list_stream_header()
230-
packer.pack(1)
231-
packer.pack(2)
232-
packer.pack(3)
233-
packer.pack_end_of_stream()
234-
packed = stream_out.getvalue()
235-
try:
236-
assert packed == packed_value
237-
except AssertionError:
238-
raise AssertionError("Packed value is %r instead of expected %r" %
239-
(packed, packed_value))
240-
unpacked = Unpacker(UnpackableBuffer(packed)).unpack()
241-
try:
242-
assert unpacked == unpacked_value
243-
except AssertionError:
244-
raise AssertionError("Unpacked value %r is not equal to expected %r" %
245-
(unpacked, unpacked_value))
246-
247224
def test_list_size_overflow(self):
248225
stream_out = BytesIO()
249226
packer = Packer(stream_out)
@@ -277,30 +254,6 @@ def test_map_32(self):
277254
b = b"".join(self.packb(u"A%s" % i, 1) for i in range(80000))
278255
self.assert_packable(d, b"\xDA\x00\x01\x38\x80" + b)
279256

280-
def test_map_stream(self):
281-
packed_value = b"\xDB\x81A\x01\x81B\x02\xDF"
282-
unpacked_value = {u"A": 1, u"B": 2}
283-
stream_out = BytesIO()
284-
packer = Packer(stream_out)
285-
packer.pack_map_stream_header()
286-
packer.pack(u"A")
287-
packer.pack(1)
288-
packer.pack(u"B")
289-
packer.pack(2)
290-
packer.pack_end_of_stream()
291-
packed = stream_out.getvalue()
292-
try:
293-
assert packed == packed_value
294-
except AssertionError:
295-
raise AssertionError("Packed value is %r instead of expected %r" %
296-
(packed, packed_value))
297-
unpacked = Unpacker(UnpackableBuffer(packed)).unpack()
298-
try:
299-
assert unpacked == unpacked_value
300-
except AssertionError:
301-
raise AssertionError("Unpacked value %r is not equal to expected %r" %
302-
(unpacked, unpacked_value))
303-
304257
def test_map_size_overflow(self):
305258
stream_out = BytesIO()
306259
packer = Packer(stream_out)

0 commit comments

Comments
 (0)