
     f                       d dl mZ d dlZd dlZddlmZmZ dd	Z G d
 dej                  Z G d dej	                  Z
 ej        ej        ee            ej        de
            ej        ej        ddg           dS )    )annotationsN   )Image	ImageFileprefixbytesreturnboolc                    | d d         dk    S )N      SIMPLE )r   s    V/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/PIL/FitsImagePlugin.py_acceptr      s    "1":""    c                  .    e Zd ZdZdZddZdd
ZddZdS )FitsImageFileFITSr	   Nonec                h   | j         J i }d}d}	 | j                             d          }|sd}t          |          |d d                                         }|dv rd}ns|r|sn|dk    rg| j                             t          j        | j                                         d	z            d	z             |s|                     |          \  }}}d}|r|dd          	                    d
          d                                         }	|	
                    d          r|	dd                                          }	|s&t          |          r|	dk    rd}t          |          |	||<   [|sd}t          |          || j                                         dz
  z  }|d| j        z   ||fg| _        d S )NF TP   zTruncated FITS file   )r      XTENSIONs   ENDi@     /r      =r      TzNot a FITS filezNo image datar   r   )fpreadOSErrorstripseekmathceiltell_parse_headerssplit
startswithr   SyntaxError
ValueErrorsizetile)
selfheadersheader_in_progressdecoder_nameheadermsgkeywordoffsetargsvalues
             r   _openzFitsImageFile._open   s   w"""&("	%W\\"%%F #+cll"RaRj&&((G222%)"" 
!3 
F""TYtw||~~'<==DEEE# N151D1DW1M1M.L&$%*" 122J$$T**1-3355E%% *abb	)) 'GG$4$4 ''!#&&&$GG=	%@  	"!CS//!$',,..2%%"FTY$6EF			r   r/   dict[bytes, bytes]r   r   tuple[int, int] | Nonec                    t          ||dz                      }|dk    rd S |dk    rdt          ||dz                      fS t          ||dz                      t          ||dz                      fS )Ns   NAXISr   r   s   NAXIS1s   NAXIS2)int)r.   r/   r   naxiss       r   	_get_sizezFitsImageFile._get_sizeH   s~     GFX-.//A::4A::c'&9"456666wv	1233S)AS9T5U5UUUr   &tuple[str, int, tuple[str | int, ...]]c                (   d}d}d}|                     d          dk    rm|                     d          dk    rT|d         d	k    rH|                     ||          pd
}t          |d                   }|d         |d         z  |dz  z  }d}d}|                     ||          }|sdS || _        t          ||dz                      }|dk    rd| _        n'|dk    rd| _        n|dk    rd| _        n|dv rd| _        |dk    r| j        ddf}n|f}|||fS )Nr   rawr   r   s
   'BINTABLE's   ZIMAGEr   s   ZCMPTYPEs
   'GZIP_1  'r   s   BITPIXr   r      Z	fits_gzip)r   r   r   L   zI;16    I)iiF)getr>   r<   _size_modemode)	r.   r/   r   r1   r5   no_prefix_sizenumber_of_bitsr,   r6   s	            r   r'   zFitsImageFile._parse_headersT   sb    KK$$55I&&$..$55!^^GV<<FN !344N#A&)::nPQ>QRFF&L~~gv.. 	9
WVi%7899QDJJr!!DJJr!!DJJz))DJ 5  Iq"%DD"$DVT))r   N)r	   r   )r/   r9   r   r   r	   r:   )r/   r9   r	   r?   )__name__
__module____qualname__formatformat_descriptionr8   r>   r'   r   r   r   r   r      sd        F+G +G +G +GZ
V 
V 
V 
V'* '* '* '* '* '*r   r   c                      e Zd ZdZddZdS )	FitsGzipDecoderTbufferr   r	   tuple[int, int]c           	        | j         J t          j        | j                                                   }g }d}t	          | j        d         dz  d          }t          | j        j                  D ]\}t                      }t          | j        j
                  D ]}|||d|z
  z   |dz            z  }|dz  }|                    |           ]|                     t          d |d d d         D                                  dS )Nr   r      c                    g | ]	}|D ]}|
S r   r   ).0rowpixels      r   
<listcomp>z*FitsGzipDecoder.decode.<locals>.<listcomp>   s%    LLLLLuuLLLLr   rI   )rI   r   )fdgzip
decompressr    minr6   rangestateysize	bytearrayxsizeappend
set_as_rawr   )	r.   rW   r7   rowsr5   rO   yr]   xs	            r   decodezFitsGzipDecoder.decode   s   w"""//TYq\Q.22tz'(( 	 	A++C4:+,,  uVq>'9:VaZGHH!KKLLTTrT
LLLMMNNNur   N)rW   r   r	   rX   )rP   rQ   rR   	_pulls_fdrn   r   r   r   rV   rV   ~   s-        I     r   rV   rC   z.fitz.fits)r   r   r	   r
   )
__future__r   ra   r$   r   r   r   r   r   	PyDecoderrV   register_openrS   register_decoderregister_extensionsr   r   r   <module>ru      s   # " " " " "          # # # #d* d* d* d* d*I' d* d* d*N    i)   .  M(- A A A  {O 4 4 4  -.0A B B B B Br   