#!/usr/bin/env python3
"""备份覆盖度: 迁移前备份覆盖哪些池/哪些股; 未覆盖的 1169 只是否本就没有 qfq/hfq 列"""
import os, glob
import pandas as pd
BASE = os.path.expanduser('~/zt_app/backtest_zt_full')
BAK = os.path.expanduser('~/zt_app/_hfq_ohlc_backup_20260912')
bak = {os.path.basename(f)[:-4] for f in glob.glob(f'{BAK}/*.csv')}
per = {}
miss = {}
for p in ['hs300','zz500','zz1000','zz2000']:
    codes = [os.path.basename(f)[:-4] for f in glob.glob(f'{BASE}/daily_{p}/*.csv')]
    per[p] = (len(codes), len([c for c in codes if c in bak]))
    miss[p] = sorted(set(codes) - bak)
print('池: 文件数 / 有迁移前拷贝')
for p, v in per.items():
    print(f'  {p}: {v[0]} / {v[1]}')
print('未覆盖示例:', {p: v[:5] for p, v in miss.items()})
# 备份文件列头统计
from collections import Counter
c = Counter()
for f in glob.glob(f'{BAK}/*.csv')[:500]:
    with open(f) as fh:
        c[len(fh.readline().strip().split(','))] += 1
print('备份文件列数分布(抽500):', dict(c))
# 66 只 raw 回填名单是否都在备份内
b66 = {os.path.basename(f).split('__')[-1][:-4] for f in glob.glob(os.path.expanduser('~/zt_app/_raw_backfill_backup_20260912/*.csv'))}
print('66 只回填股在迁移前备份中的比例: %d/%d' % (len(b66 & bak), len(b66)))
