
    =e	                         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 n# e	$ r dZY nw xY wddl
mZ dZ G d d          Zd	 ZdS )
    N)urlparse)Image   )PillowNotInstalled)iT     c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	DataURIConverterc                 <    |                                   || _        d S N)check_pillow_installedlocation)selfr   s     Flib/python3.11/site-packages/binstar_client/utils/notebook/data_uri.py__init__zDataURIConverter.__init__   s    ##%%%     c                 0    t           t                      d S r   )r   r   r   s    r   r   z'DataURIConverter.check_pillow_installed   s    =$&&& =r   c                    t           j                            | j                  rit	          | j        d          5 }|                     |                     |                                                    cd d d            S # 1 swxY w Y   d S |                                 rt          j
        | j        d          j        }t          j                    }|                    |           |                    d           |                     |                     |                                                    S t!          d                    | j                            )Nrbi  )timeoutr   z{} not found)ospathexistsr   open_encoderesize_and_convertreadis_urlrequestsgetcontentioBytesIOwriteseekIOErrorformat)r   filer!   s      r   __call__zDataURIConverter.__call__   sj   7>>$-(( 
	@dmT** Jd||D$;$;D$A$A$F$F$H$HIIJ J J J J J J J J J J J J J J J J J[[]] 	@l4=,GGGOG:<<DJJwIIaLLL<< 7 7 = = B B D DEEE.//>>???s   :BBBc                     t          j        |          }|                    t                     t	          j                    }|                    |d           |                    d           |S )Npng)r'   r   )r   r   	thumbnail
THUMB_SIZEr"   r#   saver%   )r   r(   imageouts       r   r   z#DataURIConverter.resize_and_convert,   sX    
4  
###jll

3u
%%%
r   c                 .    t           j        d         dk    S )Nr   r   )sysversion_infor   s    r   is_py3zDataURIConverter.is_py34   s    "a''r   c                 J    | j         d uot          | j                   j        dv S )N)httphttps)r   r   schemer   s    r   r   zDataURIConverter.is_url7   s'    }D(`Xdm-D-D-KO`-``r   c                     |                                  r(t          j        |                              d          }n)|                    d                              dd          }|S )Nasciibase64
 )r4   r;   	b64encodedecodeencodereplace)r   r!   data64s      r   r   zDataURIConverter._encode:   sY    ;;== 	@%g..55g>>FF^^H--55dB??Fr   N)
__name__
__module____qualname__r   r   r)   r   r4   r   r    r   r   r	   r	      s        ! ! !' ' '@ @ @  ( ( (a a a    r   r	   c                 0     t          |                       S r   )r	   )r   s    r   data_uri_fromrH   B   s    %H%%'''r   )r;   r"   r   r2   r   six.moves.urllib.parser   PILr   ImportErrorerrorsr   r-   r	   rH   rF   r   r   <module>rM      s     				 				 



  + + + + + +   EEE ) ( ( ( ( (
) ) ) ) ) ) ) )X( ( ( ( (s   # --