
    IR-e                         d dl ZdgZddZdS )    Nquantity_supportlatex_inlinec                 v     ddl mm ddlm dd G  fddj                  } |            S )	a  
    Enable support for plotting `astropy.units.Quantity` instances in
    matplotlib.

    May be (optionally) used with a ``with`` statement.

      >>> import matplotlib.pyplot as plt
      >>> from astropy import units as u
      >>> from astropy import visualization
      >>> with visualization.quantity_support():
      ...     plt.figure()
      ...     plt.plot([1, 2, 3] * u.m)
      [...]
      ...     plt.plot([101, 125, 150] * u.cm)
      [...]
      ...     plt.draw()

    Parameters
    ----------
    format : `astropy.units.format.Base` instance or str
        The name of a format or a formatter object.  If not
        provided, defaults to ``latex_inline``.

    r   )tickerunits)r   Nc                     t          | t          j        z  dz  dz             }|dk    rdS |dk    rdS |dk    rdS |dz  dk    r|dz   dS | dS )	Ng       @g      ?r   0   u   π/2   u   π)intnppi)xposns      ;lib/python3.11/site-packages/astropy/visualization/units.pyrad_fnz quantity_support.<locals>.rad_fn%   sr    RUc!D())663!VV6!VV4UaZZ1f=== :::    c                       e Zd ZfdZe fd            Zefd            Zed             Zd ZfdZ	dS ).quantity_support.<locals>.MplQuantityConverterc                 |    j         j                            j                   i| _        | j        j         <   d S N)Quantityregistryget_original_converter)selfur   s    r   __init__z7quantity_support.<locals>.MplQuantityConverter.__init__3   s:     )*
EN4F4Fqz4R4R'SD$)-EN1:&&&r   c                    | j         k    r^                                        t          j        dz                                          |                                           S | j        k    rO                                                    	                    d          |                                           S | )                    |                                         S d S )Nr   )base)majlocmajfmtlabelu   %i°)r$   )
radianAxisInfoMultipleLocatorr   r   FuncFormatter	to_stringdegreeAutoLocatorFormatStrFormatter)unitaxisformatr   r   r   r   s     r   axisinfoz7quantity_support.<locals>.MplQuantityConverter.axisinfo9   s    qx~~!11ruqy1AA!//77..** &   
 !!~~!--//!44V<<..** &   
 !~~DNN6,B,B~CCC4r   c                     t          | j                  r|                               S t          | t                    r+| r)t          | d         j                  rfd| D             S | S )Nr   c                 :    g | ]}|                               S  )to_value).0vr-   s     r   
<listcomp>zJquantity_support.<locals>.MplQuantityConverter.convert.<locals>.<listcomp>P   s%    666Q

4((666r   )
isinstancer   r4   list)valr-   r.   r   s    ` r   convertz6quantity_support.<locals>.MplQuantityConverter.convertK   sy    #qz** ||D)))C&& 3 :c!faj3Q3Q 6666#6666
r   c                 4    t          | d          r| j        S d S )Nr-   )hasattrr-   )r   r.   s     r   default_unitsz<quantity_support.<locals>.MplQuantityConverter.default_unitsT   s     q&!! v4r   c                     | S r   r3   )r   s    r   	__enter__z8quantity_support.<locals>.MplQuantityConverter.__enter__Z   s    Kr   c                     | j         j                 j        j        = d S | j         j                 j        j        <   d S r   )r   r   r   )r   typevaluetbr   r   s       r   __exit__z7quantity_support.<locals>.MplQuantityConverter.__exit__]   sC    '
3;N1:...-1-Eaj-Qqz***r   N)
__name__
__module____qualname__r   staticmethodr0   r;   r>   r@   rE   )r/   r   r   r   r   s   r   MplQuantityConverterr   2   s        	. 	. 	. 	. 	. 	. 
	 	 	 	 	 	 	 	 
	" 
	 	 	 	 
	 
	 	 
	
	 	 		R 	R 	R 	R 	R 	R 	R 	Rr   rJ   r   )
matplotlibr   r   astropyConversionInterface)r/   rJ   r   r   r   r   s   ` @@@@r   r   r      s    2 )(((((((""""""   /R /R /R /R /R /R /R /R /R /R /Ru8 /R /R /Rb  !!!r   )r   )numpyr   __doctest_skip__r   r3   r   r   <module>rP      s@       &' [" [" [" [" [" ["r   