o
    ;Di	                     @   sd   d dl mZmZmZ d dlmZ d dlmZmZ dd Z	e	e_	eddZ
dd Zee_dd	d
ZdS )    )absolute_importprint_functiondivision)
namedtuple)valuesTablec                 C   s^   t t| |}zt| }}W n
 ty   Y dS w |D ]}||k r$|}||kr*|}q||fS )a`  
    Find minimum and maximum values under the given field. E.g.::

        >>> import petl as etl
        >>> table = [['foo', 'bar'], ['a', 1], ['b', 2], ['b', 3]]
        >>> minv, maxv = etl.limits(table, 'bar')
        >>> minv
        1
        >>> maxv
        3

    The `field` argument can be a field name or index (starting from zero).

    )NN)iterr   nextStopIteration)tablefieldvalsminvmaxvv r   M/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/util/statistics.pylimits
   s   r   stats)counterrorssumminmaxmean	pvariancepstdevc              
   C   s   d}d}d}d}d}d}d}t | |D ]>}	zt|	}	W n ttfy*   |d7 }Y qw |d7 }|du s7|	|k r9|	}|du sA|	|krC|	}||	7 }t|	|||d\}}q|d }
t||||||||
S )aJ  
    Calculate basic descriptive statistics on a given field. E.g.::

        >>> import petl as etl
        >>> table = [['foo', 'bar', 'baz'],
        ...          ['A', 1, 2],
        ...          ['B', '2', '3.4'],
        ...          [u'B', u'3', u'7.8', True],
        ...          ['D', 'xyz', 9.0],
        ...          ['E', None]]
        >>> etl.stats(table, 'bar')
        stats(count=3, errors=2, sum=6.0, min=1.0, max=3.0, mean=2.0, pvariance=0.6666666666666666, pstdev=0.816496580927726)

    The `field` argument can be a field name or index (starting from zero).

    Nr      )r   varianceg      ?)r   float
ValueError	TypeErroronlinestats_stats)r   r   _min_max_sum_mean_var_count_errorsr   _stdr   r   r   r   /   s,   c                 C   sD   |}|}|d | |  | }|d | | | | |   | }||fS )Nr   r   )xinr   r   meanprvvarianceprvr   r   r   r"   \   s
    r"   N)r   r   )
__future__r   r   r   collectionsr   petl.util.baser   r   r   r#   r   r"   r   r   r   r   <module>   s    
*