diff --git a/datasource/tushare_source.py b/datasource/tushare_source.py index e9d5df0..679057c 100644 --- a/datasource/tushare_source.py +++ b/datasource/tushare_source.py @@ -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) \ No newline at end of file + return pd.DatetimeIndex([]) \ No newline at end of file