o
    Uh%                     @  s   d dl mZ d dlm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 Zdd	 Zd
d ZdddZdddZdd Zdd Zdd ZdS )    )annotations)LiteralN)Figure)_version_predatesc                 C  sf   t |tjjr	|S | du rdS |du rd }}n|\}}G dd dtjj}|||}|  j|_|S )zCProduce a Normalize object given a Scale and min/max domain limits.Nc                   @  s   e Zd ZdddZdS )z#norm_from_scale.<locals>.ScaledNormNc                 S  s   |  |\}}| | | j| jkrtd| j| jkr"t|dS |d u r)| j}|r4t|| j| j}| |	t
|}| | j| jg\}}t||g sWtd||8 }|||  }tjj|dd}|ro|d S |S )Nz"vmin must be less or equal to vmaxr   zInvalid vmin or vmaxF)copy)process_valueautoscale_Nonevminvmax
ValueErrornp	full_likeclip	transformreshapeshapeisfiniteallmamasked_invalid)selfvaluer   	is_scalart_valuet_vmint_vmax r   C/var/www/vscode/kcb/lib/python3.10/site-packages/seaborn/_compat.py__call__   s$   
z,norm_from_scale.<locals>.ScaledNorm.__call__)N)__name__
__module____qualname__r   r   r   r   r   
ScaledNorm   s    r"   )
isinstancemplcolors	Normalizeget_transformr   )scalenormr	   r
   r"   new_normr   r   r   norm_from_scale   s   

r+   c                 C  s,   zt j|  W S  ty   t j|  Y S w )7Handle changes to matplotlib colormap interface in 3.6.)r$   	colormapsAttributeErrorcmget_cmapnamer   r   r   get_colormap;   s
   r3   c                 C  sJ   z| t jvrt jj|| d W dS W dS  ty$   t j| | Y dS w )r,   r1   N)r$   r-   registerr.   r/   register_cmap)r2   cmapr   r   r   register_colormapC   s   
r7   figr   engine5Literal['constrained', 'compressed', 'tight', 'none']returnNonec                 C  sh   t | dr| | dS |dkr| d dS |dkr"| d dS |dkr2| d | d dS dS )5Handle changes to auto layout engine interface in 3.6set_layout_enginetightTconstrainednoneFN)hasattrr>   set_tight_layoutset_constrained_layout)r8   r9   r   r   r   r>   L   s   

r>   %mpl.layout_engine.LayoutEngine | Nonec                 C  s   t | dr	|  S dS )r=   get_layout_engineN)rB   rF   )r8   r   r   r   rF   ^   s   
rF   c                 C  sF   t tdrt| d| d }|||  dS t|d| |  dS )z(Handle changes to post-hoc axis sharing.z3.5get_shared__axesshareN)r   r$   getattrjoin)ax0ax1whichgroupr   r   r   
share_axisg   s   
rP   c                 C  s   t tdr| jS | jS )z&Handle legendHandles attribute rename.z3.7)r   r$   legendHandleslegend_handles)legendr   r   r   get_legend_handlesp   s   
rT   c                 C  s   t tdri S d| iS )Nz2.2.0include_groups)r   pd)valr   r   r   groupby_apply_include_groupsx   s   
rX   )r8   r   r9   r:   r;   r<   )r8   r   r;   rE   )
__future__r   typingr   numpyr   pandasrV   
matplotlibr$   matplotlib.figurer   seaborn.utilsr   r+   r3   r7   r>   rF   rP   rT   rX   r   r   r   r   <module>   s    0
	
		