Initial commit: Add project files
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
import hashlib, json
|
||||
from pathlib import Path
|
||||
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
EXCLUDE={'PACKAGE_MANIFEST.json','SHA256SUMS.txt'}
|
||||
|
||||
def sha(path: Path)->str:
|
||||
h=hashlib.sha256()
|
||||
with path.open('rb') as f:
|
||||
for b in iter(lambda:f.read(1024*1024),b''): h.update(b)
|
||||
return h.hexdigest()
|
||||
|
||||
files=[]
|
||||
for p in sorted(ROOT.rglob('*')):
|
||||
if not p.is_file(): continue
|
||||
rel=p.relative_to(ROOT).as_posix()
|
||||
if rel in EXCLUDE or '/__pycache__/' in f'/{rel}/': continue
|
||||
files.append({'path':rel,'bytes':p.stat().st_size,'sha256':sha(p)})
|
||||
manifest={
|
||||
'package':'KArtSell_Aegis_v12_5_execution_assurance_complete',
|
||||
'version':'12.5',
|
||||
'status':'IMPLEMENTATION_TEMPLATE_STATIC_VALIDATED_RUNTIME_EVIDENCE_REQUIRED',
|
||||
'boundary':['RESEARCH_CANDIDATE_NOT_PRODUCTION','AUTOMATIC_ORDER_OFF','KIS_SUBMISSION_OFF','AUTO_MODEL_PROMOTION_OFF'],
|
||||
'fileCount':len(files),
|
||||
'totalBytes':sum(x['bytes'] for x in files),
|
||||
'files':files,
|
||||
}
|
||||
(ROOT/'PACKAGE_MANIFEST.json').write_text(json.dumps(manifest,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
|
||||
with (ROOT/'SHA256SUMS.txt').open('w',encoding='utf-8') as f:
|
||||
for x in files: f.write(f"{x['sha256']} {x['path']}\n")
|
||||
print(f"manifest files={len(files)} bytes={manifest['totalBytes']}")
|
||||
Reference in New Issue
Block a user