
    ^f*                     H    d dl Z d dlZd dlZd dlZd dlZ G d d          ZdS )    Nc                   T    e Zd ZdZddZd ZddZddZd	 Zd
 Z	d Z
d Zd Zd ZdS )Reportzbasic functions for a reportFc                     || _         || _        |                                  || _        | j         j        j        | _        d S N)erepcodeset_dirs
do_verboseabovonsmap)selferimpr   r
   s       "/home/ernad/ernad/python/report.py__init__zReport.__init__   s7    $V\'
t    c                 D   | j         j        d         dz   | j        z   | _        i | _        i | _        | j         j        j        D ],}| j        dz   |z   | j        |<   | j        dz   |z   | j        |<   -| j         j        j        d         }| j         j        j        D ]7}| j         j        j        d|z            }| j        dz   |z   dz   |z   | j        |<   8| j         j        j        d         }| j        dz   |z   | j        d<   | j         j        d         dz   | j        z   | j        d<   d S )	Nreports/vardir_learnlearest_vardir_statestateblattz	/reports/)r   dirsr   fudistager   	constantslearests)r   given_stage	learn_dirlearesttargetvar_dirs         r   r	   zReport.set_dirs   s)   FK	*S04<?		
6<- 	C 	CK&*i#o&CDJ{#%)Y_{%BDIk"" FL*>:	v|, 	L 	LGV\+J,@AF!%S9!<s!BV!KDIg&,(8!Y_w6	'!V[1K?$,N	'r      c           	      Z   | j         }|j        d|         }| j        }|j                            | j        |                   }|j                            | j        |                   }t          |          dk    rg S i }	|D ]}
|
|vr||
         }|j        	                    |          }|
|vr%t          d| d|
 d| t          j                   R||
         }|j        	                    |          }||z
  }|dk     r%t          | d|
 d| t          j                   d }||	|
<   |	S )Nr   zno earlier for  z in )filez, z: negative delay )r   
issuedatesr   dlastsr   firstslenftistprintsysstderr)r   earlierlaterspanr   recent_issuedatesr   later_datesearlier_datesdelays	issuedate
later_fufi
later_tistearlier_fufiearlier_tistdelays                   r   r8   zReport.delays/   sm   FL40,cii
5 122

4:g#677{q  I$ 	& 	&I 111$Y/J*--J--HHH	HHwHH:' ' ' '(3L388L11L-EqyyGGIGGGG:' ' ' ' %F9r   Nc                    | j         |         }|dz   }||dz   |z   }t          j                            |          sdS t	          j        |          }t          |          dk    rdS t          |t          j        j                  }|S )zalso fills the model timez/*Nr   r   )key)r   ospathisdirglobr,   maxgetmtime)r   whatkindwhat_dirglob_stringlist_of_fufis	last_fufis          r   lastzReport.lastK   s    9T?o"S.4/Kw}}X&& 	4	+..}""427+;<<<	r   c                     | j         }|                     d          }|j                            |          }|                     d          }|j                            |          }||k    rdS dS )NselectedsentTF)r   rM   r-   r9   )r   r   last_selectedlast_selected_issuedate	last_sentlast_sent_issuedates         r   has_it_labourzReport.has_it_labourY   si    F		*--"##--">">IIf%%	cmmI66"&9994ur   c                     | j         }d S r   )r   )r   r   s     r   lafisezReport.lafisec   s    Fr   c                 >    |                                  }|dk    rdS dS )Nr   TF)bremse_level)r   bremses     r   	is_activezReport.is_activef   s&    ""$$Q;;4ur   c                    | j         }d|j        vrdS |j                            | j        d                   }|j                            | j        d                   }|t          |          dk    rdS t          |          dk    rdS d}|j                            | j        d                   }t          |          t          |j        d                   k     rd}|t          |j        d                   k    rd|z   }|S dS )z0: not, 1: laya, 2: camilarZ   r   sourcerP   N   )r   confr)   datesr   r,   count_gap_issuesint)r   r   source_dafu	sent_dafu
has_camilara   rY   s          r   rY   zReport.bremse_levell   s    F16!!1cii	( 344CIIdi/00	#k"2"2a"7"71 y>>Q1
3//	&0ABBy>>Cx 01111Jc!&"23333z>Lqr   c                    ddl m} ddlm} ddlm} dd lm} dd l}| j	        } ||          } ||          }	 ||          }
|| j
        }| j        d         dz   }i }t          j                            |          rF|                    |          }|/|                    d| j                  D ]}|||j        d	         <   |                    |j        |         j        d
                   }|j        d         }t-          t/          |                    }d}|                    |                    |j        d         d          |j                  }g }t5          |          }t7          |          dk    rd S |d                             dd          |j        d<   |d                             dd          |j        d<   |D ]B}||v rO|                    ||                    |                    t=          ||         j        d                              Vd}| j        rtA          d| d           |!                    ||                    |d                    }|                    dd          }||_"        ||         }|
#                    |          |j        d<   |	$                    |          }t7          |          }|                    |           tK          |          |j        d<   ||j        d	<   ||j        d<   DtM          j'        tM          j(        |                    |j        d<   |)                    |           | j        r!tA          tU          j+        |                     |sdS | j        r!tA          tU          j+        |                     | j        rtA          d|            |,                    ||          S )Nr   Folder)Rixer)Rifferr   z/issues.xmlz	//e:issue)
namespacesdaterP   ernadFissues)r   -u   ‒fromuntiltotalTzreport adds issuedate z to the issuestateissuetimeissuedate_prettyroughlyzreport saves )-folderrh   rixerri   rifferrj   
lxml.etreeetreefilerr   r   r   rA   rB   isfile	parse_laxxpathr   attribr+   reportnsreversedsortedElementQNamelistr,   replaceappendrb   r
   r/   
SubElementtextformatted_timedocsstrdekanrw   makecleanup_namespacesdocingshowinstall_xml)r   r   rh   ri   rj   etr}   r   rx   ry   rz   out_fufi
issue_elesold_doc	issue_eler+   r   r(   needs_a_save
issues_eletotals	issuelistr9   rv   fufir   rs   s                              r   
issuestatezReport.issuestate   s   !!!!!!!!!!!!Fa?lG9W%5
7>>(## 	Eooh//G"!({:>* "/ "F "F E EI;DJy/788qx05f=>>T']fVnn--
ZZg A A&'d   , ,
$$	 y>>Q 4$-bM$9$9#u$E$E
&!%.q\%9%9#u%E%E
'"" 	D 	DIJ&&!!*Y"7888c*Y"7">w"GHHIIIL NLyLLLMMMj"((2w2G2GHHI(00e<<-IN)$D'-'<'<T'B'BIV$::d##DIIEMM%   (+E

IW%'0IV$3CI/00',}UZ5G5G'H'H
)$
j)))? 	+&+j))*** 	5? 	+&+j))***? 	.,(,,---  X666r   c                 V   ddl m} | j        } ||          }t          |                    |j        |         j        d                             }t          |                    |j        |         j        d                             }g }|D ]}||vr|                    |           |S )Nr   rg   rP   r]   )rx   rh   r   r   r+   r   r   r   )	r   r   rh   r   rx   sentssourcwaitsr9   s	            r   waitingzReport.waiting   s    !!!!!!FV]]18G#4#9&#ABBCCV]]18G#4#9(#CDDEE 	( 	(I%%Y'''r   )F)r$   r   )__name__
__module____qualname____doc__r   r	   r8   rM   rU   rW   r[   rY   r   r    r   r   r   r      s        &&   O O O0   8           0E7 E7 E7N
 
 
 
 
r   r   )r0   rA   rD   r   r   r   r   r   r   <module>r      sn    



 				   
J J J J J J J J J Jr   