mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 16:54:17 +08:00
fix(types): 修复 CI mypy strict + ruff format 失败
mypy (13 errors → 0): - portfolio/optimizer: register_optimizer 返回类型改为 Callable 装饰器签名 (原标注 type[WeightOptimizer] 导致 4 个子类 Too many arguments) - factor/engine: _datetime_to_int 用 isinstance 收窄替代 object→int 强转 - factor/analysis: 删多余 type:ignore(改由 mypy override 统一处理 scipy) - backtest/orders, execution: np.sqrt 表达式用 float() 包裹消除 no-any-return - MyTT.pyi: MACD 签名删除错误的 LOW/HIGH 参数(与 MyTT.py 实际签名对齐) - pyproject: 新增 scipy mypy override (ignore_missing_imports) ruff format: 8 个 test 文件格式化 验证: 564 passed, mypy 192 文件零错误, ruff check/format 全绿
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# tests/unit/test_factor_engine.py
|
||||
"""Test FactorEngine."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
@@ -23,15 +24,17 @@ def _make_df(n: int = 60, seed: int = 42) -> pd.DataFrame:
|
||||
amount = close * vol
|
||||
|
||||
dates = pd.date_range("2024-01-01", periods=n, freq="D")
|
||||
return pd.DataFrame({
|
||||
"datetime": dates,
|
||||
"open": open_,
|
||||
"high": high,
|
||||
"low": low,
|
||||
"close": close,
|
||||
"vol": vol,
|
||||
"amount": amount,
|
||||
})
|
||||
return pd.DataFrame(
|
||||
{
|
||||
"datetime": dates,
|
||||
"open": open_,
|
||||
"high": high,
|
||||
"low": low,
|
||||
"close": close,
|
||||
"vol": vol,
|
||||
"amount": amount,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class _SimpleMomentum(Factor):
|
||||
@@ -196,6 +199,7 @@ class TestFactorEngineWithBuiltins:
|
||||
df = _make_df(200)
|
||||
|
||||
from easy_tdx.factor.builtin import list_factors
|
||||
|
||||
for f_info in list_factors():
|
||||
name = f_info["name"]
|
||||
result = engine.compute_single(df, [name])
|
||||
|
||||
Reference in New Issue
Block a user