suryatmodulus
/

File size: 1,074 Bytes
96a4100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Verify or copy the exact model bundled with this release."""
from __future__ import annotations
import argparse
import json
from pathlib import Path
import shutil
from .assets import ASSET_ROOT,sha256_file

def main():
    parser=argparse.ArgumentParser();parser.add_argument('--output',type=Path,required=True)
    args=parser.parse_args();source=ASSET_ROOT.parent/'model'
    inventory=json.loads((ASSET_ROOT/'base_files.sha256.json').read_text())
    if args.output.resolve()!=source.resolve() and args.output.exists() and any(args.output.iterdir()):
        raise RuntimeError('--output must be absent or empty')
    for name,digest in inventory['files'].items():
        if not (source/name).is_file() or sha256_file(source/name)!=digest:
            raise RuntimeError(f'Bundled model identity mismatch: {name}')
    if args.output.resolve()!=source.resolve():
        args.output.mkdir(parents=True,exist_ok=True)
        for name in inventory['files']:shutil.copyfile(source/name,args.output/name)
    print(args.output.resolve())

if __name__=='__main__':main()