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' ]