NL i LdZddlmZddlZddlmZmZmZddlm Z ddZ d dZ y) z.Compute vtables of native (extension) classes.) annotationsN)ClassIR VTableEntries VTableMethod)is_same_method_signaturec |jy|js!td|jD|_|jddD]w}t ||j s|jjD]@\}|j rtfd|jDr2||j<Byi|_|jrb|jjJ|jj|jjt||j|_ |j}|jDcgc]}|j s|}}|g|jzD]}tj |j"j%D]}||j'|j(dk(s$t+||j|j(<|j,j/||j(f}|j1t3||j(|||j s,|D]&}t |t|||j4|<(yycc}w)z)Compute the vtable structure for a class.Nc34K|]}|jywN)inherits_python).0xs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/irbuild/vtable.py z!compute_vtable..s>1,,>sc3:K|]}|jvywr ) attributes)r bnames rrz!compute_vtable..s+WQDALL,@+WsT prefer_method)vtable is_generatedanymrohas_dictcompute_vtableis_traitritemsbase_mrobaseupdatespecialize_parent_vtablevtable_entriestraits itertoolschainmethodsvalues get_methodrlen glue_methodsgetappendr trait_vtables) clsttypentries all_traitsfnshadowtraitrs @rrr s  zz   >cgg>> WWQR[+qzz ++- +ID#<<+W#,,+W(W'*t$ + +CJ xxxx*** #((//*5c388D  G WW3 !3J3USZZ E//!))"2"2"45 EBS^^BGG4^@@&)'l 277#))--sBGGn=|ArwwFCD EE << LE 5 !'?U'KC  e $ L 4s I=&I=cFg}|jD]}|jj|jd}|sJ|j |jd}|r|\}}t |j |j s|jdk(r-t|j|j||j}nOt|j|j|j|j|jf|j}|j||S)zFGenerate the part of a vtable corresponding to a parent class or traitTr__init__) r#r/r)rget_method_and_classrsigr shadow_methodr+r-)r/parentupdatedentryorig_parent_method method_cls child_method defining_clss rr"r"9sG&&#YY11%**D1Q!!!--ejj-M )3 &L,));)?)?AQAQR%**j8$UYY L%J]J]^$IIJJ --uyy%**.EF''  u+, N)r/rreturnNone)r/rr<rrDr) __doc__ __future__rr%mypyc.ir.class_irrrrmypyc.sametyperrr"rCrrKs#4"BB3+L\rC