3
(h                 @   s   d dl mZmZ d dlmZ ddddddd	d
ddddgZG dd deZG dd deZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd	 d	eZG dd
 d
eZG dd deZG dd deZG dd deZdS )    )
FloatFieldIntegerField)	AggregateCovarPopCorrRegrAvgXRegrAvgY	RegrCountRegrInterceptRegrR2	RegrSlopeRegrSXXRegrSXYRegrSYYStatAggregatec                   s@   e Zd Ze f fdd	Zdd Zdd Zd fd
d	Z  ZS )r   c                sL   | s| rt dtt| j|||d || _|| _| j| j| j| _d S )NzBoth y and x must be provided.)yxoutput_field)
ValueErrorsuperr   __init__r   r   Z_parse_expressionsZsource_expressions)selfr   r   r   )	__class__ Q/tmp/pip-install-q3hcpn_q/Django/django/contrib/postgres/aggregates/statistics.pyr      s    zStatAggregate.__init__c             C   s   | j | jfS )N)r   r   )r   r   r   r   get_source_expressions   s    z$StatAggregate.get_source_expressionsc             C   s   |\| _ | _d S )N)r   r   )r   exprsr   r   r   set_source_expressions   s    z$StatAggregate.set_source_expressionsNTFc                s   t t| j||||S )N)r   r   resolve_expression)r   queryZallow_joinsZreuseZ	summarizeZfor_save)r   r   r   r      s    z StatAggregate.resolve_expression)NTNFF)	__name__
__module____qualname__r   r   r   r   r   __classcell__r   r   )r   r   r   
   s   c               @   s   e Zd ZdZdS )r   ZCORRN)r    r!   r"   functionr   r   r   r   r      s   c                   s   e Zd Zd fdd	Z  ZS )r   Fc                s$   |rdnd| _ tt| j|| d S )NZ
COVAR_SAMPZ	COVAR_POP)r$   r   r   r   )r   r   r   sample)r   r   r   r   "   s    zCovarPop.__init__)F)r    r!   r"   r   r#   r   r   )r   r   r   !   s   c               @   s   e Zd ZdZdS )r   Z	REGR_AVGXN)r    r!   r"   r$   r   r   r   r   r   '   s   c               @   s   e Zd ZdZdS )r   Z	REGR_AVGYN)r    r!   r"   r$   r   r   r   r   r   +   s   c                   s(   e Zd ZdZ fddZdd Z  ZS )r	   Z
REGR_COUNTc                s   t t| j||t d d S )N)r   r   r   )r   r	   r   r   )r   r   r   )r   r   r   r   2   s    zRegrCount.__init__c             C   s   |d krdS t |S )Nr   )int)r   valueZ
expression
connectioncontextr   r   r   convert_value5   s    zRegrCount.convert_value)r    r!   r"   r$   r   r*   r#   r   r   )r   r   r	   /   s   c               @   s   e Zd ZdZdS )r
   ZREGR_INTERCEPTN)r    r!   r"   r$   r   r   r   r   r
   ;   s   c               @   s   e Zd ZdZdS )r   ZREGR_R2N)r    r!   r"   r$   r   r   r   r   r   ?   s   c               @   s   e Zd ZdZdS )r   Z
REGR_SLOPEN)r    r!   r"   r$   r   r   r   r   r   C   s   c               @   s   e Zd ZdZdS )r   ZREGR_SXXN)r    r!   r"   r$   r   r   r   r   r   G   s   c               @   s   e Zd ZdZdS )r   ZREGR_SXYN)r    r!   r"   r$   r   r   r   r   r   K   s   c               @   s   e Zd ZdZdS )r   ZREGR_SYYN)r    r!   r"   r$   r   r   r   r   r   O   s   N)Zdjango.db.modelsr   r   Zdjango.db.models.aggregatesr   __all__r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   <module>   s   