From e7011cabd7cd7853c3bc0fbd41601e004cc99ff4 Mon Sep 17 00:00:00 2001 From: I Luk Kim Date: Tue, 12 May 2026 15:20:29 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20screen()=20=EB=9E=98=ED=8D=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20+=20Firefox=20=ED=94=84=EB=A1=9C=ED=95=84?= =?UTF-8?q?=20133=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit yf.screen()에 세션 풀 rotation + retry backoff 보호 적용. firefox102 → firefox133 UA 업데이트. Co-Authored-By: Claude Sonnet 4.6 --- yfinance_plus.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/yfinance_plus.py b/yfinance_plus.py index 4edcbbf..70846c6 100644 --- a/yfinance_plus.py +++ b/yfinance_plus.py @@ -254,10 +254,10 @@ _BROWSER_PROFILES = [ "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15", }, { - "impersonate": "firefox102", + "impersonate": "firefox133", "sec_ch_ua": None, # Firefox doesn't send sec-ch-ua "sec_ch_ua_platform": None, - "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0", + "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0", }, { "impersonate": "chrome120", @@ -637,6 +637,19 @@ def download(tickers: Union[str, list], return enhanced_yf._retry_with_backoff(_download) +def screen(query, **kwargs): + """Enhanced screen() with session pool rotation and retry backoff.""" + enhanced_yf = _get_global_enhanced_yf() + + def _screen(): + return yf.screen(query, session=enhanced_yf.session, **kwargs) + + def _on_rate_limit(): + enhanced_yf._rotate_session_on_ratelimit() + + return enhanced_yf._retry_with_backoff(_screen, on_rate_limit_cb=_on_rate_limit) + + # Global configuration _global_config = RequestConfig() @@ -738,8 +751,8 @@ from yfinance import __version__ # Export main classes and functions for full compatibility __all__ = [ - 'Ticker', 'Tickers', 'download', 'set_config', 'get_config', - 'clear_cache', 'get_cache_info', 'RequestConfig', + 'Ticker', 'Tickers', 'download', 'screen', 'set_config', 'get_config', + 'clear_cache', 'get_cache_info', 'RequestConfig', 'EnhancedTicker', 'EnhancedTickers', 'EnhancedYFinance', 'HistoricalDataCache' ]