
    'WhI
                        d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
Z
ddlmZ erddlmZ dd	lmZ dd
lmZ e G d d             Zy)z,Base module for statistical transformations.    )annotations)Iterable)	dataclass)ClassVarAnyN)TYPE_CHECKING)	DataFrame)GroupBy)Scalec                  ^    e Zd ZU dZdZded<   d	dZ	 d
	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 ddZy)Statz>Base class for objects that apply statistical transformations.FzClassVar[bool]group_by_orientc                    t        | |      }||vrf|^ }}dj                  d |dd D              d|z   }dj                  d| d| j                  j                   d	d
| d|dg      }t	        |      y)z9Raise when parameter value is not one of a specified set., c              3  "   K   | ]  }| 	 y wN .0xs     M/var/www/html/jupyter_env/lib/python3.12/site-packages/seaborn/_stats/base.py	<genexpr>z+Stat._check_param_one_of.<locals>.<genexpr>&   s     "?aU8"?   Nz or  zThe `z` parameter for `z	` must bezone of z; not .)getattrjoin	__class____name__
ValueError)selfparamoptionsvaluemostlast
option_strerrs           r   _check_param_one_ofzStat._check_param_one_of!   s    e$!KT4"?T#2Y"??D/QJ((w/0G0G/H	R*VE9A6 C S/!      c                    t        | |      }t        |      t        |      z
  }|rT| j                  j                   d| }dj	                  d |D              }d| d| d}t        j                  ||       yy)zFWarn if vars are named in parameter without being present in the data.r   r   c              3  "   K   | ]  }| 	 y wr   r   r   s     r   r   z,Stat._check_grouping_vars.<locals>.<genexpr>5   s     :1h:r   z!Undefined variable(s) passed for z: )
stacklevelN)r   setr   r    r   warningswarn)r"   r#   	data_varsr.   
param_vars	undefinednamesmsgs           r   _check_grouping_varszStat._check_grouping_vars-   s{     T5)

Oc)n4	~~../q8EII:	::E5eWBugQGCMM#*5	 r+   c                    |S )zIApply statistical transform to data subgroups and return combined result.r   )r"   datagroupbyorientscaless        r   __call__zStat.__call__9   s	     r+   N)r#   strr$   zIterable[Any]returnNone)   )r#   r>   r2   z	list[str]r.   intr?   r@   )
r9   r	   r:   r
   r;   r>   r<   zdict[str, Scale]r?   r	   )	r    
__module____qualname____doc__r   __annotations__r*   r7   r=   r   r+   r   r   r      sw    H ',O^+
" CD
6
6%.
6<?
6	
6  	
 ! 
r+   r   )rE   
__future__r   collections.abcr   dataclassesr   typingr   r   r0   r   pandasr	   seaborn._core.groupbyr
   seaborn._core.scalesr   r   r   r+   r   <module>rN      s?    2 " $ !      -* 1 1 1r+   