
    j\"                        d 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	Z	ddl
mZ ddlmZ h dZdZdZd	Zd
ZddZddZddZddZddZddZedk(  r e e             y)zEIndependent offline verifier for the Task26 inode-test-fix successor.    )annotationsN)Path)cast>   candidate-seal.jsonhash-inventory.jsonverifier-input.jsoncandidate-manifest.jsonindependent-verification.jsonz tests/test_adaptive_nutrition.py@0831230dbebb27303a55d9ac2cb349adb217cd639d1db2981eab0974db527354@9d323da1fb01e3b05df6557795d87b6e26b8d0e7c8ca83f03b3287a237929369@f75856d6d986b64d3d2f083aec2f865c7aea19f5950b84ff06e519f2f6505af6c                P    t        j                  | ddd      j                         S )NT),:)	sort_keys
separatorsensure_ascii)jsondumpsencode)values    i/home/cube/projects/richard/traning coach/.omo/senpi-task/task26-test-fix-st_01a00b29/verify_candidate.py	canonicalr      s!    ::et
QUV]]__    c                H    t        j                  |       j                         S N)hashlibsha256	hexdigest)raws    r   r   r   !   s    >>#((**r   c                4    t        | j                               S r   )r   
read_bytes)paths    r   sha256_filer$   %   s    $//#$$r   c                    | j                         }| j                         s.t        j                  |j                        r|j
                  dk(  sJ t        j                  |j                        dk(  s
J d|         y )N      zunsealed file: )lstat
is_symlinkstatS_ISREGst_modest_nlinkS_IMODE)r#   infos     r   sealed_filer0   )   s_    ::<D T\\$,,%?DMMUVDVVV<<%.H/$0HH.r   c                P   | j                         } | j                         r@| j                         s0t        j                  | j                         j
                        dk(  sJ d | j                  d      D        D ]D  }|j                         s1t        j                  |j                         j
                        dk(  rDJ  | dz  }| dz  }| dz  }| dz  }||||fD ]  }t        |        t        t        t        t        f   t        j                  |j                                     }t        t        t        t        f   t        j                  |j                                     }t        t        t        t        f   t        j                  |j                                     }	t        t        t        t        f   t        j                  |j                                     }
t        t        t        t        f   |d         }t        |d	         }t        |      }|d	= |t        t!        |            k(  sJ t        t        t        t        f   |d
         }|d   t        t!        |            k(  sJ |	dd||d   t#        |      t#        |      t$        |d   |d   d	k(  sJ |
d|t#        |      t#        |      dk(  sJ t        t&        t        t        t        f      |d         }|D ch c]  }t        |d          }}| j                  d      D ch c]2  }|j)                         s|j+                  |       j-                         4 }}t.        |z  }|||z  k(  sJ t1        |||z  z               t3        |      t3        |      cxk(  r	|d   k(  sJ  J |d   t        t!        |            k(  sJ |D ]Q  }| t        |d         z  }t        |       |j                         j4                  |d   k(  rt#        |      |d   k(  rQJ  |d   t#        |      k(  sJ | t        |d         z  }|j                  d      D cg c]  }|j)                         s| }}t3        |      |d   k(  sJ t#        |dz        |d   k(  sJ t        j                  |dz  j                               }|d	   |d   k(  sJ t7        j8                  t:        j<                  dt        |dz        t        |      gdt6        j>                          t        t        t        t        f   t        j                  | d!z  j                                     }|d"   |d   k(  sJ |d   d#k(  sJ |d$   t@        d%tB        tD        d&gk(  sJ t#        | d'z  t@        z        tB        k(  sJ t#        | d(z  t@        z        tD        k(  sJ t#        | d)z        tD        k(  sJ t        t        t        t        f   t        j                  | d*z  j                                     }|d+   d,k(  sJ |d-   d#d.d/k(  sJ |d0   d#d.d/k(  sJ |d1   d2d.d/k(  sJ |d3   du sJ |d4   du sJ |d5   du sJ |d6   d7k(  sJ |d8   du sJ |d9   du sJ |d:   du sJ |d;   d.k(  sJ t        t        t        t        f   |d<         }| t        |d         z  }|d=z  }t#        |      t#        |      cxk(  r
t$        k(  sJ  J |jG                         |jG                         k(  sJ |d>z  }tI        jJ                  |      5 }|jM                         }t3        |      |d?   cxk(  rd@k(  sJ  J |D ch c]  }|jN                   c}dAhk(  sJ |D ch c]*  }|jP                  jS                  dB      s|jP                  , } }|j                  d      D ch c]1  }|j)                         r|j+                  |      j-                         3 }!}| |!k(  rt3        |       |dC   cxk(  rdDk(  sJ  J | D ])  }"|jU                  |"      ||"z  jG                         k(  r)J  tW        dE |jY                         D              rJ 	 d d d        | dFz  }#|#j[                         rSt        |#       t        j                  |#j                               }$|$d+   d,k(  r|$d	   |k(  sJ |$dG   t#        |      k(  sJ dHd,d||d   t$        t3        |      d.t3        |      d#d@dDdIS c c}w c c}w c c}w c c}w c c}w c c}w # 1 sw Y   xY w)JNi@  c              3  B   K   | ]  }|j                         s|  y wr   )is_dir).0r#   s     r   	<genexpr>zverify.<locals>.<genexpr>2   s     Ht$++-ds   *r	   r   r   r   predecessorfull_candidate_digestcore_materialcore_candidate_digestz'task26-inode-test-fix-successor-seal-v1PASS_SEALED_UNDEPLOYEDfull_digestverifier_sha256)	schemastatusr8   r:   manifest_sha256inventory_sha256wheel_sha256predecessor_full_digestr=   z3task26-inode-test-fix-independent-verifier-input-v1)r>   r8   r@   seal_sha256entriesr#   entry_countentries_sha256bytesr   rA   preserved_path
file_countr@   z-Bzverify_candidate.pyT)checkstdoutzbindings/test-delta.jsonrC   r&   filesmodified)r#   changebefore_sha256after_sha256ztest-delta/beforeztest-delta/afterz)snapshot/tests/test_adaptive_nutrition.pyzartifacts/quality-summary.jsonr?   PASSfocused_overlay_umask_077r   )passedfailedfocused_overlay_umask_022full_package_umask_077i  fixture_mode_assertions!named_replacement_bytes_assertion held_fd_original_bytes_assertionreproducible_wheel_builds   wheel_builds_byte_identical wheel_unchanged_from_predecessorwheel_source_parityunindexed_countprofile_wheelz5artifacts/physique_checkin_cli-0.1.0-py3-none-any.whlzsnapshot/package-runtimemember_count2   )i  r&   r&   r   r   r   zcheckin_cli/package_member_count.   c              3  >   K   | ]  }|j                  d         yw)ztests/N)
startswith)r4   members     r   r5   zverify.<locals>.<genexpr>   s     TASvv((2ASs   r
   rD   z/task26-inode-test-fix-successor-verification-v1)r>   r?   stater8   r:   rB   inventory_countr`   predecessor_file_counttest_delta_countwheel_member_countsource_parity_count).resolver3   r)   r*   r.   r,   rglobr0   r   dictstrobjectr   loads	read_textr   r   r$   EXPECTED_WHEEL_SHA256listis_filerelative_toas_posixCONTROLSsortedlenst_size
subprocessrunsys
executableDEVNULL	TEST_PATHEXPECTED_OLD_TEST_SHA256EXPECTED_TEST_SHA256r"   zipfileZipFileinfolist	date_timefilenamerg   readanynamelistexists)%root	directorymanifest_pathinventory_path	seal_path
input_pathr#   manifest	inventorysealverifier_inputpredecessor_infofullmanifest_corecorerE   rowindexedactualcontrolsr7   predecessor_filesprior_manifestdeltaquality
wheel_infowheelpredecessor_wheelsource_rootarchiveinfositempackage_memberssource_membersrh   receipt_pathreceipts%                                        r   verifyr   /   s	   <<>D;;=!2t||DIIKDWDW7X\a7aaaHtzz#H	'')dll9>>;K;S;S.TX].]]] I 44M11N,,I--J	:FD GDf%tzz-2I2I2K'LMHT#v+&

>3K3K3M(NOIS&[!4::i.A.A.C#DED$sF{+TZZ
8L8L8N-OPNDf-x/FGx/01DNM-.6)M23333S&[!8O#<=D+,y0GGGG;*!%!)*A!B&}5'7-#3M#B#$56
 
 
 
 G!%&}5"9-	    4S&[)*Ii,@AG+237Cs3v;7G3<@JJsO^ODt||~dt$--/OF^& HWx''N'H:L0M)NN'w<3w<C9]+CCCCCC%&&71C*DDDDc#f+&&Dyy{""c'l2{47HCPXM7YYY  &';~+FFFF-.>?@@K*5*;*;C*@S*@$DLLN*@S !%5l%CCCC{%>>?CSTeCffffZZ/H!H S S UVN126F}6UUUUNN	s;1F#FG[IYZ!! c6k"DJJ7Q0Q/\/\/^$_`E*+/?/NNNN!###>1,	     t11I=>BZZZZt009<=AUUUUtIIJNbbbb4V$djj$9Y2Y1d1d1f&ghG8&&&./a13MMMM./a13MMMM+,3!0LLLL,-555674???56$>>>./144401T99956$>>>()T111$%***d3;'/)BCJ3z&)**E#&]]u->!?XCXXXXXX!2!=!=!???? ::K		7  "5zZ7=2=====+0154516K5LLLL5:gUTdmm>V>VWe>f4==Ug $))#.
.||~ [)224. 	 

 .0S5IZXnMo5usu5uuu5uuu%F<<'K&,@+L+L+NNNN &TAQAQASTTTTT 
  99LL!**\3356x F*w7N/OSW/WWW}%Y)???? D)!%!)*A!B-w<"%&7"8 ! _ 4^ T^ 2g
 
 	sa   .c>d.!ddd'1dd+d8 dd'd<6d2Ad %ddd%c            	     j   t        j                         } | j                  dt               | j	                         }	 t        |j                        }t        t        j                  |d             y# t        $ r6}t        t        j                  dt        |      dd             Y d }~yd }~ww xY w)	Nr   )typeFAIL)r?   errorT)r   r&   r   )argparseArgumentParseradd_argumentr   
parse_argsr   r   	Exceptionprintr   r   rr   )parserargsresultexcs       r   mainr      s    $$&F
T*D		" 
$**Vt
,-	  djjFSX>$OPs   A3 3	B2<,B--B2__main__)r   rs   returnrH   )r    rH   r   rr   )r#   r   r   rr   )r#   r   r   None)r   r   r   zdict[str, object])r   int)__doc__
__future__r   r   r   r   r*   r   r   r   pathlibr   typingr   r{   r   r   r   rv   r   r   r$   r0   r   r   __name__
SystemExit r   r   <module>r      s    K "      
    /	Y ] Z `+%IGT
 z
TV
 r   