}L ipddlZddlZddlZddlmZddlmZmZddl m Z ddl m Z ddl mZGddZy) N)utils)quote_summary_valid_modules _SENTINEL_)YfData) YFException)_QUOTE_SUMMARY_URL_cfeZdZefdedefdZdejfdZ e dejfdZ e dejfdZ e dejfdZ e dejfd Ze defd Ze dejfd Ze dejfd Zd efdZddZy)Analysisdatasymbolc|tur-tjdtd|j |||_||_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_y)Nz=Set proxy via new config function: yf.set_config(proxy=proxy)) stacklevel)rwarningswarnDeprecationWarning _set_proxy_data_symbol_earnings_trend_analyst_price_targets_earnings_estimate_revenue_estimate_earnings_history _eps_trend_eps_revisions_growth_estimates)selfr r proxys `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/yfinance/scrapers/analysis.py__init__zAnalysis.__init__ sx  " MMY[mz{ | OOE "  $&*#"&!%!%"!%returnc|j|jg}|jddD]\}d|di}||jD],\}}t|trt |dk(r%|d||<.|j |^t |dk(rtjStj|jdS)Nperiodrraw) r_fetch_earnings_trenditems isinstancedictlenappendpd DataFrame set_index)rkeyr itemrowkvs r _get_periodic_dfzAnalysis._get_periodic_df"s    '  & & (((!, DT(^,CS ) "1!!T*c!fk5A " KK    t9><<> !||D!++H55r"cv|j |jS|jd|_|jS)NearningsEstimate)rr6rs r earnings_estimatezAnalysis.earnings_estimate2s:  " " .** *"&"7"78J"K&&&r"cv|j |jS|jd|_|jS)NrevenueEstimate)rr6r9s r revenue_estimatezAnalysis.revenue_estimate9s:  ! ! -)) )!%!6!67H!I%%%r"cv|j |jS|jd|_|jS)NepsTrend)rr6r9s r eps_trendzAnalysis.eps_trend@s2 ?? &?? "// ;r"cv|j |jS|jd|_|jS)N epsRevisions)rr6r9s r eps_revisionszAnalysis.eps_revisionsGs9    *&& &"33NC"""r"c|j |jS |jdg}|dddd}i}|j D]e\}}|j drD|j ddjj ddj}|||<[|dk(sa||d <g||_|jS#ttf$ri|_|jcYSwxYw) N financialData quoteSummaryresultrtargetprice currentPricecurrent) r_fetch TypeErrorKeyErrorr) startswithreplacelowerstrip)rr rGr1valuenew_keys r analyst_price_targetszAnalysis.analyst_price_targetsNs  & & 2.. . /;;01D'1!4_ED **, *JC~~h'++h399;CCGRPVVX"'w&$)y!  *'-#***8$ /*,D '.. . /s C"C,+C,c|j |jS |jdg}|ddddd}g}|D]}d|j dij ddi}|jD]?\}}|dk(r t|trt|dk(r+|j dd||<A|j|t|dk(rt j St j |}d|jvr0t j|dd |d<|jdd ||_|jS#ttf$r(t j |_|jcYSwxYw) NearningsHistoryrFrGrhistoryquarterfmtr'z%Y-%m-%d)formatT)inplace)rrMrNrOr.r/getr)r*r+r,r-columns to_datetimer0)rr rowsr2r3r4r5dfs r earnings_historyzAnalysis.earnings_historyes  ! ! -)) ) *;; 123D'1!45FG RD  Ddhhy"599%FGC  ,1 >!!T*c!fkud+A  , KK   t9><<> ! \\$   "NN2i=LByM LLDL 1!#%%%/8$ *%'\\^D ")) ) *s#E4F  F c |j |jS|j|j |jgd}|ddd}g}|jD]=}|d |jdijddd}|j|?|jD]x\}}|jd s|d D]Y}|d t fd |Dd}|r|jd||<4d ||jdi}|j|[zt|dk(rt jSt j|jdjd |_|jS#tt f$r(t j|_|jcYSwxYw) N) industryTrend sectorTrend indexTrendrFrGrr&growthr')r& stockTrend estimatesc34K|]}|dk(s |yw)r&N).0r3r&s r z,Analysis.growth_estimates..s(XH QW@W(Xs all)how)rrr(rMrNrOr.r/r^r-r)nextr,r0dropna) rtrendsr r2r3 trend_name trend_infoestimate existing_rowr&s @r growth_estimateszAnalysis.growth_estimatess  ! ! -)) )    '  & & ( *[[!OPFN+H5a8F (( D(^F#488Hb3I3M3MeUY3Z[C KK   '-lln ) "J ~~k* *; 7)H%h/F#'(X(XZ^#_L#3;<<3I Z0'X\\(=ST C() ) t9><<> !!#d!3!=!=h!G!N!NSX!N!Y%%%18$ *%'\\^D ")) ) *sF4G  G modulesc<t|ts tddj|Dcgc] }|tvs |c}}t |dk(r td|dd|j d} |jjtd|j z| }|Scc}w#tjjj$rM}tjj!t#||j$j&zYd}~yd}~wwxYw) NzMShould provide a list of modules, see available modules using `valid_modules`,rzFNo valid modules provided, see available modules using `valid_modules`zfinance.yahoo.comfalse)ry corsDomain formattedr /)params)r*listrjoinrr,rr get_raw_jsonr curl_cffirequests exceptions HTTPErrorr get_yf_loggererrorstrresponsetext)rrym params_dictrGes r rMzAnalysis._fetchs'4(mn n((wS!!7R2RAST w<1 fg g")9L[bnrnznz{  ZZ,,-@Qt||nCU-U^i,jF T !!,,66     ! ' 'A(@ A s# B"B"/1B'''DADDNc |jdg}|ddddd|_y#ttf$r g|_YywxYw)N earningsTrendrFrGrtrend)rMrrNrO)rr s r r(zAnalysis._fetch_earnings_trendsV &;;01D#'#7#A!#D_#UV]#^D 8$ &#%D  &s(+AA)r#N)__name__ __module__ __qualname__rrrr!r.r/r6propertyr:r=r@rCr+rVrcrxrrMr(rlr"r r r s8B&V&S&*6r||6 '2<<'' &",,&& 2<< #r||## +t++,&",,&&@"&",,"&"&J d &r"r )rpandasr.ryfinanceryfinance.constrr yfinance.dataryfinance.exceptionsryfinance.scrapers.quoterr rlr"r rs)B +7u&u&r"