U
    &^                     @   s   d dl Z d dlZd dlZd dlZddlmZ dddddd	Zd
d Zdd ZdddddZ	dd Z
dd ZdddddddZdd Zd d! Zd"d# Zd$d% Zd)d'd(ZdS )*    N   )ImagePIL._imagingzPIL._tkinter_finderPIL._imagingftzPIL._imagingcms	PIL._webp)piltkinter	freetype2
littlecms2webpc                 C   sF   | t krtd|  t |  }zt| W dS  tk
r@   Y dS X d S )NzUnknown module %sTF)modules
ValueError
__import__ImportError)featuremodule r   0/tmp/pip-install-a1j0c_p1/Pillow/PIL/features.pycheck_module   s    r   c                   C   s   dd t D S )Nc                 S   s   g | ]}t |r|qS r   )r   .0fr   r   r   
<listcomp>    s      z)get_supported_modules.<locals>.<listcomp>)r   r   r   r   r   get_supported_modules   s    r   ZjpegZjpeg2kziplibtiff)jpgjpg_2000zlibr   c                 C   s.   | t krtd|  t |  }|d ttjkS )NzUnknown codec %s_encoder)codecsr   dirr   core)r   codecr   r   r   check_codec&   s    r$   c                   C   s   dd t D S )Nc                 S   s   g | ]}t |r|qS r   )r$   r   r   r   r   r   0   s      z(get_supported_codecs.<locals>.<listcomp>)r    r   r   r   r   get_supported_codecs/   s    r%   )r   ZHAVE_WEBPANIM)r   ZHAVE_WEBPMUX)r   ZHAVE_TRANSPARENCY)r   Z	HAVE_RAQM)r   ZHAVE_LIBJPEGTURBO)r   ZHAVE_LIBIMAGEQUANT)	webp_animwebp_muxtransp_webpraqmZlibjpeg_turbolibimagequantc                 C   sV   | t krtd|  t |  \}}zt|dgd}t||W S  tk
rP   Y d S X d S )NzUnknown feature %sPIL)fromlist)featuresr   r   getattrr   )r   r   flagZimported_moduler   r   r   check_feature=   s    r0   c                   C   s   dd t D S )Nc                 S   s   g | ]}t |r|qS r   )r0   r   r   r   r   r   K   s      z*get_supported_features.<locals>.<listcomp>)r-   r   r   r   r   get_supported_featuresJ   s    r1   c                 C   s0   | t krt| p.| tkr t| p.| tko.t| S N)r   r   r    r$   r-   r0   )r   r   r   r   checkN   s    r3   c                  C   s"   t  } | t  | t  | S r2   )r   extendr1   r%   )retr   r   r   get_supportedY   s    r6   Tc           
   	   C   sV  | d krt j} t  td| d tdtj| d t j	 }td|d 
 | d |dd  D ]}td|
 | d qftd| d tdtjtj| d td	tjtjj| d td| d d
D ]2\}}t|rtd|d| d qtd|d| d qtd| d |rRtt}tj D ]\}}|| | q2ttjD ]}d|}|tjkrd|tj| }t|| d ||krtddt|| | d g }	|tjkr|	d |tjkr|	d |tjkr|	d |tjkr|	d |tjkr*|	d tdd|	| d td| d qVd S )NzD--------------------------------------------------------------------)filez	Pillow {}z	Python {}r   r   z	       {}zPython modules loaded from {}zBinary modules loaded from {}))r   zPIL CORE)r   ZTKINTER)r	   Z	FREETYPE2)r
   Z
LITTLECMS2)r   ZWEBP)r(   zWEBP Transparency)r'   ZWEBPMUX)r&   zWEBP Animation)r   ZJPEG)r   zOPENJPEG (JPEG2000))r   zZLIB (PNG/ZIP))r   ZLIBTIFF)r)   zRAQM (Bidirectional Text))r*   z#LIBIMAGEQUANT (Quantization method)z---z
support okz***zsupport not installedz{}z{} {}zExtensions: {}z, opensaveZsave_alldecodeencodezFeatures: {}) sysstdoutr   initprintformatr+   __version__version
splitlinesstripospathdirname__file__r"   r3   collectionsdefaultdictlistZ	EXTENSIONitemsappendsortedZIDZMIMEjoinZOPENZSAVEZSAVE_ALLZDECODERSZENCODERS)
outZsupported_formats
py_versionnamer   
extensionsextiliner-   r   r   r   pilinfo`   sf    



 




rW   )NT)rI   rE   r<   r+    r   r   r   r   r    r$   r%   r-   r0   r1   r3   r6   rW   r   r   r   r   <module>   s6   		
