
    fp0                     `    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y)    N)Alfit)Entsi)Fitli)Tifinc                   V    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 Zy)GrundNc                    || _         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                         }|j%                         | _	        i | _        | j)                          t+        |d	      r|j                  | _        y )
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__   sK   466]
466]
ffkk'*KK"22	 i/%7*DDI++(>>"kkgeWN,KKDO"kkO;"#DO

L12	
$
 dffZZ\
  5,'#..DO    c                    | j                   j                  }| j                   j                         }t        j                  ||      st        d| d       |S | j                          i }| j                  D ]3  }| j                  |   d   }||vr|g||<    ||   j                  |       5 | j                  rt        |       i }|D ]c  }||   D ]$  }| j                   j                  ||      }|||<   & | j                  rt        d|        | j                   j                  |       e t        j                  ||       |S )z creates alfit file for the grundzgrund: z needs no renewali)	issuedatezgrund: alfit done with )r   
grund_fufi	out_fufisfilerdonereprintr   r   appendr   fetchdestroydump)r    out_fufialfit_fufispapids_datespapidr(   alfitsr   s           r#   
alfit_filezGrund.alfit_file7   s2   ::((jj**,||Hk2GH:%678O		ZZE

5)#.I,+0'Y'#**51   ??,%I%i0

(()(D %u 1 /	{;<JJy) & 	

8V$r%   c                 x    t        | j                  d      | _        | j                  j                         | _        y)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_fitliS   s&    4667+
**//+r%   c                     ddl m}  || j                        | _         | j                   j                  | j                         y)z---> feed an issue by issuedate into the grundr   )VemliN)vemlir:   r   
build_fufir   )r    r:   s     r#   r;   zGrund.vemli]   s*    466]


dii(r%   c                     t        j                  | j                        }|j                         }|D ]  }t	        |        y )N)r+   r   r   keysr-   )r    datapapidsr5   s       r#   showz
Grund.showc   s0    zz$))$E%L r%   c                    | j                          | j                  j                  dz   |z   dz   }t        j                  |      }t        | d      s7ddlm}  || j                        | _        | j                  j                          |D ]  }t        | j                        | j                  k  rJt        d|z          i }| j                  |||         |d<   ||   |d<   ||d	<   |d   || j                  |<   p|| j                  v r| j                  |||         }|!t        d|z   dz   t        j                          | j"                  d   }| j                  |   d   }	||	kD  r| j$                  rt        d|z          t'        t)        |            }
t'        t)        |	            }t        d| d|
 d| d| z   d       | j                  |= i }||d<   ||   |d<   ||d	<   || j                  |<   | j+                          | j                           t        d| j,                  z          t        j.                  | j                  | j,                         y
)z--> produce vemli/r   lensur   Lensuzgrund adds sar'   Nz	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   rD   rF   r   servelenr   r   r-   	sered_onesysstderrr@   r   strr   
fill_seredr   r1   )r    r(   in_fufir?   rF   r5   gpseredworst_papidworst_seredprint_seredprint_worst_sereds               r#   
feed_issuezGrund.feed_issuei   s,   		**##c)I5
Bzz'" tW%#tvvDJJJE 4::*me+,..U<3u+3#3c7&(*DJJu%

"NN5$u+6E}kE)K7cjjI++a.K**[1#6K{"??*U23c%j/K #C$4 5M%+lC"m1%6$789@DF

;'BBsG5kBsGBsG "DJJuOOIIKM N 	*TYY67

4::tyy)r%   c                    i | _         t        j                  j                  | j                        r[t        d| j                  z   dz   dd       t        j                  | j                        | _         t        dd       | j                   S t        d       d	d
lm	}  || j                        }|j                         }| j                  |       | j                   S )Nzgrund loads z ... T )rM   enddonerL   zgrund: feed initiallyr   )Ishus)r   ospathisfiler   r-   r+   r   ishusrb   r   oldest_datefeed_initial)r    rb   r'   oldest_issuedates       r#   r   z
Grund.load   s    
77>>$))$.499,w6dKDII.DJ&% zz )*#dffA }}./zzr%   c                 x   t        dd       t        | j                        dk(  rt        d       | j                          | j                  rt        ddd       | j                  }| j                  D ]d  }| j                  rt        d	|z   d
z   dd       | j                  |||   d         }| j                  rt        t        |      d       |||   d<   f t        d        ||= | j                  rt        d| j                  z          t        j                  | j                  | j                         y)zfills the sereds internallyzsered_fill startsTrL   r   zgrund loadszsered_fill ...r_   )r`   rM   zgrund sereds z as ... rH   rG   Nzgrund deletes zgrund saves in )
r-   rP   r   r   r   rQ   rT   r   r+   r1   )r    r   r5   rX   s       r#   rU   zGrund.fill_sered   s   !.tzz?a- IIK??"$7

ZZEo-
:D*NN5%,s*;<Ec%j- %E%L   =N5'*-e ??#dii/0

4::tyy)r%   c                 .     j                   t        d        j                           j                  rt        d       t	         j                    fdd       _         j                  rGt        d j
                  d   z   dz   t         j                    j
                  d      d	         z          i } j
                  D ]J  } j                  r*t        |dz   t         j                   |   d	         z           j                   |   ||<   L | _         |S )
Nzgrund loads, should notzgrund sortsc                 (    j                   |    d   S )NrG   )r   )xr    s    r#   <lambda>zGrund.sort.<locals>.<lambda>   s    tzz!}S7Ir%   T)keyreversez	worst is r   rK   rG   )r   r-   r   r   sortedr@   rT   )r    r   r5   s   `  r#   rN   z
Grund.sort   s    ::+,IIK??- TZZ-I%)+??+A.4djjQ0567 8[[EeckC

5(9#(>$??@::e,E%L ! 
r%   c                    d}| j                   }d| j                   vrU| j                  j                  |      | j                  |<   || j                   v r| j                  |   | j                   |   d<   | j                  |   }| j                   D ]  }||k(  r	d| j                   |   vrN| j                  j                  ||   d         | j                  |<   | j                  |   | j                   |   d<   n| j                   |   d   | j                  |<   | j                  |   }|| j                  j                  ||      z  } t	        |      }| j
                  dk(  rt        |      | j                  j                  vr9t        dt        |      z          d| j                  j                  t        |      <   t        |      | j                  j                  vr9t        dt        |      z          d| j                  j                  t        |      <   || j                  j                  t        |         z  | j                  j                  t        |         z  }|S | j
                  | j
                  dk(  rYt        |      }	|	| j                  vrt        d	| t        j                  
       y | j                  |z  | j                  |	   z  }|S t        d      )Nr   brH   firstz grund needs to set the relat of    z grund needs to set the cumul of r"   zgrund has no entsi for rI   zI can't see your style.)r   r   r   croprorP   r   rT   rD   relatr-   cumulr   rR   rS   r   	Exception)
r    r5   fitsoutr   b1pb2lengthslens
             r#   rQ   zGrund.sered_one   sh   

djj  $

 0 0 6DJJu

")-E):

5!#&ZZAEz$**Q-' $

 0 0q# ?

1%)ZZ]

1c" $

1c 2

1AB4::$$R,,C  T
 :: 6{$**"2"22 83v;FG01

  V-6{$**"2"22 83v;FG01

  V-

((V55**""3v;/0C 
 ZZ4::#8v;D4::%/w7cjjI))c/DJJt$44C 
 566r%   c                    i }| j                   j                  dz   |z   dz   }t        j                  |      }|D ]0  }t	        |      | j
                  k  ri }d |d<   ||   |d<   |||<   0 n || _        | j                  rt        d       | j                          | j                  rt        d       || _        | j                          t        d| j                  z          t        j                  || j                         y )NrC   r   rG   rH   zgrund fills seredzgrund has filled seredzgrund makes in initial save in )r   r   r+   r   rP   r   r   r   r-   rU   rN   r   r1   )r    r(   r   rV   r?   r5   rW   s          r#   rh   zGrund.feed_initial  s    **##c)I5
Bzz'"E5zDII%3u+3!e  
??%&??*+
		/$));<

5$))$r%   c                    t        j                  | j                               }| j                          | j                  D ]  }||vrt	        dt
        j                         #d| j                  |   vrt	        d| t
        j                         S||   | j                  |   d<   | j                  |   d= | j                  |   d=  t        | d      s7d	d
lm	}  || j                        | _        | j                  j                          t	        d       | j                          | j                  rt	        dd       t	        d| j                  z          t        j                  | j                  | j                         y)z)loads the alfits as they may have changedz#grund has no alfit data for {papid}rI   r'   zgrund has no issuedate for rH   rs   rG   rD   r   rE   zgrund starts to fill sered.z"grund has finished the sered fill.TrL   zgrund saves N)r+   r   r7   r   r-   rR   rS   r   rD   rF   r   rO   rU   r   r   r1   )r    
alfit_datar5   rF   s       r#   reload_alfitszGrund.reload_alfits$  s2    ZZ 12
		ZZEJ&;::' $**U++3E7;::' &0%6DJJuc"

5!#&

5!#&+  2 tW%#tvvDJJJ+,??6dCntyy()

4::tyy)r%   )NF)__name__
__module____qualname__r$   r7   r   r;   rA   r]   r   rU   rN   rQ   rh   r    r%   r#   r   r      sA    $L8,)5*n*4(/b%.)*r%   r   )r+   rc   rR   r   r   r"   r   r
   r   r   r   r   r   r%   r#   <module>r      s(     	 

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