a
    ߙfb^                     @   s.   d dl Z d dlZddgZdddZdd ZdS )    Ndeserialize_classwcs_info_strTc                 C   s   t | trt| dkrtd| d dd\}}t|}t||}tdd | d D }tdd	 | d
 	 D }|r||i |S |||fS dS )z*
    Deserialize classes recursively.
       z Expected a tuple of three valuesr   .   c                 S   s"   g | ]}t |trt|n|qS  
isinstancetupler   ).0argr   r   7lib/python3.9/site-packages/astropy/wcs/wcsapi/utils.py
<listcomp>       z%deserialize_class.<locals>.<listcomp>c                 s   s0   | ](\}}t |tr |t|fn||fV  qd S Nr   )r   keyvalr   r   r   	<genexpr>   r   z$deserialize_class.<locals>.<genexpr>   N)
r	   r
   len
ValueErrorrsplit	importlibimport_modulegetattrdictitems)ZtplZ	constructmoduleklassargskwargsr   r   r   r   	   s    

c                    s
  | j j d}|d| j| j7 }|d| j d7 }| jp<d}| jpLd| j }tdtt	| jtdtdd	 | j
D }tdtt	t|}|d
t	 d dd d
t	| d d d d
t	| d d d d 7 }t| jD ]}|d
t	 d |d d
t	| d | j
| p.d d || d u rPdt	d  nd
t	| d ||  d dt	| jd u rd n| j| d  7 }q|d7 }tdtt	| j}tdtdd	 | jD }tdtdd	 | jD }	|d
t	| d dd d
t	| d d d d
t	|	 d d d d 7 }t| jD ] | j  p^d}
| j  pnd}| j  p~d}|d
t	| d  d d
t	| d |
 d d
t	|	 d | d d|d  7 }qL|d7 }tdtt	| j|d7 }|d | d d!t	| jd" d#  d d d 7 }|d
t	| d dd$fd%d&t| jD  d 7 }| j}tj|jd'd(d)|< d*| < t| jD ]F |d
t	| d  d$ fd+d&t| jD  d 7 }qdd,d& | D S )-Nz Transformation

z:This transformation has {} pixel and {} world dimensions

zArray shape (Numpy order): z

)r   r   	   c                 s   s   | ]}t |V  qd S r   r   r   xr   r   r   r   /   r   zwcs_info_str.<locals>.<genexpr>{0:s}z	Pixel Dim  z	Axis Namez	Data sizezBounds
zg}Nonez     z{:s}
c                 s   s"   | ]}|d urt |ndV  qd S Nr   r"   r#   r   r   r   r   D   r      c                 s   s"   | ]}|d urt |ndV  qd S r*   r"   r#   r   r   r   r   E   r   z	World DimzPhysical TypezUnits
unknownd}r   z+Correlation between pixel and world axes:

 z{0:^   r    c                    s&   g | ]}d dt   d | qS )r'   r%   r-   strformatr   ipix)pixel_dim_widthr   r   r   c   s   z wcs_info_str.<locals>.<listcomp>ZU3)ZdtypeZyesZnoc                    s.   g | ]&}d dt  d  |f  qS )r'   z{0:>r&   r1   r4   ZiwrlZ
matrix_strr6   r   r   r   n   s   c                 S   s   g | ]}|  qS r   )rstrip)r   lr   r   r   r   s   r   )	__class____name__r3   Zpixel_n_dimZworld_n_dimarray_shapepixel_shapemaxr   r2   Zpixel_axis_namesrangeZpixel_boundsZworld_axis_namesZworld_axis_physical_typesZworld_axis_unitsjoinZaxis_correlation_matrixnpemptyshape
splitlines)Zwcssr<   r=   Zpixel_nam_widthZpixel_siz_widthr5   Zworld_dim_widthZworld_nam_widthZworld_typ_widthnametypZunitZmatrixr   r7   r   r      s    
 &


)T)r   ZnumpyrA   __all__r   r   r   r   r   r   <module>   s   
