
&"V                 @   s  d  d l  m Z d  d l m Z d  d l Z d  d l Z e j d k rZ d  d l m Z n d  d l	 m Z g  Z
 d d d  Z d d	 d
  Z Gd d   d e  Z e j d k r Gd d   d e  Z e e  n e j d k rGd d   d e  Z e e  n d d   Z Gd d   d e  Z Gd d   d e  Z e d  rYe e  n  Gd d   d e  Z e d  re e  n  e d k re e e j e j d  e j d d    n  d S)     )print_function)ImageN   )quote   c             C   ss   y t  |  t  r |    }  n  Wn t k
 r3 Yn X| d k rP t j |   n | d k  ro t j d |   n  d  S)Nr   )
issubclassViewer	TypeError_viewersappendinsert)viewerorder r   //tmp/pip-build-fj3bmf4v/Pillow/PIL/ImageShow.pyregister   s    r   c             K   s1   x* t  D]" } | j |  d | | r d Sq Wd S)Ntitler   r   )r
   show)imager   optionsr   r   r   r   r   1   s    r   c               @   s^   e  Z d  Z d d   Z d Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d S)r   c             K   st   | j  d  d  d k r" d } n t j | j   } | | j  k rd | j  d k rd | j |  } n  |  j | |  S)N   zI;16L1)moder   Zgetmodebaseconvert
show_image)selfr   r   baser   r   r   r   ?   s    	zViewer.showNc             C   s   |  j  S)N)format)r   r   r   r   r   
get_formatS   s    zViewer.get_formatc             K   s
   t   d  S)N)NotImplementedError)r   filer   r   r   r   get_commandW   s    zViewer.get_commandc             C   s   | j  d |  j |   S)Nr   )_dumpr   )r   r   r   r   r   
save_imageZ   s    zViewer.save_imagec             K   s   |  j  |  j |  |  S)N)	show_filer$   )r   r   r   r   r   r   r   ^   s    zViewer.show_imagec             K   s   t  j |  j | |   d S)Nr   )ossystemr"   )r   r!   r   r   r   r   r%   b   s    zViewer.show_file)
__name__
__module____qualname__r   r   r   r"   r$   r   r%   r   r   r   r   r   ;   s   r   win32c               @   s"   e  Z d  Z d Z d d   Z d S)WindowsViewerBMPc             K   s   d | | f S)NzDstart "Pillow" /WAIT "%s" && ping -n 2 127.0.0.1 >NUL && del /f "%s"r   )r   r!   r   r   r   r   r"   n   s    zWindowsViewer.get_commandN)r(   r)   r*   r   r"   r   r   r   r   r,   k   s   r,   darwinc               @   s"   e  Z d  Z d Z d d   Z d S)	MacViewerr-   c             K   s)   d } d | t  |  t  |  f } | S)Nz!open -a /Applications/Preview.appz(%s %s; sleep 20; rm -f %s)&)r   )r   r!   r   commandr   r   r   r"   z   s    zMacViewer.get_commandN)r(   r)   r*   r   r"   r   r   r   r   r/   w   s   r/   c             C   sh   t  j j d  } | s d  SxE | j t  j  D]1 } t  j j | |   } t  j j |  r/ | Sq/ Wd  S)NPATH)r&   environgetsplitpathseppathjoinisfile)
executabler6   dirnamefilenamer   r   r   which   s    r<   c               @   s   e  Z d  Z d d   Z d S)
UnixViewerc             K   sH   |  j  | |  \ } } d | t |  t |  f } t j |  d S)Nz(%s %s; rm -f %s)&r   )get_command_exr   r&   r'   )r   r!   r   r0   r9   r   r   r   r%      s
    zUnixViewer.show_fileN)r(   r)   r*   r%   r   r   r   r   r=      s   r=   c               @   s   e  Z d  Z d d   Z d S)DisplayViewerc             K   s   d } } | | f S)Ndisplayr   )r   r!   r   r0   r9   r   r   r   r>      s    
zDisplayViewer.get_command_exN)r(   r)   r*   r>   r   r   r   r   r?      s   r?   r@   c               @   s   e  Z d  Z d d d  Z d S)XVViewerNc             K   s1   d } } | r' | d t  |  7} n  | | f S)Nxvz	 -name %s)r   )r   r!   r   r   r0   r9   r   r   r   r>      s    
zXVViewer.get_command_ex)r(   r)   r*   r>   r   r   r   r   rA      s   rA   rB   __main__   )r   r   )
__future__r   ZPILr   r&   sysversion_infoshlexr   Zpipesr
   r   r   objectr   platformr,   r/   r<   r=   r?   rA   r(   printopenargvr   r   r   r   <module>   s4   
.
	