
    f,                         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 d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ  G d d      Zy)    N)Abovo)Folder)Otria)Rexer)Rixer)Riffer)Recon)Report)Transc                   X    e Zd ZddZd Zd Zd Zd ZddZd Z	d	 Z
d
 Zd Zd Zd Zy)Erimpc                 0   || _         d | _        t        |       }|| _        | j	                  |       || _        | j                          d | _        d | _        |j                  | _	        |j                  | _
        | j                          | j                          | j                          | j                          | j                  |       | j!                  |       | j#                          | j%                          | j                  j&                  | _        y )Ne)bipas
given_fufir   abovo	use_abovo
do_verbosefill_for_impnagiven_repcodegiven_issuedatensextfirst_helpers	read_conffill_reconsfill_issuedateshint_repcodehint_issuedatesecond_helpersfill_learist
is_testing)selfr   r   r   s       !/home/ernad/ernad/python/erimp.py__init__zErimp.__init__   s    

u %!#((99% E"**//    c                    | j                   d   dz   dz   }t        j                  j                  |      st	        d|z         t        j                  |      j                         }i }|D ]}  }| j                  j                  d   j                  |      }|j                  d      }|?t        j                  |j                  d            }|dk(  rd	||<   n|d
k(  rd||<   y|||<    || _        |S )Nstyle/zconf.xslt.xmlzI don't see 	conf_line      trueTfalseF)dirsospathisfile	Exceptionfilersread
splitlinesRrsmatchgroupstringsde_xmlconf)r$   fufi
conf_linesclinematcheskeyvalues           r%   r   zErimp.read_conf0   s    yy!C'/9ww~~d#NT122[[&113
Dffii,2248G--"C{NN7==#34E##AcF  	r'   c                 6   | j                   }i | _        | j                   j                  | j                  d<   |j                  d   D ]!  }|j                  d   |   | j                  |<   # |j                  ||       | _        |j
                  | _        || _         y )Nhometopr   )r   r0   home_dirguess_impnaimpnar   )r$   r   r   topdirs       r%   r   zErimp.use_abovoG   s    

	 JJ//		&jj'F %

5 1& 9DIIf (&&u&5
** 
r'   c                     t        |       | _        t        |       | _        t        |       | _        t        |       | _        t        |       | _        t        |       | _
        y N)r   dfolderr   fr   r8   r   tr   xr$   s    r%   r   zErimp.first_helpersT   sD    Tltttr'   c                 $    t        |       | _        y rN   )r   orT   s    r%   r!   zErimp.second_helpers\   s    tr'   Nc                 &   t        | d      st        d      | j                  }|j                  d   D ].  }| j                  |   dz   | j                  z   | j                  |<   0 |j                         D ]Y  }|j                  |   D ]E  }| j                  j                  |dz   |z      }| j                  |   dz   |z   }|| j                  |<   G [ i | _        | j                  d   dz   | j                  d<   | j                  j                  | 	       y )
NrK   zI need an impna.resignr*   dir_indatz
/state.xml	state_xmlr   )	hasattrr4   r   r0   rK   forked_dirnas	constantsfufisset_blatt_dirs)r$   rK   	do_creater   dirnakindrE   fudis           r%   r   zErimp.fill_for_impna_   s    tW%.//

ZZ)E#yy/#5

BDIIe * '')D D)

,,TF]U-BCyy,u4#'		%  *	 * 
"&))G"4|"C

;

!!D!)r'   c                 N   t        |       }|j                  d      }|j                  d      }|| _        i | _        i | _        i | _        i | _        |D ]P  }||   | j
                  |<   ||v rd | j                  |<   nd | j                  |<   t        | |      | j                  |<   R y )N	availableenabled)r	   fillreconslivedeadreportsreportr
   )r$   reconrecons_availablerecons_enabledrepcodes        r%   r   zErimp.fill_reconsu   s    d ::k2I.&		'G$4W$=DLL!.(%)		'"%)		'"#)$#8DKK  (r'   c                    t        | j                  j                  | j                  d               }|j	                          |d   | _        d| j                  v rut        | j                  d         }d}i | _        ||k  r||   }d| j                  |<   |dz  }||k  rt        j                  |d   d      }d| j                  |<   || _        y y )Nissuesr   traspir,      )sortedrO   datesr0   reversemax_issuedater>   intactive_issuedatesdaterahead
issuedates)r$   r~   rt   count	issuedatefuture_issuedates         r%   r   zErimp.fill_issuedates   s    DFFLL8)<=>
']tyy 8,-FE%'D"&.&u-	45&&y1
 &.
  %{{:a=!<78D""#34(DO !r'   c                 ~    | j                   j                  D ]$  }| j                  d   dz   |z   | j                  |<   & y )Nlearnr*   )r   learistsr0   )r$   learists     r%   r"   zErimp.fill_learist   s7    zz**G!%7!3c!9G!CDIIg +r'   c                 ^    | j                   j                  | j                  d         | _        y )Nrs   )rO   dates_uniquer0   rs   rT   s    r%   fill_issueszErimp.fill_issues   s!    ff))$))H*=>r'   c                    |D ]$  }| j                   D ]  }||v s|| _        |c c S  & t        j                         j	                  d      }|D ]  }|| j                   v s|| _        |c S  d }|D ]$  }t        j
                  j                  |      s#|}& |y |j	                  d      d d d   }| |D ]  }|| j                   v s|| _        |c S  y )Nr*   )ri   r   r1   getcwdsplitr2   r3   )r$   r   biparq   r0   rP   r?   s          r%   r   zErimp.hint_repcode   s    D;;d?)0D&"N '  yy{  %F$%+" 
 D77>>$'D	 
 <zz#tt$T[[()/D&!M  r'   c                 V    | j                   D ]  }|D ]  }||v s|| _        |c c S   y rN   )r~   r   )r$   r   r   r   s       r%   r    zErimp.hint_issuedate   s5    I$+4D($$  )
 r'   )F)NF)__name__
__module____qualname__r&   r   r   r   r!   r   r   r   r"   r   r   r     r'   r%   r   r      s?    8.*,9()"D?:r'   r   )r1   r<   r|   r5   r   r   rP   r   otriar   rexerr   rixerr   rifferr   rn   r	   rm   r
   transr   r   r   r'   r%   <module>r      s:    	            q qr'   