
    0-Ph                     <    d Z ddlmZ dad Z G d de          ZdS )a  Read FITS files.

Backend Library: `Astropy <https://www.astropy.org/>`_

.. note::
    To use this plugin you have to install its backend::

        pip install imageio[fits]

Flexible Image Transport System (FITS) is an open standard defining a
digital file format useful for storage, transmission and processing of
scientific and other images. FITS is the most commonly used digital
file format in astronomy.


Parameters
----------
cache : bool
    If the file name is a URL, `~astropy.utils.data.download_file` is used
    to open the file.  This specifies whether or not to save the file
    locally in Astropy's download cache (default: `True`).
uint : bool
    Interpret signed integer data where ``BZERO`` is the
    central value and ``BSCALE == 1`` as unsigned integer
    data.  For example, ``int16`` data with ``BZERO = 32768``
    and ``BSCALE = 1`` would be treated as ``uint16`` data.

    Note, for backward compatibility, the kwarg **uint16** may
    be used instead.  The kwarg was renamed when support was
    added for integers of any size.
ignore_missing_end : bool
    Do not issue an exception when opening a file that is
    missing an ``END`` card in the last header.
checksum : bool or str
    If `True`, verifies that both ``DATASUM`` and
    ``CHECKSUM`` card values (when present in the HDU header)
    match the header and data of all HDU's in the file.  Updates to a
    file that already has a checksum will preserve and update the
    existing checksums unless this argument is given a value of
    'remove', in which case the CHECKSUM and DATASUM values are not
    checked, and are removed when saving changes to the file.
disable_image_compression : bool, optional
    If `True`, treats compressed image HDU's like normal
    binary table HDU's.
do_not_scale_image_data : bool
    If `True`, image data is not scaled using BSCALE/BZERO values
    when read.
ignore_blank : bool
    If `True`, the BLANK keyword is ignored if present.
scale_back : bool
    If `True`, when saving changes to a file that contained scaled
    image data, restore the data to the original type and reapply the
    original BSCALE/BZERO values.  This could lead to loss of accuracy
    if scaling back to integer values after performing floating point
    operations on the data.

   )FormatNc                  Z    	 ddl ma n# t          $ r t          d          w xY wt          S )N    )fitszoThe FITS format relies on the astropy package.Please refer to http://www.astropy.org/ for further instructions.)
astropy.ior   _fitsImportError     T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/imageio/plugins/fits.pyload_libr   C   sU    
,,,,,,, 
 
 
(
 
 	

 Ls   	 #c                   D    e Zd ZdZd Zd Z G d dej                  ZdS )
FitsFormatzSee :mod:`imageio.plugins.fits`c                     |j         | j        v S N)	extension
extensionsselfrequests     r   	_can_readzFitsFormat._can_readS   s      DO33r   c                     dS )NFr
   r   s     r   
_can_writezFitsFormat._can_writeX   s    ur   c                   .    e Zd ZddZd Zd Zd Zd ZdS )	FitsFormat.ReaderFc                    t           st                       t          j        | j                                        fd|i|}g | _        t           j        t           j        t           j        f}t          t          t          |                    |          D ]:\  }}t          ||          r%|j        dk    r| j                            |           ;|| _        d S )Ncacher   )r   r   openr   get_file_indexImageHDU
PrimaryHDUCompImageHDUziprangelen
isinstancesizeappend_hdulist)r   r   kwargshdulistallowed_hdu_typesnhdus          r   _openzFitsFormat.Reader._open_   s     


j!6!6!8!8PPPPPGDK!&1A5CU VeCLL117;; . .3c#455 . x!||**1---#DMMMr   c                 8    | j                                          d S r   )r*   closer   s    r   _closezFitsFormat.Reader._closen   s    M!!!!!r   c                 *    t          | j                  S r   )r&   r    r3   s    r   _get_lengthzFitsFormat.Reader._get_lengthq   s    t{###r   c                     |dk     s|t          | j                  k    rt          d          | j        | j        |                  j        }|i fS )Nr   z*Index out of range while reading from fits)r&   r    
IndexErrorr*   data)r   indexims      r   	_get_datazFitsFormat.Reader._get_datat   sM    qyyES%5%555 !MNNNt{5127Br6Mr   c                      t          d          )Nz+The fits format does not support meta data.)RuntimeError)r   r:   s     r   _get_meta_dataz FitsFormat.Reader._get_meta_data|   s    LMMMr   N)F)__name__
__module____qualname__r0   r4   r6   r<   r?   r
   r   r   Readerr   ^   si        	$ 	$ 	$ 	$	" 	" 	"	$ 	$ 	$	 	 		N 	N 	N 	N 	Nr   rC   N)r@   rA   rB   __doc__r   r   r   rC   r
   r   r   r   r   P   sn        ))4 4 4
   N  N  N  N  N  N  N  N  N  Nr   r   )rD   corer   r   r   r   r
   r   r   <module>rF      sv   8 8t      
 
 
.N .N .N .N .N .N .N .N .N .Nr   