a
    +`                     @   sb   d dl Z d dlmZ d dlZ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 G dd dZdS )    N)Dexisc                   @   s0   e Zd Zdd ZdddZdd Zdd	d
ZdS )Kriktsc                 C   s   || _ g | _d S )N)ejunkers)selferimp r   "/home/ernad/ernad/python/krikts.py__init__   s    zKrikts.__init__TFc                 C   s   | j }|  |j}t|dd}|s:t| }t| |D ]}|jd d }t	j
|shtd| g }|| || }	||	 |jd d | d }
tj|
||d	sq>|jd
|	|
 q>dS )z(does not donere for the krikt style fufiT)reversestylez/krikts.xslt.xmlzI don't see krikt/z.json.gz)
do_verbosekriktsN)r   fill_issuesissuessortedlistkeysrandomshuffledirsospathisfile	Exceptionappendfilerdoneretfufi_to_json)r   do_newest_firstr   r   r   Zissues_to_do	issuedateZ
style_fufiin_fufisin_fufiout_fufir   r   r	   renew   s&    


zKrikts.renewc           	      C   s`   | j }|j}d| d }|jj|d}g }|D ]&}t|| }t|}|| q.|| _	d S )Nzstyle/z/junk_krikts.xslt.xml)fina)
r   impnaabovoread_constantsconfde_xmlrecompiler   r   )	r   r   r)   r(   Zregexesr   priorityvalueZjunkerr   r   r	   junk_eaters/   s    
zKrikts.junk_eatersc              
   C   s
  | j }t|}tt|jd }|dd }|| |jdd}t	|}	|j
|	g}
|jd|
}d}|r|t|
 7 }|r||7 }|du r|S zt|}W nL tjj y } z.t|tjd	 t| tjd	 W Y d }~d S d }~0 0 zt|
 }W nN tjyZ } z2t| tjd	 tt|tjd	 W Y d }~d S d }~0 0 |D ]V}|| }|D ]B}|| }|D ].}||d}td
d|}tdd|}qqpq`t| jdkr|   n | jD ]}t|d|}q|d| 7 }|d| 7 }|S )Ndexisr   
   T)Zwith_nsr    F)filez<([^>]+)></\1>\nz<([^ ]+)[^>]+></\1>\n
) r   r   r   choicer   listdirr   Zset_issuedateet
fromstringxZwrap_dorelsr    doc_to_jsontostringdecodejsonloadsdecoderJSONDecodeErrorprintsysstderrformatSerialisationErrorstrreplacer.   sublenr   r2   )r   Z	show_rumpZwith_kriktsZ	show_fullr   dZ
dexis_banar#   ZoctetsZdoreldocjson_stringoutdataerrZ
xml_stringZpapidr   ZfivasZfivaZrexr   r   r	   test_one<   sZ    



zKrikts.test_oneN)TF)TFF)__name__
__module____qualname__r
   r'   r2   rS   r   r   r   r	   r      s   
  r   )r   
lxml.etreeetreer:   r@   r   r.   rE   r,   r   r3   r   r   r   r   r   r	   <module>   s   