
    ʯei                         d dl mZ d dlmZ d dlZd dlZd dlZ	d dl
mZ d dlmZ ddlmZ g dg d	g d
g ddZ e       Z G d de      Zy)    )cycle)ListN)Faker)BaseProvider   )st_command_with_default)cowrabbitduckshrimppiggoatcrabdeerbeesheepfishturkeydovechickenhorse)JamesMaryRobertPatriciaJohnJenniferMichaelLindaWilliam	ElizabethAhmedBarbaraRichardSusanSalomonz	Juan Luis)	StockholmDenverMoscow	MarseillePalermoTokyoLisbonOsloNairobiu   Río de JaneiroBerlinu   BogotáManilaMadrid	Milwaukee)redorangeyellowgreenblueindigopurplepinksilvergoldbeigebrowngreyblackwhite)animalsnamescitiescolorsc                   d    e Zd ZdefdZdefdZe	 ddededefd       Z	d	 Z
d
 Zd Zd Zd Zy)StreamlitDataDisplayProviderreturnc                 (    | j                  g d      S )N)	sms%$u   €USDusersu   °Cu   °Frandom_elementselfs    ^/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/streamlit_faker/data_display.py_metric_unitz)StreamlitDataDisplayProvider._metric_unitX   s    ""F
 	
    c                 (    | j                  ddg      S )N+-rQ   rS   s    rU   _signz"StreamlitDataDisplayProvider._sign]   s    ""C:..rW   Nsizecols	col_namesc           
         ddddd}t         j                  j                  |      }|d   d   }t        |gt        j                         D cg c]
  }||k7  s	| c}z         }	|	|d   d   f|d<   t        |t              r7t        |      t        |      k(  sdJ d	t        |       d
t        |       d       |Bddddd}
t        |      D cg c]%  \  }}dt        |       d|
j                  |       ' }}}t        |t              r7t        |      t        |      k(  sJ d	t        |       dt        |       d       t        |t              rWt        t        |j                               t        |j                               z
        dk(  sJ d       |j                  |       |D cg c]  }||   	 }}t        j                          }t#        |||      D ]m  \  }}}|||   }t        |      dk(  rt        |t$              st        |t              sJ d| d       |dv r|\  }}|dk(  r|j'                  |       ||<   m|dk(  r|j)                  |       ||<   |dk(  rt        |t              rt        j*                  |      }nq|\  }}t        |t              rt-        |      }|t        j                         v sJ d| dt        j                                 |j/                  t        |   |dd      }|j/                  || d       ||<   >|d!k(  sE|j/                  t        j0                        |       ||<   p |S c c}w c c}}w c c}w )"N)r   
   )r   d   )rD      )z
2020-01-01z
2020-12-31)ifcdre   r   r   zThe fake DataFrame should have z& columns but col_names is a list with z	 elementscatintfloatdate)re   rc   rd   rf   column__z& columns but intervals is a list with z(The intervals parameter has invalid keys   zThis interval z: is neither a tuple of two elements nor a list of strings.)rc   rd   rf   rc   rd   z#There are no samples for category 'zN'. Consider passing a list of samples or use one of the available categories: FT)replaceshuffle)ro   rf   )nprandomdefault_rngr   _DATAFRAME_CATEGORIES_DICTkeys
isinstancelistlen	enumeratestrgetdictsetupdatepd	DataFrameziptupleintegersuniformarraynextchoice
date_range)r\   r]   r^   	intervalsseeddefault_intervalsrngfirst_cre   categories_namessuffixrc   coldfcol_nameintervalstartend
categories
cat_familylengths                        rU   _pandas_dataframe_builderz6StreamlitDataDisplayProvider._pandas_dataframe_builder`   s    -	
 ii##D)#C(+ I$>$C$C$EVqgVV

 c"1%"
#
 i&y>SY. 1#d) =##&y>"2)=.  u7HFCLT?9?C'#a&6::c?"34I  i&y>SY. 1#d) =##&y>"2)=.
 )T*INN,-4E4J4J4L0MMNRSS>=>S!((3;?@C*3/@I@\\^'*4I'F #	K#C8,S1MQ&:h+F:$L  !
 +& &  o%%
scz"||E3=8"{{5#t<8h-!#(!3J)1&J!*e4%)*%5
%)C)H)H)JJ =j\ J22L2Q2Q2S1TVJ
 "%2:> % $	 ", "J  #zz*dDzI8"zz"--s*CTJ8G#	KH 	I W As   
M
M
*M.Mc                 "   | j                         }t        t        j                  t        j                         j                         t        j                          d| | j                          dt        j                  dd       d| dfi |S )N r   ra   )labelvaluedelta)	rV   r   stmetricfakewordtitle
random_intr[   )rT   kwargsunits      rU   r   z#StreamlitDataDisplayProvider.metric   s      "&II**, OO-.av6 JJL>4??1c+B*C1TFK
 
 	
rW   c                 b    t        t        j                  t        j	                         ddfi |S )NT)bodyexpanded)r   r   jsonr   simple_profilerT   r   s     rU   r   z!StreamlitDataDisplayProvider.json   s4    &GG++- 
 
 	
rW   c                 :   | j                  dd      }| j                  dd      }t        |      D cg c]  }t        j                          }}t        |      D cg c]  }| j	                  t        d             }}| j                  |||      S c c}w c c}w )Nrb            cifd)r\   r]   r^   )r   ranger   namerR   rv   r   )rT   r\   num_colsrl   r^   r]   s         rU   _pandas_dataframez.StreamlitDataDisplayProvider._pandas_dataframe   s    q"%??1a(*//:QTYY[:	:;@?Ka##DL1KK-- . 
 	
 ;Ks   B!Bc                 X    t        t        j                  d| j                         ifi |S Ndata)r   r   	dataframer   r   s     rU   r   z&StreamlitDataDisplayProvider.dataframe   s1    &LLT++-.
 
 	
rW   c                 X    t        t        j                  d| j                         ifi |S r   )r   r   tabler   r   s     rU   r   z"StreamlitDataDisplayProvider.table   s1    &HHT++-.
 
 	
rW   )NNN)__name__
__module____qualname__ry   rV   r[   staticmethodrh   r   r   r   r   r   r   r    rW   rU   rH   rH   W   sh    
c 

/s / LPSSS*.S Sj


	


rW   rH   )	itertoolsr   typingr   numpyrp   pandasr~   	streamlitr   fakerr   faker.providersr   commonr   rs   r   rH   r   rW   rU   <module>r      sS          ( +"$"kF P wL
< L
rW   