
    Xc                     X    d dl Z 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  G d d      Z	y)    N)Alfit)Fitlic                   .    e Zd Zd Zd ZddZddZd Zy)	Dofrec                     || _         t        | j                         | _        d| _        | j                  dz   | _        d | _        d | _        i | _        d| _        d| _	        | j                          y )Nz.dofre.json.gzr   )er   alfit	ext_no_gzext	last_fufilast_sigf
count_keyscount_timesimport_from_fitli)selferimps     !/home/ernad/ernad/python/dofre.py__init__zDofre.__init__   sb    466]
&>>E)     c                 ~   t        | j                  d      | _        | j                  j                  | _        | j                  j                  | _        | j                  j
                  | _        | j                  j                  | _        | j                  j                  | _        | j                  j                  | _        y)z,fitli has common routines of dofre and ranfidofreN)	r   r	   fitlifufiget	list_sigssigs_availablesigis_up_to_date)r   s    r   r   zDofre.import_from_fitli   sv    4667+
JJOO	::>>--"jj77::>>!ZZ55r   Nc                 `   | j                   }|| j                         rt        d       y| j                   j                  }| j                  j                  d      }d}d| _        d| _        d| _        |D ]2  }t        d|z          | j                  ||       |d	z  }|,||k\  s2 n t        j                  | j                        }t        j                  | j                        }	| j                  }
| d
| d
|	 |
 }|j                  d   dz   |z   }t        |d      }|j                  d       d}| j                   D ]|  }t#        j$                  |      }t'        t)        j*                  | j                  | j                   |   z              }|d	z  }|| j                  k  se|j                  d| d| d       ~ |j                  d d dz          |j-                          d|z   }t/        j0                  |d       |dz   }t        d|z          t3        j4                  |d       y)z#-> makes update for all alfit filesNzThe dofre is up to date.Frandom)orderr   zdofre loads )
do_verbose   _r   /w{
z: ,z
}z/bin/gzip -f T)shellr   zdofre wrote z.dofre.json.gz)r	   r    printmax_issuedater
   	out_fufis
count_docs
count_fitsr   update_for_fufitinnusmaker   dirsopenwriter   jsondumpsstrmathlogclose
subprocessrunfilerclear_by_extension)r   r$   	max_filesr	   	issuedatealfit_fufiscount_files
alfit_fufir1   r   r   finaout_fufiout_file	count_fitfitfit_keyvaluecommands                      r   updatezDofre.update&   s   FF!3!3!5,-FF((	jj***:% 	J.:-.  
 C1K$	)A	 [[1
kk$"2"23nnAj\;-u=66'?S(4/#&s	66 	9CjjoG466#;!>?@ENI4??*G9BugQ78	9 	G9Bug.67!H,wd+e#nx'(  +;<r   c                 |    t        j                  |      | _        | j                  D ]  }| j                  |        y )N)r@   loadd
feed_papid)r   rF   r$   papids       r   r2   zDofre.update_for_fufiP   s1    J'VV 	#EOOE"	#r   c                    | xj                   dz  c_         | j                  |   D ]a  }|| j                  vr%d| j                  |<   | xj                  dz  c_        n| j                  |xx   dz  cc<   | xj                  dz  c_        c y )Nr%   )r0   rR   r   r1   r   )r   rT   rK   s      r   rS   zDofre.feed_papidV   ss    166%= 		"C $&& s1$sq !		"r   )FN)F)__name__
__module____qualname__r   r   rO   r2   rS    r   r   r   r      s    6(=T#"r   r   )
r8   r;   r>   r@   r3   r
   r   r   r   r   rY   r   r   <module>rZ      s&          U" U"r   