+
    VBi/                    |   ^ RI t ^ RIt^ RIt^ RIt^RIHt ^RIHtHtH	t	H
t
 ^RIHt ^RIHtHt ^RIHt ^RIHtHt ^RIHtHtHtHtHt ^R	IHt ^R
IHt R tR5R lt ! R R4      t ! R R4      t ! R R]4      t ! R R4      t  ! R R] 4      t! ! R R] 4      t"^t# ! R R] 4      t$ ! R R] 4      t% ! R R] 4      t& ! R R ]%4      t' ! R! R"]'4      t( ! R# R$] 4      t) ! R% R&] 4      t* ! R' R(]*4      t+ ! R) R*]*4      t, ! R+ R,] 4      t- ! R- R.] 4      t. ! R/ R0] 4      t/ ! R1 R2] 4      t0 ! R3 R4] 4      t1R# )6    N)try_finally_contextmanager)warningerrorInternalErrorperformance_hint)EncodedString)OptionsNaming)
PyrexTypes)py_object_typeunspecified_type)pyfunction_signaturepymethod_signaturerichcmp_special_methodsget_slot_tableget_property_accessor_signature)
DebugFlags)Codec                     V R ,          R8X  d-   V P                  \        P                  4      '       g   V R9   d   V \        P                  9   d   \        P                  V ,           p V # ):N   N__)__weakref____dict__)
startswithr
   pyrex_prefixreserved_cnames)cnames   &;/usr/lib/python3.14/site-packages/Cython/Compiler/Symtab.pyc_safe_identifierr      sP    	rd	E$4$4V5H5H$I$I',0K'K...##e+L    c                 d   V P                  4       '       d   V # V P                  R 4      P                  RR4      P                  R4      p V'       d   V: RV : 2p V # V P	                  \
        P                  4      '       d0   V P                  \
        P                  \
        P                  ^4      p V # )punycode   -   _ascii_)isasciiencodereplacedecoder   r
   r   pyunicode_identifier_prefix)r   mangle_withs   &&r   punycodify_namer-   "   s     }}LL$,,T48??HE '. L 
		&--	.	. f11$@@!E Lr    c                   0   a  ] tR t^7t o RtR tR tRtV tR# )	BufferAuxFc                    Wn         W n        R # Nbuflocal_nd_var	rcbuf_var)selfr3   r4   s   &&&r   __init__BufferAux.__init__:   s    ."r    c                (    R V P                   ,          # )z<BufferAux %r>r   r5   s   &r   __repr__BufferAux.__repr__>   s    $--//r    r2   N)	__name__
__module____qualname____firstlineno__writable_neededr6   r;   __static_attributes____classdictcell____classdict__s   @r   r/   r/   7   s     O#0 0r    r/   c                     a  ] tR t^Bt o Rt^ tRtRtRt^ t	^ t
^ t^ t^ t^ t^ t^ tRt^ t^ t^ t^ t^ t^ tRt^ t^ t^ t^ tRtRtRt^ t ^ t!^ t"^ t#^ t$^ t%^ t&^ t'Rt(Rt). t*Rt+Rt,Rt-^ t.^ t/Rt0^ t1Rt2^ t3^ t4^ t5^ t6^ t7^ t8^ t9Rt:Rt;^ t<Rt=Rt>^ t?Rt@RtARtBRtC^ tDRtERtFRtGRtHRtIRtJRtKRtLRtMRtNRR ltO]PP                  '       d   ]RR 4       tS]SP                  R 4       tSR	 tUR
 tVR tWR tXRR ltYR tZR t[]RR 4       t\R t]R t^Rt_V t`R# )EntryF NprivateTc                    Wn         W n        W0n        W@n        WPn        . V n        . V n        . V n        . V n        W n	        R # r1   )
namer   typeposinitoverloaded_alternativescf_assignmentscf_referencesinner_entriesdefining_entry)r5   rK   r   rL   rM   rN   s   &&&&&&r   r6   Entry.__init__   sA    	
		')$ "r    c                (    V P                   R ,          # rL   r9   r:   s   &r   rL   
Entry.type   s    ==((r    c           
         \        R V P                   RV P                   RV P                  P	                  R4       RV 24       WP                  R&   R# )zENTRY [z] TYPE: rL   z -> N)printrK   r   r   get)r5   new_types   &&r   rL   rW     sJ    F499+Qtzzl(4==;L;LV;T:UUYZbYcde$,MM&!r    c                |    R \        V 4      P                  \        V 4      V P                  V P                   3,          # )z%s(<%x>, name=%s, type=%s))rL   r=   idrK   r:   s   &r   r;   Entry.__repr__  s/    +tDz/B/BBtHdiiY]YbYb.cccr    c                2    \        V P                  R 4       R# )Previous declaration is hereN)r   rM   r:   s   &r   already_declared_hereEntry.already_declared_here	  s    dhh67r    c                `    \        VR V P                  ,          4       V P                  4        R# )z('%s' does not match previous declarationN)r   rK   rb   )r5   rM   s   &&r   
redeclaredEntry.redeclared  s"    c=		IJ""$r    c                *    V .V P                   ,           # r1   )rO   r:   s   &r   all_alternativesEntry.all_alternatives  s    v4444r    c                L   R pV P                   e   V P                  W4      pVfz   V P                  P                  '       d6   V P                  P                  4       pV Uu. uF  qwP                  NK  	  ppMV P                  4       p\        P                  ! W(W4R7      pV# u upi )N)fail_if_emptyarg_is_lvalue_array)specialiserrL   is_fused"get_all_specialized_function_typesentryrh   r   
best_match)	r5   scope	arg_typesrk   rl   
func_entry	functypesfalternativess	   &&&&&    r   best_function_matchEntry.best_function_match  s    
'))%;Jyy!!! IIHHJ	1:;A;#446#..}oJ  <s    B!c                *    V .V P                   ,           # r1   )rR   r:   s   &r   all_entriesEntry.all_entries!  s    v****r    c                    \        V \        4      '       dH   \        V\        4      '       d2   V P                  V P                  3VP                  VP                  38  # \        # r1   )
isinstancerG   rK   r   NotImplemented)leftrights   &&r   __lt__Entry.__lt__$  sF    dE""z%'?'?IItzz*ejj%++-FFF!!r    c                2    \        V P                  4      ^8  #    )lenrP   r:   s   &r   cf_is_reassignedEntry.cf_is_reassigned*  s    4&&'!++r    c                    V P                   P                  '       g   Q hR V n        V P                  '       d   Q h\        P
                  P                  RR4      V n        R# )TOptionalLocalsCppSupport.cppN)rL   is_cpp_classis_cpp_optionalutility_coder   UtilityCodeload_cachedutility_code_definitionr:   s   &r   make_cpp_optionalEntry.make_cpp_optional.  sO    yy%%%%%#$$$$$'+'7'7'C'CDTVf'g$r    c                F    V P                   '       d   WP                   9   # R # F)pytyping_modifiers)r5   modifier_names   &&r   declared_with_pytyping_modifier%Entry.declared_with_pytyping_modifier4  s"    ;?;R;R;R} 7 77]X]]r    )rP   rQ   r   rS   rN   rR   r   rK   rO   rM   rL   r   NN)FN)ar=   r>   r?   r@   inline_func_in_pxdborrowedrN   
annotation
visibility
is_builtin
is_cglobalis_pyglobal	is_memberis_pyclass_attris_variableis_cfunction
is_cmethodis_builtin_cmethodis_unbound_cmethodis_final_cmethodis_inline_cmethodis_anonymousis_type	is_cclassis_cclass_var_entryr   is_constis_propertyis_cproperty	doc_cnamegetter_cnamesetter_cnameis_self_argis_argis_local
in_closurefrom_closurein_subscopeis_declared_genericis_readonlypyfunc_cname
func_cnamefunc_modifiersfinal_func_cnamedocas_variablexdecref_cleanupin_cinclude	as_moduleis_inheritedpystring_cnameis_identifieris_internedused
is_specialdefined_in_pxdis_implementedapir   rm   is_overridable
buffer_aux
prev_entrymight_overflowfused_cfunctionis_fused_specializedr   needs_propertyin_with_gil_blockfrom_cython_utility_codeerror_on_uninitializedcf_usedouter_entry
is_cgetterr   known_standard_library_importr   enum_int_valuevtable_typer6   r   debug_verbose_entry_typespropertyrL   setterr;   rb   re   rh   rx   r{   r   r   r   r   rB   rC   rD   s   @r   rG   rG   B   s    B HDJJJJKIOKLJLGILHKLILLKFHJLKKLJN
CKOKILNMKDJNN
CLKNJJNO "N#"GKJO$(!NK
# +++		) 
	) 
	- 
	-d8%5+" , ,h^ ^r    rG   c                   :   a  ] tR tRt o RtRtR tR tR tRt	V t
R# )	
InnerEntryi8  zC
An entry in a closure scope that represents the real outer Entry.
Tc                   \         P                  WP                  VP                  VP                  VP
                  4       Wn        W n        TpVP                  '       d   VP                  pK   W0n        VP                  V n	        VP                  V n
        VP                  V n        VP                  V n        VP                  V n        V P                  P                  V 4       R # r1   )rG   r6   rK   r   rL   rM   r   rr   rS   rR   rP   rQ   rO   r   append)r5   r   rr   outermost_entrys   &&& r   r6   InnerEntry.__init__>  s    t--"(("''"	( '
 &)))-99O-,::-<<,::'6'N'N$.>>!!$'r    c                r    VP                  R 4      '       d   \        V4      h\        V P                  V4      # )r   )r   AttributeErrorgetattrrS   r5   rK   s   &&r   __getattr__InnerEntry.__getattr__R  s/    ??4   &&t**D11r    c                6    V P                   P                  4       # r1   )rS   r{   r:   s   &r   r{   InnerEntry.all_entriesX  s    ""..00r    )rP   rQ   rS   rR   r   r   rO   rr   N)r=   r>   r?   r@   __doc__r   r6   r   r{   rB   rC   rD   s   @r   r   r   8  s%      L((21 1r    r   c                   B  a  ] tR tRt o ^ t^ t^ t^ tRtRt	^ t
^ t^ t^ t^ t^ tRt^ tRt^ t^ tRtRt. tRt/ tR tR tRBR ltR	 tR
 tRCR ltR t R t!RCR lt"]#R 4       t$R t%R t&R t'](RCR l4       t)RDR lt*RER lt+R t,RFR lt-RGR lt.RHR lt/RIR lt0RJR lt1R t2R t3RKR lt4R t5RLR  lt6RMR! lt7R" t8R# t9RNR$ lt:ROR% lt;R& t<R' t=R( t>RPR) lt?RQR* lt@RDR+ ltAR, tBR- tCR. tDR/ tER0 tFR1 tGR2 tHR3 tIR4 tJR5 tKR6 tLR7 tMR8 tNR9 tOR: tPR; tQR< tRR= tSRRR> ltTR? tURCR@ ltVRAtWV tXR# )SScopei\  FrH   NTc                   Wn         W n        W0n        R \        V4      VP	                  RR4      3,          pV P                  4       pV'       d0   VP                  V4      V n        VP                  V,           V n        M\        V4      V n        W@n        / V n
        \        4       V n        . V n        . V n        . V n        . V n        . V n        . V n        . V n        . V n        . V n        / V n        / V n        / V n        / V n        / V n        . V n        . V n        / V n        V P<                   F$  pV P?                  \        V4      \@        RR7       K&  	  R# )z%d%s_._dot_NrM   )!rK   outer_scopeparent_scoper   r)   qualifying_scopequalify_namequalified_namescope_prefixr   entriesset	subscopesconst_entriestype_entriessue_entriesarg_entriesvar_entriespyfunc_entriescfunc_entriesc_class_entriesdefined_c_classesimported_c_classescname_to_entryidentifier_to_entrynum_to_entryobj_to_entrybuffer_entrieslambda_defsid_countersscope_predefined_namesdeclare_varr   )r5   rK   r   r   mangled_name
qual_scopevar_names   &&&&   r   r6   Scope.__init__  s?    	&(#d)T\\#w-G!HH**,
","9"9$"?D * 7 7, FD"/"5D , !!#"$ #%  33H]84n$O 4r    c                    V # r1    )r5   memos   &&r   __deepcopy__Scope.__deepcopy__      r    c                   . pVP                   P                  4        FC  w  rVV'       d	   WS9   g   K  VP                  '       g   V'       g   K1  VP                  WV34       KE  	  V P                   P	                  V4       R Fz  p\        W4      pV U	u0 uF  qP                  kK  	  p
p	\        W4       FC  pVP                  '       g   V'       g   K  VP                  V
9  g   K2  VP                  V4       KE  	  K|  	  R# u up	i )r  N)r  r  r  r  r  r  r  r  )r   itemsr   r   updater   rK   )r5   othermerge_unused	allowlistr   rK   rp   attrself_entriesenamess   &&&&       r   merge_inScope.merge_in  s     ==..0KD 1:::NND=1 1
 	G$(D #4.L%12\VV\E2 -JJJ,,EJJe4K ''. .( 3s   Dc                T    R V P                   P                  : RV P                  : R2# )< >)	__class__r=   r   r:   s   &r   __str__Scope.__str__  s     NN33T5H5HIIr    c                    V P                   # r1   r   r:   s   &r   r   Scope.qualifying_scope  s       r    c                    V'       d   \        V: V P                  : V: 24      # V P                  P                  WP                  4      # r1   )r-   r   r   manglerK   r5   prefixrK   s   &&&r   r5  Scope.mangle  s8    "vt7H7H$#OPP$$++FII>>r    c                R    \         P                  : V: R 2pV P                  V4      # )r&   )r
   r   r5  )r5   rK   r7  s   && r   mangle_internalScope.mangle_internal  s#     #//6{{6""r    c                `    V P                   '       d   V P                   P                  V4      # V# r1   )r   mangle_class_private_namer   s   &&r   r=  Scope.mangle_class_private_name  s*    $$>>tDDr    c                    V P                  4       P                  p W!,          ^,           pW2V&   V'       d   V'       g   V# RW3,          # RV,          #   \         d    ^ p L8i ; i)r   z%s%dz%d)global_scoper  KeyError)r5   rK   counterscounts   &&  r   next_idScope.next_id  sh    $$&22	NQ&E TM))%<  	E	s   A A$#A$c                6    V P                  4       P                  # r1   )r@  contextr:   s   &r   rG  Scope.context   s      "***r    c                6    V P                   P                  4       # z5Return the module-level scope containing this scope. )r   r@  r:   s   &r   r@  Scope.global_scope  s    ,,..r    c                6    V P                   P                  4       # rJ  )r   builtin_scoper:   s   &r   rM  Scope.builtin_scope  s    --//r    c              #     "   V x  V P                   '       d6   \        V P                   \        P                  ! R 4      R7       Rj  xL
  R# R#  L5i)r   )keyN)r   sortedoperator
attrgetterr:   s   &r   iter_local_scopesScope.iter_local_scopes  s:     
>>>dnn(2E2En2UVVV Vs   AAA	Ac              #  N   "   V P                   pVe   Wn         R x  W n         R # 5ir1   )in_c_type_context)r5   rW  old_c_type_contexts   && r   new_c_type_contextScope.new_c_type_context  s&     !33(%6"!3s   #%c                <   RpV P                   pW,          p	Rp
VP                  '       d   V	P                  P                  '       d   V P                  4       '       d   V	P	                  4        F  pVP                  VP                  4      '       g   K&  VR8X  d   VP                  '       g   Rp
MVP                  '       d   Rp
V
'       d:   TpV'       d   \        P                  ! V4      pW7n        RVn        W'n	        WGn
         M	  Rp
V
'       d    V# W,          P                  '       d    V# VR8X  d+   \        TRV,          V P                  '       d   ^M^ 4       R# VR8w  d5   \        VRV,          4       V P                   V,          P                  4        R# )z
Returns an entry or None

If it returns an entry, it makes sense for "declare" to keep using that
entry and not to declare its own.

May be overridden (e.g. for builtin scope,
which always allows redeclarations)
NF<init>Textern'%s' redeclared ignore)r   r   rL   is_cpprh   compatible_signature_withargsr   copyr   rM   r   r   r   rb   )r5   rK   r   rL   rM   r   
copy_entryrp   r   	old_entrycpp_override_allowed	alt_entrys   &&&&&&&     r   handle_already_declared_name"Scope.handle_already_declared_name  s_    ,,M	  %!<!<!< '779	11)..AAx'			/3,"////3,+ )%$(IIi$8E &*
-2*&+$'	) :, (,$  ]'''  X% /$6T=M=M=MSTU  x'c-45T"88:r    c	                L   VP                   '       d#   \        V \        4      '       g   \        VR 4       V P                  '       g:   V'       d2   \
        P                  ! RV4      '       d   \        VRV,          R4       V P                  p	Rp
V'       d"   W9   d   V'       g   V P                  WW4V4      p
V
'       g   \        WW4R7      p
V P                  V
n        Wn        V'       d   V P                  V4      V
n        V'       gm   W9   dc   V P                  4       '       dM   VP                  '       d;   W,          P                   '       g#   W,          P"                  P%                  V
4       MWV&   VP&                  '       d   VP(                  V
n        W
n        WZn        V
# )z5Buffer types only allowed as function local variablesz
^_[_A-Z]+$z'%s' is a reserved name in C.Nr   )	is_bufferr~   
LocalScoper   r   rematchr   r   rh  rG   create_wrapperr   r   r`  r   r   rO   r   is_memoryviewslicedefault_valuerN   rr   r   )r5   rK   r   rL   rM   r   shadowr   rp  r   rp   s   &&&&&&&&&  r   declareScope.declareX  s*    >>>*T:">">#NOEbhh|U.K.KC85@"E,,DOF55d4jYE$t7E $ 0 0E#1 '+'8'8'>$4;;==T=N=N=NW^WdWoWoWo==DDUK(-"""++EJ%r    c                :    \        V P                  : R V: 24      # r   )r   r   r   s   &&r   r   Scope.qualify_name|  s    (;(;TBCCr    c	           	         V'       gE   V P                   '       g   VR 8X  g	   V'       d   TpM V P                  \        P                  V4      pV P	                  WW$WhR7      p	^V	n        W9n        V	# )public)rp  )r   r5  r
   enum_prefixrt  r   
value_node)
r5   rK   rL   valuerM   r   r   r   rp  rp   s
   &&&&&&&&& r   declare_constScope.declare_const  s[    J($:cF$6$6=T$Za r    c
           
         V'       g   TpV P                  WW#WXR R7      p
^V
n        Wjn        V'       d   V P                  P	                  V
4       V	'       g   \        VRR4      f   Wn        V
# )T)r   rp   N)rt  r   r   r  r   r   rp   )r5   rK   rL   rM   r   r   r   definingrs  templaterp   s   &&&&&&&&&& r   declare_typeScope.declare_type  sj     ET$Z%)  +	$$U+ GD'48@J r    c           	     2   V'       gE   V P                   '       g   VR 8w  g	   V'       d   TpM V P                  \        P                  V4      p V P                  '       d1   V P
                  P                  V P                  4      P                  pMRp\        P                  ! WVVR8H  V4      pV P                  WW4WVR7      p
V
P                   Vn        V
#   \         d7   p	\        Y9P                  ^ ,          4       \        P                  p Rp	?	LcRp	?	ii ; i)rI   Nr]  )r   r   )r   r5  r
   type_prefixis_cpp_class_scoper   lookuprK   rL   r   create_typedef_type
ValueErrorr   rb  
error_typer  r   )r5   rK   	base_typerM   r   r   r   	namespacerL   r&  rp   s   &&&&&&&    r   declare_typedefScope.declare_typedef  s    J)$;sF$6$6=
	)&&& ,,33DII>CC	 	11$53=3I2;=D !!$c/9 " F#22  	)#vvay!((D	)s   C  AC D ,DDc
           
        V'       gE   V P                   '       g   VR 8X  g	   V'       d   TpM V P                  \        P                  V4      pV P	                  V4      p
V
'       gd   V P                  4       p\        P                  ! WW4WiVR7      pV P                  WWVWxVRJR7      p
V P                  P                  V
4       Wn        MV
P                  '       d8   V
P                  P                  '       d   V
P                  P                  V8X  g   \!        VRV,          ^ 4       MV'       d2   V
P                  P"                  '       d   \!        VRV,          ^ 4       MWV P%                  WV4       V P'                  WV4       V'       d,   W:P                  n        V P(                  P                  V
4       V P*                  '       d?   V P,                  P/                  V P0                  4      P                  V
P                  n        V
# )rz  )in_cppN)r   r   r  '%s' redeclared  2'%s' already defined  (ignoring second definition))r   r5  r
   r  lookup_herer`  r   CStructOrUnionTyper  r  r   rp   r   rL   is_struct_or_unionkindr   rr   check_previous_typedef_flagcheck_previous_visibilityr  r  r   r  rK   r  )r5   rK   r  rr   typedef_flagrM   r   r   r   packedrp   r  rL   s   &&&&&&&&&&   r   declare_struct_or_unionScope.declare_struct_or_union  s   
 J($:cF$6$6=  &[[]F00E!D %%d#' , & .E ##E*JMMMejj&C&C&C

4/047;5::+++QTXXZ[\00cJ..u#F',JJ$%%,,U3"""#'#3#3#:#:499#E#J#JEJJ r    c           	       aa
 Vf=   V P                   '       g   VR8w  d   TpM V P                  \        P                  V4      p\	        V4      pV P                  V4      pV'       gN   \        P                  ! WWEVR7      p	V P                  WSVWbR JR7      pV P                  P                  V4       EMVP                  '       d   VP                  P                  '       g&   \        SRV,          4       VP                  4        R # V'       d2   VP                  P                   '       d   \#        SRV,          ^ 4       M3V'       d,   W(P                  n        V P$                  P                  V4       V'       de   VP                  P&                  '       d9   VP                  P&                  V8w  d   \        SR4       VP                  4        MWXP                  n        V'       g   VP                  P(                  '       d7   WxP                  P(                  8w  d   \        SR4       VP                  4        V
V3R lo
V'       dF   S
! W4       VP+                  R	R	\        P,                  ! VP                  4      VP.                  R
7       V P0                  '       d?   V P2                  P5                  V P6                  4      P                  VP                  n        V# )NrI   )	templates)r   r  r^  r  -Base type does not match previous declarationz5Template parameters do not match previous declarationc                    < V Fl  pV\         P                  J d   K  VP                  f   \        SR4       K5  S! WP                  4       V P
                  P                  P                  V4       Kn  	  R # )Nz#Cannot inherit from incomplete type)r   r  rr   r   base_classesrL    declare_inherited_cpp_attributes)rp   r  
base_classdeclare_inherited_attributesrM   s   && r   r  =Scope.declare_cpp_class.<locals>.declare_inherited_attributes  s[    *
!6!66##+#DE08O8OPJJ$$EEjQ +r    this)rK   r   rL   rM   )r   r5  r
   r  listr  r   CppClassTyper  r  r   r   rL   r   r   rb   rr   r   r  r  r  r  CPtrTyperM   r  r   r  rK   r  )r5   rK   rr   rM   r   r  r   r  rp   rL   r  s   &&&f&&&&  @r   declare_cpp_classScope.declare_cpp_class  s    =J)$;F$6$6=L)  &**UiID%%d#u'4E & GE##E*MMMejj&=&=&=c-45++-5::+++QTXXZ[\',JJ$%%,,U3::***uzz/F/F,/V#NO//1.:JJ+EJJ000

 4 44#VW//1	R (=6j>Q>QRWR\R\>]chclclm"""#'#3#3#:#:499#E#J#JEJJ r    c                    W!P                   P                  8w  d=   \        VR VP                  : RRVP                   P                  ,          : R 24       R# R# )'z' previously declared using 'N)cdefctypedef)rL   r  r   rK   )r5   rp   r  rM   s   &&&&r   r  !Scope.check_previous_typedef_flag  sD    ::222#

01H1HIIK L 3r    c                ~    VP                   V8w  d,   \        VR VP                  : RVP                   : R 24       R# R# )r  ' previously declared as 'N)r   r   rK   )r5   rp   r   rM   s   &&&&r   r  Scope.check_previous_visibility  s3    z)#

E,,. / *r    c
           	        V'       d   V'       gL   V P                   '       g   VR 8X  g   VR8X  g	   V'       d   TpM V P                  \        P                  V4      pV P                  '       d1   V P
                  P                  V P                  4      P                  p
MRp
V'       d   \        P                  ! WWR7      pM*\        P                  ! WWZV	R7      pM\        P                  pV P                  WW#WgR7      pV'       d7   \        P                  P!                  RR4      Vn        V P%                  V4       Wn        . Vn        V P*                  P-                  V4       V# )rz  r]  N)r   )r   r   r   EnumClassDeclr   )r   r5  r
   r  r  r   r  rK   rL   r   CppScopedEnumType	CEnumTypec_anon_enum_typer  r   r   r   r   use_entry_utility_coderp  enum_valuesr  r   )r5   rK   rM   r   scopedr  r   r   rp  r   r  rL   rp   s   &&&&&&&&&&   r   declare_enumScope.declare_enum  s   $$$
h(>%1S E KK(:(:DAE&&& ,,33DII>CC	 	!33DT!++DVYZ..D!!$c# " 0!%!1!1!=!=oO_!`E''.-&r    c                8    V P                   P                  W4      # r1   )r   declare_tuple_type)r5   rM   
componentss   &&&r   r  Scope.declare_tuple_type:  s    223CCr    c
                   V'       g3   VR 8w  g	   V'       d   TpM V P                  \        P                  V4      pV P                  WW#V4      p
^V
n        VP
                  '       dC   VR8w  d<   V P                  R,          '       d   V
P                  4        MVP                  V4       V'       d   VR8w  d   ^V
n	        ^V
n
        V'       d   ^V
n        ^V
n
        V	'       d   Wn        V
# )rI   r]  
cpp_locals)r5  r
   
var_prefixrt  r   r   
directivesr   check_nullary_constructorr   r   r   r   r5   rK   rL   rM   r   r   r   in_pxdis_cdefr   rp   s   &&&&&&&&&& r   r  Scope.declare_var=  s     Y&#F$5$5t<T$Z@x!7|,,'')..s3jH,#$E EJEIEJ'9$r    c                b    V'       g   R # V F  pWC9  g   K  \        VRV,          4       K   	  R # )Nz"Modifier '%s' is not allowed here.)r   )r5   rM   	modifiersallowedmodifiers   &&&& r   _reject_pytyping_modifiers Scope._reject_pytyping_modifiersW  s(    !H&c?(JK "r    c                &    V P                  WV4      # r1   r  r5   rK   rL   rM   s   &&&&r   $declare_assignment_expression_target*Scope.declare_assignment_expression_target^  s     C00r    c                Z    V P                  V4      pV P                  P                  W4      # r1   )r=  r   declare_builtinr5   rK   rM   s   &&&r   r  Scope.declare_builtinc  s)    --d3//::r    c                   V'       dF   VP                   P                  '       g*   \        VR V,          4       \        VP                  R4       V P	                  V\
        W#R7      p\        Vn        V P                  P                  V4       V# )z'%s' already declaredra   r   )
rL   r   r   rM   r  r   r   	signaturer  r   )r5   rK   rM   r   rp   s   &&&&&r   _declare_pyfunctionScope._declare_pyfunctiong  sj    000#.56%));<  ~s R.""5)r    c                   V P                  V4      pV'       g   V P                  WWER 7      # V'       dQ   VP                  P                  '       d   \        Vn        M@VP                  \        Jd   V P                  WWER 7      # MV P                  V\        W$R7       V P                  R\        VVRR7      p\        V4      Vn        V P                  V4      Vn	        \        Vn        RVn        V# ))r   rp   r  NrI   r   r   T)r  r  rL   is_unspecifiedr   r  r   rK   r   r   r   r  r   )r5   rK   rM   allow_redefiner   rp   s   &&&&& r   declare_pyfunctionScope.declare_pyfunctionp  s      &++D*+ZZzz(((+
>1//j/^^ 2 T>3N  ~s'+	 ! C"4(
#006.!r    c                ^   V P                  \        P                  R ,           V4      pV P                  \        P                  R,           V4      pV P                  V4      pV P	                  RV\
        VR4      p\        V4      Vn        WVn        WFn	        W6n
        \        Vn        RVn        V# )funcdef_methdef_NrI   T)r5  r
   lambda_func_prefixr   rt  r   r   rK   r   pymethdef_cnamer   r   r  r   )r5   lambda_namerM   r   r  r   rp   s   &&&    r   declare_lambda_functionScope.declare_lambda_function  s    [[!:!:Z!GU
++f&?&?*&LkZ**;7T:~sIN";/
- /%.!r    c                <    V P                   P                  V4       R # r1   )r  r   r5   def_nodes   &&r   add_lambda_defScope.add_lambda_def  s    )r    c                <    V P                   P                  V4       R # r1   )r  r   r5   rp   s   &&r   register_pyfunctionScope.register_pyfunction  s    ""5)r    c           
     	   V'       g3   VR 8w  g	   V'       d   TpM V P                  \        P                  V4      pRV	9   ;'       d    T;'       d    TpV'       d   RpV P                  V4      pV'       Ed   V'       g2   W]P                  8w  d"   VR8X  d   RpVP                  pWMn        WMn        VR 8w  d5   W]P                  8w  d%   \        VRV: RVP                  : RV: R2^4       WP                  8w  d!   \        TRV: RV'       d   R	MR
: R2^4       VP                  P                  V4      '       d-   VP                  P                  VP                  4      Vn	        EMVR8X  d   VP                  R8X  d   V P                  pV P                  4       '       d   RpMMV'       dF   V'       g>   VP                  4        F'  pVP
                  '       d   WOP
                  8X  g   K'   M	  RpV'       dK   V P!                  WW4WY4      pVP                  4       Vn        VP$                  e   VP$                  Vn        TpM\        VR^4       W-n	        MV'       g   VP&                  '       d   VP)                  VP                  4      '       ds   VP                  P*                  '       dP   VP                  P,                  f8   VP,                  '       d&   \/        VP0                  RVP2                   R2V 4       W-n	        M,\5        VR4       MV P!                  WW4WY4      pWMn        Wn        V'       d   RVn        V'       d   VR8w  d   ^Vn        V'       d   ^Vn        V'       g#   V'       g   VR8w  d   \5        VRV,          4       V'       d   RVn        V	'       d   Wn        V
'       d)   VP>                  '       d   Q RV: RV: R24       hWn        V'       dM   \A        W\B        4      pV PE                  V4      Vn#        ^Vn$        ^Vn%        VPL                  Vn&        VVn'        Wn(        VPR                  '       d~   VP,                  fp   VP*                  '       d^   V^ ,          PT                  '       gE   V'       d=   V'       g5   V'       g-   \V        PX                  ! W0WPZ                  P\                  R7       V# )rI   inlineFr]  Tz
Function 'r  z', now as 'r  cpdefr  6Function signature does not match previous declarationz!No exception value declared for 'z' in pxd file.
Users cimporting this function and calling it without the gil will always require an exception check.
Suggest adding an explicit exception value.3Non-extern C function '%s' declared but not definedz+duplicate utility code definition in entry z ())function_namevoid_return)/r5  r
   func_prefixr  r   r   r   r   r   rL   same_aswith_with_gilwith_gilis_builtin_scoper`  rh   add_cfunctionrO   rm   r   ra  nogilexception_valuer   rM   rK   r   r   r   r   r   r   rG   r   r   r   r   r   rr   r   rp   exception_checkin_utility_coder   write_noexcept_performance_hintreturn_typeis_void)r5   rK   rL   rM   r   r   r   r  r  r  r   overridableinline_in_pxdrp   can_overriderg  temp	var_entrys   &&&&&&&&&&&&      r   declare_cfunctionScope.declare_cfunction  s    Y&#F$6$6= I-EE&EEXF  &5j,<,<<xAW  "--
##( Y&:9I9I+I%**J89:<222['f<>?@Bzz!!$''"ZZ55dmmD
)e.>.>(.J#'#8#8L{{}}'+| */)?)?)AI#,???e6N % *B ,0L##11$c*`7<7M7M7O4 ,,8/4/@/@D, $%]_`a%)
E$8$8$8T=[=[\a\f\f=g=g zz'''EJJ,F,F,NSWSgSgSg(!II?

| LJ J !" "&J#WX&&t3zUE$#. '+E$jH,#$E EI:+A#LtST#'E #, )))ocgin+oo)!-d>:I'+'8'8'>I$$%I!$%I!#kkIO )E
   T%9%9%AdjjjF***66;K;K;S;SUr    c           
     >   \         ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       g   Q h\        P                  ! V\        P                  ! RV P                  R4      .3/ VB p	V P                  WVRWVVR7      p
RV
n        Ve   WJn        V
# )c              3   ,   "   T F
  pVR9   x  K  	  R# 5i)r  N)r  r  r  r  is_const_methodis_static_methodr  ).0ks   & r   	<genexpr>(Scope.declare_cgetter.<locals>.<genexpr>  s      
& ss&s   FTr5   N)r   r   r  r  )allr   	CFuncTypeCFuncTypeArgparent_typer  r   r   )r5   rK   r
  rM   r   r   r  r  cfunc_type_config
cfunc_typerp   s   &&&&&&&&,  r   declare_cgetterScope.declare_cgetter  s    s 
&
sss 
&
 
 
 	
 
  ))$$VT-=-=tDE!  !
 &&c*dl ' n$r    c                   V P                  WW#V4      p^Vn        V'       d   Whn        V'       g   VP                  '       d   V P                  P                  V4       V# \        V P                  4      p	\        V P                  4       F<  p
V
P                  '       g   V
P                  P                  '       g    MV	^,          p	K>  	  V P                  P                  W4       V# r   )rt  r   r   rn   r  r   r   reversedr   rL   insert)r5   rK   rL   rM   r   r   r  	inheritedrp   icfunc_entrys   &&&&&&&&   r   r  Scope.add_cfunction  s    T$Z@#, %%e,  D&&'A'(:(:;+++;3C3C3L3L3LQ  < %%a/r    c                b    V P                  V4      pV'       d   V# \        VR V,          4       R# )z'%s' is not declaredN)r  r   r5   rK   rM   rp   s   &&& r   find
Scope.find'  s(    D!L#-45r    c                    T pV Fb  pVP                  WB4      pV'       g    R # VP                  '       d   VP                  pK?  \        VRRP                  V4      ,          4        R # 	  V# )Nz'%s' is not a cimported moduler   )r,  r   r   join)r5   pathrM   rr   rK   rp   s   &&&   r   find_imported_moduleScope.find_imported_module/  s[     DJJt)Ec;chhtnLM  r    c                   V P                  V4      pV P                  V4      ;'       g:    V P                  ;'       d$    V P                  P                  V4      ;'       g    R pV'       d   V# V P                  ;'       d$    V P                  P                  V4      ;'       g    R pV'       d/   VP                  '       d   V P                  VP                  V4       V# r1   )r=  r  r   r  r   _emit_class_private_warningrM   )r5   rK   r  rp   s   &&  r   r  Scope.lookup>  s     55d;!!$'  $$NN)9)9)@)@)N  	 L !!CCd&6&6&=&=d&CLLU&&&,,UYY=r    c                    V P                   P                  V P                  V4      R 4      pV'       d   V# V P                   P                  VR 4      # r1   )r   r[   r=  r5   rK   rp   s   && r   r  Scope.lookup_hereP  sF       !?!?!EtLL ||d++r    c                :    V P                   P                  VR 4      # r1   )r   r[   r   s   &&r   lookup_here_unmangledScope.lookup_here_unmangled[  s    ||d++r    c                $    V P                  V4      # r1   )r  r   s   &&r   #lookup_assignment_expression_target)Scope.lookup_assignment_expression_target^  s     %%r    c                   V P                  V4      pV'       gH   V P                  V4      pV'       d/   VP                  '       d   V P                  VP                  V4       V'       g   V P                  V\        R 4      pV# r1   )r  r:  r   r4  rM   r  r   r7  s   && r   lookup_targetScope.lookup_targetc  se       &..t4E***00DA$$T>4@Er    c                    V'       dt   VP                   '       d`   VP                  P                  '       d8   V P                  '       d&   VP                  P	                  V P                  4      # VP                  # R # R # r1   )r   rL   rn   fused_to_specific
specializer  s   &&r   $_type_or_specialized_type_from_entry*Scope._type_or_specialized_type_from_entryo  sT    U]]]zz"""t'='='=zz,,T-C-CDD:: #5r    c                    V P                  V4      pV P                  V4      pV'       d   V# V'       d+   VP                  '       d   ^RIHp V! VP                  4      pV P                  V4      # )r   ) get_known_standard_library_entry)r  rE  r   BuiltinrH  )r5   rK   rp   tprH  s   &&   r   lookup_typeScope.lookup_typeu  s\    D! 66u=IU888A4U5X5XYE88??r    c                   V^ ,          P                   P                  '       d   V^ ,          P                   pVP                  P                  RV,          4      pVeL   VR,           Uu. uF  qUP                   NK  	  pp\        P
                  ! WdP                  4       4      pVe   V# V P                  RV,          4      p. p	Ve   VP                  4       p	. p
\        V4      ^8X  d   \        ^4       Fw  pW+,          P                   P                  '       g   K'  W+,          P                   pVP                  P                  RV,          4      pVf   Ka  WP                  4       ,          p
Ky  	  V
'       g   V	'       g   R# \        \        W,           4      4      p\        P
                  ! V Uu. uF  qUP                   NK  	  upV4      # u upi u upi )r   z
operator%sN:r   NN)rL   r   rr   r  r   rq   rh   r   ranger  r   )r5   rR  operandsobj_typemethodargrs   resfunctionfunction_alternativesmethod_alternativesnrh   s   &&&          r   lookup_operatorScope.lookup_operator  sz   A;((({''H^^**<(+BCF!19">#XX	> ++I7N7N7PQ?J;;|h67 "$,$=$=$?! !x=A1X;##000'{//H%^^22<(3JKF)+/F/F/HH+  $.C  $7$O PQ$$(%C(3hh(%C%57 	73 ?2 &Ds   (G
.Gc                ~    ^RI Hp  ! R RV4      pV Uu. uF  qe! WR7      NK  	  ppV P                  W'4      # u upi )r   )Nodec                       ] tR tRtRtR# )4Scope.lookup_operator_for_types.<locals>.FakeOperandi  r  N)r=   r>   r?   r@   rB   r  r    r   FakeOperandr]    s    r    r^  rV   )Nodesr[  rX  )r5   rM   rR  typesr[  r^  rL   rO  s   &&&&    r   lookup_operator_for_typesScope.lookup_operator_for_types  sA    	$ 	<ABEDK/EB##H77 Cs   :c                .    \        VR V,          ^4       R# )zGlobal name %s matched from within class scope in contradiction to Python 'class private name' rules. This may change in a future release.N)r   )r5   rM   rK   s   &&&r   r4  !Scope._emit_class_private_warning  s     CEIJKL	Nr    c                D    V P                  4       P                  V4       R # r1   )r@  use_utility_coder5   new_codes   &&r   rf  Scope.use_utility_code  s    ,,X6r    c                D    V P                  4       P                  V4       R # r1   )r@  r  r  s   &&r   r  Scope.use_entry_utility_code  s    2259r    c                >    V F  pW P                   9   g   K   ^# 	  ^ # r   )r   r5   r'  rK   s   && r   defines_anyScope.defines_any  s    D||#  r    c                    V F;  pW P                   9   g   K  V P                   V,          P                  '       g   K:   ^# 	  ^ # r   )r   r   rm  s   && r   defines_any_specialScope.defines_any_special  s2    D||#T(:(E(E(E  r    c                >    ^RI Hp V! 4       P                  V 4       R# )r   )get_type_infererN)TypeInferencert  infer_types)r5   rt  s   & r   rv  Scope.infer_types  s    3&&t,r    c                F    V P                   pVf   R# VP                  4       # NF)r   r`  )r5   outers   & r   r`  Scope.is_cpp  s!      =<<>!r    c                >    V P                   P                  WV4       R # r1   )r   add_include_file)r5   filenameverbatim_includelates   &&&&r   r}  Scope.add_include_file  s    ))(dKr    c                ,    \         P                   R V 2# )->)r
   modulestateglobal_cname)r5   r   s   &&r   name_in_module_stateScope.name_in_module_state  s     001E7;;r    c                j  a Vf   \        4       pV P                  '       * pV P                  P                  4        F  pV'       g8   VP                  '       g&   VP
                  R8X  g   VP                  '       g   KB  \        P                  ! VP                  4      p\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d    R# \        VP                  RR 4      pVe   Wb9   d   K  VP                  V4       VP                  SV4      '       g   K   R# 	  R# )Nrz  c              3   .   <"   T F
  pSV8H  x  K  	  R # 5ir1   r  )r  sub_tptype_to_finds   & r   r  3Scope.find_shared_usages_of_type.<locals>.<genexpr>  s     Gf<6)s   TFrr   )r   is_module_scoper   valuesr   r   r   r   get_all_subtypesrL   anyr   addfind_shared_usages_of_type)r5   r  _seen_scopesinclude_all_entriesrp   entry_subtypes
type_scopes   &f&    r   r   Scope.find_shared_usages_of_type  s    5L"&"6"66\\((*E'5+?+?+?5CSCSW_C_chclclcl'88DNsGGsssGGGG Wd;J!Z%?Z(44\<PP + r    )r  r  r  r  r  r  r	  r   r  r  r
  rW  r  rK   r  r  r   r   r  r   r   r   r  r  r  )TNr1   r   )r   r   r   )NrI   r   r   )NrI   r   r   r   r   )NrI   r   )NrI   r   F)Nr  r]  N)rI   r   r   NNrI   FFFN)r  )r]  N)Fr]  NrI   r   r   r   r  NF)NNrI   r  Fry  )Yr=   r>   r?   r@   r  is_py_class_scopeis_c_class_scopeis_closure_scopeis_local_scopeis_generator_scopeis_generator_expression_scopeis_comprehension_scopeis_passthroughr  is_property_scoper  is_c_dataclass_scopeis_internalr   r   r  rC  r
  r  rW  node_positions_to_offsetr6   r  r(  r/  r   r5  r:  r=  rD  r   rG  r@  rM  rT  r   rY  rh  rt  r   r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r  r,  r1  r  r  r:  r=  r@  rE  rK  rX  ra  r4  rf  r  rn  rq  rv  r`  r}  r  r  rB   rC   rD   s   @r   r   r   \  s    J N$%!NO KLKEK!"PH/0J!?#
   + +/0W
  4  4<~"HD
(.#J4lL
/
>D4L1
;(**hT"&6$	,,&

@ 7B8N
7:-"L<
 r    r   c                   D   a  ] tR tRt o ]P
                  tR tR tRt	V t
R# )PreImportScopei  c                R    \         P                  V \        P                  R R 4       R # r1   )r   r6   r	   
pre_importr:   s   &r   r6   PreImportScope.__init__  s    tW//t<r    c                R    V P                  W\        VR 4      pRVn        RVn        V# )rI   T)rt  r   r   r   r+  s   &&& r   r  PreImportScope.declare_builtin  s+    TiH  r    r  N)r=   r>   r?   r@   r
   preimport_cnamenamespace_cnamer6   r  rB   rC   rD   s   @r   r  r    s     ,,O= r    r  c                   x   a  ] tR tRt o RtR tRR ltR tRR ltR]	P                  R3R ltR	 tRR
 ltRtV tR# )BuiltinScopei  Tc                    \         P                  f   \        P                  V RR R 4       M \        P                  V R\	        4       R 4       / V n        R # )N__builtin__)r	   r  r   r6   r  
type_namesr:   s   &r   r6   BuiltinScope.__init__  s<    %NN4d;NN40@$Gr    Nc                n    VR 8X  g   VR8X  d   RpMVR8X  d
   V^8X  d   Rp\         P                  W4      # )unicode
basestringstrlongint)r   r  )r5   rK   language_levels   &&&r   r  BuiltinScope.lookup  s8    9 4DV^! 3D||D''r    c                   V\         P                  9  dk   V P                  e   V P                  P                  W4      # \        P
                  '       d   \        VRV,          4       R # \        VRV,          ^4       R # R # )Nundeclared name not builtin: %s)r   KNOWN_PYTHON_BUILTINSr   r  r	   error_on_unknown_namesr   r   r  s   &&&r   r  BuiltinScope.declare_builtin  sf    t111+''77BB111#@4GHC!BT!I1M 2r    c           	     8   \        V4      pV P                  WR VRVR7      pVe   Wgn        V'       dg   VR8X  d   TpM\        V4      p\        WD\        4      pV P                  V4      Vn        ^Vn        ^Vn        WXn	        VP                  Vn
        Wn        V# )Nr]  )r   r   *)r   r  rm   rG   r   r   r   r   r   r   rr   r   )	r5   rK   rL   r   python_equivr   rm   rp   r  s	   &&&&&&&  r   declare_builtin_cfunction&BuiltinScope.declare_builtin_cfunction  s     T"&&t48bn&o" +s"#,\:l.II'+'8'8'>I$$%I!#$I %1"#kkIO )r    c                   \        V4      pV! WV4      p\        VR RVR7      p/ Vn        VP                  V4       ^V P                  V&   V P                  WR RR7      pV'       d   WXn        VR8X  d    RV P                  9  d   WP                  R&   \        VP                  V P                  R4      P                  VP                  VP                  P                  R7      p	V P                  V4      V	n        ^V	n        ^V	n        ^V	n        ^V	n        W	n        \*        P,                  '       d   RV	n        V'       d   WYn        Wn        V# )	Nr]  )r   r   r  r  rN  xrangerL   rK   rL   rM   r   T)r   CClassScoper  	set_scoper  r  r   r   rG   rK   r  rL   rM   typeptr_cnamer   r   r   r   r   r   rr   r	   cache_builtinsr   r   )
r5   rK   r   objstruct_cname
type_classr   rL   rr   rp   r  s
   &&&&&&    r   declare_builtin_type!BuiltinScope.declare_builtin_type/  s$    T"$7DdxUYZu !!!$dx!H!-7?xt||;%*LL"V$))		****	
	 $(#4#4T#:	  !	 	 !	 	!!!!%I%1"%r    c                    V # r1   r  r:   s   &r   rM  BuiltinScope.builtin_scopeT  r  r    c                    R # r1   r  )r5   rK   r   rL   rM   r   rd  s   &&&&&&&r   rh  )BuiltinScope.handle_already_declared_nameW  s    r    )r  r1   )NNNr   )r=   r>   r?   r@   r  r6   r  r  r  r   BuiltinObjectTyper  rM  rh  rB   rC   rD   s   @r   r  r    sG      (N, .2j>Z>Z*.#J r    r  c                     a  ] tR tRt o ^t^ t^ t^ tRt. R#Ot	R$R lt
R t]R 4       tR tR%R ltR	 tR
 tR tR&R ltR$R ltR tR'R ltR tR tR tR tR(R ltR)R ltR tR tR tR*R lt R t!R t"R t#R t$R t%R t&R  t'R! t(R"t)V t*R# )+ModuleScopei^  Fc                   ^RI Hp W n        VP                  p\        P                  WWb4       W@n        Wn        \        V P                  4      V n        W0n	        \        P                  V n        \        P                  V n        \        P                  V n        RV n        \        P"                  V n        . V n        / V n        / V n        \-        VP.                  4      V n        ^ V n        . V n        \5        4       V n        . V n        ^ V n        . V n        . V n        V P                  V n         / V n!        / V n"        V PG                  \H        PJ                  ! RRR7      4       R# )r   rI  rH   zPython.hT)initialN)&rH   rI  parent_modulerM  r   r6   
is_packagemodule_namer   _contextr
   module_cnamemoddict_cnamemodule_dict_cnamemethtable_cnamemethod_table_cnamer   moddoc_cnamer   utility_code_listmodule_entries
c_includesdictr  pxd_file_loadedcimported_modulesr   types_importedincluded_fileshas_extern_classcached_builtinsundeclared_cached_builtinsr  _cached_tuple_types _cached_defaults_c_class_entriesprocess_includer   IncludeCode)r5   rK   r  rG  r  rI  r   s   &&&&&  r   r6   ModuleScope.__init__  s!   *++t;>$()9)9:"//!'!5!5"("8"8,,!# {556 !#!e  !!*,'#00#% 02-T--j$GHr    c                    V P                   # r1   )r  r:   s   &r   r   ModuleScope.qualifying_scope  s    !!!r    c                    V P                   # r1   )r  r:   s   &r   rG  ModuleScope.context  s    }}r    c                    V # r1   r  r:   s   &r   r@  ModuleScope.global_scope  r  r    Nc                    V P                  V4      pVe   V# Vf'   V P                  e   V P                  P                  M^pV P                  P	                  WR7      # )N)r  )r  rG  r  r   r  )r5   rK   r  rp   s   &&& r   r  ModuleScope.lookup  sX      &L!<@LL<TT\\88Z[N&&t&KKr    c           	        \        V4      p V P                  V,          pVP
                  pV P                  V4      pV'       g   \        V4      p\        V4       F  w  rxVP                  R V,          WR7       K!  	  V P                  VR,           RVRWR7      p	V P                  P                  V	4       Wn        V P                  WCW4      pWSn        V#   \         d(    \        P                  ! T4      ;q0P                  T&    Li ; i)zf%s)rK   rL   rM   _structstructT)r  rM   r   )tupler  rA  r   c_tuple_typer   r  StructOrUnionScope	enumerater  r  r  removestruct_entryr  rp   )
r5   rM   r  ttyper   rp   rr   ix	componentr  s
   &&&       r   r  ModuleScope.declare_tuple_type  s    :&
	_,,Z8E   '&u-E!*:!6!!urz	!K "777	!8U3 8 ]L$$\2!-%%eC?E  	_;E;R;RS];^^E,,Z8	_s   C /DDc                ^   \        V4      p V P                  V,          #   \         d     Mi ; iT P                  \        P
                  4      p\        T4      pT P                  Y1R R TR7      ;q@P                  T&   T P                  T4       R TP                  n
        TP                  P                  pR Tn        R Tn        \        \        \        T4      4      4      pRT,          P                   p\#        T4       F*  w  r\        T! T4      4      p
TP%                  YRR R7       K,  	  T# )T)r  implementingr  zarg{:0>%dd}N)rM   r  )r   r  rA  rD  r
   defaults_struct_prefixr   declare_c_classcheck_c_classrL   is_final_typerr   r  is_defaults_class_scoper   r  formatr  r  )r5   rM   r  r   rp   rr   	num_zerosbuild_argnamerW  type_arg_names   &&&        r   declare_defaults_c_class$ModuleScope.declare_defaults_c_class  s"   :&
	88DD 		 V::;e$DHDXDXD! EY E# 	#55jA 	5!#'

 

   (,% C
O,-	&2::!*-HA$]1%56Hh4F . s     ..c                6   V\         P                  9  d   V\         P                  9  d   V\         P                  9  d   V P                  '       d   V P                  V\        V4      pV# \        P                  '       d   \        VR V,          4       M\        VR V,          ^4       V P                  VR\        VR4      p^Vn        V# \        P                  '       d)   V P                   F  pVP                  V8X  g   K  Vu # 	  VR8X  d.   V P                   '       g   V P"                  P%                  R4      # V P                  RR\        VR4      p\        P                  '       d}   V\         P                  9  dh   ^Vn        ^Vn        Wn        \(        P*                  V,           Vn        V P                  P/                  V4       V P0                  P/                  V4       M^Vn        Wn        V P3                  4       P5                  V4      Vn        V# )r  NrI   globals__Pyx_Globals)r   r  renamed_py2_builtins_mapuncachable_builtinshas_import_starr  r   r	   r  r   r   rt  r   r  r  rK   old_style_globalsr   r  r   r
   builtin_prefixr   r   r  rM  r   r   r+  s   &&& r   r  ModuleScope.declare_builtin  s   t111t<<<t777###((~sC111#@4GHC!BT!I1MT4iP#$ !!!--::% L . 9T%;%;%;##**?;;LLt^S)LE!!!d$2J2J&J EENJ //$6EK  ''.++2259 EJ#113@@Fr    c                D   VR J;'       d    V^ 8  pR pRpVeF   V^ 8  d?   T pV P                   '       d   ^M^ pW78  d    V'       d   VP                  pV^,          pK%  MV^ 8w  d   V P                  pRpV P                  4       pVP                  P	                  WW&VR7      # )NFT)from_modulerM   absolute_fallbackrelative_import)r  r  r@  rG  find_module)	r5   r  rM   relative_levelis_relative_importr"  r#  	top_levelmodule_scopes	   &&&&     r   r%  ModuleScope.find_module  s    
 ,47NNNQ<N!%.1*< K!___!I
 !,)77!#q ,,K $((*##//c  qC 0 D 	Dr    c                   R V9   d   VP                  R ^4      w  rMRpV P                  V4      pV'       g1   \        YV P                  V'       d   RMTR7      pW@P                  V&   V'       d   VP                  W2R7      pV# )r   NT)r  rG  r  )
as_package)splitlookup_submoduler  rG  r  find_submodule)r5   rK   r,  	submodulerr   s   &&&  r   r/  ModuleScope.find_submodule$  sy     $;"jja0OD)I%%d+$,,cl[_r|}E(-%(((JEr    c                    R V9   d   VP                  R ^4      w  rMRpV P                  P                  VR4      pV'       d   Ve   VP                  V4      pV# r   N)r-  r  r[   r.  )r5   rK   r0  modules   &&  r   r.  ModuleScope.lookup_submodule3  sW    $;"jja0OD)I$$((t4+,,Y7Fr    c                X    \         P                  ! WVR7      pV P                  V4       R# )z
Add `filename` as include file. Add `verbatim_include` as
verbatim text in the C file.
Both `filename` and `verbatim_include` can be `None` or empty.
)r  N)r   r  r  )r5   r~  r  r  incs   &&&& r   r}  ModuleScope.add_include_file>  s$     xES!r    c                    VP                  4       pVf   VP                  4       pVP                  V P                  V4       V P                  V,          pR# )a:  
Add `inc`, which is an instance of `IncludeCode`, to this
`ModuleScope`. This either adds a new element to the
`c_includes` dict or it updates an existing entry.

In detail: the values of the dict `self.c_includes` are
instances of `IncludeCode` containing the code to be put in the
generated C file. The keys of the dict are needed to ensure
uniqueness in two ways: if an include file is specified in
multiple "cdef extern" blocks, only one `#include` statement is
generated. Second, the same include might occur multiple times
if we find it through multiple "cimport" paths. So we use the
generated code (of the form `#include "header.h"`) as dict key.

If verbatim code does not belong to any include file (i.e. it
was put in a `cdef extern from *` block), then we use a unique
dict key: namely, the `sortkey()`.

One `IncludeCode` object can contain multiple pieces of C code:
one optional "main piece" for the include file and several other
pieces for the verbatim code. The `IncludeCode.dict_update`
method merges the pieces of two different `IncludeCode` objects
if needed.
N)	mainpiecesortkeydict_updater  )r5   r7  rP  s   && r   r  ModuleScope.process_includeG  s?    2 mmo;++-C-ooc"r    c                   WP                   9  dt   VP                  P                  4        F  pV P                  V4       K  	  V P                   P	                  V4       VP                    F  pV P                  V4       K  	  R # R # r1   )r  r  r  r  r   add_imported_module)r5   rr   r7  ms   &&  r   r?  ModuleScope.add_imported_modulef  sl    ...''..0$$S) 1""))%0,,((+ -	 /r    c                    VP                   '       d   R Vn        W P                  9  d   W P                  V&   R# \        VRV,          ^ 4       R# )Tr  N)r   r   r   r   )r5   rK   rp   rM   s   &&&&r   add_imported_entryModuleScope.add_imported_entryn  s>     $E$!&LLC,t3Q7r    c                8   V P                  V4      pV'       dL   VP                  '       d   VP                  VJ d   V# VP                  '       d   VP                  '       d   V# MV P                  V\        V4      p^ Vn        W$n        V P                  V4       V# )r   )r  r   r   r  r   r   r?  )r5   rK   rr   rM   rp   s   &&&& r   declare_moduleModuleScope.declare_modulew  s    
   &   U__%=%%%eooo  /> $$T>3?E !E  'r    c
                V   VR9  d   \        VRV,          4       V P                  W9R4       V'       g@   V\        J d   \        pVP                  '       d   VP
                  '       d   \        R4      hV'       dc   VR8w  d\   V P                  R,          R8w  dD   Rp
RpVP                  '       d   Rp
R	p\        TR
V R2V
,           ^V
'       d   ^M^ ,           4       V'       gA   V'       * pVR8X  g   VR8X  d   V'       d   TpM V P                  \        P                  V4      pV P                  V4      pV'       d   VP                  '       d   VP                  P                  V4      '       g3   VR8X  d,   VP                   R8X  d   \        VRV,          ^4       W-n        VP                   R 8w  d:   V P                  \        P                  V4      pVP"                  V8X  d	   TpWn        VP$                  '       g
   RVn        V# \&        P)                  WW#WEWgWR7
      pV'       d[   ^Vn        VP                  P,                  '       d   VP                  P,                  Vn        V P0                  P3                  V4       M^Vn        \6        P8                  '       d   ^Vn        V# )rI   rz  r]  z+Module-level variable cannot be declared %sz7Non-cdef global variable is not a generic Python objectsubinterpreters_compatiblenorH   z9
Python objects should not be shared between interpreterszPython zGlobal cdef zvariable used with subinterpreter support enabled.
This variable is not currently in the per-interpreter module state but this will likely change in future releases.z6Variable '%s' type does not match previous declarationTr   r   r   r  r  r   )rI   rz  r]  )ztyping.Optional)r   r  r   r   is_pyobjectis_extension_typer   r  r   r5  r
   r  r  r   rL   r   r   r   r   r   r  r   declaration_valuerN   r  r   r   r	   cimport_from_pyxr   )r5   rK   rL   rM   r   r   r   r  r  r   extra_warningpyobject_warningr  rp   mangled_cnames   &&&&&&&&&&     r   r  ModuleScope.declare_var  sR    <<#DzQR''AUV''%$$$T-C-C-C#MO O
h.OO$@ATIM! \#, /0 1B B  11-/ !zHX%**@XF$5$5t<  &U))) ::%%d++)e.>.>(.JC!Y\`!`bcd!%J 9, $F,=,=t D;;-/ E"&K''''+$!!$d(-&)' " r  Ezz+++"ZZ99
##E* !E###EJr    c                8   V'       g   R V	9   d   \        VR^4       V'       g:   VR8X  g   VR8X  d   V'       d   TpM V P                  \        P                  V4      pVR8X  d   VP                  '       d   \        VR4       V P                  V4      pV'       dc   VP                  '       dQ   VP                  R8w  d@   V P                  \        P                  V4      pVP                  V8X  d   TpWLn	        WLn
        \        P                  WW#WEWgWV
VR7      pV# )r  z+Declarations should not be declared inline.r]  rz  z6Extern functions cannot have default arguments values.rI   )r   r   r   r  r  r  r   r  )r   r5  r
   r  optional_arg_countr   r  r   r   r   r   r   r  )r5   rK   rL   rM   r   r   r   r  r  r  r   r  rp   rR  s   &&&&&&&&&&&&  r   r  ModuleScope.declare_cfunction  s     H	1CFJX%**@XF$6$6=!d&=&=&=#OP  &U)))9, $F,>,> E;;-/ E"'K',$''C#	 ( %
 r    c                j    V P                  V4      pV'       g   V P                  V\        V4       R # R # r1   )r  r  r   r+  s   &&& r   declare_globalModuleScope.declare_global  s,      &T>37 r    c                H    Ve   V P                   P                  V4       R # R # r1   )r  r   rg  s   &&r   rf  ModuleScope.use_utility_code  s!    ""))(3  r    c                   Vf   R # VP                   '       d&   V P                  P                  VP                   4       VP                  '       d&   V P                  P                  VP                  4       \        P
                  ! VP                  4       FD  p\        VR4      '       g   K  VP                  VJg   K)  V P                  VP                  4       KF  	  R # )Nrp   )
r   r  r   r   r   r  rL   hasattrrp   r  )r5   rp   rJ  s   && r   r  "ModuleScope.use_entry_utility_code  s    =""))%*<*<=(((""))%*G*GH--ejj9Br7##(=++BHH5 :r    c           	     8
   V'       d)   V
R 8w  d"   V
R8X  g   V'       g   \        VR^4       Tp^ pMRpV P                  V4      pV'       d   V'       g   VP                  pVP                  '       d   VP                  '       g   RpMVP
                  pV'       d-   V'       d   VP                  '       d   V P                  VW4       V'       d   VP                  '       g   V'       d7   VP                  '       d%   V'       d   VVP                  Jd   \        VR4       V'       d   VP                  '       g   VVn        V'       d
   V'       Ed2   \        P                  ! WWjR 8H  VR7      pVVn        VVn        Ve   VVn        V
R 8X  d	   VVn        MV P                   Vn        V	'       d	   V	Vn        M%V P%                  \&        P(                  V4      Vn        V P+                  VVW*^ VR7      pRVn        V'       d	   VVn        MNVP0                  '       g'   V P%                  \&        P2                  V4      Vn        M\        VP                  R4       V P5                  V4       V P6                  P9                  V4       XP
                  '       g   V'       g	   V'       d   \;        WV
VR	7      pV P<                  P?                  4       Vn        V'       d.   VP
                  '       d   VPA                  VP
                  4       VPC                  V4       V PD                  P9                  V4       MoV'       d1   VP
                  P                  '       d   \        VR
V,          4       M7V'       d0   VP
                  PF                  '       d   \        VRV,          4       V'       d   ^Vn$        V'       d   VVn        V
R8w  d1   VPJ                  V
8w  d    \        VRV: RVPJ                  : R24       V'       d   ^Vn&        V'       d7   VP.                  '       d   VP.                  V8w  d   \        VR4       VVn        V'       d7   VPN                  '       d   VPN                  V8w  d   \        VR4       VVn'        V P<                  PQ                  R4      '       d   RVP                  n)        V P<                  PQ                  R4      pV'       d%   ^RI*H+p \Y        V V4      '       g   \        VR4       VR8X  d   RVP                  n-        RVn.        V# )r]  rz  z6ctypedef only valid for 'extern' , 'public', and 'api'Nr  )
check_size)r   r  rs  Tz5Object name required for 'public' or 'extern' C class)rK   r   r   r  zC class '%s' already definedz C class '%s' already implementedrI   zClass 'r  r  z4Object struct name differs from previous declarationz2Type object name differs from previous declarationfinalcollection_type)NonManglingModuleScopez2'collection_type' is not a public cython directivesequence)/r   r  rL   r   rM  rr   definedr  r  r   r   PyExtensionTyperM   buffer_defaultsobjtypedef_cnamer  r   r  r5  r
   typeptr_prefixr  r   r  r   objstruct_prefixattach_var_entry_to_c_classr  r   r  r  rc  declare_inherited_c_attributesr  r  implementedr   r   r   typeobj_cnamer[   r  r   rc  r~   has_sequence_flagr   )r5   rK   rM   r  r  r  r  r  rn  r  r   r  r   r`  rg  rs  rh  rp   rL   rr   rb  rc  s   &&&&&&&&&&&&&&&&      r   r  ModuleScope.declare_c_class  s    J(2(*cUWXY.L#   &::DMMMd&<&<&<

%---44ULNemmmt~~~ Ydnn%Dc#RST^^^%.DN --IX/ER\^DDH#2D +(8%X%#. #'#6#6 %2"%)[[1F1F%M"%%dD#v & /E"EO'6$&&&'+{{63J3JD'Q$eiiKM,,U3  ''. zzz<#4) $& $(??#7#7#9 88Iu%!!((/DJJ...c9D@A$**"8"8"8c=DE #$E EI"u'7'7:'E#))+ ,EI###(<(<(OcQR#2D !!!d&8&8M&IcOP!.D??w'''+EJJ$//--.?@;d$:;; cOPj(+/EJJ( 

 r    c                ^   VP                   pVP                  '       dN   VP                  P                  '       d2   \        P                  : R VP                  P                  : 2Vn        MVP
                  '       d   VP
                  P                  '       d   \        VP
                  P                  4      pVP                  pV'       dZ   VP
                  '       d%   V\        VP
                  P                  4      8  d   M"VP                  '       d   R# VP                  pKa  \        P                  Vn        VP                  '       da   V P                  \        P                  VP                  4      Vn        V P                  \        P                  VP                  4      Vn        R# R# r3  )rL   r  vtabslot_cnamer
   obj_base_cnamerr   r  r   is_builtin_typer5  vtabstruct_prefixrK   vtabstruct_cnamevtabptr_prefixvtabptr_cname)r5   rp   rL   entry_countr  s   &&   r   allocate_vtable_names!ModuleScope.allocate_vtable_names  s    zz>>>dnn;;; %%t~~'D'D#FDZZZDJJ444 djj667KI +IOO<Y<Y8Z*Z,,,%//	"("7"7D$(KK0H0H%**$UD!!%V-B-BEJJ!OD r    c                    V P                    FH  pVP                  P                  '       d   K!  \        VP                  R VP
                  ,          4       KJ  	  R# )(C class '%s' is declared but not definedN)r  rL   rr   r   rM   rK   r  s   & r   check_c_classes_pxdModuleScope.check_c_classes_pxd  s<     ))E::###eii!Kejj!XY *r    c                   VP                   pVP                  pVP                  pVP                  '       g   \	        VP
                  R V,          4       VR8w  d8   VP                  '       g&   V P                  \        P                  V4      Vn        VP                  '       dm   VP                  P                   FR  pVP                  '       d   K  VP                  '       d   K+  \	        VP
                  RVP                  ,          4       KT  	  VP                  '       d2   V P                  \        P                  VP                  4      Vn        R# R# )r}  r]  z)C method '%s' is declared but not definedN)rL   rK   r   rr   r   rM   rn  r5  r
   typeobj_prefixr  r   r   rr  vtable_prefixvtable_cname)r5   rp   rL   rK   r   method_entrys   &&    r   r  ModuleScope.check_c_class  s    zzzz%%
zzz%))G$NO!$*<*<*<!%V-B-BD!ID ::: $

 8 8#0009P9P9P,**,W$))-* + !9
  $F,@,@%** MD r    c                <   ^ pV'       d   \        RV P                  ,           4       V P                   Fe  pV'       dJ   \        RVP                  : RV: 24       \        RVP                  4       \        RVP
                  4       V P                  V4       Kg  	  R# )r   z&Scope.check_c_classes: checking scope z	...entry r,  z......type = z......visibility = N)rZ   r   r  rK   rL   r   r  )r5   debug_check_c_classesrp   s   &  r   check_c_classesModuleScope.check_c_classes  sr     !" :T=P=PPQ))E$%**e<=o

3+U-=-=>u% *r    c                p   V P                   P                  4        F  w  rVP                  '       g   K  VP                  '       g   K-  VP                  V J g   K?  VP
                  R 8w  g   KR  VP                  '       d   Kf  VP                  '       d   Kz  \        VP                  RV,          4       K  	  R# )r]  r  N)
r   r  r   r   rr   r   r   r   r   rM   r7  s   &  r   check_c_functionsModuleScope.check_c_functions  s|      <<--/KD!!!(((!KK4/!,,8 % 1 1 1 % 4 4 4%))%Z]a%ab 0r    c                   ^RI Hp \        VP                  VP                  VP
                  VP                  P                  R7      pVP                  Vn        ^Vn	        ^Vn
        ^Vn        RVn        VP                  Vn        W1n        R# )r   r  r  TN)rH   rI  rG   rK   	type_typerM   rL   r  r   r   r   r   r   rr   r   )r5   rp   rI  r  s   &&  r   rk  'ModuleScope.attach_var_entry_to_c_class  su     	$$))JJ,,.	 $)#7#7	  !	 	 !	(,	%++	%r    c                    V P                   # r1   )cppr:   s   &r   r`  ModuleScope.is_cpp  s    xxr    c                >    ^RI Hp V! 4       P                  V 4       R# )r   )PyObjectTypeInfererN)ru  r  rv  )r5   r  s   & r   rv  ModuleScope.infer_types  s    6))$/r    )r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )	__builtins__r=   __file__r   __path____spec__
__loader____package__
__cached__r   r1   )rk  ry  r  r  )r   r   NNNNNrI   r   r   NNr   )+r=   r>   r?   r@   r  r  is_cython_builtinr  namespace_cname_is_typer  r6   r   r   rG  r@  r  r  r  r  r%  r/  r.  r}  r  r?  rC  rF  r  r  rX  rf  r  r  rz  r~  r  r  r  rk  r`  rv  rB   rC   rD   s   @r   r  r  ^  s     0 OO#
I<"  L(6#JD>	"#>,82EN:8
4	6xtP:Z N.&0
c&(0 0r    r  c                   j   a  ] tR tRt o RtRtRtRR ltR tR t	RR lt
R	 tR
 tR tR tR tRtV tR# )rm  i  TFNc                >    Vf   Tp\         P                  WW#4       R # r1   r   r6   )r5   rK   r   r   s   &&&&r   r6   LocalScope.__init__  s    &Lt;=r    c                $    \        W,           4      # r1   )r-   r6  s   &&&r   r5  LocalScope.mangle  s    v}--r    c                   V P                  V4      pV P                  \        P                  V4      pV P	                  WW#R 4      p^Vn        VP                  '       d   RVn        ^Vn        V P                  P                  V4       V# )rI   0)r=  r5  r
   r  rt  r   rL  rN   r   r  r   )r5   rK   rL   rM   r   rp   s   &&&&  r   declare_argLocalScope.declare_arg  su    --d3F--t4T$Y?EJ&r    c
                d   V P                  V4      pVR9   d   \        VRV,          4       \        P                  WW#WEWgWR7
      p
V
P                  P
                  '       d   V
P                  P
                  V
n        ^V
n        V P                  V
n	        V P                  P                  V
4       V
# )rz  z$Local variable cannot be declared %srK  rz  readonly)r=  r   r   r  rL   rN  rN   r   _in_with_gil_blockr   r  r   r  s   &&&&&&&&&& r   r  LocalScope.declare_var$  s     --d3//#=
JK!!$d(-&)' " r ::'''55EJ"&"9"9&r    c                    V P                  V4      '       d   \        VR ^ 4       R# V P                  4       P                  V4      pW0P                  V&   R# r  Nr  r   r@  r@  r   r+  s   &&& r   rX  LocalScope.declare_global6  E    D!!C,a0%%'55d;E!&LLr    c                >   V P                  V4      pV'       dH   VP                  V J d8   VP                  '       g&   \        VR V,          4       VP	                  4        R# V P                  V4      pVe   VP                  '       g   \        VRV,          4       R# R# z'%s' redeclared as nonlocalNz"no binding for nonlocal '%s' found)r  rr   r   r   rb   r  r5   rK   rM   
orig_entryrp   s   &&&  r   declare_nonlocalLocalScope.declare_nonlocal>  s|    %%d+
***d2:;R;R;R#4t;<,,.KK%E}E$6$6$6c?$FG %7r    c                T    R Vn         \        W 4      pR Vn        W0P                  V&   V# T)r   r   r   r   )r5   rK   rp   inner_entrys   &&& r   _create_inner_entry_for_closure*LocalScope._create_inner_entry_for_closureI  s.     -"&(Tr    c                .   \         P                  W4      pVe|   VP                  pVP                  '       d   VP                  pK   W0JdK   VP
                  '       d9   \        VP                  R4      '       d   \        R4      hV P                  W4      # V# )Nscope_classz#lookup() after scope class created.)	r   r  rr   r  r   r  r]  r   r  )r5   rK   rp   entry_scopes   &&  r   r  LocalScope.lookupP  s~     T(++K444)55&;+G+G+G5;;66'(MNN ;;DHHr    c                   V P                  4        EFa  pVP                  P                  4        EF>  pVP                  '       d   VP                  P
                  pV P                  '       d	   WCn        KF  VP                  \        P                  4      '       d$   V\        \        P                  4      ^,           R pV: RV: 2Vn        K  VP                  '       g   K  VP
                  Vn        \        P                  : RVP
                  : 2Vn        VP                  P                  '       g   EK  VP                  P                   R,          '       g   EK.  VP#                  4        EKA  	  EKd  	  R# )r   Nr  r  )rT  r   r  r   r   r   r  r   r
   cur_scope_cnamer   r   original_cnamerL   r   rr   r  r   )r5   outer_scope_cnamerr   rp   r   s   &&   r   mangle_closure_cnames LocalScope.mangle_closure_cnamesa  s    ++-E--/%%%!--33E***&+ ++F,B,BCC$)#f.D.D*Ea*G*H$IE2CU&K%%%+0;;E(.4.D.Dekk"REKzz...5;;3I3I,3W3W//1 0 .r    r  r1   r  )r=   r>   r?   r@   r  has_with_gil_blockr  r6   r5  r  r  rX  r  r  r  r  rB   rC   rD   s   @r   rm  rm    sM     N  >
.$'	H"2 2r    rm  c                   `   a  ] tR tRt o RtRtR tR tRR ltR t	RR	 lt
R
 tR tR tRtV tR# )ComprehensionScopeis  zScope for comprehensions (but not generator expressions, which use ClosureScope).
As opposed to generators, these can be easily inlined in some cases, so all
we really need is a scope that holds the loop variable(s).
Tc                "   TpVP                   '       d   VP                  pK   VP                  4       P                  \        P
                  4      p\        P                  WW4       VP                  V n        R \        P                  \        V4      V3,          V n        VP                   '       g%   VP                  '       g   VP                  '       d   VP                  pKD  VP                  V n        VP                   P#                  V 4       R# )z%s%d%sN)r  r   r@  rD  r
   genexpr_id_refr   r6   r  r   r   genexp_prefixr  r  r   r  r   r  )r5   r   r   rK   s   &&  r   r6   ComprehensionScope.__init__z  s    "111'44L((*2263H3HIt;=%00%)<)<c$i(NN 000K4P4P4PT_TqTqTq%11K&22!!$'r    c                X    V P                   : V P                  P                  W4      : 2# r1   )r  r   r5  r6  s   &&&r   r5  ComprehensionScope.mangle  s$    ++T->->-E-Ef-STTr    Nc
                L   V\         J dB   V P                  P                  V4      p
V
'       d   V
P                  '       d   V
P                  pV P                  W94       V P                  : V P                  P                  \        P                  T;'       g    V P                  4       4      : 2pV P                  WW#V4      pR Vn        V P                  P                  '       d	   R Vn        MR Vn        R Vn        V P"                  P%                  V4       WP&                  V&   V# r  )r   r   r  r   rL   r  r  r   r5  r
   r  rD  rt  r  r   r   r   r  r   r   )r5   rK   rL   rM   r   r   r   r  r  r   r   rp   s   &&&&&&&&&&  r   r  ComprehensionScope.declare_var  s     ##**11$7K{666"''''@ ,,d.?.?.F.FvGXGXZ^ZpZpbfbnbnbp.qrT$Z@ ,,,#E!EN &"Tr    c                :    V P                   P                  WV4      # r1   )r   r  r  s   &&&&r   r  7ComprehensionScope.declare_assignment_expression_target  s      ,,T==r    c                :    V P                   P                  WV4      # r1   )r   r  r5   rK   rM   r  s   &&&&r   r  %ComprehensionScope.declare_pyfunction  s     22~' 	'r    c                8    V P                   P                  W4      # r1   )r   r  )r5   r   rM   s   &&&r   r  *ComprehensionScope.declare_lambda_function  s    77
HHr    c                8    V P                   P                  V4      # r1   )r   r  r  s   &&r   r  !ComprehensionScope.add_lambda_def  s    ..x88r    c                n    V P                  V4      pV'       g   V P                  P                  V4      pV# r1   )r  r   r=  r7  s   && r   r=  6ComprehensionScope.lookup_assignment_expression_target  s0      &%%II$OEr    )r  r  r  )NrI   FFTNr   )r=   r>   r?   r@   r   r  r6   r5  r  r  r  r  r  r=  rB   rC   rD   s   @r   r  r  s  sA      "("U.>'I9 r    r  c                   >   a  ] tR tRt o RtRR ltR	R ltR tRtV t	R# )
ClosureScopei  TNc                h    \         P                  WW44       \        P                  : V: 2V n        R # r1   )rm  r6   r
   closure_scope_prefixclosure_cname)r5   rK   
scope_namer   r   s   &&&&&r   r6   ClosureScope.__init__  s%    DB'-'B'BJOr    c                2    \         P                  WW#R R7      # )rI   r  )rm  r  r  s   &&&&r   r  ClosureScope.declare_pyfunction  s    ,,TYb,ccr    c                &    V P                  WV4      # r1   r  r  s   &&&&r   r  1ClosureScope.declare_assignment_expression_target  s    C00r    )r  r1   r   )
r=   r>   r?   r@   r  r6   r  r  rB   rC   rD   s   @r   r  r    s!     Pd1 1r    r  c                   4   a  ] tR tRt o RtRtR tR tRtV t	R# )GeneratorExpressionScopei  Tc                \    V P                   P                  WV4      pV P                  W4      # r1   )r   r  r  )r5   rK   rL   rM   rp   s   &&&& r   r  =GeneratorExpressionScope.declare_assignment_expression_target  s+    !!--d#>33D@@r    c                    V P                  V4      pV'       g5   V P                  P                  V4      pV'       d   V P                  W4      # V# r1   )r  r   r=  r  r7  s   && r   r=  <GeneratorExpressionScope.lookup_assignment_expression_target  sD      &%%II$OE;;DHHr    r  N)
r=   r>   r?   r@   r  r  r  r=  rB   rC   rD   s   @r   r  r    s!     $(!A r    r  c                   >   a  ] tR tRt o RR ltRR ltR	R ltRtV tR# )
r  i  c                6    \         P                  WR R R7       R # )N)r   r   r  r   s   &&r   r6   StructOrUnionScope.__init__  s    tt$Gr    Nc                   V'       g   TpVR 8X  d   \        V4      pVP                  '       d   \        P                  ! V4      pV P	                  W94       V P                  WW#V4      p^Vn        V P                  P                  V4       VP                  '       d   V
'       g   \        VR4       V# VP                  '       d   V'       g   \        VR4       V# VP                  '       d   V'       g   \        VRV,          4       V# )rI   z/C struct/union member cannot be a Python objectz-C struct/union member cannot be a memory viewz;C struct/union member cannot be reference-counted type '%s')r   r   r   r  r  rt  r   r  r   rL  r   rq  needs_refcounting)r5   rK   rL   rM   r   r   r   r  r  r   allow_pyobjectallow_memoryviewallow_refcountedrp   s   &&&&&&&&&&&&& r   r  StructOrUnionScope.declare_var  s    
 EY&)%0&&t,D''@T$Z@&!cLM  $$$#cJK  ####cX[__`r    c                R    V
'       d   \        VR 4       V P                  WVWER7      # )z0C struct/union member cannot be declared 'cpdef'r  )r   r  )r5   rK   rL   rM   r   r   r   r  r  r  r  s   &&&&&&&&&&&r   r  $StructOrUnionScope.declare_cfunction	  s3     #IJC&+   D 	Dr    r  )?)	NrI   FFFNFFF)NrI   r   r   r   r  F)	r=   r>   r?   r@   r6   r  r  rB   rC   rD   s   @r   r  r    s     H6D Dr    r  c                   :   a  ] tR tRt o RR.tR tR tR tRtV t	R# )	
ClassScopei	  r>   r?   c                &   V'       d(   VP                  4       P                  R 4      '       d   V# V'       dZ   VP                  R4      '       dC   VP                  R4      '       g,   \        RV P                  P                  R4      : V: 24      pV# )__pyx_r   r&   )lowerr   endswithr   
class_namelstripr   s   &&r   r=  $ClassScope.mangle_class_private_name	  sb    DJJL++H55KDOOD))$--2E2E DOO,B,B3,G!NODr    c                L    \         P                  WW"4       Wn        R V n        R # r1   )r   r6   r  r   r5   rK   r   s   &&&r   r6   ClassScope.__init__ 	  s    t;<r    c                |   \         P                  W4      pV'       d   V# VR 8X  d   \        R R\        P                  ! \
        \        P                  ! R\
        R4      .^ ^ 4      4      p\        P                  P                  RR4      Vn
        V P                  V4       ^Vn        V P                  4       Vn        V# )classmethod__Pyx_Method_ClassMethodrH   NClassMethodzCythonFunction.c)r   r  rG   r   r  r   r  r   r   r   r   r  r   rM  rr   r7  s   && r   r  ClassScope.lookup%	  s    T(L= 
 *$$",,RFGAOPE -1,<,<,H,HXj,kE)''.!"E,,.EKr    )r  r   N)
r=   r>   r?   r@   r  r=  r6   r  rB   rC   rD   s   @r   r  r  	  s&      +N;
 r    r  c                   D   a  ] tR tRt o ^tRtR	R ltR tR tR t	Rt
V tR# )
PyClassScopei;	  FNc
                    V P                  V4      pV\        J d   \        p\        P	                  WW#WEWgWR 7
      p
^V
n        ^V
n        V
# )rK  )r=  r   r   r   r  r   r   r  s   &&&&&&&&&& r   r  PyClassScope.declare_varC	  s[     --d3##!D!!$d(-&)' " r  !r    c                6   V P                  V4      pV'       dH   VP                  V J d8   VP                  '       g&   \        VR V,          4       VP	                  4        R# V P                  V4      pVf   \        VRV,          4       R# W@P                  V&   R# r  )r  rr   r   r   rb   r  r   r  s   &&&  r   r  PyClassScope.declare_nonlocalQ	  sz    %%d+
***d2:;R;R;R#4t;<,,.KK%E}c?$FG &+T"r    c                    V P                  V4      '       d   \        VR ^ 4       R# V P                  4       P                  V4      pW0P                  V&   R# r  r  r+  s   &&& r   rX  PyClassScope.declare_global`	  r  r    c                8    V P                   P                  V4      # r1   )r   add_default_value)r5   rL   s   &&r   r  PyClassScope.add_default_valueh	  s    11$77r    r  r  )r=   r>   r?   r@   r  r  r  r  rX  r  rB   rC   rD   s   @r   r  r  ;	  s,     
 #+'8 8r    r  c                      a a ] tR tRt o^tRtRtRtRtRt	Rt
RtRtR tR tR tR tR tRR ltRR	 ltRR
 ltR tRR ltRR ltRR ltRR ltRR ltR tRV 3R lltRtVtV ;t# )r  il	  Fc                   \         P                  WV4       VR 8w  dK   VP                  \        P                  V4      V n        VP                  \        P                  V4      V n        . V n        . V n	        W@n
        VP                  '       g   VP                  '       d9   VP                  '       d%   V P                  P                  V n        RV n        R# R# R# )r]  TN)r  r6   r5  r
   methtab_prefixr  gstab_prefixgetset_table_cnameproperty_entriesinherited_var_entriesr  rt  rM  r  r  r  )r5   rK   r   r   r  s   &&&&&r   r6   CClassScope.__init__	  s    D4!&1&8&89N9NPT&UD#&1&8&89L9Ld&SD# "%'"&
 (((K,I,I,I---#'#3#3#A#AD +/D( . -Jr    c                   V P                   '       d%   V P                  P                  R R4      '       g   R# V P                  P                  '       d   V P                  P
                  '       g   R# V P                  P                  pV'       d)   VP                  e   VP                  P                  4       # V P                  P
                  '       d   V P                  P                  '       * # R# )no_gcFT)
has_cyclic_pyobject_attrsr  r[   r  is_externalrt  r  rr   needs_gcis_gc_simple)r5   r  s   & r   r#  CClassScope.needs_gc	  s     )))$//2E2Egu2U2U'''0@0@0P0P0P$$..	4??++-----''4444r    c                8   V P                   P                  R 4      pVRJ d   R# V'       d   V P                  '       d   R# V P                  P                  pV'       d)   VP
                  e   VP
                  P                  4       # V P                  P                  # )trashcanFT)r  r[   r!  r  r  rr   needs_trashcanbuiltin_trashcan)r5   	directiver  s   &  r   r(  CClassScope.needs_trashcan	  sx     OO''
3	 777$$..	4??1133000r    c                t    V P                  4       ;'       d"    V P                  P                  RR4      '       * # )z
Do we need to generate an implementation for the tp_clear slot? Can
be disabled to keep references for the __dealloc__ cleanup function.
no_gc_clearF)r#  r  r[   r:   s   &r   needs_tp_clearCClassScope.needs_tp_clear	  s,    
 }}PPt':':=%'P#PPr    c                h   T pV'       d   VP                  R4      pV'       d   VP                  '       d   R# VP                  P                  '       g/   VP                  '       d   VP                  P
                  '       d   R# VP                  P                  pV'       d   VP                  MRpK  R# )z
This covers cases where we definitely have a __del__ function
and also cases where one of the base classes could have a __del__
function but we don't know.
__del__TNF)r  r   r  r"  rm  multiple_basesr  rr   )r5   current_type_scope	del_entrycurrent_base_types   &   r   may_have_finalizeCClassScope.may_have_finalize	  s     " *66yAIY111"..:::BTB`B`B`&22AAA 2 > > H H<M!2!8!8SWr    c                0   . p. p. pV P                    F  pVP                  P                  '       dg   V'       g$   V P                  '       g   VP                  R 8w  d:   V'       g   VP                  P
                  '       g   VP                  V4       K  K  K  VP                  \        P                  8X  d   VP                  V4       K  VP                  P                  '       g   K  VP                  V4       K  	  T;'       g    T;'       g    TpWsWE33# )r   )
r  rL   rL  is_closure_class_scoperK   r$  r   r   c_py_buffer_typerq  )r5   include_weakrefinclude_gc_simplepy_attrs
py_buffersmemoryview_slicesrp   have_entriess   &&&     r   get_refcounted_entries"CClassScope.get_refcounted_entries	  s    
%%Ezz%%%"t'B'B'BejjTaFa(

0G0G0G . 1H Gb z:::!!%(...!((/ &  BB:BB1B
FFFr    c
                b   V P                  V4      pV	'       dy   R V	9   dM   ^ pVP                  '       g9   VP                  '       g   \        VRV,          4       \        pMVP                  pRV	9   d   V P
                  '       g   \        VR4       V'       Ed   V P                  '       d   \        VR4       V P                  '       g>   \        V P                  4      P                  V4      '       d   \        VRV,          4       V'       g   TpV P                  P                  '       gW   V P                  P                  P                  '       g1   V P                  P                  P                   R8X  g   \#        V4      p\%        V\&        P(                  4      pV P+                  WW#V4      p
^V
n        V P.                  P1                  V
4       Wn        VP4                  '       dC   VR8w  d<   V P                  R,          '       d   V
P7                  4        MVP9                  V4       VP:                  '       d	   R	V n        MVP?                  V 4      '       d	   R	V n         M}VP                  '       dl   V P                  '       g   VR
8w  dS   R	V n!        VPD                  '       d3   VPF                  '       d!   VPF                  PI                  4       '       d   R	V n%        VR9  d   \        VRV,          4       VR9   dk   R	V
n&        V P                  '       g   VR
8X  d   \        VR4       VP                  '       g+   VPO                  V 4      '       g   \        VRV,          4       V
# RV
n&        V
# V\P        J d   \        p\R        PU                  WW#WEWgWR7
      p
^V
n+        ^V
n,        V
# )ztyping.ClassVarzZClassVar[] requires the type to be a Python object type. Found '%s', using object instead.zdataclasses.InitVarzIUse of cython.dataclasses.InitVar does not make sense outside a dataclasszVC attributes cannot be added in implementation part of extension type defined in a pxdz/The name '%s' is reserved for a special method.rz  r]  r  Tr   z1Attribute of extension type cannot be declared %sz9Special attribute __weakref__ cannot be exposed to Pythonz7C attribute of type '%s' cannot be accessed from PythonFrK  )rI   rz  r  r  )-r=  rL  equivalent_typer   r   r  r   re  r9  r   r  get_special_method_signaturer  r"  rp   r   r   r   r-   r
   unicode_structmember_prefixrt  r   r  r   r   r   r   r  rq  has_memoryview_attrsneeds_explicit_construction"has_explicitly_constructable_attrshas_pyobject_attrsrt  rr   r#  r!  r   can_coerce_to_pyobjectr   r   r  r   r   r  s   &&&&&&&&&& r   r  CClassScope.declare_var	  s    --d3 $66'''///  &B  EI  &I  J-#33%);;DD]D]D]cfg7|||c78 ///"4??3PPQUVVcE  ((4448H8H8N8N8R8R8R((..99XE-e4E'v/Q/QRLLdDE !E##E*'9$   Z8%;??<00++-2237&&&,0)11$77:>7!!!t'B'B'BdmF[*.',,,#zzzTZZ-@-@-B-B59D2!BBcG*TV33 (,$222t}7L#Z[(((D,G,G,M,M#X[__` L (-$L''%%%d$,1*-g & vE  EO !"ELr    c                   V\         9   d,   V P                  R 4      '       d   \        VRV,          4       M@VR 8X  d:   \          F/  pV P                  V4      '       g   K  \        VRV,          4       K1  	  VR8X  d   \        VR4       V P                  V\        VRR7      p\        V P                  4      P                  V4      pV'       d   Wen        ^Vn	        M\        Vn        ^ Vn	        V P                  P                  V4       V# )__richcmp__z$Cannot define both % and __richcmp____new__zv__new__ method of extension type will change semantics in a future version of Pyrex and Cython. Use __cinit__ instead.r]  r  )r   r  r   r  r   r   r  rE  r  r   r   r  r   )r5   rK   rM   r  rW  rp   special_sigs   &&&&   r   r  CClassScope.declare_pyfunction8
  s    **..cADHI]",##A&&#EIJ - 9# R S  ~s,4 ! 6$T__5RRSWX *O E0EO E""5)r    c                    V P                   '       g   VR 8X  d   \        R4      p\        P                  W4      pV'       dM   VP                  '       d;   V P
                  P                  '       g   V P
                  P                  '       g   R# V# )rO  	__cinit__N)r9  r   r  r  r   r  rt  r  r7  s   && r   r  CClassScope.lookup_hereS
  sk    ***ty/@ -D&&t2U---##333 ''555r    c           
        V P                  V4      p\        V P                  4      P                  V4      '       d)   V P                  P
                  '       g   \        VR 4       VP                  pVP                  '       g|   V'       g   \        VR4       MfV P                  P                  V^ ,          P                  4      '       g5   \        VRV^ ,          P                  : RV: RV P                  : R24       V P                  V4      pVf$   \        \        V4      \        P                  4      pV'       Ed   VP                   '       g&   \        VRV,          4       VP#                  4        EMV'       d&   VP$                  '       d   \        VRV,          4       VP&                  '       d!   VP(                  '       d   \        VR4       EMVP+                  VP                  ^R	7      '       dR   VP,                  VP                  P,                  8X  d-   VP                  P/                  VP0                  4      Vn
        EM:VP3                  VP                  ^R	7      '       d   VP,                  VP                  P,                  8X  d   V P4                  '       dd   V'       g\   VP7                  VP                  ^^R
7      '       g8   \9        VRV: RV P:                  : R2^4       \9        VP<                  R^4       V P?                  WW4RV	R7      pMg\        VR4       \        VP<                  R4       MDV P4                  '       d    \        VRV: RV P:                  : R24       V P?                  WW4WY4      pV'       d&   V PA                  \        PB                  V4      Vn        Wn"        Wn#        RV	9   d   RVn$        V P                  PJ                  '       g4   VPH                  '       g"   V P                  PM                  R4      '       dB   RVn        VP$                  Vn'        VPP                  '       g   VP                  Vn)        W-n
        V# )z7Special methods must be declared with 'def', not 'cdef'zC method has no self argumentzSelf argument (z) of C method 'z' does not match parent type (r  r^  z'%s' already definedz'Overriding final methods is not allowed)
as_cmethod)rV  as_pxd_definitionz'Compatible but non-identical C method 'z7' not redeclared in definition part of extension type 'z5'.  This may cause incorrect vtables to be generated.ra   r_  )r   r  z2Signature not compatible with previous declarationz
C method 'z@' not previously declared in definition part of extension type 'r  r  Tra  )*r=  r   r  rE  r  rt  r   rb  r  assignable_fromrL   r  r-   r   r
   unicode_vtabentry_prefixr   rb   r   r   r   same_c_signature_asr  r  r  ra  re  !same_c_signature_as_resolved_typer   r  rM   r  r5  r  r   rp   r   r  r[   r   rn   r   )r5   rK   rL   rM   r   r   r   r  r  r  r   r  rb  rp   s   &&&&&&&&&&&&  r   r  CClassScope.declare_cfunctionb
  s=    --d34??+HHNN((888#PQyy$$$c:;%%55d1gllCCcAw||T4+;+;= >  &=#$5d$;V=\=\]E5%%%c-45++- 0 0 0#5<=)))e.@.@.@#HI--ejjq-IIdjj\a\f\f\l\lNl!&!9!9$--!HEJ33EJJQ3OOTXT^T^bgblblbrbrTrV$($J$J %

qA %K %O %O   !%doo7 9:	;
  		+I1M ..t3RZfo.pE#ST%))%CD|||c.2DOOEF &&t3zUE#{{6+=+=tDE)
y &*E#)))U-D-D-DH[H[\cHdHd%)E"%*%5%5E"===$)JJ!!
r    c                t    V P                  V4      p\        P                  WW#WEWgR 7      p	^V	n        Wn        V	# )r&  )r  r  r  r   r   )
r5   rK   rL   rM   r   r   r  r&  r   rp   s
   &&&&&&&&  r   r  CClassScope.add_cfunction
  sD    %%d+
((5i ) V%r    c           	         \        V4      pV P                  WR VRVR7      p\        W\        4      pWn        ^Vn        ^Vn        WFn        VP                  Vn        Wen	        V# )Nr]  )rM   r   r   r   )
r   r  rG   r   r   r   r   r   rr   r   )r5   rK   rL   r   r   rp   r  s   &&&&&  r   r  %CClassScope.declare_builtin_cfunction
  sn     T"&&D(Q] ' _$n5	#'  !	 	!-++	%r    c                
   V P                  V4      pVf   T P                  YVf   \        MTVR4      pRVn        Ve   RVn        W&n        Vf   \        WR7      Vn        MWVn        V P                  P                  V4       V# )NrI   T)class_scope)
r  rt  r   r   r   r   PropertyScoperr   r  r   )r5   rK   r   rM   ctypeproperty_scoperp   s   &&&&&& r   declare_propertyCClassScope.declare_property
  s      &=LLu}^RWY\^ghE !%E	!'?EK(K$$U+r    c                    V P                  WW%R7      pVP                  P                  V\        P                  ! V\        P
                  ! RV P                  RR7      .VVV	V
R7      VVVVR7      pW3# )zPInternal convenience method to declare a C property function in one go.
        )r   re  rM   r5   Nr   )r  r  r  r  )rK   rL   r   r   r   rM   )rg  rr   r  r   r  r  r  )r5   rK   rL   
cfunc_namer   rM   r   r  r  r  r  r   property_entryr(  s   &&&&&&&&&&&&  r   declare_cpropertyCClassScope.declare_cproperty
  s    
 ..tD.R$**<<%%((1A1AtLM! / / %! = 
 **r    c                x  a V3R  lpVP                   VP                  ,           pV Fv  oV P                  SP                  V! SP                  4      SP
                  RR4      p^Vn        RVn        SP                  Vn        V P                   P                  V4       Kx  	  VP                  R,           F;  oSP
                  P                  '       g   K!  SP
                  P                  4        K=  	  VP                   EF6  oSP                  pSP                  pT;'       d    VP                  pV'       g	   V! V4      pV P                  SP                  SP
                  SP                   VSP"                  SP$                  RR7      p^Vn        SP&                  '       dW   RVn        SP(                  Vn        V P*                  VP*                  8X  g   VP(                  '       d   SP,                  Vn        V'       d   RVn        Wdn        SP0                  '       g   EK%  SP0                  Vn        EK9  	  R# )c                 F   < \         P                  : R SP                  : 2# rw  )r
   rs  r   )r   
base_entrys   &r   adapt9CClassScope.declare_inherited_c_attributes.<locals>.adapt
  s    $33Z5E5EFFr    NrI   T:NNNr^  )r  r  rt  rK   r   rL   r   r   r   r   r  rn   ro   r   r   r  rM   r   r   r   r   r   r   r   r   )	r5   
base_scoperq  r   rp   r   r  r   rp  s	   &&      @r   rl  *CClassScope.declare_inherited_c_attributes
  s   	G 22Z5K5KK!JLLz'7'7!8y2E !"E!%E)44E&&--e4 " %22155J'''BBD 6 %22J$$E"..I";;y';';Je&&*..%%%z'@'@D ' RE "#E***)-&*4*F*F'%%)@)@@///-7-H-HE*+/($-!&&&%/%<%<") 3r    c                *   < \         SV `  WW4WV4       R # r1   )superrh  )r5   rK   r   rL   rM   r   rd  r.  s   &&&&&&&r   rh  (CClassScope.handle_already_declared_name  s    ,T$Z\r    )r  r!  rI  rG  rJ  r  r  r  r  r  r  )FTr  r   r  r1   r   )NNr]  FFNFNr  ) r=   r>   r?   r@   r  r9  r  rJ  rG  rI  r!  re  rm  r6   r#  r(  r.  r6  rA  r  r  r  r  r  r  rg  rl  rl  rh  rB   rC   __classcell__r.  rE   s   @@r   r  r  l	  s     $ "# ).& %GK0"1 Q&G&Pd6BH+.,=^] ]r    r  c                   n   a a ] tR tRt o^tRtRtRR ltRR ltRR lt	R t
R tV 3R ltR	 tR
tVtV ;t# )CppClassScopei  Nc                    \         P                  WVR 4       VP                  V n        . V n        Ve;   V F2  pV P	                  WD\
        P                  ! V4      R R4      p^Vn        K4  	  R # R # )Nr]  )r   r6   r  r  rt  r   TemplatePlaceholderTyper   )r5   rK   r   r  Ttemplate_entrys   &&&&  r   r6   CppClassScope.__init__  sg    t;5%00%'" !%*<<Q?x"Q)*&  !r    c                .   V'       g   TpV P                  W:4       V P                  V4      pV	'       d   Ve   VP                  '       d   V P                  WW#V4      pMVP                  P                  V4      '       d,   VP                  P                  VP                  4      Vn        MA\        VR4       M4V P                  WW#V4      pVP                  '       d   V	'       g   ^Vn	        ^Vn
        VP                  '       d`   ^Vn        V P                  '       dG   V P                  P                  4       '       g'   V P                  P                  4       : RV: 2Vn        VR8w  d+   V	'       g   VR8w  d   V P                  P                  V4       V# )Nr  ::r  r\  )r  r  r   rt  rL   r   r  r  r   r   r   get_fused_typesempty_declaration_coder   r  r   )r5   rK   rL   rM   r   r   r   r  r  r  r   rp   s   &&&&&&&&&&& r   r  CppClassScope.declare_var)  s-    E''@  &)   T$ZH##D))"ZZ55dmmD
cSTLLdDE   %&"!"Eyyy!:!:!<!</3yy/O/O/QSX#Y 6>x48+;##E*r    c           	     d   V P                   P                  R 4      R	,          pWR39   d|   Vfx   \        P                  : RV: 2p\	        R4      p\
        P                  ! 4       Vn        VP                  Vn	        R pVP                   Uu. uF
  q! V4      NK  	  upVn        MGVR8X  dA   Vf=   \        P                  : RV: 2p\	        R4      p\
        P                  ! 4       Vn        VR
9   d   VP                  '       d   V P                  P                   Fh  pVP                  P                  V4      pV'       g   K(  VP                  P                  '       d   KF  \        VR4       \        VP                   R4       Kj  	  V P#                  WVVWER7      pV
Vn        VVn        V# u upi )r  r6   r\  c                 
   V P                   P                  '       dg   V P                   P                  '       gK   \        P                  ! V P
                  \        P                  ! V P                   4      V P                  4      # V # r1   )rL   r   is_referencer   r  rK   
c_ref_typerM   )rR  s   &r   	maybe_ref2CppClassScope.declare_cfunction.<locals>.maybe_refQ  s[    88(((1F1F1F%22*"7"7"A377L L Jr    __dealloc__<del>zdConstructor cannot be called without GIL unless all base constructors can also be called without GILzBase constructor defined here.)r  r   r   rk  r\  r  )rK   r-  r
   r  r   r   	CVoidTyper
  rb  original_argsr  rL   r  rr   r  r   rM   r  r   rp   )r5   rK   rL   rM   r   r   r   r  r  r  r   r  r  r  rR  baserp  rp   s   &&&&&&&&&&&&      r   r  CppClassScope.declare_cfunctionF  si    YY__T*2.

++&,&8&8*EE *D)335D "&D 4899=9C39=DI]"u})/););ZHE )D)335D&&4:::		..!ZZ..t4
:joo&;&;&;#   F  G*..*JK	 /   S*2', ! E *
# >s   F-c                   VP                   pTp\        VR R4      '       d   VP                  pK!  \        VRR4      '       d&   VP                   Uu. uF  qDP                  NK  	  ppMRpVP
                  VP                  ,            F  pVP                  R9   d   K  VP                  V P                  9   d   VP                   V P                  VP                  VP                  VP                  RR4      p^Vn        ^Vn        VP                  '       d   ^Vn        VP                  Vn        V P
                  P                  V4       K  	  VP                    Fi  pV P#                  VP                  VP                  VP$                  VP                  VP&                  ^ VP(                  VP*                  R7      p^Vn        Kk  	  VP,                   Ff  pVP                  V9  g   K  V P/                  VP                  VP                  VP$                  VP                  VP&                  RR7      p^Vn        Kh  	  R# u upi )	template_typeNr  r]  )r   r  r   F)r  r  r  )rr   r   r  r  rK   r  r  r   rt  r   rL   r   r   r   r   r   r  r  rM   r   r   r   r  r  )r5   r  rs  r  r~  base_templatesrp  rp   s   &&      r   r  .CppClassScope.declare_inherited_cpp_attributesj  s   %%
"m_d;;)77M=+t44.;.E.EF.Eff.ENFNN %::Z=S=SSSJ"55$,,.LL*2B2Bx1E !E!"E&&&%&"#-#8#8 &&--e4 T %22J**:??JOO+5>>:;K;K+5+@+@a5?5N5N8B8O8O	 + QE
 "#E 3 %11Jn4))*//:??*4..*:J:J*4*?*?% * Q &'" 29 Gs   H?c           
        \        V P                  V P                  4      pW#n        V P                  P                  4        EFG  pVP                  '       dP   VP                  VP                  VP                  P                  V4      VP                  VP                  ^R7       Ke  VP                  P                  '       dq   VP                  4        FZ  pVP                  VP                  VP                  P                  V4      VP                  VP                  VP                  R7       K\  	  K  VP                  VP                  VP                  P                  V4      VP                  VP                  VP                   4       EKJ  	  V# )r   )r  )r   )r{  rK   r   rL   r   r  r   r  rD  rM   r   r   rh   r  r   r  r   )r5   r  
type_entryrr   rp   r&  s   &&&   r   rD  CppClassScope.specialize  s%   dii)9)9:
\\((*E}}}""5::#(::#8#8#@#(99#(;;,-	 # /
 (((//1A++AFF,-FF,=,=f,E,-EE,-GG9:	 , I 2 !!%**"'**"7"7"?"'))"'++"'"2"2	4 +* r    c                P   < VR 8X  d   RpM	VR8X  d   Rp\         \        V `  V4      # )r6   r\  r  r  )rv  r{  r  )r5   rK   r.  s   &&r   r  CppClassScope.lookup_here  s/    :D]"D]D5d;;r    c                    R # r  r  r:   s   &r   r`  CppClassScope.is_cpp  s     r    )r  r  r1   )Nr]  FFFFN)Nr]  r   r   r   r  NF)r=   r>   r?   r@   r  default_constructorrL   r6   r  r  r  rD  r  r`  rB   rC   rx  ry  s   @@r   r{  r{    sB      D+:"H''R4< r    r{  c                   0   a  ] tR tRt o R tRR ltRtV tR# )CppScopedEnumScopei  c                4    \         P                  WVR 4       R # r1   r  r  s   &&&r   r6   CppScopedEnumScope.__init__  s    t;5r    Nc                p    V'       g   TpV P                  W64       V P                  WW#V4      pR Vn        V# r  )r  rt  r   )r5   rK   rL   rM   r   r   r   rp   s   &&&&&&& r   r  CppScopedEnumScope.declare_var  s9     E''@T$Z@ r    r  )Nr]  N)r=   r>   r?   r@   r6   r  rB   rC   rD   s   @r   r  r    s     6 r    r  c                   :   a  ] tR tRt o ^tR tR tRR ltRtV t	R# )rd  i  c                    VP                   '       d   VP                  4       MR p\        P                  WW2R7       VP                  V n        VP
                  V n        R # )Nr2  )r   r@  r   r6   r  r  )r5   rK   rc  r   s   &&& r   r6   PropertyScope.__init__  sI    4?4K4K4Kk..0QUt;I&22%00r    c                   VP                   P                  '       d   \        VR4       VP                  '       dS   VP                  ^ ,          P                  \
        J d.   V P                  P                  VP                  ^ ,          n        M\        VP                  4      ^8w  d   \        VR4       MnVP                  ^ ,          P                  P                  '       gB   VP                  ^ ,          P                  V P                  P                  J g   \        VR4       \        P                  ! WW#.VO5/ VB pRVn        V# )z'Declare a C property function.
        z&C property method cannot return 'void'z4C property method must have a single (self) argumentz6C property method must have a single (object) argumentT)r
  r  r   rb  rL   r   r   r  r   rL  r   r  r   )r5   rK   rL   rM   rb  kwargsrp   s   &&&&*, r   r  PropertyScope.declare_cfunction  s     ####?@9991**n< $ 1 1 = =DIIaL^q #MN))A,##///499Q<3D3DHYHYHeHe3e#OP''DOOO!r    c                    \        V4      pV'       d(   V P                  W\        VR 4      p^Vn        WEn        V# \        VR4       R# )rI   zKOnly __get__, __set__ and __del__ methods allowed in a property declarationN)r   rt  r   r   r  r   )r5   rK   rM   r  r  rp   s   &&&&  r   r   PropertyScope.declare_pyfunction  sG    3D9	LL^S)LE E'OL# , -r    )r  r  Nr   )
r=   r>   r?   r@   r  r6   r  r  rB   rC   rD   s   @r   rd  rd    s!      1$ r    rd  c                   0   a  ] tR tRt o RR ltR tRtV tR# )CConstOrVolatileScopei  c                    \         P                  V R VP                  ,           VP                  VP                  4       Wn        W n        W0n        R# )cv_N)r   r6   rK   r   r   base_type_scoper   is_volatile)r5   r  r   r  s   &&&&r   r6   CConstOrVolatileScope.__init__  sD    O(((''((		*
  / &r    c                    V P                   P                  V4      pVeT   \        P                  ! V4      p\        P                  ! VP
                  V P                  V P                  4      Vn        V# R # r1   )r  r  rc  r   c_const_or_volatile_typerL   r   r  r7  s   && r   r  !CConstOrVolatileScope.lookup_here  s^    $$006IIe$E#<<JJt/?/?AEJL	 r    )r  r   r  N)r   r   )r=   r>   r?   r@   r6   r  rB   rC   rD   s   @r   r  r    s     ' r    r  c                   &   a  ] tR tRt o R tRtV tR# )TemplateScopei  c                V    \         P                  WVR 4       VP                  V n        R # r1   )r   r6   r  r  s   &&&r   r6   TemplateScope.__init__  s    t;5%00r    )r  N)r=   r>   r?   r@   r6   rB   rC   rD   s   @r   r  r    s     1 1r    r  r1   )2rn  rc  rR  mathUtilsr   Errorsr   r   r   r   StringEncodingr   rH   r	   r
   r   r   r   	TypeSlotsr   r   r   r   r   r   r   r   r-   r/   rG   r   r   r  r  const_counterr  rm  r  r  r  r  r  r  r  r{  r  rd  r  r  r  r    r   <module>r     sX   
    . C C )   85 5  *0 0s^ s^l!1 !1HM M`U _5 _D e
0% e
0Pj2 j2ZD DN1: 10| "'D 'DT+ +\.8: .8bi]* i]V`E `F ",E ,^E *1E 1r    