refactor(tushare): 移除代理清除/恢复逻辑
Tushare是国内服务,不需要代理切换操作 移除内容: - _clear_proxy 方法 - _restore_proxy 方法 - 所有方法中的代理清除和恢复调用 代码精简37行,保持原有功能不变
This commit is contained in:
@@ -29,19 +29,6 @@ class TushareSource:
|
||||
import tushare as ts
|
||||
return ts.pro_api(self._token)
|
||||
|
||||
def _clear_proxy(self) -> dict:
|
||||
"""清除代理环境变量(Tushare是国内服务,不需要代理)"""
|
||||
original = {}
|
||||
for key in ["HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "http_proxy", "https_proxy", "all_proxy"]:
|
||||
original[key] = os.environ.pop(key, None)
|
||||
return original
|
||||
|
||||
def _restore_proxy(self, original: dict):
|
||||
"""恢复代理环境变量"""
|
||||
for key, value in original.items():
|
||||
if value is not None:
|
||||
os.environ[key] = value
|
||||
|
||||
def fetch_index(self, code: str, start_date: str, end_date: str) -> Optional[pd.DataFrame]:
|
||||
"""
|
||||
获取A股指数数据
|
||||
@@ -54,8 +41,6 @@ class TushareSource:
|
||||
Returns:
|
||||
DataFrame with columns: date, open, high, low, close, volume
|
||||
"""
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
pro = self._get_pro_api()
|
||||
|
||||
@@ -88,9 +73,6 @@ class TushareSource:
|
||||
except Exception as e:
|
||||
print(f"Tushare下载指数 {code} 失败: {e}")
|
||||
return None
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
|
||||
def fetch_futures(self, code: str, start_date: str, end_date: str) -> Optional[pd.DataFrame]:
|
||||
"""
|
||||
@@ -101,10 +83,7 @@ class TushareSource:
|
||||
start_date: 开始日期
|
||||
end_date: 结束日期
|
||||
"""
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
import tushare as ts
|
||||
pro = self._get_pro_api()
|
||||
|
||||
# 使用 fut_daily 接口
|
||||
@@ -133,9 +112,6 @@ class TushareSource:
|
||||
except Exception as e:
|
||||
print(f"Tushare下载期货 {code} 失败: {e}")
|
||||
return None
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
|
||||
def fetch_etf(self, code: str, start_date: str, end_date: str) -> Optional[pd.DataFrame]:
|
||||
"""
|
||||
@@ -144,8 +120,6 @@ class TushareSource:
|
||||
Args:
|
||||
code: ETF代码,如 '159915.SZ', '518880.SH'
|
||||
"""
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
pro = self._get_pro_api()
|
||||
|
||||
@@ -175,9 +149,6 @@ class TushareSource:
|
||||
except Exception as e:
|
||||
print(f"Tushare下载ETF {code} 失败: {e}")
|
||||
return None
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
|
||||
def fetch_etf_nav(self, code: str, start_date: str, end_date: str) -> Optional[pd.DataFrame]:
|
||||
"""
|
||||
@@ -186,8 +157,6 @@ class TushareSource:
|
||||
Args:
|
||||
code: ETF代码
|
||||
"""
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
pro = self._get_pro_api()
|
||||
|
||||
@@ -217,9 +186,6 @@ class TushareSource:
|
||||
except Exception as e:
|
||||
print(f"Tushare下载ETF净值 {code} 失败: {e}")
|
||||
return None
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
|
||||
def is_china_index(self, code: str) -> bool:
|
||||
"""判断是否为A股指数"""
|
||||
@@ -262,11 +228,6 @@ class TushareSource:
|
||||
Returns:
|
||||
DataFrame with columns: date, open, close, adj_factor, close_hfq
|
||||
"""
|
||||
import tushare as ts
|
||||
from datetime import datetime
|
||||
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
pro = self._get_pro_api()
|
||||
ts_code = code.replace('.SS', '.SH')
|
||||
@@ -311,6 +272,7 @@ class TushareSource:
|
||||
df = df.set_index('date').sort_index()
|
||||
df['adj_factor'] = 1.0
|
||||
df['close_hfq'] = df['close']
|
||||
df['code'] = code
|
||||
return df[['code', 'open', 'close', 'adj_factor', 'close_hfq']]
|
||||
|
||||
# 合并所有复权因子
|
||||
@@ -339,9 +301,6 @@ class TushareSource:
|
||||
except Exception as e:
|
||||
print(f"Tushare下载ETF复权数据 {code} 失败: {e}")
|
||||
return None
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
|
||||
def fetch_trade_cal(self, start_date: str, end_date: str) -> pd.DatetimeIndex:
|
||||
"""
|
||||
@@ -354,10 +313,6 @@ class TushareSource:
|
||||
Returns:
|
||||
DatetimeIndex: A股交易日日期序列
|
||||
"""
|
||||
import tushare as ts
|
||||
|
||||
original_proxy = self._clear_proxy()
|
||||
|
||||
try:
|
||||
pro = self._get_pro_api()
|
||||
|
||||
@@ -377,7 +332,4 @@ class TushareSource:
|
||||
|
||||
except Exception as e:
|
||||
print(f"Tushare下载交易日历失败: {e}")
|
||||
return pd.DatetimeIndex([])
|
||||
|
||||
finally:
|
||||
self._restore_proxy(original_proxy)
|
||||
return pd.DatetimeIndex([])
|
||||
Reference in New Issue
Block a user