From 1c7344d2d89b698261ee76a620f22acf4c53147d Mon Sep 17 00:00:00 2001 From: noranhe <63988546+noranhe@users.noreply.github.com> Date: Fri, 25 Mar 2022 10:25:47 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnpy_ost/gateway/ost_gateway.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/vnpy_ost/gateway/ost_gateway.py b/vnpy_ost/gateway/ost_gateway.py index 239222f..fa36c02 100644 --- a/vnpy_ost/gateway/ost_gateway.py +++ b/vnpy_ost/gateway/ost_gateway.py @@ -12,7 +12,6 @@ Status ) from vnpy.trader.gateway import BaseGateway - from vnpy.trader.object import ( TickData, OrderData, @@ -26,6 +25,7 @@ ) from vnpy.trader.utility import get_folder_path from vnpy.trader.event import EVENT_TIMER + from ..api import MdApi, TdApi # 委托状态映射 @@ -78,7 +78,7 @@ class OstGateway(BaseGateway): """ - vn.py用于对接东方证券OST的交易接口。 + VeighNa用于对接东方证券OST的交易接口。 """ default_name: str = "OST" @@ -428,7 +428,6 @@ def onRspQryInstrument(self, data: dict, error: dict, reqid: int, last: bool) -> ) self.gateway.on_contract(contract) - symbol_contract_map[contract.symbol] = contract if last: @@ -461,7 +460,7 @@ def onRtnOrder(self, data: dict) -> None: dt: datetime = datetime.strptime(timestamp, "%Y%m%d %H%M%S%f") dt: datetime = CHINA_TZ.localize(dt) - tp = (data["OrderPriceType"], data["TimeCondition"], data["VolumeCondition"]) + tp: tuple = (data["OrderPriceType"], data["TimeCondition"], data["VolumeCondition"]) order: OrderData = OrderData( symbol=symbol, @@ -551,12 +550,12 @@ def send_order(self, req: OrderRequest) -> str: return "" if not req.direction: - self.gateway.write_log(f"请选择买卖方向") + self.gateway.write_log("请选择买卖方向") return "" self.order_ref += 1 - tp = ORDERTYPE_VT2OST[req.type] + tp: tuple = ORDERTYPE_VT2OST[req.type] price_type, time_condition, volume_condition = tp ost_req: dict = { From 9e4136c1a2d0483191331d36a7cb4201791af173 Mon Sep 17 00:00:00 2001 From: noranhe <63988546+noranhe@users.noreply.github.com> Date: Thu, 14 Jul 2022 15:20:32 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[Mod]=20=E7=89=88=E6=9C=AC=E5=8F=B7=20+=20r?= =?UTF-8?q?eplace=20pytz=20+=20python=E7=89=88=E6=9C=AC=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ README.md | 4 ++-- setup.cfg | 5 +++-- vnpy_ost/gateway/ost_gateway.py | 12 ++++++------ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e34daba..77074a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 2.0.1.3版本 + +1. 修复打包文件缺少lib的问题 +2. 使用zoneinfo替换pytz库 +3. 调整安装脚本setup.cfg,添加Python版本限制 + # 2.0.1.2版本 1. 调整安装脚本setup.py,支持Windows下安装时根据Python版本进行编译 diff --git a/README.md b/README.md index aae39ef..7f171a7 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- + @@ -17,7 +17,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 781feb9..4fdebb7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = vnpy_ost -version = 2.0.1.2 +version = 2.0.1.3 url = https://www.vnpy.com license = MIT author = Xiaoyou Chen @@ -31,7 +31,8 @@ classifiers = packages = find: include_package_data = True zip_safe = False -install_requires = +python_requires = >=3.7 +install_requires = importlib_metadata [options.package_data] diff --git a/vnpy_ost/gateway/ost_gateway.py b/vnpy_ost/gateway/ost_gateway.py index fa36c02..e2c8a34 100644 --- a/vnpy_ost/gateway/ost_gateway.py +++ b/vnpy_ost/gateway/ost_gateway.py @@ -1,7 +1,7 @@ -import pytz from datetime import datetime from typing import Dict, List, Tuple, Any from pathlib import Path +from zoneinfo import ZoneInfo from vnpy.event import EventEngine from vnpy.trader.constant import ( @@ -23,7 +23,7 @@ CancelRequest, SubscribeRequest, ) -from vnpy.trader.utility import get_folder_path +from vnpy.trader.utility import get_folder_path, ZoneInfo from vnpy.trader.event import EVENT_TIMER from ..api import MdApi, TdApi @@ -70,7 +70,7 @@ } # 中国时区 -CHINA_TZ = pytz.timezone("Asia/Shanghai") +CHINA_TZ = ZoneInfo("Asia/Shanghai") # 合约数据全局缓存字典 symbol_contract_map: Dict[str, ContractData] = {} @@ -213,7 +213,7 @@ def onRtnL2MarketData(self, data: dict) -> None: timestamp: str = f"{self.current_date}{data['OrigTime']}" dt: datetime = datetime.strptime(timestamp, "%Y%m%d%H%M%S") - dt: datetime = CHINA_TZ.localize(dt) + dt: datetime = dt.replace(tzinfo=CHINA_TZ) tick: TickData = TickData( symbol=symbol, @@ -458,7 +458,7 @@ def onRtnOrder(self, data: dict) -> None: timestamp: str = f"{data['TradingDay']} {data['InsertTime']}" 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) tp: tuple = (data["OrderPriceType"], data["TimeCondition"], data["VolumeCondition"]) @@ -495,7 +495,7 @@ def onRtnTrade(self, data: dict) -> None: timestamp: str = f"{data['TradeDate']} {data['TradeTime']}" 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) trade: TradeData = TradeData( symbol=symbol, From ac8ec240b35ee90fced771be19d9b9bc548684b8 Mon Sep 17 00:00:00 2001 From: noranhe <63988546+noranhe@users.noreply.github.com> Date: Thu, 14 Jul 2022 15:27:14 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[Add]=20=E5=A2=9E=E5=8A=A0Linux=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + README.md | 2 +- setup.cfg | 1 + setup.py | 23 ++++++++++++++++++----- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77074a4..b07b18b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ 1. 修复打包文件缺少lib的问题 2. 使用zoneinfo替换pytz库 3. 调整安装脚本setup.cfg,添加Python版本限制 +4. 增加Linux支持 # 2.0.1.2版本 diff --git a/README.md b/README.md index 7f171a7..c64a468 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

- +

diff --git a/setup.cfg b/setup.cfg index 4fdebb7..74f346e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,6 +17,7 @@ keywords = classifiers = Development Status :: 5 - Production/Stable Operating System :: Microsoft :: Windows + Operating System :: POSIX :: Linux Programming Language :: Python :: 3 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 diff --git a/setup.py b/setup.py index 96a6137..19598ee 100644 --- a/setup.py +++ b/setup.py @@ -6,14 +6,27 @@ def get_ext_modules() -> list: """ 获取三方模块 - Windos需要编译使用 - Linux暂未支持 + Mac由于缺乏二进制库支持无法使用 """ - extra_compile_flags = ["-O2", "-MT"] - extra_link_args = [] - runtime_library_dirs = [] + if platform.system() == "Linux": + extra_compile_flags = [ + "-std=c++17", + "-O3", + "-Wno-delete-incomplete", + "-Wno-sign-compare", + ] + extra_link_args = ["-lstdc++"] + runtime_library_dirs = ["$ORIGIN"] + + elif platform.system() == "Windows": + extra_compile_flags = ["-O2", "-MT"] + extra_link_args = [] + runtime_library_dirs = [] + + else: + return [] vnostmd = Extension( name="vnpy_ost.api.vnostmd", From 609c785c9b909128d721cd655791ae0629824a01 Mon Sep 17 00:00:00 2001 From: noranhe <63988546+noranhe@users.noreply.github.com> Date: Thu, 14 Jul 2022 15:45:31 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[Mod]=20setup.py=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 19598ee..155b4ed 100644 --- a/setup.py +++ b/setup.py @@ -6,10 +6,9 @@ def get_ext_modules() -> list: """ 获取三方模块 - + Linux和Windows需要编译封装接口 Mac由于缺乏二进制库支持无法使用 """ - if platform.system() == "Linux": extra_compile_flags = [ "-std=c++17", From ed5657707000ba96f10f2839ed8ed47d6771583a Mon Sep 17 00:00:00 2001 From: noranhe <63988546+noranhe@users.noreply.github.com> Date: Fri, 15 Jul 2022 10:54:46 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[Del]=20=E7=94=A8=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnpy_ost/gateway/ost_gateway.py | 1 - 1 file changed, 1 deletion(-) diff --git a/vnpy_ost/gateway/ost_gateway.py b/vnpy_ost/gateway/ost_gateway.py index e2c8a34..43087b6 100644 --- a/vnpy_ost/gateway/ost_gateway.py +++ b/vnpy_ost/gateway/ost_gateway.py @@ -1,7 +1,6 @@ from datetime import datetime from typing import Dict, List, Tuple, Any from pathlib import Path -from zoneinfo import ZoneInfo from vnpy.event import EventEngine from vnpy.trader.constant import (