
    i>)                         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JrJrJ	r	  S SK
Jr  S SKJr   " S S\5      rS rS	 rS
 rS r\ R(                   " S S5      5       rS rSS\S\4S jjrg)    N)IntEnum)AnyDictOptionalUnion)schema)_Unionc                       \ rS rSrSrg)SchemaUpdateError    N)__name__
__module____qualname____firstlineno____static_attributes__r       a/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/executorch/exir/serde/schema_check.pyr   r      s    r   r   c                 (    U (       d  [        U5      eg )N)r   )xmsgs     r   _checkr      s    $$ r   c                  \  ^^^ 0 m0 mU4S jmU4S jn UU4S jnUU4S jn[        [        5       Ha  nUR                  S5      (       a  M  [        [        U5      n[	        US5      (       a   UR
                  [        R                  :w  a  M\  UTU'   Mc     TR                  5        H  u  p4[        U[        5      (       at  [        U[        5      (       a
  U " X45        M9  [        R                  " U5      (       a)  [        U[        5      (       a
  U" X45        Ms  U" X45        M}  [        SU SU 35      e[        U[         ["        45      (       a
  US	;   d   eM  [        S
U SU 35      e   [%        TS   5      TS'   ['        S TS    5       5      (       d   eTS   TS'   TS   S:  d   eT$ )Nc                    >^ ^ UU4S jmUU 4S jn[         R                  " T 5       Vs0 s H  o"R                  U" U5      _M     sn$ s  snf )Nc           
        > [        U [        5      (       a  U R                  $ [        U [        5      (       a
  U T;   d   eU $ [        R
                  " U 5      =n(       a  U[        :X  a  SnOU[        :X  a  SnOU[        :X  a  [        R                  " U 5      S:X  a  gSnOaU[        :X  aH  [        R                  " U 5      n[        U5      S:X  a  US   [        S 5      :X  d   eST" US	   5       S
3$ [        SU  S35      eU SSR                  [        R                  " U 5       Vs/ s H  nT" U5      PM     sn5       S
3$ U S:X  a  g[        SU  S35      es  snf )NListr   r   z	Tuple[()]Tuple      	Optional[r   ]Type z# is not supported in export schema.[z, z())
isinstancetyper   strtyping
get_originlistdicttupleget_argsr   lenAssertionErrorjoin)toheadargsr   defs	dump_types        r   r5   <_staged_schema.<locals>._handle_aggregate.<locals>.dump_type!   sN   !T""zz!As##Dy y''***9!D$Y!D%Zq)R/*"D%Z!??1-Dt9>d1gd.CCC&ya'9&:!<<(53V)WXXfAdiivq?Q(R?Q!1?Q(RSTTUV b$uQC/R%STT )Ss   (Ec                   > T" U R                   5      nSU0n[        R                  nU R                  [        R                  La  U R                  nO-U R                  [        R                  La  U R	                  5       nUR                  S5      (       a)  Ub&  [        STR                   SU R                   S35      eU[        R                  La  [        U5      nXBS'   U$ )Nr%   r    zOptional field .z$ must have default value to be None.default)
r%   dataclassesMISSINGr9   default_factory
startswithr.   r   namer&   )fr0   retvaluer9   r5   tys        r   
dump_field=_staged_schema.<locals>._handle_aggregate.<locals>.dump_field?   s    !&&!A1+C''Eyy 3 33		""+*=*==))+||K((U->$%bkk]!AFF8;_`  K///e*!(IJr   )r:   fieldsr>   )rB   rC   r?   r5   r4   s   `  @r   _handle_aggregate)_staged_schema.<locals>._handle_aggregate    s@    	U<	( 0;/A/A"/EF/E!
1%/EFFFs   A	c                 j   > SU Vs0 s H  o"R                   UR                  _M     snS.TU '   g s  snf )NenumkindrE   )r>   rA   )r>   rB   r   r@   s      r   _handle_int_enum(_staged_schema.<locals>._handle_int_enumU   s-    #/LA/LMD	/Ls    0c                 "   > ST" U5      S.TU '   g )NstructrJ   r   r>   rB   rF   r@   s     r   _handle_struct&_staged_schema.<locals>._handle_structX   s    %1B21FGD	r   c                 "   > ST" U5      S.TU '   g )NunionrJ   r   rP   s     r   _handle_union%_staged_schema.<locals>._handle_union[   s    $0A"0EFD	r   _r   zUnknown schema type : SCHEMA_VERSIONTREESPEC_VERSIONzUnknown variable rZ   c              3   *   #    U  H	  oS :  v   M     g7f)r   Nr   ).0r   s     r   	<genexpr>!_staged_schema.<locals>.<genexpr>z   s     431u3s   r[   r   )dirr   r=   getattrhasattrr   r   itemsr$   r%   
issubclassr   r:   is_dataclassr	   r.   intr+   r)   all)rL   rQ   rU   r>   rA   rF   r4   r@   s        @@@r   _staged_schemarh      s   CD3GjNHG F??3%5,''E,<,<,OT
  zz|eT""%)) -))%00eV,,!$."4/$';D6E7%KLLU|,,AAAA #4TF"UG!DEE $  !&6!78C4c"2344444"#56C!"Q&&&Jr   c                 p   UR                  5       U R                  5       -
   Vs0 s H  o"X   _M	     nnU R                  5       UR                  5       -
   Vs0 s H  o"X   _M	     nnUR                  5       U R                  5       -  nSS1nXV-  nU GH
  nX   S   nX   S   nX   S   n	X   S   n
[        Xy:H  SU SU	 SU 35        [        U[        5      (       a  [        U
[        5      (       d   eUR                  5       U
R                  5       -
   Vs0 s H  o"X   _M	     nnU
R                  5       UR                  5       -
   Vs0 s H  o"X   _M	     nnUR                  5       U
R                  5       -  nU H  nX   nX   nUS:X  aa  [        US	   US	   :H  S
W SU SUS	    SUS	    35        SU;   a  SU;  a  0 X'   US   X   S'   SU;  a  SU;   a  0 X'   US   X   S'   Mn  Mp  Mr  US:X  a  [        UU:H  SW SU SU SU 35        M  US:X  a)  [        US	   US	   :H  S
W SU SUS	    SUS	    35        M  [	        SU SW 35      e   [        U5      S:  a  WU;  d   e0 X2'   XU   S'   [        U5      S:  d  GM  WU;  d   e0 XB'   XU   S'   GM     X44$ s  snf s  snf s  snf s  snf )NrZ   r[   rK   rE   r"   z changed kind from z to rO   r%   zType of the field r8   z changed from r9   rI   zValue of the enum field rT   zUnknown kind rX   r   )keysr   r$   r*   r.   r-   )dstsrckey	additionssubtractionscommon_keysversionssrc_kind
src_fieldsdst_kind
dst_fieldsadded_fieldssubtracted_fieldscommon_fieldsfield	src_field	dst_fields                    r   _diff_schemar|      sq   *-((*sxxz*AB*A3ch*AIB-0XXZ#((*-DE-DcM-DLE((*sxxz)K "45HK8F#Xh'
8F#Xh'
 C5+H:T(D	
 *d++
:t0L0LLL,6OO,=
@Q,Q
,QS ,Q 	 
 -7OO,=
@Q,Q
,QS ,Q 	 
 #)JOO,=="E")I")I8#f%6)::(Qug^IfDUCVVZ[dek[lZmn 	)iy.H*,L'5>y5IL'	2I-)y2H/1%,:CI:N%,Y7 3I- V#*.se1UG>)TXYbXcd W$f%6)::(Qug^IfDUCVVZ[dek[lZmn
 %}XJb%FGG3 #4 |q i'''IN'3cN8$ !A%l*** "L*;h'g j ""{ CE"

s   J$J)J.J3c                 z    [         R                  " [        U 5      R                  S5      5      R	                  5       $ )Nzutf-8)hashlibsha256reprencode	hexdigest)ss    r   _hash_schemar      s'    >>$q'..12<<>>r   c                       \ rS rSr% \\\4   \S'   \\S'   \\S'   \\\4   \S'   \\\4   \S'   \\\4   \S'   \\   \S'   S	r	g
)_Commit   resultchecksum_resultpathrn   ro   basechecksum_baser   N)
r   r   r   r   r   r&   r   __annotations__r   r   r   r   r   r   r      sO    cN
ICH~sCx. 
sCx.C= r   r   c            
         SS K Jn   SS KJs  Jn  U R                  US5      (       as  U R                  US5      n[        R                  " SU5      n[        US LS5        Uc   eUR                  S5      nSSKJnJn  U" X%S9n[        U[        5      (       d   eOS nS S S.n[!        5       n[#        Xx5      u  p[%        U['        U5      [(        R+                  S	S
5      S-   U	U
UUS9$ )Nr   zschema.yamlzchecksum<<([A-Fa-f0-9]{64})>>z!checksum not found in schema.yamlr   )Loaderload)r   rY   r8   /z/schema.yaml)r   r   r   rn   ro   r   r   )importlib.resources	resourcesexecutorch.exir.serdeexirserdeis_resource	read_textresearchr   groupyamlr   r   r$   r*   rh   r|   r   r   __package__replace)
_resourcesserde_packagecontentmatchr   r   r   rk   rl   rn   ro   s              r   update_schemar      s    ,11m];;&&}mD		97CuD "EF   A%7*#t$$$$!%4@

C*34I$S)  c*^;!# r   commitforce_unsafec                    S nSn[        U R                  5      S:  a  U R                  R                  5        H|  u  pEX@R                  ;  a  M  U R                  U   S   nUS   nUR                  5        H;  u  pSU	;  d  M  US:X  d  M  USU SU S	3S
-   -  nU R                  S   S   S-   S/nM=     M~     [        U R
                  5      S:  a`  U R
                  R                  5        HB  u  pEX@R                  ;  a  M  US    H  nSU SU S3nM     U R                  S   S   S-   S/nMD     U(       a  US-  nU R                  S   nX#4$ Uc~  [        U R                  5      S:  ae  U R                  R                  5        H   u  pEUS    H  nUSU SU S3S-   -  nM     M"     U R                  S   S   U R                  S   S   S-   /nUc~  [        U R
                  5      S:  ae  U R
                  R                  5        H   u  pEUS    H  nUSU SU S3S-   -  nM     M"     U R                  S   S   U R                  S   S   S-   /nX#4$ )N r   rK   rE   r9   rO   zField r8   zI is added to schema.py without a default value as an incomparible change z#which requires major version bump.
rZ   r   zX is removed from schema.py as an incompatible change which requires major version bump.
z--force-unsafe is used.z/ is added to schema.py as an compatible change z)which still requires minor version bump.
z3 is removed from schema.py as an compatible change )r-   rn   rc   r   r   ro   )
r   r   next_versionreasonkvrK   rE   r?   ds
             r   checkr      s   LF
6q $$**,DA#==#F+Dx[FA%$(*: 1QC'pq@AF %+KK0@$A!$Dq$H!#LL ' - 6!#''--/DA%x[!!AaS  )B  C !"KK(89!<q@!DL 0 ++}}%564 / C(8(8$9A$=((..08A 1QC'VWFGF % 1 ,-a0,-a014L C(;(;$<q$@++1138A 1QC'Z[FGF % 4 ,-a0,-a014L
 r   )F)r:   r~   r   r'   rI   r   r   r   r   r   torch._export.serder   torch._export.serde.unionr	   	Exceptionr   r   rh   r|   r   	dataclassr   r   boolr   r   r   r   <module>r      s|      	   - - & ,		 	%
aH>#B? ! ! !>6 ' 6  6 r   