MCPcopy Index your code
hub / github.com/HelloZeroNet/ZeroNet / stream

Function stream

src/util/Msgpack.py:20–38  ·  view source on GitHub ↗
(data, writer)

Source from the content-addressed store, hash-verified

18
19
20def stream(data, writer):
21 packer = msgpack.Packer(use_bin_type=True)
22 writer(packer.pack_map_header(len(data)))
23 for key, val in data.items():
24 writer(packer.pack(key))
25 if isinstance(val, io.IOBase): # File obj
26 max_size = os.fstat(val.fileno()).st_size - val.tell()
27 size = min(max_size, val.read_bytes)
28 bytes_left = size
29 writer(msgpackHeader(size))
30 buff = 1024 * 64
31 while 1:
32 writer(val.read(min(bytes_left, buff)))
33 bytes_left = bytes_left - buff
34 if bytes_left <= 0:
35 break
36 else: # Simple
37 writer(packer.pack(val))
38 return size
39
40
41class FilePart(object):

Callers

nothing calls this directly

Calls 5

msgpackHeaderFunction · 0.85
itemsMethod · 0.80
packMethod · 0.45
tellMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected