grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \ÁPã @s@dddddddddd d d g Zd d lZd d lZd d lZd d lZd dlmZd dlmZd dlm Z m Z d dl m Z m Z Gdd„deƒZd4dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd5d$d%„Zd&d „Zd'd „Zd(d„Zd)d„Zd*d„Zd6d,d„Zd-d „Zd7d.d/„Z d8d0d„Z!d9d1d„Z"d:d2d„Z#d;d3d„Z$d S)<ÚStatisticsErrorÚpstdevÚ pvarianceÚstdevÚvarianceÚmedianÚ median_lowÚ median_highÚmedian_groupedÚmeanÚmodeÚ harmonic_meanéN)ÚFraction)ÚDecimal)ÚgroupbyÚchain)Ú bisect_leftÚ bisect_rightc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú"/usr/lib64/python3.6/statistics.pyrcsc Cs¶d}t|ƒ\}}||i}|j}ttt|ƒƒ}xRt|tƒD]D\}} t||ƒ}x0tt| ƒD]"\}}|d7}||dƒ|||<qVWq8Wd|kr’|d} ntdd„t|j ƒƒDƒƒ} || |fS)Nr écss|]\}}t||ƒVqdS)N)r)Ú.0ÚdÚnrrrú Ÿsz_sum..) Ú _exact_ratioÚgetÚ_coerceÚintÚtyperÚmapÚsumÚsortedÚitems) ÚdataÚstartÚcountrrZpartialsZ partials_getÚTÚtypÚvaluesÚtotalrrrÚ_sumis$  r.c Cs(y|jƒStk r"tj|ƒSXdS)N)Z is_finiteÚAttributeErrorÚmathZisfinite)ÚxrrrÚ _isfinite£sr2cCs°||kr |S|tks|tkr |S|tkr,|St||ƒr:|St||ƒrH|St|tƒrV|St|tƒrd|St|tƒr|t|tƒr||St|tƒr”t|tƒr”|Sd}t||j|jfƒ‚dS)Nz"don't know how to coerce %s and %s)r!ÚboolÚ issubclassrÚfloatÚ TypeErrorr)r*ÚSÚmsgrrrr ªs(     r cCsžydt|ƒtkst|ƒtkr"|jƒSy |j|jfStk r`y|jƒStk rZYnXYnXWnttfk r€|dfSXd}t |j t|ƒj ƒƒ‚dS)Nz0can't convert type '{}' to numerator/denominator) r"r5rÚas_integer_ratioÚ numeratorÚ denominatorr/Ú OverflowErrorÚ ValueErrorr6Úformatr)r1r8rrrrÉs  rc Csjt|ƒ|kr|St|tƒr(|jdkr(t}y||ƒStk rdt|tƒr^||jƒ||jƒS‚YnXdS)Nr)r"r4r!r;r5r6rr:)Úvaluer*rrrÚ_convertés  r@cCs`tjt|ƒƒjƒ}|s|S|dd}x4tdt|ƒƒD]"}||d|kr6|d|…}Pq6W|S)Nr r)Ú collectionsÚCounterÚiterÚ most_commonÚrangeÚlen)r'ÚtableZmaxfreqÚirrrÚ_countsûs  rIcCs.t||ƒ}|t|ƒkr&|||kr&|St‚dS)N)rrFr=)Úar1rHrrrÚ _find_lteq s rKcCs>t|||d�}|t|ƒdkr6||d|kr6|dSt‚dS)N)Úlor)rrFr=)rJÚlr1rHrrrÚ _find_rteqs rNúnegative valueccs(x"|D]}|dkrt|ƒ‚|VqWdS)Nr )r)r,Úerrmsgr1rrrÚ _fail_negs rQcCsHt|ƒ|krt|ƒ}t|ƒ}|dkr,tdƒ‚t|ƒ\}}}t|||ƒS)Nrz%mean requires at least one data point)rCÚlistrFrr.r@)r'rr*r-r)rrrr #s c Cs´t|ƒ|krt|ƒ}d}t|ƒ}|dkr2tdƒ‚n<|dkrn|d}t|tjtfƒrf|dkrbt|ƒ‚|Stdƒ‚y"t dd„t ||ƒDƒƒ\}}}Wnt k r¤dSXt |||ƒS)Nz.harmonic mean does not support negative valuesrz.harmonic_mean requires at least one data pointr zunsupported typecss|]}d|VqdS)rNr)rr1rrrrdsz harmonic_mean..) rCrRrFrÚ isinstanceÚnumbersZRealrr6r.rQÚZeroDivisionErrorr@)r'rPrr1r*r-r)rrrr =s$  "cCs\t|ƒ}t|ƒ}|dkr tdƒ‚|ddkr8||dS|d}||d||dSdS)Nr zno median for empty dataér)r%rFr)r'rrHrrrrls   cCsLt|ƒ}t|ƒ}|dkr tdƒ‚|ddkr8||dS||ddSdS)Nr zno median for empty datarVr)r%rFr)r'rrrrr„s   cCs,t|ƒ}t|ƒ}|dkr tdƒ‚||dS)Nr zno median for empty datarV)r%rFr)r'rrrrršs rc Csât|ƒ}t|ƒ}|dkr"tdƒ‚n|dkr2|dS||d}x*||fD]}t|ttfƒrHtd|ƒ‚qHWy||d}Wn(tk r¢t|ƒt|ƒd}YnXt||ƒ}t |||ƒ}|}||d} |||d|| S)Nr zno median for empty datarrVzexpected number but got %r) r%rFrrSÚstrÚbytesr6r5rKrN) r'Zintervalrr1ÚobjÚLÚl1Úl2ZcfÚfrrrr ­s&     cCsBt|ƒ}t|ƒdkr |ddS|r6tdt|ƒƒ‚ntdƒ‚dS)Nrr z.no unique mode; found %d equally common valueszno mode for empty data)rIrFr)r'rGrrrr äs  csdˆdkrt|ƒ‰t‡fdd„|Dƒƒ\}}}t‡fdd„|Dƒƒ\}}}||dt|ƒ8}||fS)Nc3s|]}|ˆdVqdS)rVNr)rr1)Úcrrrsz_ss..c3s|]}|ˆVqdS)Nr)rr1)r^rrrsrV)r r.rF)r'r^r*r-r)ÚUZtotal2Zcount2r)r^rÚ_sss r`cCsLt|ƒ|krt|ƒ}t|ƒ}|dkr,tdƒ‚t||ƒ\}}t||d|ƒS)NrVz*variance requires at least two data pointsr)rCrRrFrr`r@)r'Úxbarrr*Ússrrrr"s& cCsHt|ƒ|krt|ƒ}t|ƒ}|dkr,tdƒ‚t||ƒ\}}t|||ƒS)Nrz*pvariance requires at least one data point)rCrRrFrr`r@)r'Úmurr*rbrrrrQs' c Cs2t||ƒ}y|jƒStk r,tj|ƒSXdS)N)rÚsqrtr/r0)r'raÚvarrrrr�s c Cs2t||ƒ}y|jƒStk r,tj|ƒSXdS)N)rrdr/r0)r'rcrerrrr‘s )r )rO)r)N)N)N)N)N)%Ú__all__rAZdecimalr0rTZ fractionsrrÚ itertoolsrrZbisectrrr=rr.r2r rr@rIrKrNrQr r rrrr r r`rrrrrrrrÚOsB    :  / 7*  / 0