ó
î Xc           @   sX  d  Z  d d l Z d d l m Z m Z e j Z yR d d l Z e j   \ Z	 Z
 e
 d k rs e j   \ Z	 Z
 n  e j e
  Z Wn n Xe j d d  Z i d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6Z d   Z d e j f d     YZ d   Z e j d e e  e j d e  e j d d  e j d d  e j d d  d S(   s   0.2i˙˙˙˙N(   t   Imaget	   ImageFilet   asciit   ignoret   1t   P4t   Lt   P5t   RGBt   P6t   CMYKt   P0CMYKt   Pt   PyPt   RGBAt   PyRGBAt   PyCMYKc         C   s!   |  d d !d k o  |  d d k S(   Ni    i   R   t   0456y(    (   t   prefix(    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyt   _accept4   s    t   PpmImageFilec           B   s)   e  Z d  Z d Z d d  Z d   Z RS(   t   PPMs   Pbmplus imaget    c         C   s   xy t  r{ |  j j d  } | s. | t k r2 Pn  | d k rM t d   n  | | } t |  d k r t d   q q W| S(   Ni   t   ys"   Expected ASCII value, found binaryi	   s   Expected int, got > 9 digits(   t   Truet   fpt   readt   b_whitespacet
   ValueErrort   len(   t   selft   st   c(    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyt   _token@   s    	
c         C   sß  |  j  j d  } | d k r- t d   n  t |  j |  } | d k r^ d |  _ d } n | |  _ } x(t d  D]} xX t rĜ x, t rµ |  j  j d  } | t k r Pq q W| d k rĈ Pn  |  j  j	   } q Wt
 |  j |   } | d k r| } qx | d k r(| } | d k rPqqx | d	 k rx | d
 k r| d k s_t d |   n  | d k  r}d |  _ d } qd |  _ d } qqx qx W| | f |  _ d d d | | f |  j  j   | d d f f g |  _ d  S(   Ni   R   s   not a PPM fileR   s   1;Ii   t   #i    i   i˙   R   s   Too many colors for band: %si   t   Is   I;16Bs   I;32Bt   rawi   (   R   R   t   SyntaxErrort   MODESR!   t   modet   rangeR   R   t   readlinet   intR   t   sizet   tellt   tile(   R   R   R'   t   rawmodet   ixt   xsizet   ysize(    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyt   _openL   sL    								(   t   __name__t
   __module__t   formatt   format_descriptionR!   R2   (    (    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyR   ;   s   c      	   C   s¤  |  j  d k r d \ } } n° |  j  d k r< d \ } } n |  j  d k r |  j   d d k  rp d \ } } qÎ d \ } } nO |  j  d k r d \ } } n1 |  j  d k rğ d \ } } n t d |  j    | j | d |  j j d   | d k r| j d  n  | d k rn| d k r3| j d  qn| d
 k rO| j d  qn| d k rn| j d  qnn  t j |  | d d |  j d | d d f f g  d  S(   NR   s   1;IR   R   R   R#   i   i   i   s   I;16Bs   I;32BR   R	   R   s   cannot write mode %s as PPMs   
%d %d
R   s   255
s   65535
s   2147483648
R$   i    (   s   1;IR   (   R   R   i   (   s   I;16BR   (   s   I;32BR   (   R   R	   (   R   R	   (   i    i    (   R'   t
   getextremat   IOErrort   writeR+   t   encodeR   t   _save(   t   imR   t   filenameR.   t   head(    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyR;      s0    !R   s   .pbms   .pgms   .ppm(   t   __version__t   stringt   PILR    R   t
   whitespaceR   t   localet	   getlocalet   locale_langt
   locale_enct   Nonet   getdefaultlocalet   decodeR:   R&   R   R   R;   t   register_opent   register_savet   register_extension(    (    (    s6   /usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.pyt   <module>   s8   	
	J	"