
    -PhrG                        d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ  ej        d          Z ej        d          Z ej        d	          Zd dlmZ d dl Z d
 Z! G d de"          Z# e#            Z$[#d>dZ% e
            Z&e&e$d<   e&e$d<   e&e$d<   e&e$d<   i Z' ee'          e$d<    ee'd          e$d<    ee'          e$d<    ee'          e$d<    ee'          e$d<    e            e$d<    e            e$d<    e            e$d<    e            e$d<    e            Z(e(e$d<   e(e$d<    e            e$d <    e            e$d!<    ee'          e$d"<    ee'd#$          e$d#<    ee'd%$          e$d&<    ee'd'$          e$d(<    ee'd)          e$d*<    ee'd+)          e$d,<    e            e$d-<    e            e$d.<   dZ)ej*        +                    d/d          Z,e,rC	 e$-                    e,           n(# e.$ r   e.d0/                    e,1                    w xY we,Z)nere)s	 d dl0Z1dZ)n# e2$ r Y nw xY we)sej3        4                    d2          rdZ)e)sd3ej*        v rdZ)e)sd4ej*        v rdZ)e)sd5ej*        v rdZ)e)sd6ej*        v rdZ)e)sd7ej*        v rdZ)e)s(d8ej*        v r	 d d9l5m6Z6  e6             d Z)n# e.$ r Y nw xY we7                                Z8e8j9        j:        Z;e)se;d:k    rd"Z)e)s+e;d;k    r% e<e8          j=        >                    d<          rdZ)e)sd=Z)n"	 d dl?Z? e?j+                     d"Z)n# e@$ r Y nw xY wde$_A        e)e$_B        dS )?    N)copy)Version)optional_imports)MimetypeRendererExternalRendererPlotlyRendererNotebookRendererKaggleRendererAzureRendererColabRendererJsonRendererPngRendererJpegRendererSvgRendererPdfRendererBrowserRendererIFrameRendererSphinxGalleryHtmlRendererSphinxGalleryOrcaRendererCoCalcRendererDatabricksRenderer)validate_coerce_fig_to_dictIPythonzIPython.displaynbformatc                     d } 	 t          j        d          }|>|                                                                                                d         } n# t
          $ r Y nw xY w| d S d| v rDt          j        d          }|*|j        dk     r!t          j        d|j         d           d S d S d S d| v r@t          j        d	          }|,|j        d
k     r#t          j        d|j         d           d S d S d S d S )Npsutilzjupyter-notebooknotebook7z@Plotly version >= 6 requires Jupyter Notebook >= 7 but you have zV installed.
 To upgrade Jupyter Notebook, please run `pip install notebook --upgrade`.zjupyter-lab
jupyterlab3z:Plotly version >= 6 requires JupyterLab >= 3 but you have zQ installed. To upgrade JupyterLab, please run `pip install jupyterlab --upgrade`.)	r   
get_moduleProcessparentcmdline	Exception__version__warningswarn)parent_processr   jupyter_notebookjupyter_labs       T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/plotly/io/_renderers.py display_jupyter_version_warningsr.   (   su   N!,X66#^^--4466>>@@DN    	~	-	-+6zBB',<,H3,N,NM IScSo  I  I  I     (',N,N
 
.	(	(&1,??"{'>'D'DM x[Md  x  x  x    	 
)	(""'D'Ds   AA 
A&%A&c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zi fdZed             Zej        d             Zed             Zej        d             ZefdZd Zd Zd ZddZddZdS )RenderersConfigzI
    Singleton object containing the current renderer configurations
    c                 L    i | _         d | _        g | _        d| _        g | _        d S )NF)
_renderers_default_name_default_renderers_render_on_display_to_activateselfs    r-   __init__zRenderersConfig.__init__J   s/    !"$"'    c                 *    t          | j                  S N)lenr2   r7   s    r-   __len__zRenderersConfig.__len__S   s    4?###r:   c                     || j         v S r<   r2   )r8   items     r-   __contains__zRenderersConfig.__contains__V   s    t&&r:   c                 *    t          | j                  S r<   )iterr2   r7   s    r-   __iter__zRenderersConfig.__iter__Y   s    DO$$$r:   c                      | j         |         }|S r<   r@   )r8   rA   renderers      r-   __getitem__zRenderersConfig.__getitem__\   s    ?4(r:   c                     t          |t          t          f          s0t          d                    t          |                              || j        |<   d S )NzhRenderer must be a subclass of MimetypeRenderer or ExternalRenderer.
    Received value with type: {typ})typ)
isinstancer   r   
ValueErrorformattyper2   )r8   keyvalues      r-   __setitem__zRenderersConfig.__setitem__`   sc    %"24D!EFF 	''-vU (. ( (    %r:   c                 >    | j         |= | j        |k    r	d | _        d S d S r<   )r2   _default)r8   rO   s     r-   __delitem__zRenderersConfig.__delitem__l   s.    OC  =C DMMM  r:   c                 4    | j                                         S r<   )r2   keysr7   s    r-   rV   zRenderersConfig.keyst   s    ##%%%r:   c                 4    | j                                         S r<   )r2   itemsr7   s    r-   rX   zRenderersConfig.itemsw   s    $$&&&r:   c                 Z    t          |fi |                                D ]
\  }}|| |<   dS )aj  
        Update one or more renderers from a dict or from input keyword
        arguments.

        Parameters
        ----------
        d: dict
            Dictionary from renderer names to new renderer objects.

        kwargs
            Named argument value pairs where the name is a renderer name
            and the value is a new renderer object
        N)dictrX   )r8   dkwargskvs        r-   updatezRenderersConfig.updatez   sH     %%f%%++-- 	 	DAqDGG	 	r:   c                     | j         S )a  
        The default renderer, or None if no there is no default

        If not None, the default renderer is used to render
        figures when the `plotly.io.show` function is called on a Figure.

        If `plotly.io.renderers.render_on_display` is True, then the default
        renderer will also be used to display Figures automatically when
        displayed in the Jupyter Notebook

        Multiple renderers may be registered by separating their names with
        '+' characters. For example, to specify rendering compatible with
        the classic Jupyter Notebook, JupyterLab, and PDF export:

        >>> import plotly.io as pio
        >>> pio.renderers.default = 'notebook+jupyterlab+pdf'

        The names of available renderers may be retrieved with:

        >>> import plotly.io as pio
        >>> list(pio.renderers)

        Returns
        -------
        str
        )r3   r7   s    r-   defaultzRenderersConfig.default   s    8 !!r:   c                      |sd _         g  _        d S                      |          }| _          fd|D              _        t           j                   _        d S )N c                      g | ]
}|         S  re   .0namer8   s     r-   
<listcomp>z+RenderersConfig.default.<locals>.<listcomp>   s    "I"I"I$4:"I"I"Ir:   )r3   r4   _validate_coerce_rendererslistr6   )r8   rP   renderer_namess   `  r-   ra   zRenderersConfig.default   sx      	 "$D&(D#F 88??""I"I"I"I."I"I"I !!899r:   c                     | j         S )z
        If True, the default mimetype renderers will be used to render
        figures when they are displayed in an IPython context.

        Returns
        -------
        bool
        )r5   r7   s    r-   render_on_displayz!RenderersConfig.render_on_display   s     &&r:   c                 .    t          |          | _        d S r<   )boolr5   )r8   vals     r-   rn   z!RenderersConfig.render_on_display   s    "&s))r:   c                     fd| j         D             }|r+|                    d          }|                                 |+fd| j         D             | _         dS )z
        Activate all renderers that are waiting in the _to_activate list

        Parameters
        ----------
        cls
            Only activate renders that are subclasses of this class
        c                 8    g | ]}t          |          |S re   rK   rg   rclss     r-   ri   z?RenderersConfig._activate_pending_renderers.<locals>.<listcomp>   s@      
  
  
C 
4>q#4F4F 
 
  
  
r:   r   c                 8    g | ]}rt          |          |S re   rt   ru   s     r-   ri   z?RenderersConfig._activate_pending_renderers.<locals>.<listcomp>   s@     
 
 

9CAs9K9K

 
 
r:   N)r6   popactivate)r8   rw   to_activate_with_clsrG   s    `  r-   _activate_pending_renderersz+RenderersConfig._activate_pending_renderers   s     
  
  
  
( 
  
  
 # 	  ,//22H	 # 	 
 
 
 
(
 
 
r:   c                      t          |t                    st          d          |                    d          } fd|D             }|r/t          d                    t          |                              |S )a=  
        Input a string and validate that it contains the names of one or more
        valid renderers separated on '+' characters.  If valid, return
        a list of the renderer names

        Parameters
        ----------
        renderers_string: str

        Returns
        -------
        list of str
        z&Renderer must be specified as a string+c                     g | ]}|v|	S re   re   rf   s     r-   ri   z>RenderersConfig._validate_coerce_renderers.<locals>.<listcomp>   s#    GGGDd$6F6F46F6F6Fr:   z'
Invalid named renderer(s) received: {})rK   strrL   splitrM   )r8   renderers_stringrl   invalids   `   r-   rj   z*RenderersConfig._validate_coerce_renderers   s     *C00 	GEFFF)//44GGGGNGGG 	**0&LL+ +   r:   c                 x    d                     t          | j                  |                                           S )NzuRenderers configuration
-----------------------
    Default renderer: {default}
    Available renderers:
{available}
)ra   	available)rM   reprra   _available_renderers_strr7   s    r-   __repr__zRenderersConfig.__repr__  s=     F&&$2O2O2Q2Q  
 
	
r:   c           	          d                     t          j        t          t	          |                     ddd                    }|S )ze
        Return nicely wrapped string representation of all
        available renderer names
        
G   z        z	         )widthinitial_indentsubsequent_indent)jointextwrapwrapr   rk   )r8   r   s     r-   r   z(RenderersConfig._available_renderers_str  sM    
 IIMT$ZZ  &")	  
 
	 r:   Nc                     |rR                      |          } fd|D             }|D ]+}t          |t                    r|                                 ,n"                     t                      j        }i }|D ]}t          |t                    rrt          |          }|                                D ]&\  }}	t          ||          rt          |||	           '|
                    |                    |                     |S )aY  
        Build a mime bundle dict containing a kev/value pair for each
        MimetypeRenderer specified in either the default renderer string,
        or in the supplied renderers_string argument.

        Note that this method skips any renderers that are not subclasses
        of MimetypeRenderer.

        Parameters
        ----------
        fig_dict: dict
            Figure dictionary
        renderers_string: str or None (default None)
            Renderer string to process rather than the current default
            renderer string

        Returns
        -------
        dict
        c                      g | ]
}|         S re   re   rf   s     r-   ri   z6RenderersConfig._build_mime_bundle.<locals>.<listcomp>2      DDDTd4jDDDr:   rw   )rj   rK   r   rz   r|   r4   r   rX   hasattrsetattrr_   to_mimebundle)
r8   fig_dictr   r\   rl   renderers_listrG   bundler]   r^   s
   `         r-   _build_mime_bundlez"RenderersConfig._build_mime_bundle  s3   *  	5!<<=MNNNDDDD^DDDN + ( (h(899 (%%'''(
 ,,1A,BBB!4N& 	@ 	@H($455 @>>"LLNN 0 0DAqx++ 0!Q///h44X>>???r:   c                     |rR                      |          } fd|D             }|D ]+}t          |t                    r|                                 ,n"                     t                      j        }|D ]v}t          |t                    r_t          |          }|                                D ]&\  }}t          ||          rt          |||           '|
                    |           wdS )a?  
        Perform external rendering for each ExternalRenderer specified
        in either the default renderer string, or in the supplied
        renderers_string argument.

        Note that this method skips any renderers that are not subclasses
        of ExternalRenderer.

        Parameters
        ----------
        fig_dict: dict
            Figure dictionary
        renderers_string: str or None (default None)
            Renderer string to process rather than the current default
            renderer string

        Returns
        -------
        None
        c                      g | ]
}|         S re   re   rf   s     r-   ri   z?RenderersConfig._perform_external_rendering.<locals>.<listcomp>`  r   r:   r   N)rj   rK   r   rz   r|   r4   r   rX   r   r   render)	r8   r   r   r\   rl   r   rG   r]   r^   s	   `        r-   _perform_external_renderingz+RenderersConfig._perform_external_renderingI  s"   *  
	5!<<=MNNNDDDD^DDDN + ( (h(899 (%%'''( ,,1A,BBB!4N& 	* 	*H($455 *>>"LLNN 0 0DAqx++ 0!Q///)))	* 	*r:   r<   )__name__
__module____qualname____doc__r9   r>   rB   rE   rH   rQ   rT   rV   rX   r_   propertyra   setterrn   objectr|   rj   r   r   r   r   re   r:   r-   r0   r0   E   s          $ $ $' ' '% % %  
% 
% 
%! ! !& & &' ' '     $ " " X": ^: : ^:" 	' 	' X	' , , , /5 
 
 
 
.  <	
 	
 	
  , , , ,\(* (* (* (* (* (*r:   r0   Tc                 z   t          | |          }t          j        |fd|i|}|rt          st	          d          t
          r*t          t
          j                  t          d          k     rt	          d          t                       t          	                    |d           t          j
        |fd|i| dS )a  
    Show a figure using either the default renderer(s) or the renderer(s)
    specified by the renderer argument

    Parameters
    ----------
    fig: dict of Figure
        The Figure object or figure dict to display

    renderer: str or None (default None)
        A string containing the names of one or more registered renderers
        (separated by '+' characters) or None.  If None, then the default
        renderers specified in plotly.io.renderers.default are used.

    validate: bool (default True)
        True if the figure should be validated before being shown,
        False otherwise.

    width: int or float
        An integer or float that determines the number of pixels wide the
        plot is. The default is set in plotly.js.

    height: int or float
        An integer or float specifying the height of the plot in pixels.
        The default is set in plotly.js.

    config: dict
        A dict of parameters to configure the figure. The defaults are set
        in plotly.js.

    Returns
    -------
    None
    r   z<Mime type rendering requires ipython but it is not installedz4.2.0zDMime type rendering requires nbformat>=4.2.0 but it is not installedT)rawN)r   	renderersr   ipython_displayrL   r   r   r'   r.   displayr   )figrG   validater\   r   r   s         r-   showr   {  s    F +399H )(XXXXQWXXF 2 	N    	78#78877;K;KKKV   	)***D111 )(XXXXQWXXXXXr:   plotly_mimetyper    nteractvscode)configr   )r   	connectednotebook_connectedkaggleazurecolabcocalc
databricksjsonpngjpegjpgsvgpdfbrowserfirefox)r   using)chromezgoogle-chromer   )chromiumzchromium-browserr   )r   include_plotlyjsiframecdniframe_connectedsphinx_gallerysphinx_gallery_pngPLOTLY_RENDERERzb
Invalid named renderer(s) specified in the 'PLOTLY_RENDERER'
environment variable: {env_renderer})env_rendererz/kaggle/inputAZURE_NOTEBOOKS_HOST
VSCODE_PIDNTERACT_EXECOCALC_PROJECT_IDDATABRICKS_RUNTIME_VERSIONSPYDER_ARGS)validate_executableTerminalInteractiveShellZMQInteractiveShellz
ipykernel.zplotly_mimetype+notebook)NT)Cr   r   ospackaging.versionr   plotlyr   plotly.io._base_renderersr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   plotly.io._utilsr   r"   ipythonr   r   r(   r.   r   r0   r   r   plotly_rendererr   jpeg_rendererdefault_rendererenvirongetr   rj   rL   rM   google.colabgoogleImportErrorpathexistsplotly.io.orcar   get_ipythonipython_info	__class__r   shellrN   r   
startswith
webbrowserr&   rn   ra   re   r:   r-   <module>r      s          				 % % % % % % # # # # # #                                       ( 9 8 8 8 8 8
%

%i
0
0-"-.?@@&&z22 # # # # # #   :l* l* l* l* l*f l* l* l*b	 O	7Y 7Y 7Y 7Y| !."".	
 )	, &	) %	(  
((777	* "2"2&D"Q"Q"Q	
 $nF333	( "]&111	' "]&111	' $n&&	( ,,..	,  !LNN	&  ;==	% !	&  	% ;==	% ;==	%  'f555	) &fYHHH	) %oV;VWWW	( '9  	*  %nFTJJJ	(  .fu U U U	
 7799	
 ";";"="=	
 
   z~~/66 Y	
,,\:::: 
 
 
j((.) )/ ) )
 
 	

 $ L  	& 	 	 	D	  $ ? ? $#  # 6"* D D"  $
 : :#  % ; ;$  $ 3rz A A# ( <
 J J'   ; ;	::::::!!!$ 	 	 	D	
 &&((L"+E %*D!D!D$ -+++T,*55lCC , -
  65	
$    		 #	 $	   sB   
H   %II I I K! !K)(K)	M M'&M'