HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/PIL/__pycache__/ImageShow.cpython-310.pyc
o

wet �@s$ddlZddlZddlZddlZddlmZddlmZgZd)dd�Z	d*dd�Z
Gd	d
�d
�ZGdd�de�Zej
d
kr@e	e�Gdd�de�Zej
dkrQe	e�Gdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Zej
dvr�e�d�r�e	e�e�d�r�e	e�e�d �r�e	e�e�d!�r�e	e�e�d"�r�e	e�Gd#d$�d$e�Zzdd%lmZWn	ey�Ynwe	e�ed&k�reej�d'kr�ed(�e��e� ejd��Z!ee
e!gejd'd��R��Wd�dS1�s	wYdSdS)+�N��quote�)�ImagecCsNz
t|t�r	|�}Wn	tyYnw|dkrt�|�dSt�d|�dS)a$
    The :py:func:`register` function is used to register additional viewers::

        from PIL import ImageShow
        ImageShow.register(MyViewer())  # MyViewer will be used as a last resort
        ImageShow.register(MySecondViewer(), 0)  # MySecondViewer will be prioritised
        ImageShow.register(ImageShow.XVViewer(), 0)  # XVViewer will be prioritised

    :param viewer: The viewer to be registered.
    :param order:
        Zero or a negative integer to prepend this viewer to the list,
        a positive integer to append it.
    rN)�
issubclass�Viewer�	TypeError�_viewers�append�insert)�viewer�order�r�F/home/arjun/projects/env/lib/python3.10/site-packages/PIL/ImageShow.py�registers
��rcKs*tD]}|j|fd|i|��rdSqdS)a
    Display a given image.

    :param image: An image object.
    :param title: Optional title. Not all viewers can display the title.
    :param \**options: Additional viewer options.
    :returns: ``True`` if a suitable viewer was found, ``False`` otherwise.
    �titleTF)r	�show)�imager�optionsrrrrr2s
	�rc@sLeZdZdZdd�ZdZ	iZ	dd�Zdd�Zd	d
�Z	dd�Z
d
d�ZdS)rzBase class for viewers.cKsP|jdvs|jdkr|jdvst�|j�}|j|kr|�|�}|j|fi|��S)z�
        The main function for displaying an image.
        Converts the given image to the target format and displays it.
        )�1�RGBA�PNG)zI;16�LA)�mode�formatr�getmodebase�convert�
show_image)�selfrr�baserrrrFs


zViewer.showNcCs|jS)z3Return format name, or ``None`` to save as PGM/PPM.)r�rrrrr�
get_format]szViewer.get_formatcKst�)zj
        Returns the command used to display the file.
        Not implemented in the base class.
        )�NotImplementedError�r�filerrrr�get_commandaszViewer.get_commandcCs|jdd|�|�i|j��S)z+Save to temporary file and return filename.rNr)�_dumpr!rr rrr�
save_imagehszViewer.save_imagecKs|j|�|�fi|��S)zDisplay the given image.)�	show_filer'�rrrrrrrlszViewer.show_imagecKst�|j|fi|���dS)�%
        Display given file.
        r)�os�systemr%�r�pathrrrrr(pszViewer.show_file)�__name__�
__module__�__qualname__�__doc__rrrr!r%r'rr(rrrrrAsrc@s&eZdZdZdZddd�Zdd�ZdS)	�
WindowsViewerzNThe default viewer on Windows is the default system application for PNG files.rrT��compress_level�save_allcKsd|�d|�d�S)Nzstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f "�"rr#rrrr%�s��zWindowsViewer.get_commandN)r/r0r1r2rrr%rrrrr3{s

r3�win32c@s.eZdZdZdZddd�Zdd�Zdd	�Zd
S)�	MacViewerz2The default viewer on macOS using ``Preview.app``.rrTr4cKs(d}d|�dt|��dt|��d�}|S)Nzopen -a Preview.app�(� z; sleep 20; rm -f z)&r�rr$r�commandrrrr%�s zMacViewer.get_commandcKs<t�ddd|g�tjpt�d�}|rt�|dd|g�dS)r*�openz-azPreview.app�python3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1])r)�
subprocess�call�sys�
executable�shutil�which�Popen)rr.rrCrrrr(�s��zMacViewer.show_fileN)r/r0r1r2rrr%r(rrrrr9�s
r9�darwinc@s"eZdZdZddd�Zdd�ZdS)�
UnixViewerrrTr4cKs*|j|fi|��d}d|�dt|���S)Nrr:r;)�get_command_exrr<rrrr%�szUnixViewer.get_commandN)r/r0r1rrr%rrrrrH�s
rHc@� eZdZdZdd�Zdd�ZdS)�	XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    cKsd}}||fS)N�xdg-openr)rr$rr=rCrrrrI�szXDGViewer.get_command_excKst�d|g�dS)r*rLr�r@rFr-rrrr(�szXDGViewer.show_fileN�r/r0r1r2rIr(rrrrrK�srKc@�"eZdZdZddd�Zdd�ZdS)�
DisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    NcK�&d}}|r|dt|���7}||fS)N�displayz -title r�rr$rrr=rCrrrrI�szDisplayViewer.get_command_excK�8dg}|�d�}|r|d|g7}|�|�t�|�dS)r*rRrz-titler��getr
r@rF�rr.r�argsrrrrr(��


zDisplayViewer.show_file�NrNrrrrrP�s
rPc@rJ)�GmDisplayViewerz*The GraphicsMagick ``gm display`` command.cK�d}d}||fS)N�gmz
gm displayr�rr$rrCr=rrrrI��zGmDisplayViewer.get_command_excK�t�dd|g�dS)r*r]rRrrMr-rrrr(��zGmDisplayViewer.show_fileNrNrrrrr[��r[c@rJ)�	EogViewerz'The GNOME Image Viewer ``eog`` command.cKr\)N�eogzeog -nrr^rrrrI�r_zEogViewer.get_command_excKr`)r*rdz-nrrMr-rrrr(�razEogViewer.show_fileNrNrrrrrc�rbrcc@rO)�XVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    NcKrQ)N�xvz -name rrSrrrrI
szXVViewer.get_command_excKrT)r*rfrz-namerrUrWrrrr(rYzXVViewer.show_filerZrNrrrrres
re)r8rGrLrRr]rdrfc@seZdZdZdd�ZdS)�
IPythonViewerz!The viewer for IPython frontends.cKst|�dS)Nr)�ipython_displayr)rrrr0szIPythonViewer.show_imageN)r/r0r1r2rrrrrrg-srg)rR�__main__�z.Syntax: python3 ImageShow.py imagefile [title])rrZ)"r+rDr@rB�shlexr�rr	rrrr3�platformr9rHrKrPr[rcrerErg�IPython.displayrRrh�ImportErrorr/�len�argv�print�exitr>�imrrrr�<module>s`


:

	





�
 $��