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))