
    /d                     P    d dl Z d dlZd dlZd dlmZ d dlmZ  G d d          ZdS )    N)Clarf)Folderc                   T    e Zd ZdZddZddZd Zd Zd	 Zd
 Z	d Z
ddZd Zd ZdS )Ralilzsystem that relays reportsFc                 (   || _         | j         j        d         | _        t          | j                   | _        | j         j        d         | _        t          | j                   | _        d| _        i | _	        i | _
        d | _        d | _        || _        d S )Nclarfralilr   )edirs
clarf_fudir   folder
ralil_fudir   r   
count_donesumsdatalast_looked_upresults
do_verbose)selferimpr   s      !/home/ernad/ernad/python/ralil.py__init__zRalil.__init__   sw    &+g.TVnn&+g.46]]
		"$t    NTc                     | j                                         }d}|D ])}|                     |          }|r|dz  }|	||k    r dS *dS )Nr      T)r   
list_fufiswork_on_fufi)r   do_max	do_donorein_fufisr   in_fufiis_dones          r   updatezRalil.update   sj    :((**
 	 	G''00G  a
!jF&:&:tttr   c                 b   |                     | j        | j                  }t          j        ||g          sdS | j        rt          d| ddd           t          j        |          }|                     |          }t          j	        ||           | j        rt          d| d           dS )	NFzralil studies z ... T)endflushz
 it wrote )r'   )
replacer   r   filerdonerer   printload	get_corrsdump)r   r!   out_fufi
clarf_datacorrss        r   r   zRalil.work_on_fufi)   s    ??4?#'?4 4|Hwi00 	5? 	F07000bEEEEZ((
z**
5(###? 	7)x))6666tr   c                 :   | j         || j        k    r=|                     |          | _         | j         t          d| d           d S || _        |d         | j         vrd S |d         | j         |d                  vrd S | j         |d                  |d                  S )Nz	data for z is Noner   r   )r   r   	load_datar+   )r   	issuedatepairs      r   lookupzRalil.lookup8   s    9	T-@ @ @y11DIy 5)555666t"+D 7$)##47$)DG,,,4ya!$q'**r   c                     | j         dz   |z   dz   }t          j                            |          sd S t	          j        |          | _        | j        S )N/.json.gz)r   ospathisfiler)   r,   r   )r   r4   fufis      r   r3   zRalil.load_dataH   sL    $y0:=w~~d## 	4Jt$$	yr   c                    i }i }i }|D ]n}g ||<   ||         }t          |                                          }|D ]#}||                             ||                    $t          ||                   ||<   o|D ]}	|	|vri ||	<   |D ]}
|	|
k    r	|
|	k     rd}d||	         |
<   |t	          ||	                   k     rt||	         |
xx         t          d||	         |         z  ||	         z  d||
         |         z  ||
         z  z
            z  cc<   |dz  }|t	          ||	                   k     t||	         |
xx         d||	         |
         z  z  cc<   Ќ|S )Nr      r   )sortedkeysappendsumlenabs)r   r   outinpsr   repcode
papweightsdocidsdocidr1r2counts               r   get_cross_diffzRalil.get_cross_diffO   s    	/ 	/GDMwJJOO--..F 8 8W$$Z%67777W..DMM 	/ 	/B }}B / /8877Bc$r(mm++GBKKK3qDHUO';d2h'F)*d2huo)=R)H(I $J $J JKKKQJE c$r(mm++ Bq3r72;./ 
r   c                    i }i }|D ]V}g ||<   ||         }t          |                                          }|D ]#}||                             ||                    $W|D ]}||vri ||<   |D ]z}	||	k    r	|	|k     rt          j        ||         ||	                   d         d         dz  }
| j        r(t          |dz   |	z   dz   t          |
          z              |
||         |	<   {|| _        |S )zpeason correlationr   r   d    )	r@   rA   rB   npcorrcoefr   r+   strr   )r   r   rF   rG   rH   rI   rJ   rK   rL   rM   values              r   r-   zRalil.get_corrso   s@     	8 	8GDMwJJOO--..F 8 8 W$$Z%677778
  	$ 	$B}}B $ $8877DHd2h77:1=C? <"s(R-#-E

:;;;#B$ 
r   c                     |)|                                  }t          |          d         }| j        dz   |z   dz   }t          j        |          }|S )Nr   r8   r9   )	get_dateslistr   r)   r,   )r   datedatesr=   r   s        r   r,   z
Ralil.load   sO    <NN$$E;;q>D$t+j8z$r   c                 J    | j         }| j                            ||          }|S N)r   r   by_dates)r   fudir[   s      r   rX   zRalil.get_dates   s%    $$T400r   c                    | j         d S | j         }|D ]l}||k    r	||k     r/t          |dz   t          ||         |                   z              >t          |dz   t          ||         |                   z              md S )NrR   )r   r+   rU   )r   given_repcoder   repcocdes       r   report_on_repcodezRalil.report_on_repcode   s    <F, 	N 	NH((x''hns7=+A(+K'L'LLMMMMhns78+<]+K'L'LLMMMM	N 	Nr   )F)NTr]   )__name__
__module____qualname____doc__r   r#   r   r6   r3   rO   r-   r,   rX   rc    r   r   r   r      s        $$    	 	 	 	  + + +     @  >     

N 
N 
N 
N 
Nr   r   )	r:   r)   numpyrS   r   r   r   r   r   rh   r   r   <module>rj      s    				                 ZN ZN ZN ZN ZN ZN ZN ZN ZN ZNr   