Download tools/pack_bin.py from SharpMeow/unroll: direct link, hf CLI and curl.
- Browser
- Download file 870 Bytes
-
https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/tools/pack_bin.py
- Command line
-
hf download hf://spaces/SharpMeow/unroll/tools/pack_bin.py
-
curl -L -o pack_bin.py https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/tools/pack_bin.py
870 Bytes
| # SPDX-License-Identifier: Apache-2.0 | |
| """Pack data/scroll.bin (little-endian int16) as byte planes + gzip: data/scroll.i16p.gz. | |
| The page fetches the packed file first and unpacks it to the exact original bytes | |
| (lib/formats.js unpackInt16), falling back to scroll.bin. Run after tools/build.py. | |
| """ | |
| import gzip, os, sys | |
| import numpy as np | |
| ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..') | |
| def pack(raw: bytes) -> bytes: | |
| a = np.frombuffer(raw, np.uint8).reshape(-1, 2) | |
| return gzip.compress(a.T.copy().tobytes(), 9, mtime=0) | |
| if __name__ == '__main__': | |
| src = sys.argv[1] if len(sys.argv) > 1 else f'{ROOT}/data/scroll.bin' | |
| dst = sys.argv[2] if len(sys.argv) > 2 else f'{ROOT}/data/scroll.i16p.gz' | |
| raw = open(src, 'rb').read(); out = pack(raw) | |
| open(dst, 'wb').write(out) | |
| print(f'{src}: {len(raw)} -> {dst}: {len(out)} bytes') | |