
    cn                     T    d dl Zd dlZd dlmZ ddZd Zd Zd Z	d Z
d Zd	 Zd
 ZdS )    N)Versionc                     t          | t          j        j                  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

    )
isinstancemplmarkersMarkerStyle
get_marker)marker	fillstyles     /lib/python3.11/site-packages/seaborn/_compat.pyr   r      sQ     &#+122 ) 	)M&&((F;""69555    c                     t          |t          j        j                  r|S | dS |dx}}n|\  }} G d dt          j        j                  } |||          }|                                 j        |_        |S )zCProduce a Normalize object given a Scale and min/max domain limits.Nc                       e Zd ZddZdS )#norm_from_scale.<locals>.ScaledNormNc                    |                      |          \  }}|                     |           | j        | j        k    rt	          d          | j        | j        k    rt          j        |d          S || j        }|r t          j        || j        | j                  }|                     |          	                    t          j
        |                    }|                     | j        | j        g          \  }}t          j        ||g                                          st	          d          ||z  }|||z
  z  }t
          j                            |d          }|r|d         n|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_vmaxs          r   __call__z,norm_from_scale.<locals>.ScaledNorm.__call__(   s^     $11%88E9&&&y49$ G !EFFFyDI% .|E1--- !y =ty$)<<nnU++33BHUOODDG!^^TY	,BCCNFF;/004466 9 !7888vG(Ge**7*??G!*771::7r   )N)__name__
__module____qualname__r(    r   r   
ScaledNormr   &   s(        	8 	8 	8 	8 	8 	8r   r-   )r   r   colors	Normalizeget_transformr   )scalenormr   r   r-   new_norms         r   norm_from_scaler4      s    
 $
,--  t tt
d8 8 8 8 8SZ) 8 8 84 z$%%H,,..8HOr   c                 6   d}t          t          j                  t          d          k     rTd         dv rJd}d         |                    dd          }|||d <   |                    dd          }|||d	 <   t	          | t
                    r G fd
d          } |            t          j        j        | fi |} |rO|                                 }|	                    dd          |_
        |	                    d          dk    rd|_        | 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                       e Zd Z ZdS )scale_factory.<locals>.AxisN)r)   r*   r+   	axis_name)axiss   r   Axisr<   [   s        IIIr   r?   
   mask)r   r   __version__popr   strr1   scale_factoryr0   getr8   _clip)r1   r>   kwargsmodify_transformr8   r:   r?   r   s    `      r   rE   rE   F   s]    s'%..0 	17d? 	1#7D::fd++D -(,}d}}%ZZt44F 1*0'% 	 	 	 	 	 	 	 	 	 	tvvI#E4::6::E $''))	FB//	::m$$. 	$ $IOLr   c                    t          t          j                  t          d          k     r|j        dS t	          | d| d          }i }|j        dk    r%|                                }|j        |j        f|d<    ||j        fi | t	          | | d          }|                    |           dS  | j	        di | d|i dS )	z=Handle backwards compatability with setting matplotlib scale.r6   Nset_r1   function	functionsr>   r,   )
r   r   rB   namegetattrr0   _forward_inverse#set_default_locators_and_formattersset)axr>   r1   methodkwstransaxis_objs          r   set_scale_objrY   l   s    s'%..0 *
 : 	F/D///00:# 	@''))E %?Cuz!!S!!!2$}}}--11(;;;;;))T...%()))))r   c                     	 t           j        |          S # t          $ r" t           j                            |           cY S w xY w)7Handle changes to matplotlib colormap interface in 3.6.)r   	colormapsAttributeErrorcmget_cmaprN   s    r   get_colormapra      sI    %}T"" % % %vt$$$$$%s    )A A c                     	 | t           j        vr#t           j                            ||            dS dS # t          $ r$ t           j                            | |           Y dS w xY w)r[   r`   N)r   r\   registerr]   r^   register_cmap)rN   cmaps     r   register_colormaprf      s}    )s}$ 	4M""4d"33333	4 	4 ) ) )T4(((((()s   /5 *A#"A#c                     t          | d          r|                     |           dS |dk    r|                     d           dS |dk    r|                     d           dS dS )z5Handle changes to auto layout engine interface in 3.6set_layout_enginetightTconstrainedN)hasattrrh   set_tight_layoutset_constrained_layout)figengines     r   rh   rh      s    s'(( -f%%%%%W 	-  &&&&&}$ 	-&&t,,,,,	- 	-r   c                     t          t          j                  t          d          k     r4 t          | d| d                      }|                    ||            dS  t          |d|           |            dS )z(Handle changes to post-hoc axis sharing.z3.5.0get_shared__axesshareN)r   r   rB   rO   join)ax0ax1whichgroups       r   
share_axisry      s    s''"2"22 +87577788::

3%_U__%%c*****r   )NN)numpyr   
matplotlibr   seaborn.external.versionr   r   r4   rE   rY   ra   rf   rh   ry   r,   r   r   <module>r}      s            , , , , , ,6 6 6 6 - - -`# # #L* * *,% % %) ) )- - -+ + + + +r   