î
[á[\È  ã               @   si  d  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 d d „  Z e d k ree ƒ  n  d S)z<Recognize image file formats based on their first few bytes.ÚwhatNc          
   C   s¶   d  } z• | d  k rp t  |  t ƒ rE t |  d ƒ } | j d ƒ } qp |  j ƒ  } |  j d ƒ } |  j | ƒ n  x' t D] } | | | ƒ } | rw | Sqw WWd  | r± | j ƒ  n  Xd  S)NÚrbé    )Ú
isinstanceÚstrÚopenÚreadÚtellÚseekÚtestsÚclose)ÚfileÚhÚfÚlocationZtfZres© r   ú/usr/lib/python3.4/imghdr.pyr   	   s      c             C   s   |  d d … d k r d Sd 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 Sd  S)Ns   ‰PNG

Zpng)Ú
startswith)r   r   r   r   r   Útest_png*   s    r   c             C   s   |  d d … d k r d Sd S)zGIF ('87 and '89 variants)Nr   ó   GIF87aó   GIF89aZgif)r   r   r   )r   r   r   r   r   Útest_gif0   s    r   c             C   s   |  d d … d k r d Sd S)z-TIFF (can be in Motorola or Intel byte order)Né   ó   MMó   IIZtiff)r   r   r   )r   r   r   r   r   Ú	test_tiff7   s    r   c             C   s   |  j  d ƒ r d Sd S)zSGI image librarys   ÚZrgbN)r   )r   r   r   r   r   Útest_rgb>   s    r    c             C   sP   t  |  ƒ d k rL |  d t d ƒ k rL |  d d k rL |  d d k rL d Sd	 S)
zPBM (portable bitmap)é   é    ó   Pé   s   14r   s    	
ZpbmN)ÚlenÚord)r   r   r   r   r   Útest_pbmE   s    6r'   c             C   sP   t  |  ƒ d k rL |  d t d ƒ k rL |  d d k rL |  d d k rL d Sd	 S)
zPGM (portable graymap)r!   r"   r#   r$   s   25r   s    	
ZpgmN)r%   r&   )r   r   r   r   r   Útest_pgmM   s    6r(   c             C   sP   t  |  ƒ d k rL |  d t d ƒ k rL |  d d k rL |  d d k rL d Sd	 S)
zPPM (portable pixmap)r!   r"   r#   r$   s   36r   s    	
ZppmN)r%   r&   )r   r   r   r   r   Útest_ppmU   s    6r)   c             C   s   |  j  d ƒ r d Sd S)zSun raster files   Y¦j•ZrastN)r   )r   r   r   r   r   Ú	test_rast]   s    r*   c             C   s   |  j  d ƒ r d Sd S)zX bitmap (X10 or X11)s   #define ZxbmN)r   )r   r   r   r   r   Útest_xbmd   s    r+   c             C   s   |  j  d ƒ r d Sd  S)Ns   BMZbmp)r   )r   r   r   r   r   Útest_bmpk   s    r,   c              C   sÑ   d d  l  }  d } |  j d d  … rQ |  j d d k rQ |  j d d … =d } n  yJ |  j d d  … r‡ t |  j d d  … | d ƒ n t d g | d ƒ Wn/ t k
 rÌ |  j j d ƒ |  j d ƒ Yn Xd  S)Nr"   r$   z-rr   Ú.z
[Interrupted]
)ÚsysÚargvÚtestallÚKeyboardInterruptÚstderrÚwriteÚexit)r.   Ú	recursiver   r   r   Útestu   s    &	 r6   c             C   s  d d  l  } d d  l } xè |  D]à } | j j | ƒ r« t | d d d ƒ| sW | rž t d ƒ d d  l } | j | j j | d ƒ ƒ } t | | d ƒ qÿ t d ƒ q t | d d d ƒ| j j	 ƒ  y t t
 | ƒ ƒ Wq t k
 rþ t d	 ƒ Yq Xq Wd  S)
Nr"   z/:Úendú zrecursing down:Ú*z*** directory (use -r) ***ú:z*** not found ***)r.   ÚosÚpathÚisdirÚprintÚglobÚjoinr0   ÚstdoutÚflushr   ÚOSError)Úlistr5   Ztoplevelr.   r;   Úfilenamer?   Únamesr   r   r   r0   „   s"    
r0   Ú__main__)Ú__doc__Ú__all__r   r
   r   Úappendr   r   r   r    r'   r(   r)   r*   r+   r,   r6   r0   Ú__name__r   r   r   r   Ú<module>   s:   	