
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \ÁP  ã               @   s@  d ddddddddd	d
dgZ ddlZddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZ G dd „ d eƒZd4dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd5d$d%„Zd&d	„ Zd'd„ Zd(d„ Zd)d„ Zd*d„ Zd6d,d„Zd-d
„ Zd7d.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   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú"/usr/lib64/python3.6/statistics.pyr   c   s   c             C   s¶   d}t |ƒ\}}||i}|j}ttt|ƒƒ}xRt| tƒD ]D\}}	t||ƒ}x0tt |	ƒD ]"\}}|d7 }||dƒ| ||< qVW q8W d |kr’|d  }
ntdd„ t|j	ƒ ƒD ƒƒ}
||
|fS )Nr   é   c             s   s   | ]\}}t ||ƒV  qd S )N)r   )Ú.0ÚdÚnr   r   r   ú	<genexpr>Ÿ   s    z_sum.<locals>.<genexpr>)
Ú_exact_ratioÚgetÚ_coerceÚintÚtyper   ÚmapÚsumÚsortedÚitems)ÚdataÚstartÚcountr   r   ZpartialsZpartials_getÚTÚtypÚvaluesÚtotalr   r   r   Ú_sumi   s    $
r.   c             C   s(   y| j ƒ S  tk
r"   tj| ƒS X d S )N)Z	is_finiteÚAttributeErrorÚmathZisfinite)Úxr   r   r   Ú	_isfinite£   s    r2   c             C   s°   | |kr| S |t ks|tkr | S | t kr,|S t|| ƒr:|S t| |ƒrH| S t| t ƒrV|S t|t ƒrd| S t| tƒr|t|tƒr||S t| tƒr”t|tƒr”| S d}t|| j|jf ƒ‚d S )Nz"don't know how to coerce %s and %s)r!   ÚboolÚ
issubclassr   ÚfloatÚ	TypeErrorr   )r*   ÚSÚmsgr   r   r   r    ª   s(       
 
 
 
 r    c             C   sž   ydt | ƒtkst | ƒtkr"| jƒ S y| j| jfS  tk
r`   y| jƒ S  tk
rZ   Y nX Y nX W n ttfk
r€   | d fS X d}t	|j
t | ƒjƒƒ‚d S )Nz0can't convert type '{}' to numerator/denominator)r"   r5   r   Úas_integer_ratioÚ	numeratorÚdenominatorr/   ÚOverflowErrorÚ
ValueErrorr6   Úformatr   )r1   r8   r   r   r   r   É   s    
r   c             C   sj   t | ƒ|kr| S t|tƒr(| jdkr(t}y|| ƒS  tk
rd   t|tƒr^|| jƒ|| jƒ S ‚ Y nX d S )Nr   )r"   r4   r!   r;   r5   r6   r   r:   )Úvaluer*   r   r   r   Ú_converté   s    
r@   c             C   s`   t jt| ƒƒjƒ }|s|S |d d }x4tdt|ƒƒD ]"}|| d |kr6|d |… }P q6W |S )Nr   r   )ÚcollectionsÚCounterÚiterÚmost_commonÚrangeÚlen)r'   ÚtableZmaxfreqÚir   r   r   Ú_countsû   s    rI   c             C   s.   t | |ƒ}|t| ƒkr&| | |kr&|S t‚d S )N)r   rF   r=   )Úar1   rH   r   r   r   Ú
_find_lteq	  s    
rK   c             C   s>   t | ||d�}|t| ƒd kr6| |d  |kr6|d S t‚d S )N)Úlor   )r   rF   r=   )rJ   Úlr1   rH   r   r   r   Ú
_find_rteq  s     rN   únegative valuec             c   s(   x"| D ]}|dk rt |ƒ‚|V  qW d S )Nr   )r   )r,   Úerrmsgr1   r   r   r   Ú	_fail_neg  s    
rQ   c             C   sH   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| ƒ\}}}t|| |ƒS )Nr   z%mean requires at least one data point)rC   ÚlistrF   r   r.   r@   )r'   r   r*   r-   r)   r   r   r   r
   #  s    c             C   s´   t | ƒ| krt| ƒ} d}t| ƒ}|dk r2tdƒ‚n<|dkrn| d }t|tjtfƒrf|dk rbt|ƒ‚|S tdƒ‚y"t	dd„ t
| |ƒD ƒƒ\}}}W n tk
r¤   dS X t|| |ƒS )Nz.harmonic mean does not support negative valuesr   z.harmonic_mean requires at least one data pointr   zunsupported typec             s   s   | ]}d | V  qdS )r   Nr   )r   r1   r   r   r   r   d  s    z harmonic_mean.<locals>.<genexpr>)rC   rR   rF   r   Ú
isinstanceÚnumbersZRealr   r6   r.   rQ   ÚZeroDivisionErrorr@   )r'   rP   r   r1   r*   r-   r)   r   r   r   r   =  s$    
"c             C   s\   t | ƒ} t| ƒ}|dkr tdƒ‚|d dkr8| |d  S |d }| |d  | |  d S d S )Nr   zno median for empty dataé   r   )r%   rF   r   )r'   r   rH   r   r   r   r   l  s    c             C   sL   t | ƒ} t| ƒ}|dkr tdƒ‚|d dkr8| |d  S | |d d  S d S )Nr   zno median for empty datarV   r   )r%   rF   r   )r'   r   r   r   r   r   „  s    c             C   s,   t | ƒ} t| ƒ}|dkr tdƒ‚| |d  S )Nr   zno median for empty datarV   )r%   rF   r   )r'   r   r   r   r   r   š  s
    r   c       
      C   sâ   t | ƒ} t| ƒ}|dkr"tdƒ‚n|dkr2| d S | |d  }x*||fD ]}t|ttfƒrHtd| ƒ‚qHW y||d  }W n( tk
r¢   t|ƒt|ƒd  }Y nX t| |ƒ}t	| ||ƒ}|}|| d }	|||d |  |	  S )Nr   zno median for empty datar   rV   zexpected number but got %r)
r%   rF   r   rS   ÚstrÚbytesr6   r5   rK   rN   )
r'   Zintervalr   r1   ÚobjÚLÚl1Úl2ZcfÚfr   r   r   r	   ­  s&    

c             C   sB   t | ƒ}t|ƒdkr |d d S |r6tdt|ƒ ƒ‚ntdƒ‚d S )Nr   r   z.no unique mode; found %d equally common valueszno mode for empty data)rI   rF   r   )r'   rG   r   r   r   r   ä  s    c                sd   ˆ d krt | ƒ‰ t‡ fdd„| D ƒƒ\}}}t‡ fdd„| D ƒƒ\}}}||d t| ƒ 8 }||fS )Nc             3   s   | ]}|ˆ  d  V  qdS )rV   Nr   )r   r1   )Úcr   r   r     s    z_ss.<locals>.<genexpr>c             3   s   | ]}|ˆ  V  qd S )Nr   )r   r1   )r^   r   r   r     s    rV   )r
   r.   rF   )r'   r^   r*   r-   r)   ÚUZtotal2Zcount2r   )r^   r   Ú_ss  s    r`   c             C   sL   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| |ƒ\}}t||d  |ƒS )NrV   z*variance requires at least two data pointsr   )rC   rR   rF   r   r`   r@   )r'   Úxbarr   r*   Ússr   r   r   r   "  s    &c             C   sH   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| |ƒ\}}t|| |ƒS )Nr   z*pvariance requires at least one data point)rC   rR   rF   r   r`   r@   )r'   Úmur   r*   rb   r   r   r   r   Q  s    'c             C   s2   t | |ƒ}y|jƒ S  tk
r,   tj|ƒS X d S )N)r   Úsqrtr/   r0   )r'   ra   Úvarr   r   r   r   �  s
    	
c             C   s2   t | |ƒ}y|jƒ S  tk
r,   tj|ƒS X d S )N)r   rd   r/   r0   )r'   rc   re   r   r   r   r   ‘  s
    	
)r   )rO   )r   )N)N)N)N)N)%Ú__all__rA   Zdecimalr0   rT   Z	fractionsr   r   Ú	itertoolsr   r   Zbisectr   r   r=   r   r.   r2   r    r   r@   rI   rK   rN   rQ   r
   r   r   r   r   r	   r   r`   r   r   r   r   r   r   r   r   Ú<module>O   sB   

: 

/
7*

/
0
