
    5gh5                         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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
5      rg)    N)quote)Alfit)Caler)PaferFitli)Ranfi)Sipilc                       \ rS rSrSS jr0 4S jrS rS rSS jrSS jr	SS
 jr
S rS rSS jrS0 S4S jrSS jrS rSrg	)Vemli   Fc                    Xl         X l        [        U5      U l        [	        U5      U l        [        U5      U l        [        U5      U l	        [        U5      U l        S U l        SU R                   R                  ;   a  [        U5      U l        U R                  R                  5       U l        U R                   c.  [#        S[$        R&                  S9  [$        R(                  " S5        SU l        SU l        SU R                   R                  ;   a'  [/        U R                   R                  S   5      U l        0 U l        0 U l        U R                   R4                  S   U l        g )	Nis_seedablezvemli can't run with no ranfifile   z.json.gz   vemli_digitsvemli)e
do_verboser   alfitr   calerr   fitlir	   ranfir   pafersipilconfr
   get_last_sigsigprintsysstderrexitextdigitsintvrdirsfolder)selferimpr   s      !/home/ernad/ernad/python/vemli.py__init__Vemli.__init__   s    $5\
5\
5\
5\
5\

DFFKK'uDJ::**,881zz#HHQKTVV[[(dffkk.9:DKffkk'*    c                     U R                  U5      n0 nU H?  nXd;  a   [        SU SU 3[        R                  S9  M(  XF   nXc;   a
  USX6   -   -  nXuU'   MA     U$ )Nzvemli can't see  in r    )get_datar!   r"   r#   )r,   papids	issuedatepflagsdatavemlispapidr   s           r.   harvestVemli.harvest2   sr    }}Y'E (tI;?::'KEv},,!5M  r1   c                    [         R                  R                  U5      (       a  [        R                  " U5      nU$ U R
                  S-   U-   S-   U R                  -   S-   U R                  -   n[         R                  R                  U5      (       d  [        SU 3[        R                  S9  0 $ [        R                  " U5      nU$ )N/_.vemlizvemli can't open r   )ospathisfilefilerloadr+   r    r%   r!   r"   r#   )r,   injestr9   fufis       r.   r5   Vemli.get_dataA   s    77>>&!!::f%DK{{S 6)C/$((:XEhhww~~d##%dV,3::>Izz$r1   c                     U R                  U5      n0 nU H_  n0 XE'   X5   nUR                  S5      S   nUR                  S5      nU H)  nSU;  a  M  UR                  S5      n	U	S   XE   U	S   '   M+     Ma     U$ )N#r   r4   :   r   )r5   split)
r,   r6   rG   r9   vempasr;   r   partspartcompss
             r.   harvest_parsedVemli.harvest_parsedM   s    }}V$EFMKEKK$Q'EKK$Ed?

3*/(eAh'	   r1   c                 v   [        S5        SSKJn  U" U R                  SS9U l        SSKJn  U" U R                  S5      U l        U R                  R                  SS9nU HU  n[        S	U-   5        U R                  X5      nUb  M'  [        S[        R                  S9  [        R                  " S5        MW     g
)z-> prepare classing vemte filezget the required sigsr   r   r   )kind)MoclaT)for_classingzvemli: I have work for Nz-vemli can't make testing files can't continuer   r   )r!   r   r   r   moclarW   required_sigsprepare_for_sigr"   r#   r$   )r,   r7   r   r   rW   sigsr    outs           r.   prepare_classingVemli.prepare_classing\   s    %&4660
4667+
zz''T':C+c12&&y6C{E::' r1   c                 z   U R                   R                  S   nUS-   U-   S-   U-   S-   n[        R                  R	                  U5      (       a  [        S5        U$ US-   U-   S-   U-   S-   U R                  -   n[        R                  R	                  U5      (       aY  [        [        R                  " U5      5      S:  a6  U R                  R                  U5      n[        S5        [        S	U-   5        U$ U R                  R                  US
9nUc  [        SU-   5        gU R                  R                  XS9nUc  [        SU-   5        gU(       a  [        SU-   5        X l        Xpl        [        SU-   5        U R#                  XS9nUc  g[        SU-   S-   5        U R                  R                  U5      nU$ )z#used to prepare vemlis for classingclassr?   r@   z.classzcase 1rA   r   zcase 2zmocla returns r    Nz+mocla can't continue to dig, no vemlis for r   zvemli sees no alfit for zmocla needs to make vemlis for z mocla needs to build the vemlis z#vemli calls mocla.vemte_from_vemli())r   r*   rB   rC   rD   r!   r%   lenrE   rF   rY   vemte_from_vemlir   get	get_alfitr    r)   
build_fufi)	r,   r7   r    r   r+   
vemte_fufi
vemli_fufir   
alfit_fufis	            r.   r[   Vemli.prepare_for_sigl   s    W%c\I-3c9HD
77>>*%%(Oc\I-3c9HDhh
 77>>*%%#ejj.D*E*I44Z@J(O"Z/0

3'=?#EFZZ))))K
,y893j@A 0:=>__Z_G
3j@3FGZZ00<
r1   Nc                    U R                   nUb  UnU R                  S-   U-   U R                  -   n[        R                  " U5      nUS:X  a  [        R
                  " U5        U$ US:X  a  [        USS9nU$ [        U5      nU$ )z-> list of vemli filesz/*random
new_to_oldT)reverse)r    r+   r%   globro   shufflesorted)r,   orderdo_sigfisigfiglob_string	out_fufiss         r.   ry   Vemli.out_fufis   s    EkkD(50488;IIk*	HNN9%L y$7I9%	r1   c                 P    U R                   S-   U-   S-   U-   U R                  -   nU$ )z--> used by moclar?   r@   )r+   r%   )r,   r7   r    rH   s       r.   out_fufiVemli.out_fufi   s3    {{S 9,s2((r1   c                    U R                  XR                  5      n[        R                  R	                  U5      (       d"  [        SU-   S-   U-   [        R                  S9  gSU-   S-   U-   n[        R                  " US[        R                  S9nUR                  5       S	   SS
 R                  5       nUR                  S5      n[        U5      S:  a"  [        SU-   S-   U-   [        R                  S9  gUS   nU$ )zgreps a line from a vemli filezvemli has no file z
 for seed r   Nz/bin/zgrep r4   T)shellstdoutr   "   zvemli has no seed r3   )r|   r    rB   rC   rD   r!   r"   r#   
subprocessPopenPIPEcommunicatedecoderN   re   )	r,   r7   r;   rH   cmdprocesslinefieldsr   s	            r.   grep
Vemli.grep   s    }}Y1ww~~d##&-<uDzz#e#c)D0""3d:??K""$Q',335Cv;?&.7$>zz#q	r1   c                    U R                   R                  5       nU R                  R                  5       U l        U(       a  [	        SU R                  -   5        Ub  X0l        U Hb  n[
        R                  R                  U5      nUSS nUb  Xr:w  a  M1  U R                  R                  U5      (       d  MS  U R                  XQS9  Md     g)z:-> makes update from alfit files from issues, for trainingzvemli uses Nr   
   rc   )r   ry   r   r    r!   rB   rC   basenamer   is_issue_in_trainri   )r,   r   only_issuedater    alfit_fufisrl   banar7   s           r.   updateVemli.update   s    jj**,::>>#-$((*+?H%J77##J/DQr
I). :://	::OOJO> &r1   r   c                 $   [         R                  " U5      nSnU R                  R                  U5      nUb  U R                  b  U R                  R                  U5      nUS   n	XS   :w  a  [        SU	 SU 3[        R                  S9  [        R                  R                  U5      n
US:X  aB  U R                  R                  5       U l        U
S-   U R                  -   S-   U R                  -   nO[        S	W 3[        R                  S9  U
S-   U-   S
-   U R                  -   U R                  -   nOU R                   S-   U-   S
-   U R                  -   nU R                   R#                  S5      (       a  XR                  -  nO>U R                   R#                  S5      (       a  USU R                  -   -  nO[%        S5      e[         R&                  " X/5      (       d  [        SU-   5        U$ [(        R*                  " US5        [-        U R.                  5      S:X  a(  U R0                  R3                  U R                  S9U l        U(       a  [        SU-   5        [         R4                  " U5      n0 U l        U(       a   U H  nU R9                  X   S   USS9  M     O'U H!  nSnX;   a  X=   nU R9                  X   XSS9  M#     [        SU-   5        [         R:                  " XR6                  5        0 U l        [(        R<                  " U5        U$ )z@--> called by train to get seed vemlis, must return fufi or NoneFr   zvemli's input should be z, not r   lopver?   rA   zvemli: r@   z/vemliz/classzvemli can't handle your case.zvemli doneres i  r   rb   zvemli loads arc    zvemli writes )rE   get_issuedater   get_repcoder   	set_fufisr!   r"   r#   rB   rC   dirnamer   	train_sigr    r%   r+   endswith	Exceptiondonerelockerplacere   r)   r   rg   rF   r(   
feed_papiddumpremove)r,   in_fufir   addendr   r7   is_it_grundrepcodesipil_fufisrl   fudir|   dr;   adds                  r.   ri   Vemli.build_fufi   s    ''0	**((14::#9**..w7K$W-Jg..0F7)L::'77??7+D w:://1#:08;dhhF z*<#:,s2TXX=H {{S(94s:TXXEH{{##H--HH$%%h//Htxx// ?@@||Hi00"X-.OXt$ tvv;!ZZ^^^1DF.7*+JJwuG  ? -C%G	 
 	o()

8VV$hr1   c                 *   Sn0 nU R                   nU HO  nXR                  ;  a  M  U R                  U   n	SUR                  S5      -   n
X   U
-  nX[        U	5      '   X[-  nMQ     [        R
                  " U5      nSn[        U5       HA  n[        R
                  " Xn   5      U-  nU[        U5      S-   [        U5      SU -   S-   -  nMC     [        U5      S:X  a  US[        U5      -   -  nOUS[        U5      -   S-   U-   -  nXR                  U'   g )Nr   r   r4   r   rL   z# )r&   r)   countr'   mathsqrtrt   strre   r   r(   )r,   fitsr;   r   r   sumf
numbs_intsr&   fitnumberlengthr   	root_sumfr   numbvals                   r.   r   Vemli.feed_papidD  s   
C&& VVC[F 3'F)f$C&)s6{#KD  IIdO	:&D))J,-	9CCIOc#hq&883>>D '
 v;!D5<''DD5<'#-66Dur1   c                     UR                  S5      S   R                  5       n0 nU H9  nSU;  a  M  UR                  S5      n[        US   5      U[        US   5      '   M;     U$ )NrK   r   rL   rM   )	partitionrN   floatr   )r,   textrP   vectrQ   piecess         r.   parseVemli.parsea  sg    $Q'--/D$^^C(F#(#3DVAY 	 
 r1   )r   r   r&   r   r   r%   r   r+   rY   r   r)   r   r    r   r(   )F)T)rp   N)FNN)__name__
__module____qualname____firstlineno__r/   r<   r5   rS   r^   r[   ry   r|   r   r   ri   r   r   __static_attributes__ r1   r.   r   r      sU    : 13 
 )V$&?j .32G KZ:r1   r   )rr   r   r   rB   ro   r"   requests.utilsr   rE   r   r   r   r   r   r   r   r   r   r   r	   r   r
   r   r   r1   r.   <module>r      s>       	  
          V Vr1   