3 \@s.ddlmZdgZd$ddZgZddZejeddZejed d Zejed d Z eje d dZ eje ddZ eje ddZ eje ddZ eje ddZejeddZejeddZejeddZejeddZejedd Zd!d"Zed#kr*edS)%)PathLikewhatNc Csd}zl|dkrNt|ttfr2t|d}|jd}n|j}|jd}|j|xtD]}|||}|rT|SqTWWd|r~|jXdS)Nrb ) isinstancestrropenreadtellseektestsclose)filehflocationZtfresr/usr/lib64/python3.6/imghdr.pyr s         cCs|dddkrdSdS)N JFIFExifZjpeg)rrr)rrrrr test_jpeg%srcCs|jdrdSdS)NsPNG  Zpng) startswith)rrrrrtest_png,s rcCs|dddkrdSdS)NrGIF87aGIF89aZgif)rrr)rrrrrtest_gif2srcCs|dddkrdSdS)NMMIIZtiff)r r!r)rrrrr test_tiff9sr"cCs|jdrdSdS)NsZrgb)r)rrrrrtest_rgb@s r#cCs<t|dkr8|dtdkr8|ddkr8|ddkr8dSdS) NrPs14rs Zpbm)lenord)rrrrrtest_pbmGs (r)cCs<t|dkr8|dtdkr8|ddkr8|ddkr8dSdS) Nr$rr%r&s25rs Zpgm)r'r()rrrrrtest_pgmOs (r*cCs<t|dkr8|dtdkr8|ddkr8|ddkr8dSdS) Nr$rr%r&s36rs Zppm)r'r()rrrrrtest_ppmWs (r+cCs|jdrdSdS)NsYjZrast)r)rrrrr test_rast_s r,cCs|jdrdSdS)Ns#define Zxbm)r)rrrrrtest_xbmfs r-cCs|jdrdSdS)NsBMZbmp)r)rrrrrtest_bmpms r.cCs"|jdr|dddkrdSdS)NsRIFF sWEBPZwebp)r)rrrrr test_webpssr1cCs|jdrdSdS)Nsv/1Zexr)r)rrrrrtest_exrys r2c Csddl}d}|jddr8|jddkr8|jdd=d}y8|jddr`t|jdd|dntdg|dWn*tk r|jjd|jdYnXdS)Nrr&z-rr.z [Interrupted] )sysargvtestallKeyboardInterruptstderrwriteexit)r4 recursiverrrtests  r<c Csddl}ddl}x|D]}|jj|rzt|ddd|s>|rptdddl}|j|jj|d}t||dqtdqt|ddd|jj ytt |Wqt k rtd YqXqWdS) Nrz/: )endzrecursing down:*z*** directory (use -r) ***:z*** not found ***) r4ospathisdirprintglobjoinr6stdoutflushrOSError)listr;Ztoplevelr4rAfilenamerEnamesrrrr6s"    r6__main__)N)rAr__all__rr rappendrrr"r#r)r*r+r,r-r.r1r2r<r6__name__rrrrsB