B
    ܜwa                 @   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 }zl|d krNt | ttfr2t| d}|d}n|  }| d}| | xtD ]}|||}|rT|S qTW W d |r~|  X d S )Nrb    )	
isinstancestrr   openreadtellseektestsclose)filehflocationZtfZres r   lib/python3.7/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)
startswith)r   r   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   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   r   	test_tiff9   s    r   c             C   s   |  drdS dS )zSGI image librarys   ZrgbN)r   )r   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   s    	
ZpbmN)lenord)r   r   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   s    	
ZpgmN)r    r!   )r   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   s    	
ZppmN)r    r!   )r   r   r   r   r   test_ppmW   s    (r$   c             C   s   |  drdS dS )zSun raster files   YjZrastN)r   )r   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xbmN)r   )r   r   r   r   r   test_xbmf   s    
r&   c             C   s   |  drdS d S )Ns   BMZbmp)r   )r   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webp)r   )r   r   r   r   r   	test_webps   s    r*   c             C   s   |  drdS d S )Ns   v/1Zexr)r   )r   r   r   r   r   test_exry   s    
r+   c              C   s   dd l } d}| jdd  r8| jd dkr8| jdd= d}y8| 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)r-   	recursiver   r   r   test   s    r5   c          	   C   s   dd l }dd l}x| D ]}|j|rzt|d dd |s>|rptd dd l}||j|d}t||d qtd qt|d dd |j	  ytt
| W q tk
r   td	 Y qX qW d S )
Nr   z/: )endzrecursing down:*z*** directory (use -r) ***:z*** not found ***)r-   ospathisdirprintglobjoinr/   stdoutflushr   OSError)listr4   Ztoplevelr-   r:   filenamer>   namesr   r   r   r/      s"    


r/   __main__)N)__doc__r:   r   __all__r   r   r   appendr   r   r   r   r"   r#   r$   r%   r&   r'   r*   r+   r5   r/   __name__r   r   r   r   <module>   sD   














