
    jh                     p    S SK r S SKJr  S SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJr   " S S5      rg)    N)Dexisc                   x    \ rS rSrS r  SS jrS rS rS rSS jr	S	 r
S
 r  SS jrSS jr\S 5       rSrg)Krikt   c                     Xl         / U l        g )Nejunkers)selferimps     !/home/ernad/ernad/python/krikt.py__init__Krikt.__init__   s        Nc                    U R                   nUR                  5         UR                  n[        USS9nU(       d/  [	        UR                  5       5      n[        R                  " U5        U H  nUb  X:w  a  M  UR                  S   S-   n	[        R                  R                  U	5      (       d  [        SU	-   5      e/ n
U
R                  U	5        Xh   nU
R                  U5        U R                  U5      n[        R                   " XUS9(       d  M  U(       a  [#        SU S	U 35        UR$                  R'                  S
X5        M     g)z+-> does not donere for the krikt style fufiTreverseNstylez/krikts.xslt.xmlzI don't see )
do_verbosezkrikt runs z to krikts)r	   fill_issuesissuessortedlistkeysrandomshuffledirsospathisfile	Exceptionappendget_fufifilerdonereprinttfufi_to_json)r   do_newest_firstr   do_only_issuedatedo_checkr	   r   issues_to_do	issuedate
style_fufiin_fufisin_fufiout_fufis                r   renewKrikt.renew   s	    FF	fd3.LNN<(%I ,1+==J77>>*-- ;<<HOOJ''GOOG$}}Y/H<<zJG9D
;<CCXw9# &r   c                    0 nU H#  nX$   nXS;  a  / X5'   X5   R                  U5        M%     U H  nU R                  U5      n[        R                  R	                  U5      (       d  [        SU 3[        R                  S9  MU  [        R                  " U5      nX5    H5  nXA;   a  M
  XG;  a   [        SU SU 3[        R                  S9  M/  Xt   X'   M7     M     U$ )z'written to add sipis from out of didspizkrikt: no file for filezkrikt has no z in )
r#   r$   r   r    r!   r'   sysstderrr%   load)r   r   to_getsamelpapidr.   
krikt_fufiissue_kriktss           r   mergeKrikt.merge6   s    EI%#% ##E*	 
 Iy1J77>>*--+I;7::' ::j1L)?,M%YK@"zz+ , 3 *  r   c                 J    U R                   R                  S   S-   U-   S-   nU$ )Nkrikt/.json.gzr	   r   r   r.   fufis      r   r$   Krikt.get_fufiP   s(    vv{{7#c)I5
Br   c                     [         R                  R                  U5      nUSS nU R                  U5      nU R                  R
                  R                  SX5        [        SU-   5        g)z$--> run a test a file, for debuggingr   
   r   zkrikt wrote N)r   r    basenamer$   r	   r(   r)   r'   )r   r1   in_banain_dater2   s        r   run_fileKrikt.run_fileT   sV     ''""7+!B-==)h:nx'(r   c                     U R                   R                  S   S-   n[        R                  " U5      nUS:X  a  [        R                  " U5        U$ [        USS9nU$ )z-> list of krik filesrC   
/*.json.gzr   Tr   r	   r   globr   r   r   )r   orderglob_string	out_fufiss       r   rW   Krikt.out_fufis`   sS    ffkk'*\9IIk*	HNN9%9d3	r   c                 J    U R                   R                  S   S-   U-   S-   nU$ )zmay be usesd somewhererC   rD   rE   rF   rG   s      r   rH   
Krikt.fufij   s(    vv{{7#c)I5
Br   c                    U R                   nUR                  nSU-   S-   nUR                  R                  US9n/ nU HB  n[        R
                  " XF   5      n[        R                  " U5      nUR                  U5        MD     XPl	        g )Nzstyle/z/junk_krikts.xslt.xml)fina)
r	   impnaabovoread_constantsconfde_xmlrecompiler#   r
   )	r   r	   r]   r\   regexesr
   priorityvaluejunkers	            r   junk_eatersKrikt.junk_eaterso   s|    FF%"99''((d(3HKK 12EZZ&FNN6"	  
 r   c                    U R                   n[        U5      n[        R                  " [        R
                  " UR                  S   5      5      nUSS nUR                  U5        UR                  SS9n[        R                  " U5      n	UR                  R                  U	/5      n
UR                  R                  SU
5      nSnU(       a'  U[        R                  " U
5      R                  5       -  nU(       a  X-  nUSL a  U$  [         R"                  " U5      n [        R                  " U
5      R                  5       nU Ha  nUU   nU HS  nUU   nU HE  nUR5                  US5      n[6        R8                  " S
SU5      n[6        R8                  " SSU5      nMG     MU     Mc     [;        U R<                  5      S:X  a  U R?                  5         O U R<                   H  n[6        R8                  " USU5      nM     USW-   -  nUSU-   -  nU$ ! [         R$                  R&                   aH  n[)        U[*        R,                  S	9  [)        UR/                  5       [*        R,                  S	9   S nAg S nAff = f! [        R0                   aQ  n[)        UR                  5       [*        R,                  S	9  [)        [3        U5      [*        R,                  S	9   S nAg S nAff = f)Ndexisr   rK   T)with_nsr    Fr6   z<([^>]+)></\1>\nz<([^ ]+)[^>]+></\1>\n
) r	   r   r   choicer   listdirr   set_issuedateet
fromstringxwrap_dorelsr(   doc_to_jsontostringdecodejsonloadsdecoderJSONDecodeErrorr'   r8   r9   formatSerialisationErrorstrreplacerb   sublenr
   rh   )r   	show_rumpwith_krikts	show_fullr	   d
dexis_banar.   octetsdoreldocjson_stringoutdataerr
xml_stringr=   rC   fivasfivarexs                        r   test_oneKrikt.test_one|   sS   FF!H]]2::affWo#>?
q$	 	
	"$'f%ccooug&ccooh42;;s#**,,CCJ	::k*D
	S)002J
 E;DU!D!+!3!3D"!=J!#(;R!LJ!#(@"(2"4J	 "   t||!<<CR4J   	dUl"
tj  
A ||++ 	+CJJ/#**,SZZ0	 $$ 	&--/

3#c(,	s1   H $I8 I5->I00I58KAKKc                     U R                   nUR                  S   S-   n[        R                  " U5      nU(       a  [        R                  " U5        U$ [        USS9nU$ )zlist the fufirC   rR   Tr   rS   )r   	do_randomr	   rV   fufiss        r   
list_fufisKrikt.list_fufis   sP    FFffWo4		+&NN5!Lud+r   c                    U R                  5       n U R                  SS5      n U R                  SS5      n U R                  SS5      n U R                  SS5      n SR                  U R                  5       5      n U R	                  S5      n U $ )N) (,-.)lowerr   joinsplitrstrip)ss    r   process_fieldKrikt.process_field   ss    GGIIIc3IIc3IIc3IIc3HHQWWYHHSMr   r   )TFNF)
new_to_old)TFF)F)__name__
__module____qualname____firstlineno__r   r3   r@   r$   rO   rW   rH   rh   r   r   staticmethodr   __static_attributes__ r   r   r   r      sY     6;/4:<4
)
 49 6p	 
 
r   r   )r   
lxml.etreeetreerr   rT   ry   r   rb   r8   r`   r%   rk   r   r   r   r   r   <module>r      s/    	     	 
   z zr   