a
    YúGc7  ã                   @   s*  d 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ZddlZ	ddl
Z
ejdejdejd� e e¡Zddd	„Zdd
d„Zddd„Zddd„Zedk�r&e ¡ Zejdks´J dƒ‚e e¡jZde_e e¡ e d¡ dZeeƒZe e¡ e d¡ e ¡ e Z e de d›de d d›d�¡ dS )zÁ
Tratamiento de datos de la Seguridad Social para django.
db = db.sqlite3
tablas: SS_categorias, SS_predict, SS_forecast
- Saca listas de categorias de la bd
- Saca listas de valores de la bd

é    N)Údatetimez/%(asctime)s %(levelname)s:%(name)s: %(message)sz%H:%M:%S)ÚformatÚlevelÚdatefmtÚstreamFc              	   C   s`  t  dt ¡ jj ¡}||_�z| d¡ t 	| ¡}t
|tƒrPd d|||¡}nd d||¡}t ||¡}| ¡  |jdgdgd�}|jtjtj d	tjgd
dd� t|ddg jƒ}	|d  ¡ }
|d  ¡ }|d  ¡ }|d  ¡ }|d  ¡ }|d  ¡ }|d  ¡ }|d d
 }|	|
|||||||g	}| d¡ |W S    | d t ¡ ¡¡ Y n0 dS )õt   
    ExtracciÃ³n de todos los datos de la base de datos de valores,predicciÃ³n, tendencia, recesiones y R2
    
    Ú__ú
Initium ->zBSELECT {} FROM {} WHERE COD = "{}" ORDER BY "FECHA" DESC LIMIT {};Ú*ú9SELECT {} FROM {} WHERE COD = "{}" ORDER BY "FECHA" DESC;ÚPERIODOT©ÚbyÚ	ascendingÚ r   ©ÚinplaceÚVALORÚVT_4ÚV_VAR4ÚPREDICTÚ	TENDENCIAÚRECESIONÚR2ú<- Finita estúError: [{}]N)ÚloggingÚ	getLoggerÚsysÚ	_getframeÚf_codeÚco_nameÚdisabledÚinfoÚsqlite3ÚconnectÚ
isinstanceÚintr   ÚpdÚread_sql_queryÚcloseÚsort_valuesÚreplaceÚnpÚinfÚnanÚdictÚvaluesÚtolistÚ	exceptionÚexc_info)ÚbdÚtablaÚcodigoÚ	n_ultimosÚlgÚloggerÚconÚconsulta_datosÚdfÚxyÚxÚyZy_4Zy_var4Ú	y_predictÚy_tendenciaÚ
y_recesionÚr2Úsalida© rF   úJ/var/www/html/lartica/datascience/utils/seguridadsocial/seguridadsocial.pyÚbd_sspredict%   s4    


 
rH   c              	   C   s&  t  dt ¡ jj ¡}||_zä| d¡ t 	| ¡}d 
d||¡}t ||¡}| ¡  |jdgdgd�}|jtjtj dtjgd	dd
� t|ddg jƒ}|d  ¡ }	|d  ¡ }
|d  ¡ }|d  ¡ }|d  ¡ }|d  ¡ }||	|
||||g}| d¡ |W S    | d 
t ¡ ¡¡ Y n0 dS )r   r   r	   r   r
   r   Tr   r   r   r   ÚFCMEANr   r   ÚFCMEAN_CI_LOWERÚFCMEAN_CI_UPPERr   r   N)r   r   r   r   r    r!   r"   r#   r$   r%   r   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   )r5   r6   r7   r9   r:   r;   r<   r=   r>   r?   ÚytZyt_4Zyt_var4ÚytiÚytsrE   rF   rF   rG   Úbd_ssforecastX   s,    

 
rO   c           	   	   C   sÄ   t  dt ¡ jj ¡}| |_d}d}zz| d¡ d}t|d|d| d�}t|d|d	| d�}t	|d
|| d�}t
|d ƒ t
|d ƒ t
|d ƒ d}| d¡ |W S    t  d t ¡ ¡¡ Y n0 dS )u˜   
    FunciÃ³n de prueba
    
    Parameters
    ----------
    lg : TYPE: Boolean, False - activa el logging

    Returns
    -------
    None
    
    r   Tú+/home/ja/Documentos/test/lartica/db.sqlite3r	   é   Ú	SSPredicté   )r8   r9   r
   Ú
SSForecast)r9   z*** TEST, missa est ***r   r   N)r   r   r   r   r    r!   r"   r#   rH   rO   Úprintr3   r   r4   )	r9   r:   ÚexportÚ	BASEDATOSr7   ÚdataÚpredictÚforecastrE   rF   rF   rG   Útestˆ   s$    

r[   c              	   C   sh   t  dt ¡ jj ¡}| |_d}d}z| d¡ d}| d¡ |W S    t  d 	t 
¡ ¡¡ Y n0 dS )	u•   
    FunciÃ³n principal
    
    Parameters
    ----------
    lg : TYPE: Boolean, False - activa el logging

    Returns
    -------
    None.

    r   TrP   r	   z*** MAIN, missa est ***r   r   N)r   r   r   r   r    r!   r"   r#   r3   r   r4   )r9   r:   rV   r5   rE   rF   rF   rG   Úmain¶   s    

r\   Ú__main__)é   é   zScript requires Python 3.7+.zInitium novumz	Ave verumzProgram completed in z0.5fz seconds = é<   z0.2fz min.)F)F)F)F)!Ú__doc__r   r   ÚpathlibÚtimer   Úpandasr(   Únumpyr-   r$   ÚbasicConfigÚDEBUGÚstderrr   Ú__name__r:   rH   rO   r[   r\   Úperf_counterÚstartÚversion_infoÚPathÚ__file__ÚparentÚherer"   r#   ÚlgdrE   ÚelapsedrF   rF   rF   rG   Ú<module>   s@   	ü

3
0
.
 




