
    ʯei                         d dl Zd dl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 	 d dlmZmZ ed	gfd
ededej.                  fd       ZdZdZdZdZed        Z e       Zed        Zed        Z d Z!ed        Z"ed        Z#ed        Z$ed        Z%ed        Z&ed        Z'ed        Z(ed        Z)ed        Z*ed        Z+ed         Z, G d! d"e
      Z-y# e$ r d dlmZ d dlmZ Y w xY w)#    N)BaseProvider)pyplot   )st_command_with_default)
cache_datacache_resource)experimental_memo)experimental_singletondateurlparse_datesreturnc                     | j                  d      rt        j                  | |      S | j                  d      rt        j                  |       S t	        d      )a  Collects a CSV/JSON file from a URL and load it into a dataframe, with appropriate caching (memo)
    Args:
        url (str): URL of the CSV/JSON file
        parse_dates (list): Columns where date parsing should be done
    Returns:
        pd.DataFrame: Resulting dataframe
    z.csv)r   z.jsonzURL must end with .json or .csv)endswithpdread_csv	read_json	Exception)r   r   s     W/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/streamlit_faker/chart.pyurl_to_dataframer      sH     ||F{{3K88	g	||C  9::    zLhttps://raw.githubusercontent.com/tvst/plost/master/data/seattle-weather.csvzBhttps://raw.githubusercontent.com/tvst/plost/master/data/sp500.csvzEhttps://raw.githubusercontent.com/vega/vega/main/docs/data/stocks.csvzFhttps://raw.githubusercontent.com/vega/vega/main/docs/data/barley.jsonc                  ^   d} t        j                         }t        j                  |       |d<   t        j                  j                  |       |d<   t        j                  j                  |       |d<   d} t        j                         }t        j                  j                  |       |d<   t        j                  j                  g d|       |d<   d} t        j                  t        j                  j                  | d	      g d
      }d} t        j                         }t        |       D cg c]  }d|d
 c}|d<   t        j                  j                  dd|       |d<   t        ||||t        t              t        t              t        t              t        t                    S c c}w )N2   abci  time_delta_s)zserver 1zserver 2zserver 3servers   )r   r   r   dcolumns   zpage-03dpagenumr     	pageviews)randrandneventsr'   stocksseattle_weathersp500barley)r   	DataFramenparangerandomr(   r)   choicerangerandintdictr   STOCKS_DATA_URLSEATTLE_WEATHER_URL	SP500_URLBARLEY_DATA_URL)Nr(   r*   r)   r'   is         r   get_datasetsr=   1   sI   
A<<>D		!DI		q!DI		q!DIA\\^FYY__Q/F>		(()MqQF9ALL
		1$E
 	AI5:1X>eAc7O>IiYY..q$:Ik0()<=y)0	 	 ?s   ,F*c                  `    t        j                  t        d   j                  d      dd       y )Nr+   symbol == 'GOOG'r   pricedataxy)st
line_chartdatasetsquery r   r   _line_chartrJ   X   s(    MMh%%&89

r   c                  D    t        j                  t        d   ddd       y )Nr+   r   r@   symbolrB   rC   rD   color)altexrF   rG   rI   r   r   _multi_line_chartrP   b   s!    	h

	r   c                      t         j                  j                  t        d   j                  j                         d      d   } t        j                  t        d   j                  d|  d      dd       y )	Nr+   r   r   z(symbol == 'z') & (date >= '2006-01-01')r   r@   rA   )	r0   r2   r3   rG   rL   uniquerE   	bar_chartrH   )rL   s    r   
_bar_chartrT   m   se    YYhx077>>@!DQGFLLh%%6("=>
 
r   c                      t        j                  t        d   j                  t        d   j                  j                  d            dd       y )Nr+   r   )r@   r@   zA beautiful histogram)rB   rC   title)rO   
hist_chartrG   assignr@   roundrI   r   r   _hist_chartrZ   y   sB    	h&&Xh-?-E-E-K-KA-N&O
%r   c                      t        j                  t        d   t        j                  dd      t        j
                  dd      d       y )	Nr,   zwind:QzCustom X titlerV   z
temp_min:QzCustom Y titleg?)rB   rC   rD   opacity)rO   scatter_chartrG   altXYrI   r   r   _scatter_chartrb      s:    	'(
%% 0
1
%%$4
5r   c                      t        j                  t        d   j                  d      dt	        j
                  dd             y )Nr,      
temp_max:Qzdate:OTemperaturer\   rA   )rO   rS   rG   headr_   ra   rI   r   r   _bar_chart_horizontalrh      s3    	OO'(--b1

%%
.r   c                      t        j                  t        d   t        j                  dd      t        j
                  ddt        j                  d      	      
       y )Nr,   re   rf   r\   zcount()zCount of recordssymlog)type)rV   scalerA   )rO   rS   rG   r_   r`   ra   ScalerI   r   r   _bar_chart_logrn      sC    	OO'(
%%M
2
%%$))*
	r   c                      t        j                  t        d   j                  dd      j	                  d      t        j                  dd      t        j                  d	      
       y )Nr,   temp_maxF)by	ascending   r   z-y)sortre   rA   )rO   rS   rG   sort_valuesrg   r_   r`   ra   rI   r   r   _bar_chart_sortedrv      sH    	OO'(	
e	4	b
%%T
"
%%
r   c            	      n    t        j                  t        d   ddt        j                  dd              y )Nr,   zweek(date):Tzday(date):Tzmedian(temp_max):Q)legendrM   )rO   rW   rG   r_   ColorrI   r   r   _time_heatmap_chartrz      s1    	'(

ii 
		r   c                  d    t        j                  t        d   j                  d      dddd       y )Nr+   r?   r   r@         )rB   rC   rD   rollingheight)rO   rF   rG   rH   rI   r   r   _sparkline_chartr      s0    	h%%&89

r   c                  b    t        j                  t        d   j                  d      ddd       y )Nr+   r?   r   r@   r}   )rB   rC   rD   r   )rO   rS   rG   rH   rI   r   r   _sparkbar_chartr      s+    	OOh%%&89

r   c                  n    t        j                  t        d   t        j                  dd      dd       y )Nr.   varietyVarietyr\   z
sum(yield)siterM   )rO   rS   rG   r_   r`   rI   r   r   _bar_stacked_chartr      s*    	OOh
%%	
+
	r   c                      t        j                  t        d   t        j                  dd      t        j
                  dd      d	       y )
Nr.   z	variety:Nr   r\   sum(yield):Q	normalize)stacksite:NrM   )rO   rS   rG   r_   r`   ra   rI   r   r   _bar_normalized_chartr      s5    	OOh
%%9
-
%%k
2	r   c            	      J    t        j                  t        d   dddddd       y )	Nr.   zyear:Or   zyear:Nr   Z   F)rB   rC   rD   rN   columnwidthuse_container_width)rO   rS   rG   rI   r   r   _bar_grouped_chartr      s(    	OOh

!	r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)StreamlitChartProviderc                      | j                  t        t        t        t        t
        t        t        t        t        t        t        g             S N)random_elementr   rh   rn   rv   r   rb   r   r   rz   rZ   r   selfs    r   altair_chartz#StreamlitChartProvider.altair_chart   sD    
t"""%!" #%
  	r   c                 B     | j                  t        t        g             S r   )r   rJ   rP   r   s    r   rF   z!StreamlitChartProvider.line_chart  s    Dt""K1B#CDFFr   c                 8     | j                  t        g             S r   )r   rT   r   s    r   rS   z StreamlitChartProvider.bar_chart  s    0t""J<022r   c                     t        t        j                  dt        j                  t
        j                  j                  | j                  dd      d      ddgz  ddgz   dd	g
      ifi |S )NrB   iX  r&      r   gzGB@g^latlonr!   )	r   rE   mapr   r/   r0   r2   r)   
random_int)r   kwargss     r   r   zStreamlitChartProvider.map  sl    &FFIIOODOOC$>Bb"XMfo&"EN

 

 
	
r   c                     t         j                  j                  ddd      }t        j                         \  }}|j                  |d       t        t        j                  d|ifi |S )Nr   d   )size   )binsfig)	r0   r2   normalpltsubplotshistr   rE   r   )r   r   arrr   axs        r   r   zStreamlitChartProvider.pyplot  sV    iiq!#.,,.R
"&ryy5#,I&IIr   c                     t        j                  t        j                  j	                  dd      g d      }t        t        j                  |ddddd	d
dd	d
dd	d
dd	d
dddfi |S )Nr#      )r   r   r   r!   circleT)rk   tooltipr   quantitative)fieldrk   r   r   )rC   rD   r   rN   )markencoding)rB   spec)r   r/   r0   r2   r)   r   rE   vega_lite_chart)r   r   rB   s      r   r   z&StreamlitChartProvider.vega_lite_chart%  s{    ||BIIOOC3_M&%-$?'*NC'*NC*-~ F+.!G	!
 
 	
r   c                     t         r   NotImplementedErrorr   s    r   plotly_chartz#StreamlitChartProvider.plotly_chart8      !!r   c                     t         r   r   r   s    r   bokeh_chartz"StreamlitChartProvider.bokeh_chart;  r   r   c                     t         r   r   r   s    r   pydeck_chartz#StreamlitChartProvider.pydeck_chart>  r   r   c                     t         r   r   r   s    r   graphviz_chartz%StreamlitChartProvider.graphviz_chartA  r   r   N)__name__
__module____qualname__r   rF   rS   r   r   r   r   r   r   r   rI   r   r   r   r      s6    "G3
J
&""""r   r   ).altairr_   rO   numpyr0   pandasr   	streamlitrE   faker.providersr   
matplotlibr   r   commonr   r   r   ImportErrorr	   r
   strlistr/   r   r8   r9   r7   r:   r=   rG   rJ   rP   rT   rZ   rb   rh   rn   rv   rz   r   r   r   r   r   r   rI   r   r   <module>r      s        ( $ +C4 4:8 ;# ;D ; ; ;" S  Q	 L  M 
    F >    	       
 
   
 
         
 
H"\ H"Y  C9BCs   C C.-C.