File size: 1,846 Bytes
6861f5b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import os
V2='/workspace/huawei/v2work'; V3='/workspace/huawei/v3'
FILES={'prep.py':f'{V2}/prep.py','v3fold.py':f'{V2}/v3fold.py','v3feat_ne.py':f'{V2}/v3feat_ne.py','build_folds.py':f'{V2}/build_folds.py',
'feats.py':f'{V2}/feats.py','extra.py':f'{V2}/extra.py','extra2.py':f'{V2}/extra2.py','cl.py':f'{V2}/cl.py','ens.py':f'{V2}/ens.py',
'write_sub.py':f'{V2}/write_sub.py','validate.py':f'{V2}/validate.py','blend_lite.py':f'{V2}/lite_build/blend_lite.py','lrfeat2.py':f'{V2}/lrfeat2.py',
'v3/prep.py':f'{V3}/prep.py','v3/features.py':f'{V3}/features.py','v3/split.py':f'{V3}/split.py'}
SRC={}
for k,p in FILES.items():
s=open(p).read()
s=s.replace(V2,'@@WORK@@').replace(V3,'@@WORK@@/v3').replace('/workspace/huawei/data','@@RAW@@')
if k=='build_folds.py':
s=s.replace("for C,W,name in specs:","""if len(sys.argv)>1 and sys.argv[1]=='lite': # v4_lite: only what the final fit needs (h1..h5 + val26 = f1..f6, eval)
specs=[(J20+k*DAY,DAY,f'h{k}') for k in (1,2,3,4,5)]+[(J20+6*DAY,DAY,'val26'),('eval',None,'eval')]
for C,W,name in specs:""")
assert "=='lite'" in s
if k=='cl.py':
a="os.path.getmtime(f'{P3}/{n}.parquet')]"; assert a in s
s=s.replace(a,"[os.path.getmtime(f) for f in (f'{P3}/{n}.parquet',f'{P2}/{V2_OF[n]}.parquet',f'{D}/feat_x/{n}.parquet',f'{D}/feat_x2/{n}.parquet')]+[os.path.getmtime(f'{D}/{x}/{n}.parquet') for x in extra]]")
s=s.replace(" import mods; a=mods.apply(a,n,variant)\n"," raise ValueError('mods not used in v6')\n")
assert '/workspace/' not in s, (k,[l for l in s.splitlines() if '/workspace/' in l])
SRC[k]=s
head=open(f'{V2}/lite_build/driver_head_v6.py').read()
body=open(f'{V2}/lite_build/driver_body_v6.py').read()
open(f'{V2}/out/solution_v6.py','w').write(head+'\nSRC = '+repr(SRC)+'\n\n'+body)
print('ok',len(SRC))
|