3
eb                 @   s2  d Z ddlmZ dgZd%ddZg Zdd Zeje dd	 Zeje d
d Z	eje	 dd Z
eje
 dd Zeje dd Zeje dd Zeje dd Zeje dd Zeje dd Zeje dd Zeje dd Zeje dd Zej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}|jd}n| j }| jd}| j| xtD ]}|||}|rT|S qTW W d |r~|j  X d S )Nrb    )	
isinstancestrr   openreadtellseektestsclose)filehflocationZtfZres r   /usr/lib/python3.6/imghdr.pyr      s     




 
c             C   s   | dd dkrdS dS )z JPEG data in JFIF or Exif format   
      JFIF   ExifZjpegN)r   r   r   )r   r   r   r   r   	test_jpeg%   s    r   c             C   s   | j 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      GIF87a   GIF89aZgif)r   r   r   )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      MM   IIZtiff)r   r    r   )r   r   r   r   r   	test_tiff9   s    r!   c             C   s   | j 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   | j 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   | j 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   | j drdS d S )Ns   BMZbmp)r   )r   r   r   r   r   test_bmpm   s    
r-   c             C   s"   | j 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    r0   c             C   s   | j drdS d S )Ns   v/1Zexr)r   )r   r   r   r   r   test_exry   s    
r1   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jd | jd Y nX d S )Nr   r%   z-rr   .z
[Interrupted]
)sysargvtestallKeyboardInterruptstderrwriteexit)r3   	recursiver   r   r   test   s    r;   c             C   s   dd l }dd l}x| D ]}|jj|rzt|d dd |s>|rptd dd l}|j|jj|d}t||d qtd qt|d dd |j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 ***)r3   ospathisdirprintglobjoinr5   stdoutflushr   OSError)listr:   Ztoplevelr3   r@   filenamerD   namesr   r   r   r5      s"    


r5   __main__)N)__doc__r@   r   __all__r   r   r   appendr   r   r!   r"   r(   r)   r*   r+   r,   r-   r0   r1   r;   r5   __name__r   r   r   r   <module>   sD   














