o
    0bM                     @   s"   d dl Z d dlZG dd dZdS )    Nc                   @   s:   e Zd ZdZdd ZdddZdd Zd	d
 Zdd ZdS )Otriaz+basic functions for a collection of reportsc                 C   s(   || _ g | _|jD ]}| j| q	d S N)eliveappend)selferimprepcode r
   !/home/ernad/ernad/python/otria.py__init__
   s
   
zOtria.__init__Fc                 C   s  | j }i }| jD ]Q}|j| }|jd }|j|}|d u rq|j|}|jd }	|j|	|}
t	j
|
dd }t|dkrUd| }|d| 7 }t|tjd q|||< qg }|D ]}|dd }|d u rkq^||vrt|| q^t|d	d
}g }|D ]0}g }|D ]}|dd }||krq||dd  qt|}|D ]}|| d|  qqg }|r|D ]}t|d ||   q|D ]}|||  || _q|S )Nsentselectedr      zno selected at sent z in )file
   T)reverse   _ )r   r   reportstaged	very_lastf	issuedatelast_by_issuedateospathbasenamelenprintsysstderrr   sortedsorted_by_timely)r   
do_verboser   Zrepcode_critsr	   r   Zsent_dirZlast_sent_fufiZlast_sent_issuedateZselected_dirZ	crit_fufiZ	crit_banamsgZfound_issuedatesZcritZfound_issuedateZsorted_issuedatesZsorted_critsZ	sub_critsZthis_found_issuedateZsub_critsorted_repcodesr
   r
   r   	by_timely   sb   






zOtria.by_timelyc                    sr   i  ddl m} || j| _ | jD ]}| j |d}|d u r#d |< qtj| |< qt| j fddd}|S )Nr   )Moclatrainc                    s    |  S r   r
   )xZcritsr
   r   <lambda>N   s    z%Otria.by_train_size.<locals>.<lambda>)key)	moclar*   r   r   findr   r   getsizer$   )r   r*   r	   
train_fufir(   r
   r-   r   by_train_sizeD   s   

zOtria.by_train_sizec           	      C   s   | j }t| ds|   g }g }| jD ]>}|j| d}|d u r'|| q|j| jddd}|d u r;|| qtj	|}tj	|}||krQ|| qq| jD ]}||v r\qU||v raqU|j| 
 riqU|| qU|S )Nr%   r   Zmodelz*.model)kind)r   hasattrr)   r%   r   lastr   r   r   getmtimeZhas_it_labour)	r   r   ZskippedZorderedr	   Z	last_sentZ
last_modelZlast_model_mtimeZlast_sent_mtimer
   r
   r   by_model_urgeQ   s:   





zOtria.by_model_urgec                 C   s   || j v rd S d S r   )Zcrates)r   totalr
   r
   r   crater   s   
zOtria.crateN)F)	__name__
__module____qualname____doc__r   r)   r4   r9   r;   r
   r
   r
   r   r      s    
	1!r   )r"   r   r   r
   r
   r
   r   <module>   s   