This website requires JavaScript.
Explore
Help
Register
Sign In
sanguo
/
sanguo_vnpy_v2
Watch
3
Star
0
Fork
0
You've already forked sanguo_vnpy_v2
Code
Issues
5
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
3ecd413d797c2e0e358c08e5e96c69235cd354d5
sanguo_vnpy_v2
/
tests
/
data_platform
T
History
claude_dev
3ecd413d79
CI/CD / test (push)
Failing after 5s
Details
CI/CD / nas-deploy (push)
Has been skipped
Details
CI/CD / nas-verify (push)
Has been skipped
Details
feat(data_platform): xcheck 跨 vendor 对账域上线(spec §20.12.4 终版,对照类实施)——时机=写后即照两档(事件驱动主档挂 wash/corpus 班车+漂移兜底档 Phase 2b);内容=四层漏斗(键完整性→NOTICE_DATE 披露日→估值数值[qt 字段位 vs valuation_baostock peTTM/pbMRQ,阈值 0.1%/1% 分档]→分布漂移缓后)+按需收窄;结果五级路由 L0 静默/L1 舍入档案/L2 报警 suspect/L3 多数派仲裁写 wash pending[XCHECK_L3_AUTO 默认关]/L4 人工;可追溯=findings 每行内嵌三方原值证据快照+trace_id xc-YYYYMMDD-NNNN 贯穿发现→仲裁→重洗→复验+根因分类学七类+报告 tmp+rename 原子+--dry-run;两 lane 接线:corpus_side 挂 run_corpus 尾(ann_em 拉取+qt 快照),fund_side 挂 run_dmsk 尾(读 wash manifests 命中股+新浪三表近12期+两源 NOTICE_DATE 本地对照);xcheck 不推 VPS(NAS 侧质检设施);TDD 19 例全套 484 绿 [nas]
2026-09-22 08:38:37 +08:00
..
__init__.py
fix(data): data_platform硬化(增量merge/verify+raw_redownload/run_daily_update)+测试
2026-07-15 07:12:46 +08:00
conftest.py
fix(data): bs_eod 15min datetime 格式 bug 根治 + --no-daily 选项
2026-07-25 21:14:12 +08:00
test_ak_dt_seats_domain.py
feat(ak): 龙虎榜席位明细域 dragon_tiger_seats——当日榜单列表(RPT_DAILYBILLBOARD_DETAILSNEW)→逐股买卖top5席位(RPT_BILLBOARD_DAILYDETAILSBUY/SELL),SIDE列标注;实测680行/58股/190s(榜列表68行=同股多上榜原因去重58);逐股逐侧各自30s预算(整日期3分钟超AK_TIMEOUT,sw_industry同款分层);filter日期必须单引号;严格整体语义;增量域不回补;TDD 4新测试340全绿 [vps]
2026-09-12 09:26:33 +08:00
test_ak_margin_domain.py
fix(data): gapsonly 七修——p101 服务墙三病(键集早停+日期下界+硬上限+无视state+段间独立,spec §20.10.5)——0911 半截补齐两次同点挂 [backfill TMC 069001002001 p101] 服务器繁忙,同点复现=确定性非限流:①早停「行数相等」判定在新块带翻页漂移dup(len虚高)/旧文件ps通道行数微差时恒False,连续5完整日永不触发一路裸翻;②EM单TMC段深翻页~100页/5万行确定性服务墙(TMC×DATE组合过滤又被服务端拒无法换锚,同墙宣告full模式对176万行大段永不可达,深史只能走per-stock);③gapsonly复用full模式state断点,挂死残留state(p100)毒化续跑立即再撞墙+单段早停跨段break跳过其余六段(各段夜间失败独立)。修复:键集判定(旧文件该段SCODE键集⊇新块去重键集=完整)+日期下界35自然日(≈24交易日≈深主板~55页远离墙,更深缺口归ps通道)+翻页硬上限90(到顶停段不raise,03:00无人值守不炸)+gapsonly无视state恒从p1(重翻由merge去重吸收,段末清state)+删跨段break七段全查。TDD+5例376绿;周六09-19 03:00首跑顺带merge洗净0915/0916/0917存量dup(直接洗文件被分类器拦,处置终态入spec) [vps]
2026-09-17 22:04:00 +08:00
test_ak_nb_domain.py
fix(data): ak-events 五新域首两晚生产四病五修(用户全批,spec §20.9)——①margin 深段 TMC 代码级必然超时(原沪直查+4段整体包 30s,单段实测 26.3s→必挂,从未成功过):改逐层各自预算(沪 AK_TIMEOUT+每段 MARGIN_TMC_SEG_TIMEOUT=60s,seats 同款),任一层失败整体 None 不写残缺,09-11 自愈解堵 ②sw_industry 一级清单源乐咕乐股反爬 VPS(带UA=JS挑战页/裸403):31 行业改 SW_FIRST_LEVEL_STATIC 静态表(Mac 出口校准 2021-12 版),成份仍走申万宏源官网 API 不受影响 ③nb_hold 日增查当天必空(HKEX T+1 供应,同 margin_sse T日同构):基准日改 T-1+_hkex_hold_query strict 参数(日增空 skip 不抛/回补保持 raise),rc=1 主因拔除 ④financial_abstract 新浪源每晚 5.5k 连发撞限流(单发实测通=频率触发):fa 从 ak-eod 挪 ak-weekly 周六(量级-87%+错峰,schema 不变) ⑤margin_sse 窗口含 T 日每晚必 1 failed(EM 沪 DATE 视图 T+1):wrapper 改 T-2~T-1 全 settled;监控口径坑备案(类型级 failed 不抬出码,判健康须看各类型统计行);371 绿(+10 TDD) [vps]
2026-09-16 20:00:23 +08:00
test_ak_sw_industry_domain.py
fix(data): ak-events 五新域首两晚生产四病五修(用户全批,spec §20.9)——①margin 深段 TMC 代码级必然超时(原沪直查+4段整体包 30s,单段实测 26.3s→必挂,从未成功过):改逐层各自预算(沪 AK_TIMEOUT+每段 MARGIN_TMC_SEG_TIMEOUT=60s,seats 同款),任一层失败整体 None 不写残缺,09-11 自愈解堵 ②sw_industry 一级清单源乐咕乐股反爬 VPS(带UA=JS挑战页/裸403):31 行业改 SW_FIRST_LEVEL_STATIC 静态表(Mac 出口校准 2021-12 版),成份仍走申万宏源官网 API 不受影响 ③nb_hold 日增查当天必空(HKEX T+1 供应,同 margin_sse T日同构):基准日改 T-1+_hkex_hold_query strict 参数(日增空 skip 不抛/回补保持 raise),rc=1 主因拔除 ④financial_abstract 新浪源每晚 5.5k 连发撞限流(单发实测通=频率触发):fa 从 ak-eod 挪 ak-weekly 周六(量级-87%+错峰,schema 不变) ⑤margin_sse 窗口含 T 日每晚必 1 failed(EM 沪 DATE 视图 T+1):wrapper 改 T-2~T-1 全 settled;监控口径坑备案(类型级 failed 不抬出码,判健康须看各类型统计行);371 绿(+10 TDD) [vps]
2026-09-16 20:00:23 +08:00
test_akshare_static_download.py
fix(data): akshare_static_download import 期副作用根治(基建 09-18 案)——模块体 L273 import 期调 setup_logging() 会 LOG_DIR.mkdir+开 FileHandler, POSIX 无 AK_STATIC_* env 时落到字面量 Windows 路径, 7 个测试文件 import 即中招, CI 工作区/dev 树长出 'C:\sanguo_vnpy_v2\data\static\' 目录(218 份垃圾日志,最新=今晨 run#1276 pytest 窗)+零字节 quant_trading.db;修=import 期只 getLogger(无 handler),setup_logging 延迟到 main() 首行,生产入口(VPS schtask 直跑)行为不变;回归测试 importlib.reload 断言 tmp cwd 零字面量残留(RED->GREEN);dev 树残留已清;420 绿(+1) [vps] [no-doc]
2026-09-18 08:01:53 +08:00
test_bs_5m_eod.py
fix(nas): bs_5m失败股尾部补扫一轮——03:0x同步链持写锁60s busy_timeout耗尽database is locked(每晚1-5只)+偶发网络错(600247),原形态=该片窗口永久小洞;修=_sweep返failed清单,run尾部(07:40+同步链早已收工)chunk/inc各自失败集各补扫一轮自愈,补扫query计入swept配额、rlr并入exit语义;+2测试(双窗口失败→双retry=6调用自愈/零失败无retry回归);venv310 644绿 [nas]
2026-08-25 21:32:28 +08:00
test_bs_daily_main.py
feat(data): sanguo-bs-daily单入口串行编排(bs_eod→bs_fundamentals)——2026-08-20数据任务重组阶段1:根治当日撞点(bs_eod加指数段后ETA 23:00+与旧23:05 bs-fund重叠=同IP双baostock连接封禁红线),合并进同一schtask两腿先后子进程,leg1进程退出(logout+消亡)连接才释放leg2才login;bs_daily_main只做顺序+退出码透传({0,3}=OK,3=按预算graceful不算失败)+[BS-DAILY]腿起止时间线日志(验收'eod logout后fund才login'直接证据);leg2无条件跑(leg1致命不连坐,连接已释放fund独立作业);wrapper传BS_DAILY_LIMIT=15000收紧eod病态重试硬顶(常态~11.1k不受影响,与fund30000合计≤45.1k<48k/IP/天);--smoke零配额链路自检;bs_fundamentals._bs_eod_running补注释:旧任务名已删探测必失败fail-open=设计行为勿修复(探新名会探到父任务永久让路);+15测试(顺序铁律/leg2无条件/退出码聚合9组合/smoke零子进程) [vps]
2026-08-20 19:49:00 +08:00
test_bs_eod_15m_dt.py
fix(data): bs_eod 15min datetime 格式 bug 根治 + --no-daily 选项
2026-07-25 21:14:12 +08:00
test_bs_eod_index.py
test(bs): 两测试文件isolated_main_env归零MIN_STOCK_LIST——小名单mock过守卫,不动被测行为 [vps]
2026-09-10 22:52:35 +08:00
test_bs_eod_resilience.py
test(data_platform): CI 三连挂根因修——CLOSE_WAIT 模拟线程泄漏×全局 time.sleep 补丁相遇(#1276/#1290/#1291 三案同根)——①泄漏源 test_with_timeout_breaks_close_wait_silent_hang: 模拟体 while True:sleep(0.1) 无退出条件,_with_timeout 超时弃线程是生产文档化设计(daemon+relogin 兜底)但测试把永生线程留在进程里,改 threading.Event stop 可终止+收尾断言 active_count 归零(泄漏回归钉死) ②地雷 test_corpus_download 两处 setattr(cd.time,'sleep')=补 stdlib time 本体(全局): 泄漏线程 sleep 被换零延迟 append→单核忙循环百万次/秒塞列表,pytest 渲染巨列表分钟级=CI 楔死;改补 cd 模块属性(scoped SimpleNamespace,sleep/monotonic/time 面透真) 定证:本地 8 连发第 5 发复现(320s rc=1,faulthandler dump 双线程现行+assert [0.1,0.1,0....] 巨表);flaky=断言窗口与泄漏线程 0.1s 醒转赛跑(轻载绿/重载红,17:22
#1289
绿→17:27 负载升三连挂);修复后定向 88 绿+同进程活永生线程污染对抗 3 绿+全套 6 连发全绿 26s 级;同型地雷存量 8 处(bs_eod_resilience 5+ak_sw_industry 3)触发前提已灭记 backlog 集中加固 [nas] [no-doc]
2026-09-19 18:31:38 +08:00
test_bs_eod_valuation_backfill.py
fix(bs): 名单规模sanity守卫MIN_STOCK_LIST=4000——09-10实录query_stock_basic截断返2296静默半写exit=0,守卫转exit=1次夜LOOKBACK自愈 [vps]
2026-09-10 22:52:35 +08:00
test_bs_fundamentals.py
fix(data): bs_eod挂死根治——login/logout纳入_with_timeout保护伞+中文系统运行判定三词修正。①根因(08-20 19:26实锤,日志形态逐字吻合):bs.login()打印success后仍有后续往返,baostock recv不遵守socket default timeout,主线程卡死在login内部recv(50min+零输出,连60s超时err都没有);fetch早已套_with_timeout但login/logout是裸调——relogin/login_once全部纳入(login60s/logout30s),超时按登录失败处理走既有重试链;②bs_fundamentals._is_running_text:中文系统实际输出「正在运行」不含连续子串「运行中」,原两词判定在中文VPS恒False=守卫恒fail-open(当晚若不禁用bs-fund将真撞车);三词都认+回归钉测试;③check_task_running.py通用探针(修复版)替换VPS上带同bug的check_bs_eod.py;+4测试(登录超时返False/relogin全程超时不raise/login与logout必经保护伞契约/正在运行判定) [vps]
2026-08-20 20:04:51 +08:00
test_corpus_download.py
feat(data_platform): corpus flash_meta 全市场快讯域上线(spec §20.12.3 补充类采纳)——金十 flash_newest.js 快照+东财 kuaixun 翻页(T-1 边界停界,20页硬顶)两源,与 news_meta 个股新闻语义并列不 join;flash_id=源前缀+源站稳定id跨源命名空间隔离,当日marker幂等,源级隔离单源失败不炸另一源;run_corpus.sh 第三lane rc隔离不进聚合(两主lane全让路也不漏当天快讯);镜像车 corpus 四子域扩五(新域指纹全新首跑自动全量推);corpus_reader.get_flash 空df带schema;TDD +13例全套465绿;Mac真网络冒烟=金十50+东财884新,21s完赛,dt跨度T-1边界实证,幂等复跑零请求;首班锚点=次日06:0x flash lane exit=0行 [nas]
2026-09-22 08:17:14 +08:00
test_corpus_reader.py
feat(data_platform): corpus flash_meta 全市场快讯域上线(spec §20.12.3 补充类采纳)——金十 flash_newest.js 快照+东财 kuaixun 翻页(T-1 边界停界,20页硬顶)两源,与 news_meta 个股新闻语义并列不 join;flash_id=源前缀+源站稳定id跨源命名空间隔离,当日marker幂等,源级隔离单源失败不炸另一源;run_corpus.sh 第三lane rc隔离不进聚合(两主lane全让路也不漏当天快讯);镜像车 corpus 四子域扩五(新域指纹全新首跑自动全量推);corpus_reader.get_flash 空df带schema;TDD +13例全套465绿;Mac真网络冒烟=金十50+东财884新,21s完赛,dt跨度T-1边界实证,幂等复跑零请求;首班锚点=次日06:0x flash lane exit=0行 [nas]
2026-09-22 08:17:14 +08:00
test_dbbardata_utils.py
fix(data): dbbardata 日线双行根治(统一纯日期+helper,留ROWID max去重)
2026-07-23 12:18:41 +08:00
test_fund_dmsk_reader.py
feat(data): corpus/dmsk 消费接口(spec §20.11.3 实施,设计已入档)——partition_reader 通用读取核(核内零语义:不做 as-of/PIT+零静默去重;失败分级:缺数据空 df 不 raise/跨分区列集与类型漂移 PartitionSchemaError fail loud;双机根解析 SANGUO_CORPUS_ROOT/SANGUO_FUND_DMSK_ROOT env 覆盖+水位线读取)+corpus_reader(get_news_meta/get_ann_meta symbols 下推 stock_code/sec_code/get_news_fulltext(ids) art_code 批量/ann_pdf_dir;schema 契约 09-17 NAS 实测落 docstring:稳定 id=art_code/announcement_id 与 PDF 同名)+fund_dmsk_reader(get_domain 五域+noticed_by 纯过滤 NOTICE_DATE 缺列 fail loud;契约:五域 NOTICE_DATE 实测全在/SECUCODE 带后缀 SECURITY_CODE 裸 6 位/单位元);TDD 23 例,全套 414 绿 [vps] [no-doc]
2026-09-17 23:44:02 +08:00
test_fund_pit_view.py
test(data_platform): test_13 断言笔误修正(前条 commit 战果数补正:实际=449 绿+1 测试自身笔误,非 451 绿——pytest 退出码被管道 tail 吞掉致带病提交,本条补正记录;两处产品修复本身经全套 450 绿+VPS 真数据复验确认无误)——k=1@asof 10-30 应为 Q3 的 300.0,断言误抄 Q1 的 100.0 [nas] [no-doc]
2026-09-20 09:22:58 +08:00
test_fundamentals_dmsk_download.py
feat(dmsk): DOMAINS扩forecast业绩预告/express业绩快报两域——探针钉边界2003/2005年报起,per-domain起始年+4键/3键(ID含NOTICE_DATE披露日),verify五域键唯一 [nas]
2026-09-08 21:16:34 +08:00
test_g4_atomic_and_repair.py
fix(data): akshare 三表下载鲁棒性 — 原子写 + --repair (G4)
2026-07-28 20:36:11 +08:00
test_merge_increment.py
fix(nas): merge_increment计数免疫并发写者——inserted改用Connection.total_changes(只计本连接INSERT生效行),原after-before会被03:00合并窗口并发的bs_5m写入污染(08-25实锤skipped(dup)=-4881,5m插的行被记成merge的inserted);+2测试钉计数契约(新/dup/混掺/他源行不计入);venv310 644绿 [nas]
2026-08-25 21:32:28 +08:00
test_parse_csindex_current_anchor.py
fix(data): constituent_unified中证1000(000852)全0修复+current锚点三重防线——000852的1233条成分全in_current=0(因子池端点显示0只);根因=08-16 idx-monthly STEP0的fetch_akshare_current(000852)瞬时网络失败被「非致命warning」吞→announce_union重写丢current锚点→migrate全标was_removed,而snapshot兜底对两指数均为csindex超时placeholder从未起作用;数据修复(已执行)=akshare现拉1000只append进announce_union+正规migrate/merge重建,VPS主库1673条cur=1000精确达标,全21指数diff仅000852,NAS sync_tables已同步同态,全0扫描为空;代码防线=①fetch重试3次②空解析raise大声(列定位失败不再静默返空)③_carry_forward_current失败时沿用旧parquet current行锚点只增不丢(000852/932000两块接线);6新测试钉死三防线 [vps]
2026-08-30 12:49:13 +08:00
test_partition_reader.py
fix(data): 因子线 review 必修#1 null 桥接洞——首文件全空列把 num/text 桥接(两具体类型从未直接对撞,concat 静默混装零 raise=契约④要防的静默 coerce 被绕过,因子线实测复现);修=每列 resolved=首个非空具体类型/null 永不推进 resolved/冲突即 raise/列集按名比对(列序漂移不误报,策略线观察 b 顺势解决);+3 测试(三段桥 raise/null 隔离仍 raise/列序 tolerated)419 绿;记录②noticed_by 滤空 NOTICE_DATE=有意宁缺毋假写进 docstring;§20.11.5 实施版双线 review 回执+§20.11.6 遗留更新(DSM 复用评估定稿) [vps]
2026-09-18 07:29:53 +08:00
test_static_overlay_wash.py
fix(data_platform): 双域背靠背 review 七项修复(factor 3M/2m+strategy 1B/3M)——strategy B1:GroupBy.last 拿组内最后非空值=重述行 null 静默回退旧行值冒充终值,改 nth(-1) 排序末行原样取(宁缺毋假红线);factor MAJOR-1:UPDATE_DATE null 排序 pandas(nulls-last)与因子 polars(nulls-first)语义相反=脏行无条件成终值,改 na_position='first'+kind='stable'(跨重写复算确定性);factor MAJOR-3:_load_stock 列下推(pyarrow schema 探头→键列+UPDATE_DATE+所需列投影,缺列补 null,全市场调用免 319 列全量 IO);factor MINOR-2:雷达比对轴改 per-(code,REPORT_DATE)(期级新披露 notice 旧于该股全局 max 亦命中;static 损坏→全期命中→重写自愈);strategy M1:行级容错跳过股 attrs['skipped_symbols'] 暴露(防 09-01 静默缩水复燃);strategy M2:view 增 UPDATE_DATE 列=终值新鲜度可观测;strategy m5:no_data/filtered_empty 边界断言;factor MAJOR-2=spec 周日回冲表述勘误(实际=覆盖式 scp -r,正常路径内容已对齐无害,仅推送失败周回退且雷达窗内自愈);strategy M3 value 切换纪律(同日双源漏斗对照+回滚预案)+m4 VPS D+2 时延口径入 spec;MINOR-1 缓至首非零 wash 日实测;新增 7 用例,全套 448 绿 [nas]
2026-09-20 08:59:35 +08:00
test_static_vintage_check.py
fix(data): vintage 测试周一翻转——快照族 hole 取最近工作日 [nas]
2026-09-07 03:18:29 +08:00
test_top_holders_parse.py
fix(data): 静态表下载两隐患根治——①北交所白烧重试跳过(东财三报表端点SH920xxx必败'NoneType'错,09-01季频洗库实测340股×3表×3retry+退避白烧≈5h;对齐top_holders BJ_PREFIXES同款跳过,valuation/financial_abstract实测BSE有数据不跳)②fetch失败语义修正:15个fetcher不再经_df_or_empty把重试耗尽(None)转空df→空parquet覆盖旧好数据+标done永不重试(09-01实证340空文件全BSE属侥幸,主板瞬时故障会真毁数据);改返None交download_one_unit既有failed分支=不写不标保旧数据复跑重试,真空df才写空+done;test_top_holders一处旧契约断言同步(失败返None);+8测试钉死 [vps]
2026-09-01 19:03:47 +08:00
test_verify_increment.py
fix(data): data_platform硬化(增量merge/verify+raw_redownload/run_daily_update)+测试
2026-07-15 07:12:46 +08:00
test_vps_mirror_lib.py
feat(data_platform): corpus flash_meta 全市场快讯域上线(spec §20.12.3 补充类采纳)——金十 flash_newest.js 快照+东财 kuaixun 翻页(T-1 边界停界,20页硬顶)两源,与 news_meta 个股新闻语义并列不 join;flash_id=源前缀+源站稳定id跨源命名空间隔离,当日marker幂等,源级隔离单源失败不炸另一源;run_corpus.sh 第三lane rc隔离不进聚合(两主lane全让路也不漏当天快讯);镜像车 corpus 四子域扩五(新域指纹全新首跑自动全量推);corpus_reader.get_flash 空df带schema;TDD +13例全套465绿;Mac真网络冒烟=金十50+东财884新,21s完赛,dt跨度T-1边界实证,幂等复跑零请求;首班锚点=次日06:0x flash lane exit=0行 [nas]
2026-09-22 08:17:14 +08:00
test_xcheck.py
feat(data_platform): xcheck 跨 vendor 对账域上线(spec §20.12.4 终版,对照类实施)——时机=写后即照两档(事件驱动主档挂 wash/corpus 班车+漂移兜底档 Phase 2b);内容=四层漏斗(键完整性→NOTICE_DATE 披露日→估值数值[qt 字段位 vs valuation_baostock peTTM/pbMRQ,阈值 0.1%/1% 分档]→分布漂移缓后)+按需收窄;结果五级路由 L0 静默/L1 舍入档案/L2 报警 suspect/L3 多数派仲裁写 wash pending[XCHECK_L3_AUTO 默认关]/L4 人工;可追溯=findings 每行内嵌三方原值证据快照+trace_id xc-YYYYMMDD-NNNN 贯穿发现→仲裁→重洗→复验+根因分类学七类+报告 tmp+rename 原子+--dry-run;两 lane 接线:corpus_side 挂 run_corpus 尾(ann_em 拉取+qt 快照),fund_side 挂 run_dmsk 尾(读 wash manifests 命中股+新浪三表近12期+两源 NOTICE_DATE 本地对照);xcheck 不推 VPS(NAS 侧质检设施);TDD 19 例全套 484 绿 [nas]
2026-09-22 08:38:37 +08:00
test_xt_eod_bj.py
feat(data): xt_eod 扩展补全北交所 920xxx 日线(exc_of+universe+import容错,复用×100 normalize)
2026-07-27 20:56:16 +08:00
test_xt_eod_fieldlist.py
perf(xt): get_market_data_ex 显式传六列 field_list——桥fallback快路径(FormulaServer 0.025s vs 空列RPC 0.1-5.8s/次,今晚21:00全量夜班从~3.7h回分钟级);五样本含2北交空列vs六列等值实测EQUIV,TDD断言调用一等参 [vps]
2026-09-11 13:40:01 +08:00