o
    Sc                     @   s2   d dl Z d dlZd dlZd dlZG dd dZdS )    Nc                   @   sP   e Zd ZdddZdd Zdd Zdd	 ZdddZdd Zdd Z	dd Z
dS )ClarfFc                 C   s6   || _ | j jd | _t|dr| j j| _d S || _d S )Nclarf
do_verbose)edirsfolderhasattrr   )selferimpr    r   !/home/ernad/ernad/python/clarf.py__init__
   s   

zClarf.__init__c                 C   s"   |    | jD ]}| | qd S N)	get_indat
issuedatesdo_issuedate)r	   	issuedater   r   r   update   s   
zClarf.updatec                 C   sz   | j jd d | d | _| |}t|dkrdS | j| D ]}| j| | }| |}|| j|< qt	| j| j d S )Nr   /.json.gzr   F)
r   r   out_fufiget_reports_that_need_renewallenr   readdatafilerdump)r	   r   reports_to_dorepcodefufir   r   r   r   r   #   s   

zClarf.do_issuedatec                 C   s<   t |d}i }| D ]}| }t|d ||d < q|S )Nrr      )open	readlinessplitfloat)r	   r   filer   linepartsr   r   r   r   .   s   
z
Clarf.readsidec                 C   s   | j }i }|j| jd }|d d | }t|}t|}|dkr2| s0td| d|  dS |D ]4}	|j|	}
| j j	j
d |
sR| jrRtd	|
 d
 q4|
|v rdtd| d|
 tjd q4|	||
< q4|S )z!what should be 'model' or 'train'moclar   z*.r   zmocla sees no z
 file for Nis_datezclarf: z is not a date.zclarf has several files at z and )r&   )r   reportr   globr   
is_testingprintfr   Rrsmatchr   sysstderr)r	   r   whatr   dafus	mocla_dirglob_stringfufiscount_fufisr   dater   r   r   	get_dafus6   s.   

zClarf.get_dafusc                 C   sf   i | _ | jjD ])}| |}|d u rq| |}|D ]}|| j vr&i | j |< || | j | |< qqd S r   )r   r   liver=   )r	   r   dafur7   r<   r   r   r   r   P   s   



zClarf.get_indatc                 C   s   g }t j| jsi | _| j| S t| j| _t j| j}| j| D ]}t j| j| | }||kr:|	| q$| j
rJtdt| d |  |S )Nzcarf needs z at )ospathisfiler   r   r   r   loadgetmtimeappendr   r/   str)r	   r   reports	file_timer   	data_timer   r   r   r   c   s   

z#Clarf.get_reports_that_need_renewalc                 C   sj   | j d }g }t|D ] }tj|}|drq|ds'td|  q|| qt	|dd}|S )Nz/*grundr   zclarf: foreign file T)reverse)
r   r-   r@   rA   basename
startswithendswithr/   rE   sorted)r	   r9   r:   r   banar   r   r   
list_fufiss   s   


zClarf.list_fufisN)F)r)   )__name__
__module____qualname__r   r   r   r   r=   r   r   rQ   r   r   r   r   r      s    

r   )r-   r@   r4   r   r   r   r   r   r   <module>   s
    