vnpy/vn.trader/gateway/__init__.py
2017-05-03 18:03:17 +08:00

44 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# encoding: UTF-8
'''
动态载入所有的Gateway
'''
import os
import importlib
import traceback
# 用来保存Gateway类的字典
GATEWAY_DICT = {}
# 需要加载的gateway清单
load_gateways = ['ctpGateway']
# 获取目录路径
path = os.path.abspath(os.path.dirname(__file__))
# 遍历strategy目录下的文件
for root, subdirs, files in os.walk(path):
if path != root:
continue
for foldername in subdirs:
# 接口目录名中必须含有Gateway
if 'Gateway' in foldername:
# 排除不要加载的gateway模块
if foldername not in load_gateways:
continue
# 模块名称需要上前缀
moduleName = 'gateway.' + foldername
print u'load Module:{0}'.format(moduleName)
try:
# 使用importlib动态载入模块并保存到字典中
module = importlib.import_module(moduleName)
GATEWAY_DICT[module.gatewayName] = module
except Exception as ex:
print u'Load {0} exception:{1}'.format(moduleName, ex)
traceback.print_exc()