
    e#                        d dl Zd dlZd dlZd dlZd dlmZ d dlZd dl	Z
d dlZd dlZd dlZ	 d dlZn# e$ r dZY nw xY wej                            edu d          Zd dlmZmZ d dlmZmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/i a0d Z1d Z2d Z3ej        j4        d              Z5d! Z6d" Z7d# Z8d$ Z9d% Z:ej        ;                    d&          ed'                         Z<ej        ;                    d&          ej        =                    d(d)          d*                         Z>ej        ;                    d&          ej        =                    d(d)          d+                         Z?ej        ;                    d&          ej        =                    d(d)          d,                         Z@ej        ;                    d&          ej        =                    d(d)          d-                         ZAej        ;                    d&          d.             ZBdS )/    N)Counterrequires diskcache)reason)_find_hash_funccache)
set_curdocstate)serve_and_waitc                 n     t          |           |            t          |          |          }}||k    S N)r   )v1v2abs       9lib/python3.11/site-packages/panel/tests/io/test_cache.pyhashes_equalr      s9    ?2r""$7OB$7$7$;$;qA6M    c                  N    t          dd          sJ t          dd          rJ d S )Nfoobarr    r   r   test_str_hashr       s4    u%%%%%E5)))))))r   c                  N    t          dd          sJ t          dd          rJ d S )N         r   r   r   r   test_int_hashr   $   s4    BAq!!!!!!!r   c                  N    t          dd          sJ t          dd          rJ d S )NQ	@g333333?r   r   r   r   test_float_hashr!   (   s4    d#####C&&&&&&&r   c                  r    t          dd          sJ t          dd          sJ t          dd          rJ d S )NTFr   r   r   r   test_bool_hashr#   ,   sJ    d#####u%%%%%D%(((((((r   c                  N    t          d d           sJ t          d d          rJ d S )NFr   r   r   r   test_none_hashr%   1   s4    d#####D%(((((((r   c                  N    t          dd          sJ t          dd          rJ d S )N   0   1r   r   r   r   test_bytes_hashr)   5   s4    d#####D$'''''''r   c                      t          t          j        ddd          t          j        ddd                    sJ t          t          j        ddd          t          j        ddd                    rJ d S )N           )r   dtdater   r   r   test_date_hashr1   9   sl    a,,bgdAr.B.BCCCCCBGD!R00"'$22F2FGGGGGGGr   c                     t          t          j        ddddddd          t          j        ddddddd                    sJ t          t          j        ddddddd          t          j        ddddddd                    rJ d S )Nr+   r,   r-   r      r   r   )r   r/   datetimer   r   r   test_datetime_hashr5   =   s    D!RQ1==r{4QRTVXZ\]_`bc?d?deeeeeBKaRAqAA2;tUVXZ\^`acdfgChChiiiiiiir   c                  $   t          dgdg          sJ t          ddggddgg          sJ t          dgdg          rJ t          ddggddgg          rJ dg} |                     |            t          | t          |                     sJ d S )Nr   r   r   r   c)r   appendlist)ls    r   test_list_hashr;   A   s    aS!!!!!sesSEl33333QC!%%%%%S3%L3,77777 
AHHQKKK477#######r   c                      t          dd          sJ t          dd          sJ t          dd          rJ t          dd          rJ d S )N)r   )r   )r   )r   )r   )r7   r   r   r   r   test_tuple_hashr=   L   s`    d#####}55555D$'''''M=9999999r   c                  B   t          ddiddi          sJ t          dddiidddii          sJ t          ddiddi          rJ t          ddiddi          rJ t          dddiidddii          rJ di i} | | d<   t          | t          |                     sJ d S )Nr   r   r   r   )r   dict)ds    r   test_dict_hashrA   R   s    a3(+++++sAh#Qx99999S!HsAh/////S!HsAh/////S3(OcC8_===== 
b	AAcF477#######r   c                     t          j                    t          j                    }} |                     d           |                    d           |                     d           |                    d           t	          | |          sJ t          j                    }|                    d           |                    d           t	          | |          rJ d S )Nr   r   r   )ioStringIOwriteseekr   )sio1sio2sio3s      r   test_stringio_hashrJ   ^   s    $DJJuJJuIIaLLLIIaLLLd#####;==DJJuIIaLLLD$'''''''r   c                     t          j                    t          j                    }} |                     d           |                    d           |                     d           |                    d           t	          | |          sJ t          j                    }|                    d           |                    d           t	          | |          rJ d S )Ns   foor   s   bar)rC   BytesIOrE   rF   r   )bio1bio2bio3s      r   test_bytesio_hashrP   j   s    rz||$DJJvJJvIIaLLLIIaLLLd#####:<<DJJvIIaLLLD$'''''''r   c                      t          t          j        d          t          j        d                    sJ t          t          j        d          t          j        d                    rJ d S )Nz./z../)r   pathlibPathr   r   r   test_pathlib_hashrT   v   s\    T**GL,>,>?????GL..U0C0CDDDDDDDr   c                  j   t          t          j        g d          t          j        g d                    sJ t          t          j        g dd          t          j        g dd                    rJ t          t          j        g d          t          j        g d                    rJ d S )N)r   r   r   uint32)dtypefloat64)r   r   r   )r   nparrayr   r   r   test_ndarray_hashr[   z   s    ++RXiii-@-@AAAAA
(+++
),,,     

      r   c                     g dg dg dt          j        dd          d} t          j        |           t          j        |           }}t          ||          sJ |d         j        d d d	         |d<   t          ||          rJ d S )
N              ?g       @g      @g      @)r^   r_   r^   r_   r^   )foo1foo2foo3foo4foo5z1/1/2009   )periods)ABCDrg   )pdbdate_range	DataFramer   values)datadf1df2s      r   test_dataframe_hashrs      s    &&&&&&555^J222	 D |D!!2<#5#5CS!!!!!3xttt$CHC%%%%%%%r   c                      t          j        g d          } |                                 }t          | |          sJ d|j        d<   t          | |          rJ d S )Nr]   r    r   )rl   Seriescopyr   iloc)series1series2s     r   test_series_hashrz      sb    i11122GllnnG)))))GLOGW-------r   c                      t          t          j        t          j                  sJ t          t          j        t          j                  rJ d S r   )r   rY   absolutesincosr   r   r   test_ufunc_hashr      s<    R[11111BFBF+++++++r   c                  v    t          t          t                    sJ t          t          t                    rJ d S r   )r   maxminr   r   r   test_builtin_hashr      s4    S!!!!!C%%%%%%%r   c                  v    t          t          t                    sJ t          t          t                    rJ d S r   )r   rY   rC   r   r   r   test_module_hashr      s4    BB#######r   c                 n    t                               | |fd          }| |z   |z   }|dz   t           | |f<   |S Nr   r   OFFSETgetr   r   offsetresults       r   function_with_argsr      s<    ZZA""FUV^FaZFAq6NMr   c                 r   K   t                               | |fd          }| |z   |z   }|dz   t           | |f<   |S r   r   r   s       r   async_function_with_argsr      s@      ZZA""FUV^FaZFAq6NMr   c                      t                                            t          t                    }  | dd          dk    sJ  | dd          dk    sJ d S Nr   r   clearr   r   fns    r   test_cache_with_argsr      sO    
LLNNN	!	"	"B2a88q====2a88q======r   c                     K   t                                            t          t                    }  | dd           d {V dk    sJ  | dd           d {V dk    sJ d S r   )r   r   r   r   r   s    r   test_async_cache_with_argsr      sw       LLNNN	'	(	(B"Q((NNNNNNq    "Q((NNNNNNq      r   c                      t                                            t          t                    }  | dd          dk    sJ  | dd          dk    sJ d S )Nr   r   r   r   r   s    r   test_cache_with_kwargsr      s]    
LLNNN	!	"	"B2Q<<<12Q<<<1r   c                      t                                            t          t                    }  | dd          dk    sJ |                                   | dd          dk    sJ d S r   r   r   s    r   test_cache_clearr      s\    
LLNNN	!	"	"B2a88q====HHJJJ2a88q======r   c                      t                                            t          t                    } |                                  d S r   r   r   s    r   test_cache_clear_before_cachedr      s0     LLNNN	!	"	"BHHJJJJJr   c                    t                                            t          t          d          }t	          |           5   |dd          dk    sJ 	 d d d            n# 1 swxY w Y    |dd          dk    sJ t	          |           5   |dd          dk    sJ 	 d d d            n# 1 swxY w Y    |dd          dk    sJ d S )NTper_sessionr   r   r   )r   r   r   r   r   )documentr   s     r   test_per_session_cacher      sh   
LLNNN	!t	4	4	4B	H		 ! !rA|||q     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !2Q<<<1	H		 ! !rA|||q     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !2Q<<<1s#   A  A$'A$B..B25B2c                 :   t                      t          d          fd            fd}t          ||            t          j        d|  d           t          j        d|  d           t                                                    ddgk    sJ d S )	NTr   c                  <     t           j        xx         dz  cc<   dS )Nr   z	Some data)r	   curdoc)countss   r   get_dataz/test_per_session_cache_server.<locals>.get_data   s&    u|!{r   c                  0                                  d S r   r   )r   s   r   appz*test_per_session_cache_server.<locals>.app   s    





r   )portzhttp://localhost:/r   )r   r   r
   requestsr   r9   ro   )r   r   r   r   s     @@r   test_per_session_cache_serverr      s    YYF
t        
 3T""""L,T,,,---L,T,,,---  QF******r   r   c                     t                                            t          t          d          }  | dd          dk    sJ t	          j        d                                          sJ t          t	          j        d                              d                    sJ  | dd          dk    sJ |                                   | dd          dk    sJ d S )NT)to_diskr   z./cache*r   )	r   r   r   r   rR   rS   existsr9   globr   s    r   test_disk_cacher      s     LLNNN	!4	0	0	0B2a88q====<	""))+++++Y'',,S11222222a88q====HHJJJ2a88q======r   r   )TFc                 V   | rt           t          j        d           t                                           t          t          dd|           } |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ d S )Nr   r   fifo	max_itemspolicyr   r   r   	diskcachepytestskipr   r   r   r   r   r   s     r   test_cache_fifor   
  s      *9$()))
LLNNN	!Qvw	O	O	OB2a88q====2a88q====2a88q====2a88q====2a88q======r   c                 V   | rt           t          j        d           t                                           t          t          dd|           } |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ d S )Nr   r   lfur   r   r   r   r   s     r   test_cache_lfur     s      *9$()))
LLNNN	!Qug	N	N	NB2a88q====2a88q====2a88q====2a88q====2a88q======r   c                    | rt           t          j        d           t                                           t          t          dd|           } |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ  |dd          dk    sJ d S )Nr   r3   lrur   r   r   r   r   r   s     r   test_cache_lrur   &  s      *9$()))
LLNNN	!Qug	N	N	NB2a88q====2a88q====2a88q====2a88q====2a88q====2a88q====2a88q======r   c                    | rt           t          j        d           t                                           t          t          d|           } |dd          dk    sJ t          j        d            |dd          dk    sJ d S )Nr   g?)ttlr   r   g?r   )	r   r   r   r   r   r   r   timesleepr   s     r   test_cache_ttlr   6  s      *9$()))
LLNNN	!sG	<	<	<B2a88q====JsOOO2a88q======r   c                       G d dt           j                  }  |             }|                    d          dk    sJ |                    d          dk    sJ |j        dk    sJ |                    d          dk    sJ |j        dk    sJ d S )Nc                   h    e Zd Z ej        d          Z ej        d          Zed             Z	dS )=test_cache_on_undecorated_parameterized_method.<locals>.Modelr   )defaultr   c                 ,    | xj         dz  c_         d|z  S )Nr   r   )
executions)selfvalues     r   expensive_calculationzStest_cache_on_undecorated_parameterized_method.<locals>.Model.expensive_calculationH  s    OOq OOU7Nr   N)
__name__
__module____qualname__param	Parameterrp   Integerr   r   r   r   r   r   Modelr   D  sU        uq)))"U]1---
		 	 
	 	 	r   r   r   r   r,   )r   Parameterizedr   r   )r   models     r   .test_cache_on_undecorated_parameterized_methodr   B  s        #    EGGE&&q))Q....&&q))Q....q    &&q))Q....q      r   )Cr4   r/   rC   rR   r   collectionsr   numpyrY   pandasrl   r   r   r   r   	Exceptionmarkskipifdiskcache_availablepanel.io.cacher   r   panel.io.stater   r	   panel.tests.utilr
   r   r   r   r!   r#   r%   r)   r1   r5   r;   r=   rA   rJ   rP   rT   r[   rs   rz   r   r   r   r   r   r   r   asyncior   r   r   r   r   r   xdist_groupr   parametrizer   r   r   r   r   r   r   r   <module>r      s       				                      IIIk((d):CW(XX  1 1 1 1 1 1 1 1 , , , , , , , , + + + + + +  * * *" " "' ' ') ) )
) ) )( ( (H H Hj j j	$ 	$ 	$: : :
$ 
$ 
$
( 
( 
(
( 
( 
(E E E	 	 	
& 
& 
&. . ., , ,& & &$ $ $ 
       ! ! !      	 	 	+ + +( !!
 
  "!
 !!M22
 
 32 "!
 !!M22
 
 32 "!
 !!M22  32 "! !!M22  32 "! !!! ! "!! ! !s   1 ;;