
    B_g(!                     P    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  G d d      Z	y)    N)Clarf)Folderc                   R    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y)Ralilzsystem that relays reportsc                 F   || _         | j                   j                  d   | _        t        | j                         | _        | j                   j                  d   | _        t        | j                         | _        d| _        i | _	        i | _
        d | _        d | _        || _        y )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__   s}    &&++g.TVVn&&++g.466]
		"$    Nc                     | j                   j                         }d}|D ]$  }| j                  |      }|r|dz  }|||k\  s$ y y)Nr      T)r   
list_fufiswork_on_fufi)r   do_max	do_donorein_fufisr   in_fufiis_dones          r   updatezRalil.update   sT    ::((*
G''0Ga
!jF&:   r   c                 l   |j                  | j                  | j                        }t        j                  ||g      sy| j
                  rt        d| ddd       t        j                  |      }| j                  |      }t        j                  ||       | j
                  rt        d| d       y)	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||Hwi0??N7)40bEZZ(
z*

5(#??Jxj)6r   c                 .   | j                   || j                  k7  r9| j                  |      | _         | j                   t        d| d       y || _        |d   | j                   vry |d   | j                   |d      vry | j                   |d      |d      S )Nz	data for z is Noner   r   )r   r   	load_datar+   )r   	issuedatepairs      r   lookupzRalil.lookup8   s    99	T-@-@ @y1DIyy 	)H56"+D 7$))#7$))DG,,yya!$q'**r   c                     | j                   dz   |z   dz   }t        j                  j                  |      sy t	        j
                  |      | _        | j                  S )N/.json.gz)r   ospathisfiler)   r,   r   )r   r4   fufis      r   r3   zRalil.load_dataH   sG    $y0:=ww~~d#JJt$	yyr   c                    i }i }i }|D ]T  }g ||<   ||   }t        |j                               }|D ]  }||   j                  ||           t        ||         ||<   V |D ]  }	|	|vri ||	<   |D ]  }
|	|
k(  r	|
|	k  rd}d||	   |
<   |t	        ||	         k  rQ||	   |
xx   t        d||	   |   z  ||	   z  d||
   |   z  ||
   z  z
        z  cc<   |dz  }|t	        ||	         k  rQ||	   |
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   sc   GDMwJJOO-.FW$$Z%67  W.DM  B }B87Bc$r(m+GBK3qDHUO';d2h'F)*d2huo)=R)H(I $J JKQJE c$r(m+ Bq3r72;.  " 
r   c                 ^   i }i }|D ]C  }g ||<   ||   }t        |j                               }|D ]  }||   j                  ||           E |D ]  }t        ||         }	||vri ||<   |D ]  }
||
k(  r	|
|k  rt        ||
         }|	|k7  r<d}|| d|	 dz  }||
 d| dz  }t	        |t
        j                         d||   |
<   ^t        j                  ||   ||
         d   d   dz  }| j                  r t	        |d	z   |
z   d	z   t        |      z          |||   |
<     || _        |S )
zpearson correlationzralil: bad clarf data z has z, .)filer   r   d    )r@   rA   rB   rD   r+   sysstderrnpcorrcoefr   strr   )r   r   rF   rG   rH   rI   rJ   rK   rL   len_r1rM   len_r2msgvalues                 r   r-   zRalil.get_corrso   sr    GDMwJJOO-.F W$$Z%67  	  Bb]F}B87T"XV#2CbTvhb11CbTvha00C#CJJ/"#CGBKDHd2h7:1=C??"s(R-#-E
:;#B! 	 * 
r   c                     || j                         }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   sK    <NN$E;q>D$t+j8zz$r   c                 V    | j                   }| j                  j                  ||      }|S N)r   r   by_dates)r   fudirb   s      r   r_   zRalil.get_dates   s&    $$T40r   c                     | j                   y | j                   }|D ]N  }||k(  r	||k  r!t        |dz   t        ||   |         z          /t        |dz   t        ||   |         z          P y )NrT   )r   r+   rY   )r   given_repcoder   repcocdes       r   report_on_repcodezRalil.report_on_repcode   su    <<,,H(x'hns7=+A(+K'LLMhns78+<]+K'LLM  r   )F)NTrd   )__name__
__module____qualname____doc__r   r#   r   r6   r3   rO   r-   r,   r_   rj    r   r   r   r      s:    $ 	+ @&P

Nr   r   )
r:   rU   r)   numpyrW   r   r   r   r   r   ro   r   r   <module>rq      s%    	 
    cN cNr   