)Ej ddlmZddlZddlZddlmZmZdd ZGd d ejZGd d ej Z ej ej eeej de ejej ddgdS)) annotationsN)Image ImageFileprefixbytesreturnboolc,|dS)NSIMPLE) startswith)rs EC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/FitsImagePlugin.py_acceptrs   Y ' ''c.eZdZdZdZddZdd Zdd Zd S) FitsImageFileFITSr Nonec|jJi}d}d} |jd}|sd}t||dd}|dvrd}ns|r|sn|dkrg|jt j|jd z d z|s||\}}}d}|r|dd d d } | d r| d d} |s&t|r| dkrd}t|| ||<[|sd}t|||jdz z }tj|d|jz||g|_dS)NFTPzTruncated FITS file)r XTENSIONsENDi@ /r=rTzNot a FITS filez No image datarr)fpreadOSErrorstripseekmathceiltell_parse_headerssplitr r SyntaxError ValueErrorr_Tilesizetile) selfheadersheader_in_progress decoder_nameheadermsgkeywordoffsetargsvalues r_openzFitsImageFile._opensw"""&("  %W\\"%%F #+cll"RaRj&&((G222%)"" !3 F"" TYtw||~~'<==DEEE#N151D1DW1M1M.L&$%*" 122J$$T**1-3355E%% *abb )) 'GG$4$4 ' '!#&&&$GG = %@ "!CS// !$',,..2%%_\6DI3EvtTTU rr.dict[bytes, bytes]rrtuple[int, int] | Nonect||dz}|dkrdS|dkrdt||dzfSt||dzt||dzfS)NsNAXISrrsNAXIS1sNAXIS2)int)r-r.rnaxiss r _get_sizezFitsImageFile._get_sizeHs~GFX-.// A::4 A::c'&9"45666 6wv 1233S)AS9T5U5UU Ur&tuple[str, int, tuple[str | int, ...]]c(d}d}d}|ddkrm|ddkrT|dd krH|||pd }t|d }|d|d z|d zz}d}d}|||}|sdS||_t||d z}|d krd|_n'|dkrd|_n|dkrd|_n |dvrd|_|dkr |jddf}n|f}|||fS)Nrrawrrs 'BINTABLE'sZIMAGErsZCMPTYPEs 'GZIP_1 'rsBITPIXrrZ fits_gzip)rrLzI;16 I)iiF)getr=r;_size_modemode) r-r.rr0r4no_prefix_sizenumber_of_bitsr+r5s rr&zFitsImageFile._parse_headersTsb  KK $ $ 5 5 I&&$.. $ 55!^^GV<<FN !344N#A&)::nPQ>QRFF&L~~gv.. 9 WVi%7899 Q  DJJ r ! !DJJ r ! !DJJ z ) )DJ 5 Iq"%DD"$DVT))rN)r r)r.r8rrr r9)r.r8r r>)__name__ __module__ __qualname__formatformat_descriptionr7r=r&rCrrrrsd F+V+V+V+VZ V V V V'*'*'*'*'*'*rrceZdZdZddZdS) FitsGzipDecoderTbufferImage.DecoderInputr tuple[int, int]c t|jJtj|j5}||jj|jjzdz}g}d}t|jddzd}t|jjD]\}t}t|jjD]} |||d|z z|dzz }|dz }| |] dddn #1swxYwY| td|dddDdS)Nrrcg|] }|D]}| SrCrC).0rowpixels r z*FitsGzipDecoder.decode..s%LLLLLuuLLLLrrI)rIr)fdgzipopenrstatexsizeysizeminr5range bytearrayappend set_as_rawr) r-rWrr6rowsr4rOyr^xs rdecodezFitsGzipDecoder.decodesw""" Ytw   !2GGDJ,tz/??!CDDEDF 1!2A66N4:+,, ! !kktz/00  A51~+=!>!!KLLCaKFF C     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! LLTTrT LLLMMNNNusCC88C<?C<N)rWrXr rY)rPrQrR _pulls_fdrorCrrrVrV~s-IrrVrBz.fitz.fits)rrr r ) __future__rrbr#rrrrr PyDecoderrV register_openrSregister_decoderregister_extensionsrCrrrvs#""""" ((((d*d*d*d*d*I'd*d*d*Ni)0M(-AAA{O444-.0ABBBBBr