
    -eJ9                       U d Z ddlmZ ddlZ ej        e          ZddlZddlZddl	m
Z
 ddlmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZ dd	lmZmZ dd
lmZ ddlm Z  ddl!m"Z" ddl#m#Z# ddl$m%Z% ddl&m'Z'm(Z( erddl)m*Z* ddl!m+Z+ dZ, G d d          Z- G d de-          Z. G d de-          Z/ G d de-          Z0 G d de-          Z1 G d d          Z2dGd%Z3dHd+Z4d,Z5 e
d-.           G d/ d0                      Z6 G d1 d2e          Z7i Z8d3e9d4<   dId8Z:dJd:Z;dKd<Z<dLd=Z=dLd>Z>dMdAZ?dLdBZ@dLdCZAdLdDZBdLdEZCdLdFZDdS )Nz

    )annotationsN)	dataclass)abspathbasenamedirnameexistsjoinnormpath)Path)TYPE_CHECKINGCallableIteratorSequence	TypedDict   )CSS_RESOURCESJS_RESOURCES)Document)Model)	Resources)settings)bundle_models   )contains_tex_stringis_tex_string)NotRequired)Hashes)Bundlebundle_for_objs_and_resourcesc                      e Zd ZdS )ArtifactN)__name__
__module____qualname__     2lib/python3.11/site-packages/bokeh/embed/bundle.pyr!   r!   K   s        Dr&   r!   c                      e Zd Zd	d
dZdS )	ScriptReftext/javascripturlstrtypereturnNonec                "    || _         || _        d S N)r+   r-   )selfr+   r-   s      r'   __init__zScriptRef.__init__O   s    			r&   Nr*   )r+   r,   r-   r,   r.   r/   r"   r#   r$   r3   r%   r&   r'   r)   r)   N   -              r&   r)   c                      e Zd Zd	d
dZdS )Scriptr*   contentr,   r-   r.   r/   c                "    || _         || _        d S r1   )r9   r-   )r2   r9   r-   s      r'   r3   zScript.__init__U   s    			r&   Nr4   )r9   r,   r-   r,   r.   r/   r5   r%   r&   r'   r8   r8   T   r6   r&   r8   c                      e Zd ZddZdS )StyleRefr+   r,   r.   r/   c                    || _         d S r1   )r+   )r2   r+   s     r'   r3   zStyleRef.__init__[   s    r&   N)r+   r,   r.   r/   r5   r%   r&   r'   r<   r<   Z   s(             r&   r<   c                      e Zd ZddZdS )Styler9   r,   r.   r/   c                    || _         d S r1   )r9   )r2   r9   s     r'   r3   zStyle.__init__`   s    r&   N)r9   r,   r.   r/   r5   r%   r&   r'   r?   r?   _   s(             r&   r?   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   g g g g i fddZddZddZddZdddZe	dd            Z
e	dd            Zd dZdS )!r   	list[str]js_filesjs_raw	css_filescss_rawr   hashesc                    |d d          | _         |d d          | _        |d d          | _        |d d          | _        i || _        d S r1   )rC   rD   rE   rF   rG   )r2   rC   rD   rE   rF   rG   s         r'   r3   zBundle.__init__l   sM     QQQi"111qqqz jr&   r.   Iterator[str]c              #  b   K   |                                  V  |                                 V  d S r1   )
_render_js_render_cssr2   s    r'   __iter__zBundle.__iter__t   s:      oo       r&   r,   c                N    t          j        | j        | j        | j                  S )N)rC   rD   rG   )r   renderrC   rD   rG   rM   s    r'   rK   zBundle._render_jsx   s"    "DM$+VZVabbbbr&   c                B    t          j        | j        | j                  S )N)rE   rF   )r   rP   rE   rF   rM   s    r'   rL   zBundle._render_css{   s    #dndlSSSSr&   Ttagboolc                p    |rt          j        | j        g           S d                    | j                  S )N)rD   rC   
)r   rP   rD   r	   )r2   rR   s     r'   scriptszBundle.scripts~   s6     	*&dkBGGGG99T[)))r&   c                    | j         S r1   )rC   rM   s    r'   js_urlszBundle.js_urls   s
    }r&   c                    | j         S r1   )rE   rM   s    r'   css_urlszBundle.css_urls   s
    ~r&   artifactr!   r/   c                   t          |t                    r!| j                            |j                   d S t          |t
                    r!| j                            |j                   d S t          |t                    r!| j	                            |j                   d S t          |t                    r!| j                            |j                   d S d S r1   )
isinstancer)   rC   appendr+   r8   rD   r9   r<   rE   r?   rF   )r2   r[   s     r'   addz
Bundle.add   s    h	** 	2M  .....&)) 	2Kx/00000(++ 	2N!!(,/////%(( 	2L 011111	2 	2r&   N)
rC   rB   rD   rB   rE   rB   rF   rB   rG   r   )r.   rI   )r.   r,   )T)rR   rS   r.   r,   )r.   rB   )r[   r!   r.   r/   )r"   r#   r$   __annotations__r3   rN   rK   rL   rV   propertyrX   rZ   r_   r%   r&   r'   r   r   d   s&        NNN-/R#%BQS! ! ! ! !! ! ! !c c c cT T T T* * * * *    X    X2 2 2 2 2 2r&   r   objs!Sequence[Model | Document] | None	resourcesResources | Noner.   c                   | Lt          |           }t          |          }t          |          }t          |          }t	          |          }n
d}d}d}d}d}g }g }g }	g }
|t          |j                  }|s|                    d           |s|                    d           |s|                    d           |s|                    d           |                    |          }|	                    |j
                   |	                    |j                   |		                    |j                   |
	                    |j                   t          | r|nd|          }|j        }|dk    r |	                    d	 |D                        n|d
k    r |	                    d |D                        ny|dk    rT|D ]P}|j        |                    |j                   $|                    t%          j        |j                             Qn|	                    d |D                        |rd |D             nd}t+          |          }||                    |           t-          |||	|
|r|j        ni           S )z Generate rendered CSS and JS resources suitable for the given
    collection of Bokeh objects

    Args:
        objs (seq[Model or Document]) :

        resources (Resources)

    Returns:
        Bundle

    NTzbokeh-widgetszbokeh-tableszbokeh-glzbokeh-mathjax)
componentsinlinec                @    g | ]}t          j        |j                  S r%   )r   _inlineartifact_path.0bundles     r'   
<listcomp>z1bundle_for_objs_and_resources.<locals>.<listcomp>   s&    ^^^I-f.BCC^^^r&   serverc                    g | ]	}|j         
S r%   )
server_urlrl   s     r'   ro   z1bundle_for_objs_and_resources.<locals>.<listcomp>   s    JJJFf/JJJr&   cdnc                    g | ]	}|j         
S r%   )rk   rl   s     r'   ro   z1bundle_for_objs_and_resources.<locals>.<listcomp>   s    MMMvf2MMMr&   c                    g | ]	}|j         
S r%   )	__class__)rm   objs     r'   ro   z1bundle_for_objs_and_resources.<locals>.<listcomp>   s    222s}222r&   )	_all_objs_use_widgets_use_tables_use_gl_use_mathjaxlistrg   removecloneextendrC   rD   rE   rF   _bundle_extensionsmodecdn_urlr^   r   rj   rk   r   r   rG   )rb   rd   all_objsuse_widgets
use_tablesuse_gluse_mathjaxrC   rD   rE   rF   rg   
extensionsr   rn   modelsexts                    r'   r   r      s    oo"8,,!(++
h''"8,, 
HFIG).//
>J--o>>>=J--n===9J--j999>J--o>>>OOzO::		*+++i&''',---y()))'D(BdINN
~8MM^^R\^^^____XOOJJjJJJKKKKU]]$ K K>-OOFN3333MM)"3F4H"I"IJJJJ	K OOMMMMMNNN6>H222222DF


C
c(FIwI8]	8H8H[]^^^r&   r   
set[Model]queryCallable[[type[Model]], bool]rS   c                d   t                      }| D ]}t          |d          r|j                            d          d         }|dk    r:||v r?|                    |           t
          j                                        D ]+}|j        	                    |          r ||          r  dS ,dS )N__implementation__.r   bokehTF)
sethasattr__view_module__splitr_   r   model_class_reverse_mapvaluesr#   
startswith)r   r   namesrw   namemodels         r'   _query_extensionsr      s    eeE    3,-- 	"((--a07??5==		$299;; 	  	 E**400  5<<  444	 
 5r&   zhttps://unpkg.comT)frozenc                  2    e Zd ZU ded<   ded<   dZded<   dS )ExtensionEmbedr,   rk   rr   Nz
str | Noner   )r"   r#   r$   r`   r   r%   r&   r'   r   r      s8         OOOGr&   r   c                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )PkgzNotRequired[str]r   versionmodulemainN)r"   r#   r$   r`   r%   r&   r'   r   r      sB         r&   r   zdict[str, Path]extension_dirsset[Model] | Noner   list[ExtensionEmbed]c                   t                      }g }|j        rddgndg}| | nt          j                                        }|D ]}t          |d          r|j                            d          d         }|dk    r;||v r@|                    |           t          |          }t          |j                  }	t          |	          }
t          |
d          }t          |
d          }t          |          s|j         d	}t          |
d
          }d }t          |          rWt!          |          5 }	 t#          j        |          }n# t"          j        j        $ r Y nw xY wd d d            n# 1 swxY w Y   d }|3|                    dd           }|t-          d          |                    dd          }|                    d|                    dd                     }|t.           d| d| d| }nt          || d          }t          |
t1          |                    }t          |          }t3          |          }| d| }t4          j        sUt9          j                    }|                    |                                           |                                 }| d| }nH|D ]2}t          || |           }|}| d| | }t          |          r n3t-          d| d          tC          |          tD          |<   | d| }tG          |||          }|$                    |           |S )Nz.min.jsz.jsr   r   r   r   distzbokeh.ext.jsonzstatic/extensionszpackage.jsonr   z*invalid package.json; missing package namer   latestr   r   /@z?v=z!can't resolve artifact path for 'z' extension)%r   minifiedr   r   r   r   r   r   r_   
__import__r   __file__r   r	   r   root_urlopenjsonloaddecoderJSONDecodeErrorget
ValueError_default_cdn_hostr
   r   r   devhashlibsha256updateencode	hexdigestr   r   r   r^   )rb   rd   r   bundlesr   r   rw   r   r   	this_filebase_dirdist_dirext_pathserver_prefixpackage_pathpkgior   pkg_namepkg_versionpkg_mainrk   artifacts_dirartifact_nameserver_pathshavstringr   rr   embeds                                 r'   r   r     s   eeE$&G'0'9F)U##wJ'ttU-J-Q-Q-S-SH A A3,-- 	"((--a07??5==		$D!!FO,,	9%%&))"233h 	$-@@@Hn55, 	l## r)B--CC|3   D               #?#&7764#8#8H !MNNN'')X66Kwwx)>)>??H#.TTTTKTT(TTT,,,77 8H+=+=>>M#M22M$]33M!33M33K< ;n&&

;--//000--//!,::::! X X $X$~~~ > > (!%333c33-(( E !!VT!V!V!VWWW#M22t%5555
}j'BBuNs6   4E16E
E1E"E1!E""E11E5	8E5	Sequence[Model | Document]c                    t                      }| D ]P}t          |t                    r"|j        D ]}||                                z  }9||                                z  }Q|S r1   )r   r]   r   roots
references)rb   r   rw   roots       r'   rx   rx   P  su    55H ) )c8$$ 	)	 . .DOO---. (((HHOr&   Callable[[Model], bool]c                :    t          fd| D                       S )z Whether any of a collection of objects satisfies a given query predicate

    Args:
        objs (set[Model]) :

        query (callable)

    Returns:
        True, if ``query(obj)`` is True for some object in ``objs``, else False

    c              3  .   K   | ]} |          V  d S r1   r%   )rm   xr   s     r'   	<genexpr>z_any.<locals>.<genexpr>i  s+      &&AuuQxx&&&&&&r&   )any)rb   r   s    `r'   _anyr   \  s(     &&&&&&&&&&r&   c                T    ddl m t          | fd          pt          |           S )z Whether a collection of Bokeh objects contains a TableWidget

    Args:
        objs (seq[Model or Document]) :

    Returns:
        bool

    r   TableWidgetc                $    t          |           S r1   r]   )rw   r   s    r'   <lambda>z_use_tables.<locals>.<lambda>v  s    jk&B&B r&   )models.widgetsr   r   _ext_use_tablesr   r   s    @r'   rz   rz   k  s?     -,,,,,BBBBCC`W_G`G``r&   c                T    ddl m t          | fd          pt          |           S )z Whether a collection of Bokeh objects contains a any Widget

    Args:
        objs (seq[Model or Document]) :

    Returns:
        bool

    r   Widgetc                $    t          |           S r1   r   )rw   r   s    r'   r   z_use_widgets.<locals>.<lambda>  s    jf&=&= r&   )r   r   r   _ext_use_widgetsr   r   s    @r'   ry   ry   x  s@     ('''''====>>\BRS[B\B\\r&   r   r   c                   ddl m} ddlm} ddlm}m} ddlm} t          | |          r0t          | j
        t                    rt          | j
                  rdS t          | |          r0t          | j        t                    rt          | j                  rdS t          | |          rst          | j        t                    rt          | j                  rdS | j                                        D ])}t          |t                    rt          |          r dS *t          | |          r$| j        s| j        st'          | j
                  rdS t          | |          r| j        st'          | j
                  rdS dS )zWhether a model requires MathJax to be loaded
    Args:
        model (Model): Model to check
    Returns:
        bool: True if MathJax required, False if not
    r   )TextAnnotation)Axis)Div	Paragraph)AbstractSliderTF)models.annotationsr   models.axesr   models.widgets.markupsr   r   models.widgets.slidersr   r]   textr,   r   title
axis_labelmajor_label_overridesr   disable_mathrender_as_textr   )r   r   r   r   r   r   vals          r'   _model_requires_mathjaxr     s    433333""""""77777777777777%(( ej#&& 	=+D+D 	4%(( ek3'' 	M%+,F,F 	4% e&,, 	u?O1P1P 	4.5577 	 	C#s## c(:(: tt% e&8 AU uz** 	4%## E,> uz** 	45r&   c                T    ddl m t          | fd          pt          |           S )z Whether a collection of Bokeh objects contains a model requesting MathJax
    Args:
        objs (seq[Model or Document]) :
    Returns:
        bool
    r   MathTextc                B    t          |           pt          |           S r1   )r]   r   )rw   r  s    r'   r   z_use_mathjax.<locals>.<lambda>  s     jh&?&?&_CZ[^C_C_ r&   )models.textr  r   _ext_use_mathjaxr   r  s    @r'   r|   r|     s@     '&&&&&____``~dtu}d~d~~r&   c                6    ddl m t          | fd          S )z Whether a collection of Bokeh objects contains a plot requesting WebGL

    Args:
        objs (seq[Model or Document]) :

    Returns:
        bool

    r   )Plotc                :    t          |           o
| j        dk    S )Nwebgl)r]   output_backend)rw   r  s    r'   r   z_use_gl.<locals>.<lambda>  s    jd&;&;&]@RV]@] r&   )models.plotsr  r   )r   r  s    @r'   r{   r{     s1     $#####]]]]^^^r&   c                6    ddl m t          | fd          S )Nr   r   c                $    t          |           S r1   
issubclass)clsr   s    r'   r   z!_ext_use_tables.<locals>.<lambda>  s    :c;3O3O r&   )r   r   r   r   s    @r'   r   r     s/    ,,,,,,X'O'O'O'OPPPr&   c                6    ddl m t          | fd          S )Nr   r   c                $    t          |           S r1   r  )r  r   s    r'   r   z"_ext_use_widgets.<locals>.<lambda>  s    :c63J3J r&   )r   r   r   r   s    @r'   r   r     s/    ''''''X'J'J'J'JKKKr&   c                6    ddl m t          | fd          S )Nr   r   c                $    t          |           S r1   r  )r  r  s    r'   r   z"_ext_use_mathjax.<locals>.<lambda>  s    :c83L3L r&   )r  r  r   r  s    @r'   r  r    s/    &&&&&&X'L'L'L'LMMMr&   )rb   rc   rd   re   r.   r   )r   r   r   r   r.   rS   )rb   r   rd   r   r.   r   )rb   r   r.   r   )rb   r   r   r   r.   rS   )r   r   r.   rS   )r   r   r.   rS   )E__doc__
__future__r   logging	getLoggerr"   logr   r   dataclassesr   os.pathr   r   r   r   r	   r
   pathlibr   typingr   r   r   r   r   core.templatesr   r   document.documentr   r   r   rd   r   r   util.compilerr   utilr   r   typing_extensionsr   r   __all__r!   r)   r8   r<   r?   r   r   r   r   r   r   r   r`   r   rx   r   rz   ry   r   r|   r{   r   r   r  r%   r&   r'   <module>r$     s     # " " " " " g!!   ! ! ! ! ! !                                   9 8 8 8 8 8 8 8 ( ( ( ( ( (       ! ! ! ! ! !       ) ) ) ) ) ) 4 4 4 4 4 4 4 4 #------""""""	 	 	 	 	 	 	 	           X       x   
    H   
02 02 02 02 02 02 02 02dC_ C_ C_ C_R   ( ( 
$       
    )    #% $ $ $ $K K K KZ
 
 
 
' ' ' 'a a a a] ] ] ]$ $ $ $L	 	 	 	_ _ _ _Q Q Q QL L L LN N N N N Nr&   