
    ph:                         S r SSKrSSKr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Jr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr   " S S5      rg)zwHOLe ISsue pages    N)Ausfu)Ishus)Doker)Riffer)Trans)Otria)Xpafs)Rixerc                   Z    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)Holis   c                    Xl         X l        [        XS9U l        [	        U5      U l        [        U5      U l        [        U5      U l	        [        U5      U l        [        XS9U l        [        U5      U l        [!        U5      U l        SUR$                  S   -  U l        SUR$                  S   -  U l        UR$                  S   UR$                  S   S.U l        S U l        S U l        S U l        S U l        SU l        SU l        S U l        g )N)
do_verbosez{%s}ernadamf)Nez*/a:amf/a:collection/a:haspart/a:collectionu   on %Y‒%m‒%d at %H:%M:%S)r   r   r   otriar   ausfur	   xpafsr   ishusr   dokerr   rifferr
   rixerr   transnsnEnAnsmappapids	issuedatedoc_fufidat_fufibase_xppretty_formatshoti)selferimpr   s      !/home/ernad/ernad/python/holis.py__init__Holis.__init__   s    $58
5\
5\
5\
5\
U:5\
5\
588G,,588E?*!HHUO 88G,.
 C:
    c                    U R                   R                  S   S-   n[        R                  " U5       H  n[        R                  R                  U5      SS nU R                   R                  S   S-   U-   S-   nU R                  R                  USU5        U R                  (       d  Mw  [        SU S	U 35        M     g)
used by bin/holisholisz/????-??-??.xmlNblatt/holis/.htmlzholis: z to )
r   dirsglobospathbasenamer   fufi_to_fufir   print)r&   glob_string
holis_fufir    
blatt_fufis        r(   
blatt_onlyHolis.blatt_only5   s    ffkk'*->>))K0J((4Sb9IW-	9IEOJJJ##JD
|4
|<= 1r+   c                    Uc  U R                   R                  S   nU R                  U5        U R                  R	                  5       nU R                  U5      nSnU R                  R                  X45      nSUR                  ;   a  U R                  (       a  [        S5        gU R                   R                  S   UR                  S'   U R                  R                  U5      nU R                  R                  U5      n[        R                   " X`R"                  5        U R                   R$                  S   S-   U-   S-   nU R                  (       a  [        S	U 35        U R&                  R)                  S
Xg5        g)z,used by bin/holis, fired up in release/poishr   z/a:amf/a:collection/e:issuedateaftazholis: after link thereFr0   r1   r2   holis writes r.   T)r   
issuedatescomplete_issuer   sekl_issuedateloadr   oneattribr   r9   r   add_currencyr   inject_updatefilerinstall_xmlr!   r3   r   doc_to_fufi)r&   r    	sekl_date	issue_eleissuedate_xpissuedate_eledoc	html_fufis           r(   poishHolis.poish?   s-    ))!,I 	I&JJ--/	IIi(	8

y?])))/0'+vv'8'8';V$JJ++I6	jj&&y1#}}-FFKK(94y@7J	??M)-.

w7r+   c                 T
   U R                   (       a  [        SU 35        Xl        U R                  U5      nSnU R                  R                  U5      nSnU GH  nXF   nU R                  R                  U5      n[        R                  R                  U5      (       d  U R                  R                  US9  [        R                  R                  U5      (       d  [        SU 3[        R                  S9  M  U R                  X&U5      n	U	c  [        R                  " S5        U	S:X  a  UnM  U R!                  X&U5      n
U
SL d  U
c  UnM  U	S	:X  a  S
nUc'  UR#                  5       S   R%                  U
5        UnGM&  U R&                  SU S3-   nU R(                  R+                  X+5      nUR-                  5       R-                  5       nUR/                  U
5        UnGM  [1        U	[2        R4                  5      (       d1  [        SU	 3[        R                  S9  [        R                  " S5        U	nUR-                  5       R7                  X5        S
nUnGM      [        R                  R                  U R8                  5      (       a1  U(       d*  U R                   (       a  [        SU R8                   35        gU R                   (       a  [        SU R8                   35        [:        R<                  " U R8                  U R>                  5        U R                   (       a  [        SU R@                   35        SnU R>                  S    H*  nU[C        [E        U R>                  S   U   5      5      -  nM,     UnU R>                  S    H*  nU[C        [E        U R>                  S   U   5      5      -  nM,     [2        RF                  " X RH                  S-   5      n[K        U5      URL                  S'   [K        U5      URL                  S'   [K        U R>                  S   5      URL                  S'   UU R>                  S   -  nUS URL                  S'   [2        RN                  " X RP                  S9  U RR                  RU                  U5      nU RV                  RY                  U5      n[:        RZ                  " UU R@                  5        U R\                  R^                  S   S-   U-   S-   nU R                   (       a  [        SU 35        U R`                  Rc                  SUU5        SU l        g) r-   zissuedate is FN)repcodezholis should have file   niTr   /e:repcode[text()='']zholis: bad action zholis: no changes to rA   zholis installs insicountsshowsr   altotalz.2%cover	top_nsmapr0   r1   r2   r.   )2r   r9   r    rE   r   timely_by_issuedater   get_fufir5   r6   isfile
export_allsysstderraction_on_reportexitcollect_reportgetchildrenappendr#   r   rF   	getparentaddnext
isinstanceet_Elementreplacer"   rJ   dumpr   r!   lenlist
SubElementr   strrG   cleanup_namespacesr   r   rH   r   rI   rK   r   r3   r   rL   )r&   r    rN   has_it_changedrepcode_sent_fufisprev_repcoderV   	sent_fufi
ausfu_fufiactionrepis_coll_elexprepcode_elesibling_eleold_hapa_eletotal_showstotal_papids
counts_elerd   rQ   rR   s                        r(   rC   Holis.complete_issueZ   s,   ??M)-."IIi(	!ZZ;;IF)G*3I,,Y7J77>>*--

%%g%677>>*--*:,7::'**9zJF~}  '!00YON&.*@&}!%'))+A.55nE#*L*=l^2(NNB"&**.."?K"-"7"7"9"C"C"EK''7#*L fbkk22*6(3::'!L""$,,\J!N"L[ *\ 77>>$--((-dmm_=>??M$--12

4==$++.??ODMM?34{{4(G3tDKK$5g$>?@@K )"{{4(GCT[[%6w%? @AAL )]]9gg.@A
%(%5
'"&),&7
(#%(T):%;
'"t{{400(-c{
'"
i::>JJ++I6	jj&&y1#t}}-FFKK(94y@7J	??M)-.

wY7r+   c                    U R                   S-   U-   S-   nU R                  R                  X5      n[        U5      S:  a   [	        SU SU S3[
        R                  S9  g[        U5      S	:X  a  g
US	   n[        R                  " U5      nUR                  5       nUR                  S   n	Xy:X  a  gUR                  5       $ )z5n: do nothing, 'i', insert, or element to be replacedr\   r]   rY   z
holis for z is garbled, z++rW   Nr   r[   hashrZ   )r#   r   allery   r9   rk   rl   hashermakerr   rG   )
r&   rN   rV   r   there_xpthere_reports	there_elehaschcoll_elehash_of_recos
             r(   rm   Holis.action_on_report   s     <<"77'ADH

	<}!Jzl-yCzz#}"!!$	J'&&(v.  !!##r+   c                    U R                   nU R                  R                  U5      n[        R                  R                  U5      (       d  g [        R                  " U5      n[        R                  R                  U5      (       d  [        S[        R                  5        g [        R                  " U5      nUc  [        S[        R                  S9  g[        R                  R                  U5      (       d  U R                  R                  U5        [        R                  R                  U5      (       d  gS H  n0 U R                  U   U'   M     U R                  R                  U5      n[         R"                  " [         R$                  " UR&                  S   S5      5      n	XyR(                  S'   [+        [,        R.                  " XpR                  5      5      U	R(                  S	'   U R1                  U5      U	R(                  S
'   [        R2                  " U5      n
U
c  [        SU 35        g[         R"                  " [         R$                  " UR&                  S   S5      5      n[,        R4                  " U5      UR(                  S'   U R6                  R9                  U
S5      nUR;                  U5        XlR(                  S'   U R=                  X,5        XlR(                  S'   UR;                  U	5        [         R"                  " [         R$                  " UR&                  S   S5      5      n[+        [?        [A        U R                  S   U   5      5      5      UR(                  S'   [+        [?        [A        U R                  S   U   5      5      5      UR(                  S'   UR;                  U5        U R6                  RC                  US5      nU H"  nURE                  5       RG                  U5        M$     SnU R6                  RC                  UU5      nU H"  nURE                  5       RG                  U5        M$     UR;                  U5        U$ )Nzholis does not see {ausfu_fufi}z'holis does not see shoti on {sent_fufi}rW   Fr^   r_   r   timer%   lateshowzholis can't parse r   haspartfromz//a:amf/a:collectionr   countr^   allr_   seenz//a:haspart[a:text]z$//a:haspart/a:collection/e:issuedate)$r   r   rh   r5   r6   ri   r   r   r9   rk   rl   rJ   r%   by_fufir   r   ru   ElementQNamer   rG   r|   shotiserdiffdate	parse_laxr   r   zero_or_onerq   collect_papidsry   rz   r   rr   remove)r&   rN   rV   r   r   r   r   r%   parttime_ele	ausfu_doc	repis_eler   	count_ele	hapa_eleshapa_eler   issuedate_elesrP   s                      r(   ro   Holis.collect_report   s-   FFZZ((3
ww~~j))J'ww~~j))3SZZ@I&=;zz#ww~~j))JJy)ww~~j)) !D)+DKKg& ! !!),::bhhqttG}f=>#( "%hmmE::&F"G"&))E"2OOJ/	&zl34JJrxxUY?@	#+==#7	 ::)))5KL""'G."'! JJrxxWw?@	"%c$t{{4/@/I*J&K"L	#&s4D0A'0J+K'L#M	 	"JJOOH.CD	!H ''1 " 426+M##%,,]; ," r+   c                 @   U R                   R                  US5      nU HF  nU R                  S    H0  nX@R                  S   U   ;   d  M  SU R                  S   U   U'     MD     MH     0 U R                  S   U'   SnU H  nUS-  nX`R                  S   U   U'   M     g)Nz//a:haspart/a:text/@refr^   rY   r_   r   T)r   r   r   )r&   rV   r   r   papidearlier_repcodecount_papidss          r(   r   Holis.collect_papids  s    +DEE#';;t#4KK-o>>89DKK%g.u5 $5 
 &(D'"EAL0<KKg&u-  r+   c                     U R                   R                  S   nUS-   U-   S-   n[        R                  " U5      n[	        [        U5      5      nA[        R                  " 5         U$ )Ndexis/.json.gz)r   r3   rJ   rE   ry   rz   gccollect)r&   r    
dexis_fudi
dexis_fufir   r   s         r(   	get_totalHolis.get_total  sU    VV[[)
#%	1J>


:&DK 


r+   c                      S U l         S U l        g N)r    r   )r&   s    r(   clearHolis.clear%  s    r+   c                    U R                   nUR                  5         Xl        UR                  S   S-   U-   S-   nUR                  S   S-   U-   S-   n[        R
                  R                  U5      (       ax  U R                  (       a  [        SU 35        [        R                  " U5      R                  5       R                  5       S   nSnU R                  R                  XV5      U l        GO[         R"                  " [         R$                  " UR&                  S   S	5      5      nUR(                  S
-   U-   UR*                  S'   U R,                  R/                  U5      n[1        UR2                  5      U-
  n[5        U5      UR*                  S'   [5        U5      UR*                  S'   UR7                  SS5      UR*                  S'   U R8                  R                  UR2                  U   5      n	XR*                  S'   Xl        [5        [:        R<                  " U	5      5      UR*                  S'   [         R>                  " XPR@                  S-   5      n
Xl!        US:  a  URD                  US-      U
R*                  S'   US:  a  URD                  US-
     U
R*                  S'   [        R
                  R                  U5      (       dO  0 U l#        U RI                  U5      U RF                  S'   S H#  nXRF                  ;  d  M  0 U RF                  U'   M%     O:U R                  (       a  [        SU 35        [        RJ                  " U5      U l#        X0l&        X@l'        [         R"                  " [         R$                  " UR&                  S   S5      5      nURQ                  U5        [         RR                  " XRT                  S9  U$ )Nr.   r   z.xmlr   zholis reads r   z./@shotir   
collection:idposnum-u   ‒prettyr%   tistr    rY   bifor@   rb   r   re   )+r   fill_issuesissudater3   r5   r6   ri   r   r9   rJ   r   getrootrp   r   none_or_oner%   ru   r   r   r   impnarG   r   r   ry   issuesr|   rw   r   r   ekamr{   r   textrB   r   r   rE   r!   r"   rq   r}   r   )r&   r    r   r!   r"   rN   r   r   r   r%   rP   r   amf_eles                r(   rE   
Holis.load)  s   FF	!66'?S(94v=66'?S(94zA77>>(##XJ/0199;GGI!LIB//	>DJ 

288ADDK#FGI%&WWs]Y%>IT"**..+Cahh-#%C&)#hIU#&)#hIU#)2):):3)FIX&KK%%ahhy&9:E(-W%J'*8==+?'@IV$ MM)WW{5JKM!*Qw/0||C!G/D$$V,Qw/0||C!G/D$$V,ww~~h''DK $y 9DKK${{*(*DKK% %
 XJ/0**X.DK  **RXXadd5k59:y!
g<r+   c                 F    [         R                  " XR                  5      nU$ r   )r   r   r$   )r&   r%   outs      r(   r   
Holis.dateg  s    mmE#5#56
r+   )r   r#   r"   r   r!   r   r   r   r   r    r   r   r   r   r   r$   r   r   r%   r   r   N)F)__name__
__module____qualname____firstlineno__r)   r=   rS   rC   rm   ro   r   r   r   rE   r   __static_attributes__ r+   r(   r   r      s=    8>6Vp$4?B<|r+   r   )__doc__r   r5   rk   
lxml.etreeetreeru   r4   rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r
   r   r   r+   r(   <module>r      sF     	 	 
             R Rr+   