diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cad65f..cc41901 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 4.8.4版本 + +1. 使用zoneinfo替换pytz库 +2. 调整安装脚本setup.cfg,添加Python版本限制 + # 4.8.3版本 1. 调整接口初始化时,接口名称的赋值方式 diff --git a/README.md b/README.md index df9a8d1..4ca14d5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- + @@ -16,7 +16,7 @@ ## 安装 -安装环境推荐基于3.0.0版本以上的【[**VeighNa Studio**](https://www.vnpy.com)】。 +安装环境推荐基于3.3.0版本以上的【[**VeighNa Studio**](https://www.vnpy.com)】。 直接使用pip命令: diff --git a/setup.cfg b/setup.cfg index 49bcdd1..b4b7e40 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = vnpy_sgit -version = 4.8.3 +version = 4.8.4 url = https://www.vnpy.com license = MIT author = Xiaoyou Chen @@ -31,6 +31,7 @@ classifiers = packages = find: include_package_data = True zip_safe = False +python_requires = >=3.7 install_requires = importlib_metadata diff --git a/vnpy_sgit/.DS_Store b/vnpy_sgit/.DS_Store deleted file mode 100644 index 389a81e..0000000 Binary files a/vnpy_sgit/.DS_Store and /dev/null differ diff --git a/vnpy_sgit/gateway/.DS_Store b/vnpy_sgit/gateway/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/vnpy_sgit/gateway/.DS_Store and /dev/null differ diff --git a/vnpy_sgit/gateway/sgit_gateway.py b/vnpy_sgit/gateway/sgit_gateway.py index 8ea0df8..7b856eb 100644 --- a/vnpy_sgit/gateway/sgit_gateway.py +++ b/vnpy_sgit/gateway/sgit_gateway.py @@ -1,8 +1,32 @@ -from pathlib import Path import sys -import pytz from datetime import datetime from typing import Dict, List +from pathlib import Path + +from vnpy.event import Event +from vnpy.trader.constant import ( + Direction, + Offset, + Exchange, + OrderType, + Product, + Status, + OptionType +) +from vnpy.trader.gateway import BaseGateway +from vnpy.trader.object import ( + TickData, + OrderData, + TradeData, + PositionData, + AccountData, + ContractData, + OrderRequest, + CancelRequest, + SubscribeRequest, +) +from vnpy.trader.utility import get_folder_path, ZoneInfo +from vnpy.trader.event import EVENT_TIMER from ..api import ( MdApi, @@ -39,30 +63,7 @@ THOST_FTDC_VC_CV, THOST_FTDC_AF_Delete ) -from vnpy.event.engine import Event -from vnpy.trader.constant import ( - Direction, - Offset, - Exchange, - OrderType, - Product, - Status, - OptionType -) -from vnpy.trader.gateway import BaseGateway -from vnpy.trader.object import ( - TickData, - OrderData, - TradeData, - PositionData, - AccountData, - ContractData, - OrderRequest, - CancelRequest, - SubscribeRequest, -) -from vnpy.trader.utility import get_folder_path -from vnpy.trader.event import EVENT_TIMER + # 委托状态映射 STATUS_SGIT2VT: Dict[str, Status] = { @@ -132,8 +133,8 @@ } # 其他常量 -MAX_FLOAT: float = sys.float_info.max -CHINA_TZ = pytz.timezone("Asia/Shanghai") +MAX_FLOAT: float = sys.float_info.max # 浮点数极限值 +CHINA_TZ = ZoneInfo("Asia/Shanghai") # 中国时区 # 全局缓存字典 symbol_exchange_map: Dict[str, Exchange] = {} @@ -232,7 +233,7 @@ def process_timer_event(self, event: Event) -> None: def init_query(self) -> None: """初始化查询任务""" self.count: int = 0 - self.query_functions = [self.query_account, self.query_position] + self.query_functions: list = [self.query_account, self.query_position] self.event_engine.register(EVENT_TIMER, self.process_timer_event) @@ -297,7 +298,7 @@ def onRtnDepthMarketData(self, data: dict) -> None: timestamp: str = f"{data['TradingDay']} {data['UpdateTime']}.{int(data['UpdateMillisec']/100)}" dt: datetime = datetime.strptime(timestamp, "%Y%m%d %H:%M:%S.%f") - dt: datetime = CHINA_TZ.localize(dt) + dt: datetime = dt.replace(tzinfo=CHINA_TZ) tick: TickData = TickData( symbol=symbol, @@ -419,7 +420,6 @@ def __init__(self, gateway: SgitGateway) -> None: def onFrontConnected(self) -> None: """服务器连接成功回报""" self.gateway.write_log("交易服务器连接成功") - self.login() def onFrontDisconnected(self, reason: int) -> None: @@ -482,10 +482,6 @@ def onRspOrderAction(self, data: dict, error: dict, reqid: int, last: bool) -> N if error["ErrorID"] != 0: self.gateway.write_error("交易撤单失败", error) - def onRspQueryMaxOrderVolume(self, data: dict, error: dict, reqid: int, last: bool) -> None: - """查询最大报单数量响应""" - pass - def onRspSettlementInfoConfirm(self, data: dict, error: dict, reqid: int, last: bool) -> None: """结算信息确认回报""" self.gateway.write_log("结算信息确认成功") @@ -625,7 +621,7 @@ def onRtnOrder(self, data: dict) -> None: else: timestamp: str = f"{data['InsertTime']}" dt: datetime = datetime.strptime(timestamp, "%H:%M:%S") - dt: datetime = CHINA_TZ.localize(dt) + dt: datetime = dt.replace(tzinfo=CHINA_TZ) order: OrderData = OrderData( symbol=symbol, @@ -661,7 +657,7 @@ def onRtnTrade(self, data: dict) -> None: else: timestamp: str = f"{data['TradeTime']}" dt: datetime = datetime.strptime(timestamp, "%H:%M:%S") - dt: datetime = CHINA_TZ.localize(dt) + dt: datetime = dt.replace(tzinfo=CHINA_TZ) trade: TradeData = TradeData( symbol=symbol,