
    e%                     F   d dl Z d dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlmZ d Zd Zd Zed             Zed             Zed	             Zed
             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed             Zd Z  G d dej!                  Z"d Z#d Z$d Z%dS )    N)HTMLJSON	DataFrameMarkdownPaneBaseStr)streamz_availablec                  @    t          j        d          t          u sJ d S )N**Markdown**)r   get_pane_typer        <lib/python3.11/site-packages/panel/tests/pane/test_markup.pytest_get_markdown_pane_typer      s$    !.11X======r   c                  p    t          j        dg di          } t          j        |           t          u sJ d S )NA         )pdr   r   r   )dfs    r   test_get_dataframe_pane_typer      s<    	sIII&	'	'B!"%%222222r   c                  l    t          j        g d          } t          j        |           t          u sJ d S )Nr   )r   Seriesr   r   r   )sers    r   test_get_series_pane_typer      s7    
)III

C!#&&)333333r   c                  f    ddl m}   | dd          }t          j        |          t          u sJ d S Nr   Random200ms50msintervalfreq)streamz.dataframer!   r   r   r   r!   sdfs     r   $test_get_streamz_dataframe_pane_typer*      sJ    ((((((
&'
/
/
/C!#&&)333333r   c                      ddl m}   | dd                              d                                          }t	          j        |          t          u sJ d S Nr   r    r"   r#   r$   y)r'   r!   groupbysumr   r   r   r(   s     r   %test_get_streamz_dataframes_pane_typer0      sd    ((((((
&'
/
/
/
7
7
<
<
@
@
B
BC!#&&)333333r   c                  p    ddl m}   | dd          }t          j        |j                  t
          u sJ d S r   )r'   r!   r   r   xr   r(   s     r   !test_get_streamz_series_pane_typer3   $   sL    ((((((
&'
/
/
/C!#%((I555555r   c                      ddl m}   | dd                              d                                          }t	          j        |j                  t          u sJ d S r,   )r'   r!   r.   r/   r   r   r2   r   r(   s     r   "test_get_streamz_seriess_pane_typer5   *   sf    ((((((
&'
/
/
/
7
7
<
<
@
@
B
BC!#%((I555555r   c                    t          d          }|                    | |          }|j        |j        d                  d         |u sJ |j                            d          sJ d|_        |j        |j        d                  d         |u sJ |j                            d          sJ |                    |           |j        i k    sJ d S )Nr   commidr   z9&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt;&lt;/p&gt;
z
*Markdown*z1&lt;p&gt;&lt;em&gt;Markdown&lt;/em&gt;&lt;/p&gt;
)r   get_root_modelsreftextendswithobject_cleanupdocumentr8   panemodels       r   test_markdown_panerE   0   s    N##D MM(M..E<	$(+u4444:[\\\\\ DK<	$(+u4444:STTTTT 	MM%<2r   c                    t          d          }|                    | |          }|j        |j        d                  d         |u sJ |j                            d          sJ d|_        |j                            d          sJ d S )Nz    ABCr7   r9   r   z&lt;p&gt;ABC&lt;/p&gt;
Fz&lt;pre&gt;&lt;code&gt;ABC)r   r:   r;   r<   r=   r>   dedent
startswithrA   s       r   test_markdown_pane_dedentrI   A   s    ID MM(M..E<	$(+u4444:9:::::DK:  !=>>>>>>>r   c                    t          dd          }|                    | |          }|j        |j        d                  d         |u sJ |j        dk    sJ t          d          }|                    | |          }|j        |j        d                  d         |u sJ |j        d	k    sJ t          ddd
di          }|                    | |          }|j        |j        d                  d         |u sJ |j        dk    sJ d S )NzHello
World
I'm here!markdown-itrendererr7   r9   r   zF&lt;p&gt;Hello&lt;br /&gt;
World&lt;br /&gt;
I&#x27;m here!&lt;/p&gt;
zHello

Worldz2&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;World&lt;/p&gt;
breaksF)rM   renderer_optionsz.&lt;p&gt;Hello
World
I&#x27;m here!&lt;/p&gt;
r   r:   r;   r<   r=   rA   s       r   test_markdown_pane_newlinerQ   L   s>   !  D MM(M..E<	$(+u4444:ddddd $%%DMM(M..E<	$(+u4444:OOOOO !"E*  D
 MM(M..E<	$(+u4444:LLLLLLLr   c                     t          dd          }|                    | |          }|j        |j        d                  d         |u sJ |j        dk    sJ d S )Nz%
    - [x] Task1
    - [ ] Task2
    rK   rL   r7   r9   r   a  &lt;ul class=&quot;contains-task-list&quot;&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input class=&quot;task-list-item-checkbox&quot; checked=&quot;checked&quot; disabled=&quot;disabled&quot; type=&quot;checkbox&quot;&gt; Task1&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; type=&quot;checkbox&quot;&gt; Task2&lt;/li&gt;
&lt;/ul&gt;
rP   rA   s       r   'test_markdown_pane_markdown_it_rendererrS   i   s       ! ! !D MM(M..E<	$(+u4444:	H	 	 	 	 	 	r   c                     t          dd          }|                    | |          }|j        |j        d                  d         |u sJ d|j        v sJ dd	g|_        |j                            d
          sJ d S )Nz$
    ```python
    None
    ```
    markdownrL   r7   r9   r   
codehiliteextrasmartyz/&lt;pre&gt;&lt;code class=&quot;language-python)r   r:   r;   r<   r=   
extensionsrH   rA   s       r   test_markdown_pane_extensionsrZ   }   s      	  D MM(M..E<	$(+u44445:%%%%)DO:  !RSSSSSSSr   c                 `   t          d          }|                    | |          }|j        |j        d                  d         |u sJ |j        dk    sJ d|_        |j        |j        d                  d         |u sJ |j        dk    sJ |                    |           |j        i k    sJ d S )N<h1>Test</h1>r7   r9   r   z&lt;h1&gt;Test&lt;/h1&gt;<h2>Test</h2>z&lt;h2&gt;Test&lt;/h2&gt;)r   r:   r;   r<   r=   r?   r@   rA   s       r   test_html_paner^      s      D MM(M..E<	$(+u4444:44444 "DK<	$(+u4444:44444 	MM%<2r   c                    t          dd          }|                    | |          }|j        |j        d                  d         |u sJ |j                            d          sJ d|_        |j                            d	          sJ d S )
Nz<h1><strong>HTML</h1></strong>T)sanitize_htmlr7   r9   r   z!&lt;strong&gt;HTML&lt;/strong&gt;Fz6&lt;h1&gt;&lt;strong&gt;HTML&lt;/h1&gt;&lt;/strong&gt;)r   r:   r;   r<   r=   r>   r`   rA   s       r   test_html_pane_sanitize_htmlra      s    0EEED MM(M..E<	$(+u4444:BCCCCCD:WXXXXXXXr   c                    t          t          j         dg di                    }|                    | |          }|j        |j        d                  d         |u sJ |j                            d          sJ |j        }t          j         dg di          |_        |j        |j        d                  d         |u sJ |j                            d          sJ |j        |k    sJ |                    |           |j        i k    sJ d S )Nr   r   r7   r9   r   z	&lt;tableB)	r   r   r:   r;   r<   r=   rH   r?   r@   )rB   r8   rC   rD   	orig_texts        r   test_dataframe_pane_pandasre      s   R\3			"23344D MM(M..E<	$(+u4444:  -----
I ,YYY/00DK<	$(+u4444:  -----:"""" 	MM%<2r   c                 X   d}t          j        d|gi          }t          |          }|                    | |          }|j        |j        d                  d         |u sJ |j        sJ d|j        vsJ d|_        d|j        v sJ |                    |           |j        i k    sJ d S )Nz.<a href='https://panel.holoviz.org/'>Panel</a>urlr7   r9   r   zD&lt;a href=&#x27;https://panel.holoviz.org/&#x27;&gt;Panel&lt;/a&gt;F)r   r   r:   r;   r<   escaper=   r@   )rB   r8   rg   r   rC   rD   s         r   #test_dataframe_pane_supports_escaperi      s    
:C	usen	%	%BR==D MM(M..E<	$(+u4444;QY^YcccccDKQUZU_____ 	MM%<2r   c                    ddl m}  |dd          }t          |          }|j        J |                    | |          }|j        J |j        |j        d                  d         |u sJ |j        dk    sJ |j        |_	        |j        |j        d                  d         |u sJ |j        dk    sJ |
                    |           |j        J |j        i k    sJ d S )	Nr   r    r"   r#   r$   r7   r9    )r'   r!   r   _streamr:   r;   r<   r=   r2   r?   r@   )rB   r8   r!   r)   rC   rD   s         r   test_dataframe_pane_streamzrm      s   ((((((
&'
/
/
/CS>>D< MM(M..E<###<	$(+u4444: %DK<	$(+u4444: 	MM%<<2r   c                 `   t          d          }|                    | |          }|j        |j        d                  d         |u sJ |j        dk    sJ d|_        |j        |j        d                  d         |u sJ |j        dk    sJ |                    |           |j        i k    sJ d S )Nr\   r7   r9   r   z0&lt;pre&gt;&lt;h1&gt;Test&lt;/h1&gt;&lt;/pre&gt;r]   z0&lt;pre&gt;&lt;h2&gt;Test&lt;/h2&gt;&lt;/pre&gt;)r   r:   r;   r<   r=   r?   r@   rA   s       r   test_string_panero      s    D MM(M..E<	$(+u4444:KKKKK "DK<	$(+u4444:KKKKK 	MM%<2r   c                       e Zd Zd ZdS )NumpyEncoderc                     t          |t          j                  rUt          j        |j                                      d          }t          |t          |j	                  |j
                  S t          j                            | |          S )Nzutf-8)__ndarray__dtypeshape)
isinstancenpndarraybase64	b64encodedatadecodedictstrrt   ru   jsonJSONEncoderdefault)selfobjdata_b64s      r   r   zNumpyEncoder.default   sz    c2:&& 	)'1188AAHH!#)nn!i) ) ) ) ''c222r   N)__name__
__module____qualname__r   r   r   r   rq   rq      s#        3 3 3 3 3r   rq   c                  X   t          j        ddi          sJ t          j        g d          sJ t          j        d          dk    sJ t          j        dt          j        g d          i          rJ t          j        dt          j        g d          it                    sJ d S )Nr   r   r   z{"a": 1}r   array)encoder)r   appliesrw   r   rq   r   r   r   test_json_appliesr     s    <A<			"""""<
##q((((|Wbhyyy&9&9:;;;;;<"(999"5"56MMMMMMMMr   c                    t          ddi          }|                    | |          }|j        dk    sJ |j        |j        d                  d         |u sJ d|_        |j        dk    sJ |j        |j        d                  d         |u sJ dd	i|_        |j        d
k    sJ |j        |j        d                  d         |u sJ d	g|_        |j        dk    sJ |j        |j        d                  d         |u sJ d	|_        |j        dk    sJ |j        |j        d                  d         |u sJ d|_        |j        dk    sJ |j        |j        d                  d         |u sJ |                    |           |j        i k    sJ d S )Nar   r7   z{"a": 2}r9   r   z{"b": 3}testzcan't show thisz{"test": "can't show this"}z["can't show this"]z"can't show this"zcan show thisz"can show this")r   r:   r=   r;   r<   r?   r@   rA   s       r   test_json_paner     s   a>>DMM(M..E:####<	$(+u4444DK:####<	$(+u4444,-DK:77777<	$(+u4444$%DK://///<	$(+u4444#DK:-----<	$(+u4444!DK:*****<	$(+u4444 	MM%<2r   c                 z    t          ddid          }|                    | |          }d|_        |j        J d S )Nr   r   )depthr7   )r   r:   r   rA   s       r   (test_json_pane_rerenders_on_depth_changer   (  sH    a"""DMM(M..EDJ;r   )&ry   r   numpyrw   pandasr   
panel.paner   r   r   r   r   r   panel.tests.utilr	   r   r   r   r*   r0   r3   r5   rE   rI   rQ   rS   rZ   r^   ra   re   ri   rm   ro   r   rq   r   r   r   r   r   r   <module>r      sS                            / . . . . .> > >3 3 34 4 4 4 4 4
 4 4 4
 6 6 6
 6 6 6
  "	? 	? 	?M M M:  (T T T  "
Y 
Y 
Y  &  $   .  "3 3 3 3 34# 3 3 3N N N  @    r   