From 3422372948d1a7ef1e3713a341da94b2f998b430 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sun, 5 Jul 2026 11:50:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(data):=20Task=201=20review=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=88pycache=E6=B8=85=E7=90=86+pytest.ini+?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix 1: 移除误 commit 的 __pycache__ 文件 - Fix 2: 创建 pytest.ini 解决 PYTHONPATH 问题 - Fix 3: load_config 添加错误处理(FileNotFoundError + ValueError) Co-Authored-By: Claude --- pytest.ini | 3 +++ sanguo_data/config.py | 13 +++++++++++-- tests/data/__pycache__/__init__.cpython-314.pyc | Bin 177 -> 0 bytes .../test_config.cpython-314-pytest-9.1.1.pyc | Bin 3490 -> 0 bytes tests/data/test_config.py | 5 +++++ 5 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 pytest.ini delete mode 100644 tests/data/__pycache__/__init__.cpython-314.pyc delete mode 100644 tests/data/__pycache__/test_config.cpython-314-pytest-9.1.1.pyc diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..c7b23ec --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +pythonpath = . +testpaths = tests diff --git a/sanguo_data/config.py b/sanguo_data/config.py index 2815fcf..5259b7d 100644 --- a/sanguo_data/config.py +++ b/sanguo_data/config.py @@ -10,8 +10,17 @@ class DataConfig: performance: dict def load_config(path: str) -> DataConfig: - with open(path, "r", encoding="utf-8") as f: - raw = yaml.safe_load(f) + try: + with open(path, "r", encoding="utf-8") as f: + raw = yaml.safe_load(f) + except FileNotFoundError: + raise FileNotFoundError(f"配置文件不存在: {path}") + except yaml.YAMLError as e: + raise ValueError(f"YAML解析失败: {e}") + + if not raw: + raise ValueError(f"配置文件为空: {path}") + return DataConfig( data_paths=raw.get("data_paths", {}), data_sources=raw.get("data_sources", {}), diff --git a/tests/data/__pycache__/__init__.cpython-314.pyc b/tests/data/__pycache__/__init__.cpython-314.pyc deleted file mode 100644 index f849e1a8606122be9d3b804f8799802a6ec49ffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmdPq zSU)+VG%YnRU0*N1AT=*JC$U_=I5981G(WzeC_gJTxuh7zFUu>aj4w0NFG(#13Z^8M uBIGKav;%+HZ4l+Ag{>Q0wk5tu^ipY;roY#FS+=AB zLa9oZ9cOsl!c;Z2nDmM9s#K2AQBY%Z@K(zRshSewq7T!xf!=7kmJ@P0-uUXxOEGjy zYJ3X7dAdy_ZOAoF85>$06h8fa43uMqx`4(Q^Q#Ss@x>ED>i1)yMt2)E5t~@Ke(r$( zu(0g+hxvac8M2WvvPX*b!hy98jkTJ7BgQia{0@z=??+?H8Use|NU{At9{V|rYvG7I zzTr<}%^CSb{tn-pEI29289|P5lm_zg{lA(lhHNAMYZzm)} z9e+>Abe*g*xcWs^{$v4w)rVrwjrM`OBs_%g7%)y%2c{+C^f&eCR9TL2Ba?{s@EvDG zlt*GGwVxg1m@!n%l%#!V?g*UaL=>WDoL!Z|>{SV3%G`Oe&wg(lPcnBOBsJqiQlqS% ze9J0h?f|Rr_t_MZF}$C-`{}pL9c0c>=m&AcI!6DRlsf(XnW2SO(5#|qb<6eIX5EFe zS_wD964xo-bo~}~%*mO=*yIdF>DZbdQkSLJW3^@ZxL9AJ0|*E9x2ESJ9FK9JXrr}g zRTQ+K?ey1W0chGsnr}6oSpUo6P*LKV>KrVLI=zQEQbl`FTo0e}o%%*8QGNFT^OQX=Hm31|`6%^Z6(_5dh z5ON^aKD->Z%Q{lNiv?|tLlZi>%#cYPjdNg1N4oMoNr&wTqPWQQ5oYT!V3MTm!)=Mo$RYV2IYdqDL6`nb&CTi3`fwbWHW$T8 z!`Dv`W-W==|Uc# z(+--U1syWT%Q7wyq9)R&=ShxMCNEhs$P&e_a@g@PkwVBmn?z;%h&Y^%lqi6itP95exntbAq*ZkHbz3{2V!li z#8^Z02w{th@s+a}w#h|KXyP8qs;~upWHRfh2;pTK1^WylLeJ?2c$GSSTHd(xN(1?m zn{%CUX8IB8* z6;Uy+B6iUE@#gjPJAgU^*v*XOK5GW`mgmgF397PtDq>fxS7}L-{sQ0!&;^x$