
    aiB                         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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KJr  SSKJr  SSKJr   " S S5      rg)zSeeds PIlls, GRond    N)quote)Caler)Grond)Plumi)Vemli)Velop)Usipi)Mocla)Ranfi)Spana)Svemd)Ligroc                   P    \ rS rSrSS jrS r  SS jrS rS rS r	S r
S	 rS
rg)Spigr   c                 :   Xl         SU R                   R                  ;  a  g [        U5      U l        [	        U5      U l        [        U5      U l        [	        U5      U l        [        U5      U l	        [        U5      U l        [        U5      U l        [        U5      U l        [!        U5      U l        [%        U5      U l        [)        U5      U l        [-        U5      U l        U R"                  R1                  5       U l        S U l        S U l        X l        0 U l        g )Ngrospi)econfr   calerr   grondr   ligror   vemlir   velopr	   usipir   spanar   ranfir   svemdr   plumir
   moclasiglast_sigsidpil
grond_data
do_verboselemvals)selferimpr%   s      !/home/ernad/ernad/python/spigr.py__init__Spigr.__init__   s    466;;&5\
5\
 5\
5\
5\
5\
5\
5\
5\
 5\
5\
5\


( $     c                    U R                   R                  U5      (       a$  [        SU S35        [        R                  " 5         U R
                  R                  U5      nSSKJn  U" U R                  5      nUR                  U5        US	 SU;  d   [        US   R                  5       5      S:X  a  [        S5        U R                  U5        g)	z&used by test_spigre to run basic testsspigr: z  maturer   )Trainvszspigr: no seedsN)r   is_report_matureprintsysexitr   get_sidpilstrainr/   r   setuplenkeys	get_vemst)r'   repcodesidpilsr/   r7   s        r)   test
Spigr.test:   s     ::&&w//GG9H-.HHJ**((1dffGCLgWS\%6%6%8!9Q!>#$ur,   c           	      8	    UR                   nU R                  R                  UR                   5      nSn[        R                  R                  UR                  5      (       d-  [        S[        R                  S9  [        R                  " 5         U R                  R                  U5      nUc  gSn	US   S:X  a$  US   S:X  a  Sn	U R                  R                  XSS	9nS
U;   a  [        US
   5      S:X  a  Sn	SU;   a  [        US   5      S:X  a  Sn	Sn
U	(       dt  U R                  R                  U   R                   S   n[        R                  R#                  U5      (       a  [        S5        Sn
O[        SU 3[        R                  S9  gU
(       d  US   S:X  a  US   S:X  a  [        S5        [        US   R%                  5       5      n[        SU S35        SnUS    H  nUSUS   U   -   S-   -  nM     U R&                  R)                  USS5      n/ nU R+                  5       nUS    H  nX;   a  M
  UR-                  U5        M     XpR/                  U5      -  nU$ SnSU;  a  gUS    Hw  nUS   U   S:X  a  US-  nM  U(       a&  US   U   S:X  a  SU 3nUSU 3-  n[        U5        MC  [        SU 35        USU R1                  US
   U   UUS   U   S5      -   -  nMy     UUS   :  Ga  [        S5        U R3                  XUS   5      nUc  XPR                  R4                  S   ;  a  [        SU 3[        R                  S9  / nU R                  R4                  S   U    H9  nU R                  R4                  S   U   U   S:X  a  M(  UR-                  U5        M;     [        U5      S:X  a  [        SU 3[        R                  S9  U H)  nUSU R1                  US
   U   UUS   U   S5      -   -  nM+     U R+                  5       n[        [7        US   5      5      nUS   U:  a  U$ U R3                  UUUS   * 5      nUc  [        S [        R                  S9  gU R8                  (       a  [        S!5        XpR/                  U5      -  nU$ )"z'main external method, uses train object z%spigr: there is no {train.train_fufi}fileNTposr   neg)no_pillsr0   Flforpiz spigr has no seeds, it is forkedzspigr has no usipi for u0   spigr: non-forked natal case, post völkner onlyz
spigr has z seeds and pillsz+1 
pk   r1   zspigr skips seed z because no_seeds is zspigr adds a pos vemli for +1zspigre needs to class pillszspigr has not usipi for zspigr has no pills for z,spigr: no evalution, presumably all positivezsigr runs grond_vemlis)r<   r   totalsospathisfile
train_fufir3   r4   stderrr5   r   r6   r9   r   reportdirsisdirr:   r   get_outcasts_by_dot_product	get_grondappendgrond_vemlis
make_vemlieval_by_classdatalistr%   )r'   r7   have_plumisrF   no_seedsr<   rN   outr=   have_i_sidpilsis_it_forked	forpi_dirtotal_sidpilspapidoutcastsincastsr   count_pillsmsgtaken_papidstotal_gronds                        r)   r;   Spigr.get_vemstJ   s    	---""5==1ww~~e..//9zz#HHJ
 **((1?%=A&-1"4!Njj,,W,HG'>c'#,/14"N'>c'#,/14"N g.33G<Iww}}Y''89#/y9

Ku 2ve}7IDE 1 1 34MJ}o-=>?C uws|E22T99 &zz==g>BDJH GNN$Es$u% $ $$W--CJ gS\Es|E"c)q  GCL/36)%1.xj99c
/w78 4$//'#,u*=u*1#,u*=sD D DC! "( &/0  --efUmLL
 #**//#"664WI>"zz+!!ZZ__S1':Ezzs+G4U;sB  ''. ; |$)3G9="zz+ &tdoogcl5.A5.5cl5.A3H H H &  $uSz*+%=;&J))%G@zz#??*+  ..
r,   c                 r    U R                   c  U R                  R                  5       U l         U R                   $ N)r$   r   load)r'   s    r)   rX   Spigr.get_grond   s(    ??""jjoo/DOr,   c                     SnU H  nUSU-   S-   [        X   5      -   -  nM     US[        U5      -   S-   U-   S-   U-   S-   -  nU$ )NrA    :z # rI   )strr   )r'   vempasrf   	issuedatepflagra   fitnos          r)   r[   Spigr.make_vemli  sa    E3;$s6='999C uuU|#c)I5;eCdJJ
r,   c           	      l  ^  UR                   nSn0 T l        T R                  R                  U5      nUR                  R                  SS5      n[        US5      nSn	US    H  n
XS   ;  a  U	S-  n	M  US   U
   SS	 nX;   a)  T R                  (       a  S
U
 S3nSU 3n[        U5        MK  UR                  U
S-   5        US   U
   nUST R                  XUS5      -   -  nM     [        SU	 S35        UR                  R                  SS5      n[        US5      nUR                  U5        UR                  5         UR                  5         US:  a  SnOSn[        SU SU 35        USU-   S-   -  n[        R                  R                  UR                  5      (       d6  [        S[         R"                  S9  [%        US   R'                  5       5      nU$ T R(                  R+                  UR                  USS9T l        [-        T R                  U 4S jS9nUnUS:  a  UUS nU$ US:  a  USU nU$ ) z9use the lemma model to evalute the what (grond or sigpis)rA   z.trainz.papidwr   r0   r1   rL   
   zspigr: rejects rs   zfrom post-natal rI   z0 rG   r.   z
 have leftz.classpillsr   zspigr evals z by class to cut __trainz,spigr has no model, returns all grond papidsrB   T)do_delete_resultc                 "   > TR                   U    $ ro   )r&   )xr'   s    r)   <lambda>%Spigr.eval_by_class.<locals>.<lambda>L  s    T\\!_r,   )keyN)r<   r&   r   dafusrR   replaceopenr%   r3   writer[   closerO   rP   rQ   
model_fufir4   rS   r^   r:   r    predictsorted)r'   r7   whatcutr<   vemlispost_natal_dates
papid_fufi
papid_file
count_gonerf   rw   mesgrv   
vemte_fufi
vemte_fileloggerrk   sorted_papidss   `                  r)   r\   Spigr.eval_by_class  sZ   --  ::++G4%%--hA
*c*

#YEI%a
S	%(2.I ,??,UG15D-i[9D$KUT\*#Yu%FdT__VIsKKKF' ( 	
|:./%%--hA
*c*
 7FFVH$5cU;<#-(**ww~~e..//@zz#
  S	 01Lzz))%*:*:F;? * A t||#<> %7(.L  1W(#.Lr,   c           	         SnU R                  5       nSnSnU H\  nXcS   ;  a  [        SU S35        US-  nM!  US-  nUS   U   nXcS   ;  a  M8  US   U   SS nUS	U R                  XvUS
5      -   -  nM^     [        SU S35        [        SU S35        A[        U S5      (       a  U ?[
        R                  " 5         U$ )NrA   r   r0   zspigr does not see z in the grond.rL   r1   r}   z-1gzspigr took z from the grondzspigr misses z in the grondr   )rX   r3   r[   hasattrr   gccollect)	r'   papidsra   r   count_unseen_papidscount_taken_papidsrf   rv   rw   s	            r)   rZ   Spigr.grond_vemlisZ  s     E#J&+E7.AB#q(#!#3Z&F#J&c
5)!B/I 4$//&CHHHC  	./?@12-@A4!!




r,   c           	         U R                   R                  U5      n0 nU R                  R                  5         SnXR                  R                  S   ;  a3  U R                  R                  US9  U R                  R                  5         XR                  R                  S   ;  a$  U(       a  [        SU 3[        R                  S9  U$ XR                  R                  S   ;   a  U R                  R                  S   U    Ht  nU R                  R                  S   U   U   nUS:w  a  M*  U R                  R                  S   U   nU R                  R                  US	5      (       d	  U(       d  Mp  XsU'   Mv     U Hv  nXPR                  R                  S
   ;  a  M!  U R                  R                  S
   U   nU R                  R                  S   U   n	X5   nUSU R                  XU	S5      -   -  nMx     U$ )NrA   r)only_repcodezspigr: no usipi data for rB   rK   r1   itraspir0   rM   )r   is_it_starvedr   get_datar]   updater3   r4   rS   r   is_it_inr[   )
r'   r<   r   seedsra   rf   kindrw   r0   r   s
             r)   get_seed_vemlisSpigr.get_seed_vemlist  s   

009

**//#..JJ73JJ!**//#..=-gY7zz#Jjjooc**-g6zzs+G4U;3; JJOOC07	zz**9h??((e 7 EJJOOC00

$U+A

$U+AI4$//!As;;;C  
r,   )r   r%   r   r   r$   r"   r&   r   r    r   r   r#   r   r   r   r   r   N)F)TFF)__name__
__module____qualname____firstlineno__r*   r>   r;   rX   r[   r\   rZ   r   __static_attributes__ r,   r)   r   r      s9     D  ;@ ZlDL4r,   r   )__doc__rO   r4   r   requests.utilsr   filerr   r   r   r   r   r   r   r   r   r   r   r	   r    r
   r   r   r   r   r   r   r   r   r   r   r,   r)   <module>r      sD     	 
 	              } }r,   