
    gc)*                     h    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
  G d d          ZdS )    N)Alfit)Entsi)Fitli)Tifinc                   R    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd ZdS )GrundNFc                    || _         t          | j                   | _        t          | j                   | _        | j         j        d         | _        | j        dz   | _        || j        dz   |z   dz   | _        | j        dz   | _        || j        d| dz   | _        || j        dz   |z   dz   | _        d | _	        || _
        t          | j         j        d                   | _        i | _        || _        i | _        t#          | j                   }|                                | _	        i | _        |                                  t+          |d	          r|j        | _        d S )
Nfitliz/grund.json.gzz/grund_.json.gzz/grund_vemli.json.gzz_vemli.json.gzz/grund_vemli_
grund_size
do_verbose)er   alfitr   tifindirsfolderfufi
vemli_fufidenomstyleintconfsizebeaksr   grundr   loadseredsimport_from_fitlihasattr)selferimpr   r   entsis        !/home/ernad/ernad/python/grund.py__init__zGrund.__init__   sN   46]]
46]]
fk'*K"22	 i/%7*DDI+(>>"k,Ke,K,K,KKDO"kO;"#DO

L122	
$
 dfZZ\\
    5,'' 	/#.DOt    c                 v    t          | j        d          | _        | j                                        | _        dS )z=fitli has common routines of dofre and ranfi, maybe for grundr   N)r   r   r
   r   r   )r    s    r#   r   zGrund.import_from_fitli3   s,    467++
*//++r%   c                 z    ddl m}  || j                  | _         | j                             | j                   dS )z---> feed an issue by issuedate into the grundr   )VemliN)vemlir(   r   
build_fufir   )r    r(   s     r#   r)   zGrund.vemli=   sC    U46]]

di(((((r%   c                     t          j        | j                  }|                                }|D ]}t	          |           d S )N)filerr   r   keysprint)r    datapapidspapids       r#   showz
Grund.showC   sF    z$)$$ 	 	E%LLLL	 	r%   c                    |                                   | j        j        dz   |z   dz   }t          j        |          }t          | d          s4ddlm}  || j                  | _        | j        	                                 |D ]}t          | j                  | j        k     rVt          d|z              i }|                     |||                   |d<   ||         |d<   ||d	<   |d         
|| j        |<   v|| j        v r|                     |||                   }|!t          d|z   dz   t          j                   | j        d         }| j        |         d         }	||	k    r| j        rt          d|z              t'          t)          |                    }
t'          t)          |	                    }t          d| d|
 d| d| z   d           | j        |= i }||d<   ||         |d<   ||d	<   || j        |<   |                                  |                                   t          d| j        z              t          j        | j        | j                   d
S )z--> produce vemli/r   lensur   Lensuzgrund adds saiNz	sered of z	 is None.filezgrund rejects zgrund admits  z, kicks out Tflushzgrund makes final save in )sortr   r   r,   r   r   r5   r7   r   servelenr   r   r.   	sered_onesysstderrr0   r   strr   
fill_seredr   dump)r    	issuedatein_fufir/   r7   r1   gpseredworst_papidworst_seredprint_seredprint_worst_sereds               r#   
feed_issuezGrund.feed_issueI   s   		*#c)I5
Bz'"" tW%% 	######tvDJJ &	 &	E 4:**me+,,,..U<<3u+3#3c7&(*DJu%
""NN5$u+66E}kE)K7cjIIII+a.K*[1#6K{""? 4*U2333c%jj//K #C$4$4 5 5C%CC+CCC"88%6889@DF F F F
;'BBsG5kBsGBsG "DJuOOIIKKKK*TY6777
4:ty)))))r%   c                    i | _         t          j                            | j                  rMt          d| j        z   dz   dd           t          j        | j                  | _         t          dd           nNt          d           d	d
lm	}  || j
                  }|                                }|                     |           | j         S )Nzgrund loads z ... T )r?   enddoner>   zgrund: feed initiallyr   )Ishus)r   ospathisfiler   r.   r,   r   ishusrV   r   oldest_datefeed_initial)r    rV   r:   oldest_issuedates       r#   r   z
Grund.load   s    
7>>$)$$ 		0.49,w6dKKKKDI..DJ&%%%%%)***######dfA }}.///zr%   c                 Z   t          | j                  dk    r#t          d           |                                  | j        rt          ddd           | j        }| j        D ]s}| j        rt          d|z   dz   dd           |                     |||         d	                   }| j        rt          t          |          d
           |||         d<   t|t          d|            ||= | j        rt          d| j        z              t          j	        | j        | j                   dS )zfills the sereds internallyr   zgrund loadszsered_fill ...rS   T)rT   r?   zgrund sereds z as ... r9   r>   r8   Nzgrund deletes zgrund saves in )
rB   r   r.   r   r   rC   rF   r   r,   rH   )r    r   r1   rL   s       r#   rG   zGrund.fill_sered   sK   tz??a-   IIKKK? 	8"$7777
Z 	& 	&E *o-
:D* * * *NN5%,s*;<<E .c%jj---- %E%L=*5**---e ? 	1#di/000
4:ty)))))r%   c                 &     j         #t          d                                              j        rt          d           t	           j          fdd           _         j        rLt          d j        d         z   dz   t           j          j        d                  d	                   z              i } j        D ]L} j        r3t          |dz   t           j         |         d	                   z               j         |         ||<   M| _         |S )
Nzgrund loads, should notzgrund sortsc                 *    j         |          d         S )Nr8   )r   )xr    s    r#   <lambda>zGrund.sort.<locals>.<lambda>   s    tz!}S7I r%   T)keyreversez	worst is r   r=   r8   )r   r.   r   r   sortedr0   rF   )r    r   r1   s   `  r#   r@   z
Grund.sort   s"   :+,,,IIKKK? 	!-   TZ-I-I-I-I%)+ + +? 	8+A.4djQ05667 8 8 8[ 	- 	-E AeckC
5(9#(>$?$??@@@:e,E%LL
r%   c                 &   d}| j         }d| j         vrF| j                            |          | j        |<   || j         v r| j        |         | j         |         d<   | j        |         }| j         D ]}||k    r	d| j         |         vrJ| j                            ||         d                   | j        |<   | j        |         | j         |         d<   n| j         |         d         | j        |<   | j        |         }|| j                            ||          z  }t	          |          }| j        dk    rt          |          | j        j        vr;t          dt          |          z              d| j        j        t          |          <   t          |          | j        j
        vr;t          dt          |          z              d| j        j
        t          |          <   || j        j        t          |                   z  | j        j
        t          |                   z  }nr| j        | j        dk    rQt          |          }	|	| j        vr t          d	| t          j        
           d S | j        |z  | j        |	         z  }nt          d          |S )Nr   br9   firstz grund needs to set the relat of    z grund needs to set the cumul of r"   zgrund has no entsi for r;   zI can't see your style.)r   r   r   croprorB   r   rF   r5   relatr.   cumulr   rD   rE   r   	Exception)
r    r1   fitsoutr   b1pb2lengthslens
             r#   rC   zGrund.sered_one   si   
dj   $
 0 0 6 6DJu
"")-E):
5!#&Z 		- 		-AEzz$*Q-'' $
 0 0q# ? ?
1%)Z]
1c"" $
1c 2
1AB4:$$R,,,CCT
 :  6{{$*"222 83v;;FGGG01
 V-6{{$*"222 83v;;FGGG01
 V-
(V55*"3v;;/0CCZ4:#8#8v;;D4:%%777cjIIIIt)c/DJt$44CC5666
r%   c                    i }| j         j        dz   |z   dz   }t          j        |          }|D ]2}t	          |          | j        k     ri }d |d<   ||         |d<   |||<   2 || _        | j        rt          d           | 	                                 | j        rt          d           || _        | 
                                 t          d| j        z              t          j        || j                   d S )Nr4   r   r8   r9   zgrund fills seredzgrund has filled seredzgrund makes in initial save in )r   r   r,   r   rB   r   r   r   r.   rG   r@   r   rH   )r    rI   r   rJ   r/   r1   rK   s          r#   r\   zGrund.feed_initial   s   *#c)I5
Bz'"" 	 	E5zzDI%%3u+3!e
? 	'%&&&? 	,*+++
		/$);<<<
5$)$$$$$r%   c                    |                                   | j        D ]}t          d|z              d| j        |         vrt          d| t          j                   B| j        |         d         }| j                            ||          }|| j        |         d<   | j        |         d= | j        |         d= t          | d	          s4d
dlm	}  || j
                  | _        | j                                         | j        rt          d           |                                  | j        rt          dd           t          d| j        z              t          j        | j        | j                   dS )z)loads the alfits as they may have changedzgrund reloads r:   zgrund has no issuedate for r;   )rI   r9   rg   r8   r5   r   r6   zgrund starts to fill sered.z"grund has finished the sered fill.Tr>   zgrund saves N)r   r   r.   rD   rE   r   fetchr   r5   r7   r   rA   r   rG   r   r,   rH   )r    r1   rI   r   r7   s        r#   reloadzGrund.reload  s   		Z 	' 	'E"U*+++$*U+++;E;;:' ' ' '
5)#.IJ$$Ui$@@E%*DJuc"
5!#&
5!#&& tW%% 	######tvDJJ? 	1/000? 	D6dCCCCnty()))
4:ty)))))r%   )NF)__name__
__module____qualname__r$   r   r)   r2   rQ   r   rG   r@   rC   r\   rx    r%   r#   r   r      s        # # # #J, , ,) ) )  5* 5* 5*n  * * *2  (/ / /b% % %.* * * * *r%   r   )r,   rW   rD   r   r   r"   r   r
   r   r   r   r   r|   r%   r#   <module>r}      s     				 



                        V* V* V* V* V* V* V* V* V* V*r%   