a
    ÆDcÊ$  ã                   @   s4  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d!dd„Zedk�r0e ¡ 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 )"u²   
Tratamiento de datos del tranporte aÃ©reo para django.
db = db.sqlite3
tablas: Turismo, TurismoCategoria
- 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 	| ¡}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  ¡ }
||	|
g}| d¡ |W S    | d 
t ¡ ¡¡ Y n0 dS )zZ 
    La tabla tiene que tener los campos: COD, FECHA, PERIODO, VALOR, VT_12, V_VAR12
    Ú__ú
Initium ->ú9SELECT {} FROM {} WHERE COD = "{}" ORDER BY "FECHA" DESC;Ú*ÚPERIODOT©ÚbyÚ	ascendingÚ r   ©ÚinplaceÚVALORú<- Finita estúError: [{}]N©ÚloggingÚ	getLoggerÚsysÚ	_getframeÚf_codeÚco_nameÚdisabledÚinfoÚsqlite3Úconnectr   ÚpdÚread_sql_queryÚcloseÚsort_valuesÚreplaceÚnpÚinfÚnanÚdictÚvaluesÚtolistÚ	exceptionÚexc_info)ÚbdÚtablaÚcodigoÚlgÚloggerÚconÚconsulta_datosÚdfÚxyÚxÚyÚsalida© r9   úJ/var/www/html/lartica/datascience/utils/transporteaereo/transporteaereo.pyÚbd_taereoanual$   s$    

 

r;   c              	   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
    
    r   r   zBSELECT {} FROM {} WHERE COD = "{}" ORDER BY "FECHA" DESC LIMIT {};r
   r	   r   Tr   r   r   r   r   ÚVT_12ÚV_VAR12ÚPREDICTÚ	TENDENCIAÚRECESIONÚR2r   r   N)r   r   r   r   r   r   r   r   r   r   Ú
isinstanceÚintr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   )r-   r.   r/   Ú	n_ultimosr0   r1   r2   r3   r4   r5   r6   r7   Úy_12Úy_var12Ú	y_predictÚy_tendenciaÚ
y_recesionÚr2r8   r9   r9   r:   Úbd_taereopredictN   s4    


 
rL   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   Nr   )r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   ÚytÚyt_12Úyt_var12ÚytiÚytsr8   r9   r9   r:   Úbd_taereoforecast�   s,    

 
rU   c              	   C   sè   t  dt ¡ jj ¡}| |_d}d}zž| d¡ d}d}d}d}t|d|d	| d
�}t	|d ƒ t|d|d| d
�}	t	|	d ƒ t
|d|| d�}
t	|
d ƒ t|d|| d�}t	|ƒ 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   ÚTaereoPredictÚTaereoForecastÚTaereoAnualé   é   )rE   r0   r
   )r0   z*** TEST, missa est ***r   r   N)r   r   r   r   r   r   r   r   rL   ÚprintrU   r;   r+   r   r,   )r0   r1   ÚexportÚ	BASEDATOSr.   ZtablafZ
tablaanualr/   Z	predict25ÚpredictÚforecastÚta_anualr8   r9   r9   r:   Útest±   s.    

rb   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   TrV   r   z*** MAIN, missa est ***r   r   N)r   r   r   r   r   r   r   r   r+   r   r,   )r0   r1   r]   r-   r8   r9   r9   r:   Úmainå   s    

rc   Ú__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)F)"Ú__doc__r   r   ÚpathlibÚtimer   Úpandasr    Únumpyr%   r   ÚbasicConfigÚDEBUGÚstderrr   Ú__name__r1   r;   rL   rU   rb   rc   Úperf_counterÚstartÚversion_infoÚPathÚ__file__ÚparentÚherer   r   Úlgdr8   Úelapsedr9   r9   r9   r:   Ú<module>   sB   	ü

*
3
0
4
 




