18 lines
583 B
Python
18 lines
583 B
Python
import json
|
|
|
|
|
|
def get_metadata(filepath):
|
|
with open(filepath, "rb") as file:
|
|
# 8 bytes: N, an unsigned little-endian 64-bit integer, containing the size of the header
|
|
header_size = int.from_bytes(file.read(8), "little", signed=False)
|
|
|
|
if header_size <= 0:
|
|
raise BufferError("Invalid header size")
|
|
|
|
header = file.read(header_size)
|
|
if header_size <= 0:
|
|
raise BufferError("Invalid header")
|
|
|
|
header_json = json.loads(header)
|
|
return header_json["__metadata__"] if "__metadata__" in header_json else None
|