fix(data): Task 3 移除 vnpy mock,用真实 vnpy 源码

- 删除 tests/data/vnpy_mock.py
- conftest.py 加 vnpy_v4.4.0 源码到 sys.path(真实 vnpy import,不拉 Qt)
- 5 passed(config 2 + validator 2 + datareader 1)
This commit is contained in:
2026-07-05 12:28:59 +08:00
parent 10bdc65ac5
commit 91d9c36f44
4 changed files with 17 additions and 41 deletions
+8 -3
View File
@@ -1,12 +1,17 @@
import sys
import os
from pathlib import Path
# Add vnpy source to path for imports
sys.path.insert(0, str(Path(__file__).parent.parent / "tests" / "data"))
# Add real vnpy source code to sys.path
_VNPY_SRC = os.path.join(os.path.dirname(__file__), "..", "..", "vnpy_v4.4.0")
_VNPY_SRC = os.path.abspath(_VNPY_SRC)
if _VNPY_SRC not in sys.path:
sys.path.insert(0, _VNPY_SRC)
import pandas as pd
from datetime import datetime
from vnpy_mock import BarData, Exchange, Interval
from vnpy.trader.object import BarData
from vnpy.trader.constant import Exchange, Interval
def read_parquet_daily(symbol: str, start: str, end: str, cfg) -> list[BarData]:
daily_dir = Path(cfg.data_paths["daily_dir"])
+8 -3
View File
@@ -1,8 +1,13 @@
import sys
from pathlib import Path
import os
# Add vnpy mock to path for imports
sys.path.insert(0, str(Path(__file__).parent))
# Add real vnpy source code to sys.path
_VNPY_SRC = os.path.join(os.path.dirname(__file__), "..", "..", "vnpy_v4.4.0")
_VNPY_SRC = os.path.abspath(_VNPY_SRC)
if _VNPY_SRC not in sys.path:
sys.path.insert(0, _VNPY_SRC)
from pathlib import Path
import pandas as pd
import pytest
+1 -1
View File
@@ -1,5 +1,5 @@
import pandas as pd
from vnpy_mock import Exchange, Interval
from vnpy.trader.constant import Exchange, Interval
from sanguo_data.config import DataConfig
from sanguo_data.datareader import read_parquet_daily
-34
View File
@@ -1,34 +0,0 @@
"""Minimal vnpy mocks for testing"""
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
class Exchange(Enum):
SSE = "SSE"
SZSE = "SZSE"
SHFE = "SHFE"
DCE = "DCE"
CZCE = "CZCE"
CFFEX = "CFFEX"
GFEX = "GFEX"
INE = "INE"
class Interval(Enum):
MINUTE = "1m"
HOUR = "1h"
DAILY = "d"
WEEKLY = "w"
MONTHLY = "M"
@dataclass
class BarData:
symbol: str
exchange: Exchange
datetime: datetime
interval: Interval
open_price: float
high_price: float
low_price: float
close_price: float
volume: float
gateway_name: str