U
    ad                     @   s2  d Z ddlmZ dgZd%ddZg Zdd Zee dd	 Zee d
d Z	ee	 dd Z
ee
 dd Zee dd Zee dd Zee dd Zee dd Zee dd Zee dd Zee dd Zee dd Zee d d! Zd"d# Zed$kr.e  dS )&z<Recognize image file formats based on their first few bytes.    )PathLikewhatNc                 C   s   d }zp|d krNt| ttfr2t| d}|d}n|  }| d}| | tD ]}|||}|rR|  W S qRW 5 |r|   X d S )Nrb    )	close
isinstancestrr   openreadtellseektests)filehflocationZtfres r   /usr/lib/python3.8/imghdr.pyr      s     



 
c                 C   s   | dd dkrdS dS )z JPEG data in JFIF or Exif format   
   )s   JFIFs   ExifZjpegNr   r   r   r   r   r   	test_jpeg%   s    r   c                 C   s   |  drdS d S )Ns   PNG

Zpng
startswithr   r   r   r   test_png,   s    
r   c                 C   s   | dd dkrdS dS )zGIF ('87 and '89 variants)Nr   )s   GIF87as   GIF89aZgifr   r   r   r   r   test_gif2   s    r   c                 C   s   | dd dkrdS dS )z-TIFF (can be in Motorola or Intel byte order)N   )s   MMs   IIZtiffr   r   r   r   r   	test_tiff9   s    r   c                 C   s   |  drdS dS )zSGI image librarys   ZrgbNr   r   r   r   r   test_rgb@   s    
r   c                 C   s<   t | dkr8| d tdkr8| d dkr8| d dkr8dS d	S )
zPBM (portable bitmap)   r      P   s   14r       	
ZpbmNlenordr   r   r   r   test_pbmG   s    

r'   c                 C   s<   t | dkr8| d tdkr8| d dkr8| d dkr8dS d	S )
zPGM (portable graymap)r    r   r!   r"   s   25r   r#   ZpgmNr$   r   r   r   r   test_pgmO   s    

r(   c                 C   s<   t | dkr8| d tdkr8| d dkr8| d dkr8dS d	S )
zPPM (portable pixmap)r    r   r!   r"   s   36r   r#   ZppmNr$   r   r   r   r   test_ppmW   s    

r)   c                 C   s   |  drdS dS )zSun raster files   YjZrastNr   r   r   r   r   	test_rast_   s    
r*   c                 C   s   |  drdS dS )zX bitmap (X10 or X11)s   #define ZxbmNr   r   r   r   r   test_xbmf   s    
r+   c                 C   s   |  drdS d S )Ns   BMZbmpr   r   r   r   r   test_bmpm   s    
r,   c                 C   s"   |  dr| dd dkrdS d S )Ns   RIFF      s   WEBPZwebpr   r   r   r   r   	test_webps   s    r/   c                 C   s   |  drdS d S )Ns   v/1Zexrr   r   r   r   r   test_exry   s    
r0   c                  C   s   dd l } d}| jdd  r8| jd dkr8| jdd= d}z8| jdd  r`t| jdd  |d ntdg|d W n* tk
r   | jd | d Y nX d S )Nr   r"   z-rr   .z
[Interrupted]
)sysargvtestallKeyboardInterruptstderrwriteexit)r2   	recursiver   r   r   test   s    r:   c              	   C   s   dd l }dd l}| D ]}|j|r~t|d dd |s<|rttd dd l}||j||d}t||d qtd qt|d dd |j	
  ztt| W q tk
r   td	 Y qX qd S )
Nr   z/: )endzrecursing down:*z*** directory (use -r) ***:z*** not found ***)r2   ospathisdirprintglobjoinescaper4   stdoutflushr   OSError)listr9   Ztoplevelr2   r?   filenamerC   namesr   r   r   r4      s"    

r4   __main__)N)__doc__r?   r   __all__r   r   r   appendr   r   r   r   r'   r(   r)   r*   r+   r,   r/   r0   r:   r4   __name__r   r   r   r   <module>   sD   














