
    ..h                     h    S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr   " S S	5      rg)
z'calendar of learning, all in issuedates    N)Plumi)Ishus)Otria)Recon)Xpafsc                   X    \ rS rSrSS jrSS jrS rS rS rS r	S r
S	 rS
 rS rSrg)Caler   c                 p   Xl         [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l
        SU R                   R                  ;  a  [        S[        R                  S9  [        U R                   R                  S   5      U l        S U l        SU R                   R                  ;   a'  [        U R                   R                  S   5      U l        S U l        X l        g )Ntraspizcaler: no traspifilegrospi)er   ishusr   plumir   otriar   reconr   xpafsconfprintsysstderrintr   r   train_issues
do_verbose)selferimpr   s      !/home/ernad/ernad/python/caler.py__init__Caler.__init__   s    466]
466]
466]
466]
466]
466;;&$zz#$&&++h/0tvv{{"dffkk(34DK $    c                    U R                   R                  XR                  S9n[        [	        U5      5      U R
                  ::  a  U$ [        [	        U5      5      U R
                  :  a4  [	        U5      S   nX4	 [        [	        U5      5      U R
                  :  a  M4  U(       d  U$ U R                  U5      nUc  U$ 0 nU H  nXu:  a  M
  X7   Xg'   M     U$ )z6by default we check the recon for manual start setting)r   r   )r   dafusr   lenlistr   start_train)r   repcodedo_check_reconr$   
first_dater'   reduced_dafus	issuedates           r   train_dafusCaler.train_dafus"   s     

  __ EtE{t{{*L$u+, eQJ! $u+, L&&w/LI&','7M$  r"   c                     U R                   b  U R                   $ U R                  R                  5       n0 nU H   nU R                  USS9nU H  nX2U'   M	     M"     X l         U$ )z>return all the issues we need training for and report to blameF)r)   )r   r   	by_timelyr-   )r   repcodesissues_reportsr(   r$   r,   s         r   get_issues_in_trainCaler.get_issues_in_train<   sp    ($$$::'')G$$WU$CE"	,3y) #  
 +r"   c                 T    U R                  5       n[        UR                  5       5      $ )N)r3   r%   keys)r   r2   s     r   
get_didspiCaler.get_didspiJ   s$    113>&&())r"   c                 ^    U R                   c  U R                  5         XR                   ;   a  gg)NTF)r   r3   r   r,   s     r   is_issue_in_trainCaler.is_issue_in_trainN   s,    $$$&)))r"   c                     U R                  5         [        U R                  5      S   n[        US-   U R                  U   -   5        g )Nr    )r3   sortedr   r   )r   earliest_issues     r   earliest_issue_in_trainCaler.earliest_issue_in_trainU   s@      " 1 1215ns"T%6%6~%FFGr"   c                     U R                   R                  U5      nUc  [        SU 3[        R                  S9  U R
                  R                  US5      nU$ )z0a training start set in the report configurationz!train can not read the recon for r   z//e:start_train/text())r   docr   r   r   r   none_or_one)r   r(   r   founds       r   r'   Caler.start_trainZ   sN    

w'=5gY?zz#

&&u.FGr"   c                     U R                   R                  U   R                  S   n[        U R                   R                  R                  U5      5      nX0R                  :  a  gg)NsentFT)r   reportdirsr%   dlastsr   r   r(   sent_dircount_issues_sents       r   is_report_matureCaler.is_report_matured   sM     66==)..v6x 89{{*r"   c                     U R                   c  gU R                  R                  U   R                  S   n[	        U R                  R
                  R                  U5      5      nX0R                   :  a  gg)NFrI   T)r   r   rJ   rK   r%   rL   rM   rN   s       r   should_report_have_grondCaler.should_report_have_grondn   sZ     ;;66==)..v6x 89{{*r"   c                     U[         R                  " 5       :X  a  gU[         R                  " 5       :X  a  gXR                  R                  S   :X  a  gU R                  5         XR                  ;   a  gg)NTr   F)datertodaytonightr   
issuedatesr3   r   r:   s     r   is_it_in_trainCaler.is_it_in_trainy   sZ    %'))!,,  ")))r"   )
r   r   r   r   r   r   r   r   r   r   N)F)T)__name__
__module____qualname____firstlineno__r    r-   r3   r7   r;   rA   r'   rQ   rT   r[   __static_attributes__ r"   r   r	   r	      s5    $4*H
	r"   r	   )__doc__r   rW   r   r   r   r   r   r   r   r   r   r   r	   rb   r"   r   <module>rd      s)    - 
      w wr"   