
    Q/Ph0,                     V   d dl m Z  d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ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 d dlmZ d dlmZ d dlm Z  dede	defdZ!dede"defdZ#dede	defdZ$dede"defdZ%dede&defdZ'dede	defdZ(dede	de&de&fdZ)dS )    )datetime)AnyListquote)Settings)BaseDescription)	AlertType)TimeIndexAnalysis)fmtfmt_bytesize
fmt_numberfmt_numericfmt_percentfmt_timespanfmt_timespan_timedelta	list_args)Alerts	Container)Image)Table)
Renderable)plot_overview_timeseriesconfigsummaryreturnc                 ,    dt          |j        d                   ddt          |j        d                   ddt          |j        d                   ddt          |j        d	                   dg}d
|j        v rM|                    dt          |j        d
                   ddt          |j        d                   dg           d|j        v rM|                    dt	          |j        d                   ddt	          |j        d                   dg           t          |d j        j                  }t           fd|j        d                                         D             d j        j                  }t          ||gddd          S )NzNumber of variablesn_varnamevaluezNumber of observationsnzMissing cellsn_cells_missingzMissing cells (%)p_cells_missingn_duplicateszDuplicate rowszDuplicate rows (%)p_duplicatesmemory_sizezTotal size in memoryzAverage record size in memoryrecord_sizezDataset statisticsr    stylec                 l    g | ]0\  }}t          |          t          |j        j                   d1S ))	precisionr   )strr   reportr,   ).0	type_namecountr   s      i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/ydata_profiling/report/structure/overview.py
<listcomp>z(get_dataset_overview.<locals>.<listcomp>M   sT     	
 	
 	

 !	5 I$Ufm6MNNN 	
 	
 	
    typeszVariable typesdataset_overviewOverviewgrid	anchor_idr    sequence_type)
r   tabler   extendr   r   htmlr*   itemsr   )r   r   table_metricsdataset_infodataset_typess   `    r2   get_dataset_overviewrC      s    *g 677	
 	

 -c 233	
 	

 $.? @AA	
 	

 ( /@!ABB	
 	
M$ && -'n(EFF 
 1(~)FGG 		
 	
 	
 %% 3)'-*FGG 
 <)'-*FGG 		
 	
 	
 08I  L 	
 	
 	
 	

 %,M'$:$@$@$B$B	
 	
 	
 k
 
 
M 	}%$	   r4   metadatac           
         g }dD ]\}||v rVt          ||                   dk    r=|                    |                                t          ||                   d           ]d|v r+|                    dd|d          d|d          dd           d	|v rt          |d	                   dk    rjd
|vr/|                    dt          d|d	                    d           n7|                    dt          d|d	          d|d
                    d           t	          t          |dd| j        j                  gddd          S )N)descriptioncreatorauthorr   r   urlURLz	<a href="z"></a>copyright_holdercopyright_year	Copyrightz(c)  Datasetmetadata_datasetr    r:   r*   datasetr8   r    r:   r;   )lenappend
capitalizer   r   r   r>   r*   )r   rD   about_datasetkeys       r2   get_dataset_schemarZ   `   s   M3  (??s8C=11A55  ))C4F4FGG   MXe_MMMMM 	
 	
 	
 X%%#h7I.J*K*Ka*O*O8++  ' !F1C(D!F!FGG       ' Zx(:;ZZhGW>XZZ     ,k'	  	
    r4   c           
         |j         d         }|j         d         }|j        j        }|j        j        }|j        j        }t
          dt          dt          fd            }t
          dt          dt          fd            }t          dt          |          d	d
t          |          d	dt          |          d	d ||          d	d ||          d	gdd| j
        j                  }	t          |	gddd          S )zDataset reproduction part of the report

    Args:
        config: settings object
        summary: the dataset summary.

    Returns:
        A renderable object
    ydata_profiling_versionydata_profiling_configversionr   c                     d|  dS )NzF<a href="https://github.com/ydataai/ydata-profiling">ydata-profiling vrK    )r^   s    r2   fmt_versionz-get_dataset_reproduction.<locals>.fmt_version   s    eX_eeeer4   r   c                 (    dt          |            dS )Nz><a download="config.json" href="data:text/plain;charset=utf-8,z">config.json</a>r   )r   s    r2   
fmt_configz,get_dataset_reproduction.<locals>.fmt_config   s    pPUV\P]P]ppppr4   zAnalysis startedr   zAnalysis finishedDurationzSoftware versionzDownload configurationReproductionoverview_reproductionrR   reproductionr8   rT   )packageanalysis
date_startdate_enddurationr   r-   r   r   r   r>   r*   r   )
r   r   r^   config_filerj   rk   rl   ra   rc   reproduction_tables
             r2   get_dataset_reproductionro      sX    o78G/":;K!,J(H(HfS fS f f f Yf q3 q3 q q q Yq '#j//BB(3x==AA,x*@*@AA'++g2F2FGG-

;8O8OPP	
 )k   	 	   r4   definitionsc                     t          d |                                D             dd| j        j                  g}t	          |ddd          S )	zGenerate an overview section for the variable description

    Args:
        config: settings object
        definitions: the variable descriptions.

    Returns:
        A container object
    c                 8    g | ]\  }}|t          |          d S )r   )r   )r/   columnr!   s      r2   r3   z2get_dataset_column_definitions.<locals>.<listcomp>   s:       !FE  #e**55  r4   zVariable descriptionsvariable_definition_tablerR   	Variablesvariable_descriptionsr8   rT   )r   r?   r>   r*   r   )r   rp   rv   s      r2   get_dataset_column_definitionsrw      s{     	 %0%6%6%8%8   )1+#	
 	
 	

 )	   r4   alertsc                    t          t                    rd}fdD             }t                    D ]@\  }}|D ]}|||j         d|j                  |<   |t          d |D                       z  }At          |d| dd| j        j                  S t          d	 D                       }t          d| dd| j        j                  S )
zObtain the alerts for the report

    Args:
        config: settings object
        alerts: list of alerts

    Returns:
        Alerts renderable object
    r   c           
          i | ]=}|D ]8}|j          d |j         d t          t                              D             9>S )_c                     g | ]}d S )Nr`   )r/   r{   s     r2   r3   z1get_dataset_alerts.<locals>.<dictcomp>.<listcomp>   s%     8 8 88 8 8r4   )
alert_typecolumn_namerangerU   )r/   report_alertsalertrx   s      r2   
<dictcomp>z&get_dataset_alerts.<locals>.<dictcomp>   s     
 
 
 &
 

 	 55%"355 8 8#CKK008 8 8
 
 
 
r4   r{   c                 <    g | ]}|j         t          j        k    |S r`   r}   r
   REJECTEDr/   r   s     r2   r3   z&get_dataset_alerts.<locals>.<listcomp>   s3       '9+=== ===r4   zAlerts ()rx   )rx   r    r:   r*   c                 <    g | ]}|j         t          j        k    |S r`   r   r   s     r2   r3   z&get_dataset_alerts.<locals>.<listcomp>
  s(    UUU5e.>)BT.T.T.T.T.Tr4   )	
isinstancetuple	enumerater}   r~   rU   r   r>   r*   )r   rx   r1   combined_alerts
report_idxr   r   s    `     r2   get_dataset_alertsr      s_    &%   

 
 
 
 "(	
 
 
 *36):): 	 	%J&     5#3 I Ie6G I IJ  S !.    EE "$E$$$+#	
 
 
 	
 UUFUUUVVE    k	   r4   c                    t           dt          dt          fd            }t          |j        t
                    sJ dt          |j        j                  ddt          |j        j                  dd ||j        j	                  dd ||j        j
                  dd	t          |j        j                  dg}t          |d
| j        j                  }| j        j        }d| j        _        t%          t'          | |j                  | j        j        ddd          }t%          t'          | |j        d          | j        j        ddd          }|| j        _        t-          ||gddd          }t-          ||gddd          S )Nlimitr   c                 t    t          | t                    r|                     d          S t          |           S )Nz%Y-%m-%d %H:%M:%S)r   r   strftimer   )r   s    r2   fmt_tsindex_limitz/get_timeseries_items.<locals>.fmt_tsindex_limit  s5    eX&& 	%>>"5666e$$$r4   zNumber of seriesr   zTime series lengthzStarting pointzEnding pointPeriodzTimeseries statisticsr)   i,  ts_plotOriginalts_plot_overview)image_formataltr    r:   T)scalets_plot_scaledScaledts_plot_scaled_overview tabsr9   timeseries_overviewzTime Seriesr8   )r   r   r-   r   time_index_analysisr   r   n_serieslengthstartendr   periodr   r>   r*   plotdpiImageWidgetr   	variablesr   r   )	r   r   r   table_statsts_infodpi_bak
timeseriestimeseries_scaledts_tabs	            r2   get_timeseries_itemsr     s   % % % % % Y% g13DEEEEE ' ; DEE	
 	

 ) ; BCC	
 	

 %&&w'B'HII	
 	

 #&&w'B'FGG	
 	

 +G,G,NOO	
 	
#K. K&=V[EVWWWGkoGFKO ):;;[-$  J $ ):$GGG[-+   FKO	&'$	  F 	&'	   r4   c                     t           |          g} fd j                                                                        D             }t	          |          dk    rNt          d |                                D                       r#|                    t           |                      fd j	        j
                                        D             }t	          |          dk    r#|                    t           |                     |j        r#|                    t           |                     |r#|                    t           |                     |                    t           |                     |S )a  Returns the dataset overview (at the top of the report)

    Args:
        config: settings object
        summary: the calculated summary
        alerts: the alerts

    Returns:
        A list with components for the dataset overview (overview, reproduction, alerts)
    c                 P    i | ]"}|j                                         |         #S r`   )rS   dictr/   rY   r   s     r2   r   z%get_dataset_items.<locals>.<dictcomp>c  s.    XXXCV^((**3/XXXr4   r   c              3   <   K   | ]}t          |          d k    V  dS )r   N)rU   )r/   r!   s     r2   	<genexpr>z$get_dataset_items.<locals>.<genexpr>e  s,       O OEUa O O O O O Or4   c                 6    i | ]}|j         j        |         S r`   )r   descriptionsr   s     r2   r   z%get_dataset_items.<locals>.<dictcomp>h  s6        	V*3/  r4   )rC   rS   r   keysrU   anyvaluesrV   rZ   r   r   rw   r   r   r   ro   )r   r   rx   r?   rD   column_detailss   `     r2   get_dataset_itemsr   U  sy     4FGDDEEXXXX6>;N;N;P;P;U;U;W;WXXXH
8}}qS O OX__=N=N O O OOO'99:::   #05577  N
 >Q3FNKKLLL" <)&'::;;; 9'77888	LL)&'::;;;Lr4   N)*r   typingr   r   urllib.parser   ydata_profiling.configr   ydata_profiling.modelr	   ydata_profiling.model.alertsr
   !ydata_profiling.model.descriptionr   !ydata_profiling.report.formattersr   r   r   r   r   r   r   r   (ydata_profiling.report.presentation.corer   r   r   r   r   3ydata_profiling.report.presentation.core.renderabler   "ydata_profiling.visualisation.plotr   rC   r   rZ   ro   rw   listr   r   r   r`   r4   r2   <module>r      s                       + + + + + + 1 1 1 1 1 1 2 2 2 2 2 2 ? ? ? ? ? ?	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 G F F F F F F F I I I I I I : : : : : : J J J J J J G G G G G GC CO C
 C C C CL.x .4 .I . . . .b+X + +J + + + +\8 $ 9    >2x 2 2& 2 2 2 2j? ?O ?	 ? ? ? ?D#h # #$ #SW # # # # # #r4   