Ë
    ¦üàg	'  ã            	      ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 ddlmZ g Zd)d*d„Zd+d,d„Z G d	„ d
«      Z G d„ de«      Zej$                  dk(  r ee«        G d„ de«      Zej$                  dk(  r ee«        G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zej$                  dvr‚ ej4                  d«      r ee«        ej4                  d«      r ee«        ej4                  d «      r ee«        ej4                  d!«      r ee«        ej4                  d"«      r ee«        G d#„ d$e«      Z	 d d%lmZ  ee«       e d&k(  rs e!ejD                  «      d'k  r e#d(«        ejH                  «         ejJ                  ejD                  d   «      5 Z& e# ee&gejD                  d'd ¢­Ž «       ddd«       yy# e$ r Y Œ€w xY w# 1 sw Y   yxY w)-é    )ÚannotationsN©Úquote)ÚAnyé   )ÚImagec                ó´   — t        | t        «      rt        | t        «      r | «       } |dkD  rt        j                  | «       yt        j                  d| «       y)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.
    r   N)Ú
isinstanceÚtypeÚ
issubclassÚViewerÚ_viewersÚappendÚinsert)ÚviewerÚorders     úK/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/PIL/ImageShow.pyÚregisterr      s?   € ô �&œ$Ô¤J¨v´vÔ$>Ù“ˆØˆq‚yÜ�‰˜Õä�‰˜˜6Õ"ó    c                óH   — t         D ]  } |j                  | fd|i|¤ŽsŒ y y)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   s       r   r   r   3   s3   € ô ò ˆØˆ6�;‰;�uÑ5 EÐ5¨WÓ5Ùðð r   c                  ób   — e Zd ZU dZdd„ZdZded<   	 i Zded<   	 dd„Zdd	„Z	dd
„Z
dd„Zdd„Zy)r   zBase class for viewers.r   c                óü   — |j                   dv s\| j                  dk(  r|j                   dv s?t        j                  |j                   «      }|j                   |k7  r|j	                  |«      } | j
                  |fi |¤ŽS )zƒ
        The main function for displaying an image.
        Converts the given image to the target format and displays it.
        )Ú1ÚRGBAÚPNG)zI;16ÚLA)ÚmodeÚformatr   ÚgetmodebaseÚconvertÚ
show_image)Úselfr   r   Úbases       r   r   zViewer.showG   sk   € ð �J‰J˜-Ñ'Ø—‘˜uÒ$¨¯©°~Ñ)Eä×$Ñ$ U§Z¡ZÓ0ˆDØ�z‰z˜TÒ!ØŸ™ dÓ+�àˆt�‰˜uÑ0¨Ñ0Ð0r   Nú
str | Noner"   zdict[str, Any]c                ó   — | j                   S )z3Return format name, or ``None`` to save as PGM/PPM.)r"   ©r&   r   s     r   Ú
get_formatzViewer.get_format^   s   € à�{‰{Ðr   c                ó   — d}t        |«      ‚)zj
        Returns the command used to display the file.
        Not implemented in the base class.
        zunavailable in base viewer)ÚNotImplementedError)r&   Úfiler   Úmsgs       r   Úget_commandzViewer.get_commandb   s   € ð
 +ˆÜ! #Ó&Ð&r   c                ó\   —  |j                   dd| j                  |«      i| j                  ¤ŽS )z+Save to temporary file and return filename.r"   © )Ú_dumpr+   r   r*   s     r   Ú
save_imagezViewer.save_imagej   s(   € àˆu�{‰{ÑI $§/¡/°%Ó"8ÐI¸D¿L¹LÑIÐIr   c                óF   —  | j                   | j                  |«      fi |¤ŽS )zDisplay the given image.)Ú	show_filer4   ©r&   r   r   s      r   r%   zViewer.show_imagen   s!   € àˆt�~‰~˜dŸo™o¨eÓ4Ñ@¸Ñ@Ð@r   c                óš   — t         j                  j                  |«      st        ‚t        j                   | j
                  |fi |¤Ž«       y)ú%
        Display given file.
        r   )ÚosÚpathÚexistsÚFileNotFoundErrorÚsystemr0   ©r&   r;   r   s      r   r6   zViewer.show_filer   s<   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü
�	‰	Ð"�$×"Ñ" 4Ñ3¨7Ñ3Ô4Ør   ©r   úImage.Imager   r   ÚreturnÚint)r   rA   rB   r(   ©r.   Ústrr   r   rB   rE   )r   rA   rB   rE   ©r;   rE   r   r   rB   rC   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   Ú__annotations__r   r+   r0   r4   r%   r6   r2   r   r   r   r   B   sA   … Ù!ó1ð$ €FˆJÓØ/Ø €Gˆ^Ó Ø7óó'óJóAôr   r   c                  ó.   — e Zd ZdZdZdddœZd	d„Zd
d„Zy)ÚWindowsViewerzNThe default viewer on Windows is the default system application for PNG files.r   r   T©Úcompress_levelÚsave_allc                ó   — d|› d|› d�S )Nzstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f "ú"r2   ©r&   r.   r   s      r   r0   zWindowsViewer.get_command…   s   € à$ T Fð +à˜˜qð"ð	
r   c                ó¼   — t         j                  j                  |«      st        ‚t	        j
                   | j                  |fi |¤Ždt        t        d«      ¬«       y)r9   TÚCREATE_NO_WINDOW)ÚshellÚcreationflagsr   )r:   r;   r<   r=   Ú
subprocessÚPopenr0   Úgetattrr?   s      r   r6   zWindowsViewer.show_fileŒ   sP   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×ÑØˆD×Ñ˜TÑ- WÑ-ØÜ!¤*Ð.@ÓAõ	
ð
 r   NrD   rF   ©rG   rH   rI   rJ   r"   r   r0   r6   r2   r   r   rM   rM      s   „ ÙXà€FØ!"°Ñ5€Gó
ôr   rM   Úwin32c                  ó.   — e Zd ZdZdZdddœZd	d„Zd
d„Zy)Ú	MacViewerz2The default viewer on macOS using ``Preview.app``.r   r   TrN   c                óF   — d}d|› dt        |«      › dt        |«      › d�}|S )Nzopen -a Preview.appú(ú z; sleep 20; rm -f z)&r   ©r&   r.   r   Úcommands       r   r0   zMacViewer.get_command¤   s1   € ð (ˆØ�g�Y˜a¤ d£˜}Ð,>¼uÀT»{¸mÈ2ÐNˆØˆr   c                ó  — t         j                  j                  |«      st        ‚t	        j
                  ddd|g«       t        j                  xs t        j                  d«      }|rt	        j                  |dd|g«       y)r9   Úopenz-azPreview.appÚpython3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1])r   )r:   r;   r<   r=   rX   ÚcallÚsysÚ
executableÚshutilÚwhichrY   )r&   r;   r   ri   s       r   r6   zMacViewer.show_file«   sm   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü�‰˜  }°dÐ;Ô<Ü—^‘^Ò>¤v§|¡|°IÓ'>ˆ
ÙÜ×ÑàØØRØð	ôð r   NrD   rF   r[   r2   r   r   r^   r^   ž   s   „ Ù<à€FØ!"°Ñ5€Góôr   r^   Údarwinc                  óH   — e Zd ZdZdddœZej                  dd„«       Zd	d„Zy)
Ú
UnixViewerr   r   TrN   c                 ó   — y ©Nr2   rS   s      r   Úget_command_exzUnixViewer.get_command_exÇ   s   € àr   c                óN   —  | j                   |fi |¤Žd   }|› dt        |«      › �S )Nr   ra   )rq   r   rb   s       r   r0   zUnixViewer.get_commandË   s3   € Ø%�$×%Ñ% dÑ6¨gÑ6°qÑ9ˆØ�˜!œE $›K˜=Ð)Ð)r   N©r.   rE   r   r   rB   útuple[str, str]rD   )	rG   rH   rI   r"   r   ÚabcÚabstractmethodrq   r0   r2   r   r   rn   rn   Ã   s.   „ Ø€FØ!"°Ñ5€Gà×Ñòó ðô*r   rn   c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú	XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    c                ó   — dx}}||fS )Núxdg-openr2   )r&   r.   r   rc   ri   s        r   rq   zXDGViewer.get_command_exÕ   s   € Ø)Ð)ˆ�*Ø˜
Ð"Ð"r   c                ó|   — t         j                  j                  |«      st        ‚t	        j
                  d|g«       y)r9   rz   r   ©r:   r;   r<   r=   rX   rY   r?   s      r   r6   zXDGViewer.show_fileÙ   s0   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜* dÐ+Ô,Ør   Nrs   rF   ©rG   rH   rI   rJ   rq   r6   r2   r   r   rx   rx   Ð   s   „ ñó#ôr   rx   c                  ó2   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚDisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    Nc                ó8   — dx}}|r|dt        |«      › �z  }||fS )NÚdisplayz -title r   ©r&   r.   r   r   rc   ri   s         r   rq   zDisplayViewer.get_command_exé   s1   € ð  )Ð(ˆ�*ÙØ˜¤%¨£, Ð0Ñ0ˆGØ˜
Ð"Ð"r   c                óÔ   — t         j                  j                  |«      st        ‚dg}|j	                  d«      }|r|d|gz  }|j                  |«       t        j                  |«       y)r9   r�   r   z-titler   ©r:   r;   r<   r=   Úgetr   rX   rY   ©r&   r;   r   Úargsr   s        r   r6   zDisplayViewer.show_fileñ   s^   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Øˆ{ˆØ—‘˜GÓ$ˆÙØ�X˜uÐ%Ñ%ˆDØ�‰�DÔä×Ñ˜ÔØr   rp   ©r.   rE   r   r(   r   r   rB   rt   rF   r}   r2   r   r   r   r   ã   s6   „ ñð .2ð#Øð#Ø *ð#Ø>Að#à	ó#ôr   r   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚGmDisplayViewerz*The GraphicsMagick ``gm display`` command.c                ó   — d}d}||fS )NÚgmz
gm displayr2   ©r&   r.   r   ri   rc   s        r   rq   zGmDisplayViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   c                ó~   — t         j                  j                  |«      st        ‚t	        j
                  dd|g«       y)r9   rŒ   r�   r   r|   r?   s      r   r6   zGmDisplayViewer.show_file	  s2   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜$ 	¨4Ð0Ô1Ør   Nrs   rF   r}   r2   r   r   rŠ   rŠ     s   „ Ù4ó#ô
r   rŠ   c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú	EogViewerz'The GNOME Image Viewer ``eog`` command.c                ó   — d}d}||fS )NÚeogzeog -nr2   r�   s        r   rq   zEogViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   c                ó~   — t         j                  j                  |«      st        ‚t	        j
                  dd|g«       y)r9   r’   z-nr   r|   r?   s      r   r6   zEogViewer.show_file  s2   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜%  tÐ,Ô-Ør   Nrs   rF   r}   r2   r   r   r�   r�     s   „ Ù1ó#ô
r   r�   c                  ó2   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚXVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    Nc                ó8   — dx}}|r|dt        |«      › �z  }||fS )NÚxvz -name r   r‚   s         r   rq   zXVViewer.get_command_ex+  s1   € ð
  $Ð#ˆ�*ÙØ˜¤ u£ Ð/Ñ/ˆGØ˜
Ð"Ð"r   c                óÔ   — t         j                  j                  |«      st        ‚dg}|j	                  d«      }|r|d|gz  }|j                  |«       t        j                  |«       y)r9   r—   r   z-namer   r„   r†   s        r   r6   zXVViewer.show_file5  s^   € ô �w‰w�~‰~˜dÔ#Ü#Ð#ØˆvˆØ—‘˜GÓ$ˆÙØ�W˜eÐ$Ñ$ˆDØ�‰�DÔä×Ñ˜ÔØr   rp   rˆ   rF   r}   r2   r   r   r•   r•   %  s6   „ ñð .2ð#Øð#Ø *ð#Ø>Að#à	ó#ôr   r•   )r\   rl   rz   r�   rŒ   r’   r—   c                  ó   — e Zd ZdZdd„Zy)ÚIPythonViewerz!The viewer for IPython frontends.c                ó   — t        |«       y)Nr   )Úipython_displayr7   s      r   r%   zIPythonViewer.show_imageU  s   € Ü˜ÔØr   Nr@   )rG   rH   rI   rJ   r%   r2   r   r   rš   rš   R  s
   „ Ù+ôr   rš   )r�   Ú__main__é   z.Syntax: python3 ImageShow.py imagefile [title])r   )r   ztype[Viewer] | Viewerr   rC   rB   ÚNonerp   )r   rA   r   r(   r   r   rB   Úbool)'Ú
__future__r   ru   r:   rj   rX   rh   Úshlexr   Útypingr   Ú r   r   r   r   r   rM   Úplatformr^   rn   rx   r   rŠ   r�   r•   rk   rš   ÚIPython.displayr�   rœ   ÚImportErrorrG   ÚlenÚargvÚprintÚexitre   Úimr2   r   r   ú<module>r­      sú  ðõ #ã 
Û 	Û Û Û 
Ý Ý å à€ô#ô,÷7ñ 7ôz�Fô ð6 ‡<�<�7ÒÙˆ]Ôô�ô ðB ‡<�<�8ÒÙˆYÔô
*�ô 
*ô�
ô ô&�Jô ô<�jô ô$�
ô ô$ˆzô ð@ ‡<�<Ð*Ñ*Ø€v‡|�|�JÔÙ�ÔØ€v‡|�|�IÔÙ�ÔØ€v‡|�|�DÔÙ�Ô!Ø€v‡|�|�EÔÙ�ÔØ€v‡|�|�DÔÙ�Ôô�Fô ðÝ:ñ ˆ]Ôð ˆzÒÙ
ˆ3�8‰8ƒ}�qÒÙÐ>Ô?Øˆ�‰Œ
à	ˆ�‰�C—H‘H˜Q‘KÓ	 ð ' BÙ‰d�2Ð%˜Ÿ™  ˜Ò%Ô&÷'ð 'ð øð ò 	Ùð	ú÷'ð 'ús   Å%G, ÇG7Ç,G4Ç3G4Ç7H 