a
    Sicn                     @   sb   d dl Zd dlZd dlmZ dddZdd Zdd Zd	d
 Z	dd Z
dd Zdd Zdd ZdS )    N)Versionc                 C   s0   t | tjjr"|du r| S |  } tj| |S )z
    Allow MarkerStyle to accept a MarkerStyle object as parameter.

    Supports matplotlib < 3.3.0
    https://github.com/matplotlib/matplotlib/pull/16692

    N)
isinstancemplmarkersMarkerStyle
get_marker)marker	fillstyle r
   K/var/www/html/django/DPS/env/lib/python3.9/site-packages/seaborn/_compat.pyr      s
    r   c                 C   sf   t |tjjr|S | du rdS |du r0d }}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rDt|dS |d u rR| j}|rht|| j| j}| |	t
|}| | j| jg\}}t||g std||8 }|||  }tjj|dd}|r|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_vmaxr
   r
   r   __call__(   s$    
z,norm_from_scale.<locals>.ScaledNorm.__call__)N)__name__
__module____qualname__r"   r
   r
   r
   r   
ScaledNorm&   s   r&   )r   r   colors	Normalizeget_transformr   )scalenormr   r   r&   new_normr
   r
   r   norm_from_scale   s    

r-   c                    s   d}t tjt dk rr d dv rrd} d  |dd}|durP||d  < |dd}|durr||d	  < t| trG  fd
dd}|  tjj|  fi |} |r|  }|	dd|_
|	ddkrd|_| S )z
    Backwards compatability for creation of independent scales.

    Matplotlib scales require an Axis object for instantiation on < 3.4.
    But the axis is not used, aside from extraction of the axis_name in LogScale.

    F3.4r   xyTbaseNnonpositivenonposc                       s   e Zd Z ZdS )zscale_factory.<locals>.AxisN)r#   r$   r%   	axis_namer
   axisr
   r   Axis[   s   r6   
   mask)r   r   __version__popr   strr*   scale_factoryr)   getr0   _clip)r*   r5   kwargsZmodify_transformr0   r2   r6   r   r
   r4   r   r<   F   s*    
r<   c                 C   s   t tjt dk r|jdu r dS t| d| d}i }|jdkrX| }|j|jf|d< ||jfi | t| | d}|| n| j	f i | d|i dS )z=Handle backwards compatability with setting matplotlib scale.r.   Nset_r*   function	functionsr5   )
r   r   r9   namegetattrr)   _forward_inverse#set_default_locators_and_formattersset)axr5   r*   methodkwstransZaxis_objr
   r
   r   set_scale_objl   s    

rM   c                 C   s0   zt j|  W S  ty*   t j|  Y S 0 dS )7Handle changes to matplotlib colormap interface in 3.6.N)r   	colormapsAttributeErrorcmget_cmaprC   r
   r
   r   get_colormap   s    rT   c                 C   sD   z| t jvrt jj|| d W n  ty>   t j| | Y n0 dS )rN   rS   N)r   rO   registerrP   rQ   register_cmap)rC   cmapr
   r
   r   register_colormap   s
    
rX   c                 C   s@   t | dr| | n&|dkr*| d n|dkr<| d dS )z5Handle changes to auto layout engine interface in 3.6set_layout_enginetightTconstrainedN)hasattrrY   set_tight_layoutset_constrained_layout)figenginer
   r
   r   rY      s    
rY   c                 C   sL   t tjt dk r4t| d| d }|||  nt|d| |  dS )z(Handle changes to post-hoc axis sharing.z3.5.0Zget_shared__axesshareN)r   r   r9   rD   join)ax0ax1whichgroupr
   r
   r   
share_axis   s    rh   )NN)numpyr   
matplotlibr   Zseaborn.external.versionr   r   r-   r<   rM   rT   rX   rY   rh   r
   r
   r
   r   <module>   s   
0&	