
    eH              	          d dl Z d dlZd dlmZmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZ d dl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mZ eee	fZd
  e j        e                                          D             Z ej!        "                    de           d             Z#ej!        "                    deeeeeeg          d             Z$ej!        "                    deeeeeg          d             Z%ej!        "                    deeeg          d             Z&ej!        "                    deeeg          d             Z'ej!        "                    deeg          d             Z(ej!        "                    deeg          d             Z)ej!        "                    deeg          d             Z*ej!        "                    deeg          d             Z+ej!        "                    deeeg          d             Z,ej!        "                    deeeg          d             Z-ej!        "                    deeeg          d             Z.ej!        "                    deeeg          d             Z/ej!        "                    ddgeefeefg          d             Z0ej!        "                    deeg          d             Z1ej!        "                    deeg          d             Z2ej!        "                    deeg          d             Z3ej!        "                    deeg          d             Z4ej!        "                    deeg          d              Z5ej!        "                    deeg          d!             Z6ej!        "                    deeg          d"             Z7ej!        "                    deeg          d#             Z8ej!        "                    deeg          d$             Z9ej!        "                    deeg          d%             Z:ej!        "                    deeg          d&             Z;ej!        "                    deeg          d'             Z<ej!        "                    deeg          d(             Z=ej!        "                    deeg          d)             Z>ej!        "                    deeg          d*             Z?ej!        "                    deeg          d+             Z@ej!        "                    deeg          d,             ZAej!        "                    deeg          d-             ZBej!        "                    deeg          d.             ZCej!        "                    deeg          d/             ZDd0 ZEd1 ZFej!        "                    deeeeg          ej!        "                    d2g d3          d4                         ZGd5 ZHej!        "                    deeeeeg          d6             ZId7 ZJej!        "                    deeeeg          d8             ZKd9 ZLd: ZMej!        "                    deeeeeg          d;             ZNej!        "                    deeeeeg          d<             ZOej!        "                    d=g d>          d?             ZPd@ ZQej!        "                    dAdBdCg          dD             ZRej!        "                    dAdBdCg          dE             ZSej!        "                    dAdBdCg          dF             ZTej!        "                    dAdBdCg          dG             ZUdS )H    N)ColumnDivRow)ChatInterface)	AccordionCardr   r   SpacerTabs	WidgetBox)	ListPanelNamedListPanel)BokehMarkdown)Param)check_layoutable_properties)DebuggerMultiSelectc                 p    g | ]3}|j                             d           t          |t                    1|4S )_)__name__
startswith
issubclassexcluded).0ws     <lib/python3.11/site-packages/panel/tests/layout/test_base.py
<listcomp>r      sV     R R RAj++C00R9CAx9P9PRa R R R    panelc                     ddl m}  ||           j        }t          |          dk    sJ d|d|             d|v sJ d S )Nr   )	signature   zFound following parameters z on objects)inspectr!   
parameterslen)r   r!   r%   s      r   test_layout_signaturer'      sl    !!!!!!5!!,Jz??a***V[V[!\
""""""r   layoutc                 f     |             }|                     ||          }t          ||           d S N)get_rootr   r(   documentcommlmodels        r   test_layout_propertiesr1      s6    AJJx&&E5)))))r   c                      |             }|                     ||          }|j        d         |j        v sJ |j        |j        d                  |d fk    sJ |                    |           |j        i k    sJ d S )Nid)r+   ref_models_cleanupr,   s        r   test_layout_model_cache_cleanupr7   #   s    AJJx&&E9T?ai''''9UYt_%%6666JJu9??????r   c                     t                      }t                      } | ||          }t          d |j        D                       sJ d S )Nc              3   @   K   | ]}t          |t                    V  d S r*   
isinstancer   r   ps     r   	<genexpr>z*test_layout_constructor.<locals>.<genexpr>6   ,      <<z!U##<<<<<<r   r   allr#   r   div1div2r(   s       r   test_layout_constructorrE   0   sP    55D55DU4F<<V^<<<<<<<<<<r   c                     t                      }t                      } | ||g          }t          d |j        D                       sJ d S )Nr#   c              3   @   K   | ]}t          |t                    V  d S r*   r:   r<   s     r   r>   z=test_layout_constructor_with_objects_param.<locals>.<genexpr>>   r?   r   r@   rB   s       r   *test_layout_constructor_with_objects_paramrI   9   sU    55D55DUD$<(((F<<V^<<<<<<<<<<r   c                     t                      }t                      } | ||          }t                      }t                      } | ||          }||z   }	|	                    ||          }
|
j        ||||gk    sJ d S Nr.   r   r+   children)r   r-   r.   rC   rD   layout1div3div4layout2combinedr0   s              r   test_layout_addrT   A   s    55D55DeD$G55D55DeD$G HhT22E>dD$5555555r   c                     t                      }t                      } | ||          }t                      }t                      }|||gz   }|                    ||          }	|	j        ||||gk    sJ d S rK   rM   
r   r-   r.   rC   rD   rO   rP   rQ   rS   r0   s
             r   test_layout_add_listrW   Q   s    55D55DeD$G55D55D$%HhT22E>dD$5555555r   c                     t                      }t                      } | ||          }t                      }t                      }||g|z   }|                    ||          }	|	j        ||||gk    sJ d S rK   rM   rV   s
             r   test_layout_radd_listrY   `   s    55D55DeD$G55D55Dd|g%HhT22E>dD$5555555r   c                     t                      }t                      } | ||          }t          j        t                    5  |dz    d d d            d S # 1 swxY w Y   d S )N   )r   pytestraises	TypeError)r   r-   r.   rC   rD   r(   s         r   test_layout_add_errorr_   o   s    55D55DU4F	y	!	!  

                 s   AAAc                     t                      }t                      } | ||          }|d         j        |u sJ |d         j        |u sJ d S Nr   r[   )r   objectrB   s       r   test_layout_getitemrc   y   s[    55D55DU4F!9t####!9t######r   c                     t                      }t                      } | ||          }| j        }t          |          d|z  k    sJ d S )Nz(%s
    [0] Bokeh(Div)
    [1] Bokeh(Div))r   r   repr)r   rC   rD   r(   names        r   test_layout_reprrg      sO    55D55DU4F>D<<G$NNNNNNNr   c                 .   t                      }t                      } | ||          }|                    t                    }t          |          dk    sJ t	          d |D                       sJ |d         j        |u sJ |d         j        |u sJ d S )Nr"   c              3   @   K   | ]}t          |t                    V  d S r*   r:   r<   s     r   r>   z-test_layout_select_by_type.<locals>.<genexpr>   s,      33z!U##333333r   r   r[   )r   selectr   r&   rA   rb   )r   rC   rD   r(   paness        r   test_layout_select_by_typerl      s    55D55DU4FMM%  Eu::????33U333333338?d""""8?d""""""r   c                     t                      }t                       | |          }|                    fd          }t          |          dk    sJ |d         j        u sJ d S )Nc                 *    t          | dd           u S )Nrb   )getattr)xrD   s    r   <lambda>z0test_layout_select_by_function.<locals>.<lambda>   s    GAx$>$>$$F r   r[   r   )r   rj   r&   rb   )r   rC   r(   rk   rD   s       @r   test_layout_select_by_functionrr      sq    55D55DU4FMMFFFFGGEu::????8?d""""""r   
model_typec                     t                      }t                      } | ||          }|                    ||          }t          ||          sJ |j        ||gk    sJ d S rK   )r   r+   r;   rN   )r   rs   r-   r.   rC   rD   r(   r0   s           r   test_layout_get_rootru      sm    55D55DU4FOOH4O00EeZ(((((>dD\))))))r   c                     t                      }t                      } | ||          }|                    ||          }|                                 |j        ||gk    sJ d S rK   )r   r+   reverserN   r   r-   r.   rC   rD   r(   r0   s          r   test_layout_reversery      sg    55D55DU4FOOH4O00E
NN>dD\))))))r   c                     t                      }t                      } | ||          }|                    ||          }t                      }|                    |           |j        |||gk    sJ d S rK   )r   r+   appendrN   r   r-   r.   rC   rD   r(   r0   rP   s           r   test_layout_appendr}      su    55D55DU4FOOH4O00E55D
MM$>dD$///////r   c                    t                      }t                      } | ||          }|                    ||          }t                      }t                      }|                    ||g           |j        ||||gk    sJ d S rK   )r   r+   extendrN   	r   r-   r.   rC   rD   r(   r0   rP   rQ   s	            r   test_layout_extendr      s    55D55DU4FOOH4O00E55D55D
MM4,>dD$5555555r   c                     t                      }t                      } | ||          }|                    ||          }t                      }t                      }|||gz  }|j        ||||gk    sJ d S rK   rM   r   s	            r   test_layout_iaddr      s|    55D55DU4FOOH4O00E55D55D
tTlF>dD$5555555r   c                     t                      }t                      } | ||          }|                    ||          }t                      }|                    d|           |j        |||gk    sJ d S NrL   r[   )r   r+   insertrN   r|   s           r   test_layout_insertr      sw    55D55DU4FOOH4O00E55D
MM!T>dD$///////r   c                 P   t                      }t                      } | ||          }|j        \  }}|                    ||          }|j        |j        d                  d         |j        d         u sJ t                      }	|	|d<   |j        |	|gk    sJ |j        i k    sJ d S NrL   r3   r   r   r#   r+   r5   r4   rN   )
r   r-   r.   rC   rD   r(   p1p2r0   rP   s
             r   test_layout_setitemr      s    55D55DU4F^FBOOH4O00E:eio&q)U^A->>>>>55DF1I>dD\)))):r   c                    t                      }t                      } | ||          }|                    ||           t                      }t          j        t                    5  ||d<   d d d            d S # 1 swxY w Y   d S )NrL   r"   r   r+   r\   r]   
IndexErrorr   r-   r.   rC   rD   r(   rP   s          r   !test_layout_setitem_out_of_boundsr     s    55D55DU4F
OOH4O(((55D	z	"	"  q	                 s   'A::A>A>c                    t                      }t                      } | ||          }|j        \  }}|                    ||          }|j        |j        d                  d         |j        d         u sJ t                      }	t                      }
|	|
g|d d <   |j        |	|
gk    sJ |j        i k    sJ |j        i k    sJ d S r   r   )r   r-   r.   rC   rD   r(   r   r   r0   rP   rQ   s              r   test_layout_setitem_replace_allr     s    55D55DU4F^FBOOH4O00E:eio&q)U^A->>>>>55D55DtF111I>dD\))))::r   c                    t                      }t                      } | ||          }|                    ||           t                      }t          j        t                    5  ||d d <   d d d            d S # 1 swxY w Y   d S rK   r   r   s          r   %test_layout_setitem_replace_all_errorr   !  s    55D55DU4F
OOH4O(((55D	z	"	"  qqq	                 s   'A<<B B c                    t                      }t                      }t                      } | |||          }|j        \  }}}	|                    ||          }
|j        |
j        d                  d         |
j        d         u sJ t                      }t                      }||g|dd <   |
j        |||gk    sJ |j        i k    sJ |	j        i k    sJ d S )NrL   r3   r   r[   r   )r   r-   r.   rC   rD   rP   r(   r   r   p3r0   rQ   s               r   !test_layout_setitem_replace_slicer   -  s    55D55D55DU4t$$FJBBOOH4O00E:eio&q)U^A->>>>>55D55DF122J>dD$/////::r   c                 2   t                      }t                      }t                      } | |||          }|                    ||           t                      }t          j        t                    5  |g|dd <   d d d            d S # 1 swxY w Y   d S r   r   r   r-   r.   rC   rD   rP   r(   s          r   'test_layout_setitem_replace_slice_errorr   @  s    55D55D55DU4t$$F
OOH4O(((55D	z	"	"  Vqrr
                    6	BBBc                 2   t                      }t                      }t                      } | |||          }|                    ||           t                      }t          j        t                    5  |g|dd<   d d d            d S # 1 swxY w Y   d S )NrL         r   r   s          r   /test_layout_setitem_replace_slice_out_of_boundsr   M  s    55D55D55DU4t$$F
OOH4O(((55D	z	"	"  fqs                 r   c                 R   t                      }t                      } | ||          }|j        \  }}|                    ||          }|j        |j        d                  d         |j        d         u sJ |                    d           |j        |gk    sJ |j        i k    sJ d S r   )r   r#   r+   r5   r4   rN   pop	r   r-   r.   rC   rD   r(   r   r   r0   s	            r   test_layout_popr   Z  s    55D55DU4F^FBOOH4O00E:eio&q)U^A->>>>>
JJqMMM>dV####:r   c                 R   t                      }t                      } | ||          }|j        \  }}|                    ||          }|j        |j        d                  d         |j        d         u sJ |                    |           |j        |gk    sJ |j        i k    sJ d S r   )r   r#   r+   r5   r4   rN   remover   s	            r   test_layout_remover   i  s    55D55DU4F^FBOOH4O00E:eio&q)U^A->>>>>
MM">dV####:r   c                 j   t                      }t                      } | ||          }|j        \  }}|                    ||          }|j        |j        d                  d         |j        d         u sJ |                                 |j        g k    sJ |j        |j        cxk    ri k    sn J d S r   )r   r#   r+   r5   r4   rN   clearr   s	            r   test_layout_clearr   x  s    55D55DU4F^FBOOH4O00E:eio&q)U^A->>>>>
LLNNN>R:))))r))))))))r   c                    t                      }t                      } | ||          }|                    ||          }|j        d         j        |j        d         j        u sJ |j        d         j        |j        d         j        u sJ d S ra   )r   cloner#   rb   r   rC   rD   r(   r   s        r   test_layout_clone_argsr     s    55D55DU4FLLt$$E>!#u}Q'7'>>>>>>!#u}Q'7'>>>>>>>r   c                     t                      }t                      } | ||          }|                    dd          }|j        dk    sJ |j        dk    sJ d S )N  stretch_heightwidthsizing_mode)r   r   r   r   r   s        r   test_layout_clone_kwargsr     si    55D55DU4FLLs0@LAAE;# 0000000r   c                 P   t                      }t                      } | ||dd          }|                                }|j        d         j        |j        d         j        u sJ |j        d         j        |j        d         j        u sJ |j        dk    sJ |j        dk    sJ d S )Nr   r   r   r   r[   r   r   r#   rb   r   r   r   s        r   #test_layout_clone_no_args_no_kwargsr     s    55D55DU4S6FGGGFLLNNE>!#u}Q'7'>>>>>>!#u}Q'7'>>>>>;# 0000000r   c                 V   t                      }t                      } | ||          }|                    ||fdd          }|j        d         j        |j        d         j        u sJ |j        d         j        |j        d         j        u sJ |j        dk    sJ |j        dk    sJ d S )Nr   r   )r#   r   r   r   r[   r   r   s        r   #test_layout_clone_objects_in_kwargsr     s    55D55DU4FLLt/   E
 >!#u}Q'7'>>>>>>!#u}Q'7'>>>>>;# 0000000r   c                     t                      }t                      } | ||          }t          j        t                    5  |                    ||           d d d            d S # 1 swxY w Y   d S )NrG   )r   r\   r]   
ValueErrorr   rB   s       r   ,test_layout_clone_objects_in_args_and_kwargsr     s    55D55DU4F	z	"	" ) )T4((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   A''A+.A+c                     t          d          }|                    | |          }t          ||j                  sJ |j        rJ d|_        |j        sJ d S )Nr   rL   T)r   r+   r;   _bokeh_model
horizontal)r-   r.   
widget_boxr0   s       r   test_widgetboxr     sn    ;''Jt44EeZ455555 $$$$ J      r   c                     dd l  G fddj                  } |            }|j                            | |          }d|_        |j        d         j        dk    sJ d S )Nr   c                   ~     e Zd Z j        dddg          Z fdZ j        dd          d             Z xZS )	1test_layout_with_param_setitem.<locals>.TestClassr   r[   )defaultr#   c                      t                      j        di | t          t          | j        dg          | j                  | _        d S )Nrj   )r%    )super__init__r   r   paramrj   _layout)selfparams	__class__s     r   r   z:test_layout_with_param_setitem.<locals>.TestClass.__init__  sM    EGG&&v&&&uTZXJGGG#{, ,DLLLr   rj   T)watchc                 $    | j         | j        d<   d S )N)rj   r   )r   s    r   _loadz7test_layout_with_param_setitem.<locals>.TestClass._load  s    #{DLr   )	r   
__module____qualname__ObjectSelectorrj   r   dependsr   __classcell__)r   r   s   @r   	TestClassr     s        %%a!A???	, 	, 	, 	, 	,
 
xt	,	,	,	+ 	+ 
-	,	+ 	+ 	+ 	+ 	+r   r   rL   r[   z&lt;pre&gt;1&lt;/pre&gt;)r   Parameterizedr   r+   rj   rN   text)r-   r.   r   testr0   r   s        @r   test_layout_with_param_setitemr     s    LLL
+ 
+ 
+ 
+ 
+ 
+ 
+E' 
+ 
+ 
+ 9;;DL!!(!66EDK>!!%???????r   r   )stretch_widthr   stretch_bothc                     t                      }t          |          } | ||          }|                    ||          }|j        |k    sJ d S )Nr   r   r+   r   )r   r   r-   r.   rC   rD   r(   r0   s           r   &test_expand_sizing_mode_to_match_childr     s[     55D;'''DU4FOOHd++E++++++r   c                     t          d          }t          d          }t          ||          }|                    | |          }|j        dk    sJ d S Nr   r   r   r   r+   r   r-   r.   rC   rD   r(   r0   s         r   (test_expand_row_sizing_mode_stretch_bothr     \    >***D>***Dt__FOOHd++E......r   c                     t          d          }t          d          } | ||          }|                    ||          }|j        dk    sJ d S )Nr   r   r   r   r   rx   s          r   test_expand_both_axesr     sa    ?+++D+,,,DU4FOOHd++E......r   c                     t          d          }t          d          }t          ||          }|                    | |          }|j        dk    sJ d S r   r   r   s         r   test_expand_row_both_axesr     r   r   c                     t          d          }t          d          } | ||d          }|                    ||          }|j        dk    sJ d S Nr   r   r     r   r   rx   s          r   %test_expand_only_non_fixed_axis_widthr     sg    ?+++D+,,,DU4S)))FOOHd++E 0000000r   c                     t          d          }t          d          }t          ||d          }|                    | |          }|j        dk    sJ d S r   r   r   s         r   -test_not_expand_row_only_non_fixed_axis_widthr     se    ?+++D+,,,Dt3'''FOOHd++E 0000000r   c                     t          d          }t          d          }t          ||d          }|                    | |          }|j        dk    sJ d S )Nr   r   r   r   r   r   s         r   -test_expand_row_all_only_non_fixed_axis_widthr     sf    +,,,D+,,,Dt3'''FOOHd++E 0000000r   c                     t          d          }t          d          } | ||d          }|                    ||          }|j        dk    sJ d S )Nr   r   r   r   )heightr   rx   s          r   &test_expand_only_non_fixed_axis_heightr   (  sf    ?+++D+,,,DU4c***FOOHd++E//////r   c                     t          d          }t          d          } | ||dd          }|                    ||          }|j        dk    sJ d S )Nr   r   r   r   )r   r   fixedr   rx   s          r   test_no_expand_fixedr   2  sh    ?+++D+,,,DU4c555FOOHd++E''''''r   scroll_param)auto_scroll_limitscrollscroll_button_thresholdview_latestc                 n    | dvr| di}n| di}t          di |}t          ||           sJ |j        sJ d S )N)r   r  Tr[   r   )r   ro   r   )r   r-   r.   r   cols        r   %test_column_scroll_params_sets_scrollr  =  sa    KKK%"


6

C3%%%%%:r   c                    t          g dddg          }t          |          }|                    | |           t          |j                  dk    sJ |j        \  }}t          |t                    sJ |j        dk    sJ t          |t                    sJ |j        dk    sJ dg|_        t          |j                  d	k    sJ |j        d
         }t          |t                    sJ |j        dk    sJ d S )N)foobarbazr  r	  )optionsvaluerG   rL   r"   r  r[   r   )	r   r   r+   r&   r#   r;   r   rb   r  )r-   r.   multi_selectr  md1md2md3s          r   test_pass_objects_refr  G  s   '<'<'<UENSSSL

&
&
&CLLL%%%s{q    {HCc8$$$$$:c8$$$$$:Ls{q    
+a.Cc8$$$$$:r   dimr   r   c                     t          di | di}t          |d d|            }|                    ||          }|                    |j        dd i          }|d|  ddd|  ik    sJ d S )	Nd   stretch_marginr   rL   r  min_r   r   r   r   r+   _compute_sizing_moderN   )r  r-   r.   mdr  root	new_propss          r   ,test_compute_sizing_mode_stretch_margin_noner  Z  s    			S#J		B
D.>.>.>
?
?
?C<<t<,,D((48HIIIsM;Kc;K;KLLLLLLLr   c                     d}t          d
i | di}t          ||d|            }|                    ||          }|                    |j        d|i          }|d|  dd	d|  ik    sJ d S )N
   r  r  r  rL   r  r  x   r   r   r  r  r-   r.   r  r  r  r  r  s           r   +test_compute_sizing_mode_stretch_margin_intr"  e  s    F			S#J		B
F0@30@0@
A
A
AC<<t<,,D((68JKKIsM;Kc;K;KLLLLLLLr   c                     | dk    rdnd}t          di | di}t          ||d|            }|                    ||          }|                    |j        d|i          }|d	|  d
dd|  ik    sJ d S )Nr   )r   r  )r  r   r  r  r  rL   r  r  r   r   r   r  r!  s           r   1test_compute_sizing_mode_stretch_margin_two_tupler$  q  s    wWWGF			S#J		B
F0@30@0@
A
A
AC<<t<,,D((68JKKIsM;Kc;K;KLLLLLLLr   c                     | dk    rdnd}t          di | di}t          ||d|            }|                    ||          }|                    |j        d|i          }|d	|  d
dd|  ik    sJ d S )Nr   )r   r  r      )r  r   r&  r   r  r  r  rL   r  r  s   r   r   r  r!  s           r   2test_compute_sizing_mode_stretch_margin_four_tupler(  }  s    !Wnn]]-F			S#J		B
F0@30@0@
A
A
AC<<t<,,D((68JKKIsM;Kc;K;KLLLLLLLr   )Vr   r\   bokeh.modelsr   BkColumnr   r   BkRow
panel.chatr   panel.layoutr   r   r	   r
   r   panel.layout.baser   r   
panel.paner   r   panel.paramr   panel.tests.utilr   panel.widgetsr   r   r   concrete_descendentsvalues
all_panelsmarkparametrizer'   r1   r7   rE   rI   rT   rW   rY   r_   rc   rg   rl   rr   ru   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r$  r(  r   r   r   <module>r8     s
     > > > > > > > > > > $ $ $ $ $ $                  8 7 7 7 7 7 7 7 & & & & & & & &       8 8 8 8 8 8 / / / / / / / /Hm4R R33I>>EEGG R R R
 *--# # .-# FCvtY#OPP* * QP* D&#tV#DEE	 	 FE	 4"566= = 76= 4"566= = 76= 63-006 6 106 63-006 6 106 63-006 6 106 63-00  10 4"566$ $ 76$ 4"566O O 76O 4"566	# 	# 76	# 4"566# # 76# '<0FH3EU|2TUU* * VU* 63-00* * 10* 63-00	0 	0 10	0 63-00
6 
6 10
6 63-00
6 
6 10
6 63-00	0 	0 10	0 63-00  10 63-00  10 63-00  10" 63-00  10 63-00  10$ 63-00	 	 10	 63-00	 	 10	 63-00  10 63-00  10 63-00* * 10* 63-00? ? 10? 63-001 1 101 63-00
1 
1 10
1 63-001 1 101  63-00) ) 10)
! 
! 
!@ @ @& 4y"ABB([([([\\, , ]\ CB,/ / / 9dFC"FGG/ / HG// / / 4y"ABB1 1 CB11 1 11 1 1 4dI"FGG0 0 HG0 4dI"FGG( ( HG( )r)r)rss  ts  & ( 344M M 54M ( 344	M 	M 54	M ( 344	M 	M 54	M ( 344	M 	M 54	M 	M 	Mr   