+
    :ioS                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHtHtHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIH t   ! R R]PB                  4      t" ! R R]PB                  4      t#]PH                  ! ]PJ                  ]"4       ]PH                  ! ]PL                  ]#4       ]PH                  ! ]PN                  ]PP                  4       R t)Rt*R t+] ! R R],4      4       t-R t.R t/R t0R t1 ! R R]Pd                  4      t3R t4 ! R R]54      t6]Pn                   ! R R ]Pp                  4      4       t9]6Pt                  Pw                  ]PJ                  4      R! 4       t<]6Pt                  P{                  ]PJ                  4      R" 4       t>R# t?]6Pt                  P                  ]PN                  ]P                  ! ]P                  4      4      R$ 4       tCR# )%    N)OrderedDict)Sequence)ir)njit)cgutilserrorsimputilstypesutils)default_managermodels)
cpu_target)	templates)as_numba_type)disable_pickling)_boxc                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )InstanceModelc                  < \         P                  ! V4      p\         P                  ! R \        V4      ,           4      pR\         P                  ! V4      3R\         P
                  ! V4      3.p\        \        V `#  WV4       R# )zOpaque.meminfodataN)	r
   ClassDataTypeOpaquestrMemInfoPointerCPointersuperr   __init__)selfdmmfe_typcls_data_tydtypemembers	__class__s   &&&   ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/experimental/jitclass/base.pyr   InstanceModel.__init__   sk    ))&1
 Y[)99:,,U34U^^K01
 	mT+CA     __name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classcell__r%   __classdict__s   @@r&   r   r      s     B Br(   r   c                   2   a a ] tR t^%t oV 3R ltRtVtV ;t# )InstanceDataModelc                   < VP                   pVP                  P                  4        UUu. uF  w  rE\        V4      V3NK  	  ppp\        \
        V `  WV4       R # u uppi N)
class_typestructitems_mangle_attrr   r5   r   )r   r    r!   clstykvr$   r%   s   &&&    r&   r   InstanceDataModel.__init__&   sT    !!49LL4F4F4HI4HDALOQ'4HI/WE Js   Ar)   r*   r2   s   @@r&   r5   r5   %   s     F Fr(   r5   c                    RV ,           # )zN
Mangle attributes.
The resulting name does not startswith an underscore '_'.
m_r)   )names   &r&   r;   r;   1   s    
 $;r(   z3
def ctor({args}):
    return __numba_cls_({args})
c                    V P                   p. pVP                  4        Fk  w  r4VP                  VP                  ,          VP                  8X  d   VP	                  V4       KD  RVP                  ,          p\
        P                  ! V4      h	  V# )zA
Returns list of positional and keyword argument names in order.
z(%s argument type unsupported in jitclass)
parametersr:   kindPOSITIONAL_OR_KEYWORDappendr   UnsupportedError)fn_sigparamsargsr=   r>   msgs   &     r&   _getargsrM   B   st     FDFFQ,,,1H1HHKKN<qvvEC))#..  Kr(   c                   <   a  ] tR t^Qt o RtR tR tR tR tRt	V t
R# )JitClassTypez
The type of any jitclass.
c                    \        V4      ^8w  d   \        R4      hVw  p\        V\        4      '       d   \        R4      hRV9   g   Q R4       h\        P                  WW#4      pVP                  4        V# )   z must have exactly one base classzcannot subclass from a jitclassr8   zmissing "class_type" attr)len	TypeError
isinstancerO   type__new__	_set_init)clsrB   basesdctbaseoutclss   &&&&  r&   rV   JitClassType.__new__V   sn    u:?>??dL))=>>s"?$??"c4r(   c                J   V P                   P                  P                  R,          p\        P                  ! V4      p\        V4      R,          pW n        \        P                  RP                  V4      R7      pRV /p\        WE4       VR,          p\        V4      V n        R# )zz
Generate a wrapper for calling the constructor from pure Python.
Note the wrapper will only accept positional arguments.
r   rQ   NN, rK   __numba_cls_ctorN)r8   instance_typemethodsr   pysignaturerM   	_ctor_sig_ctor_templateformatjoinexecr   _ctor)rX   initinit_sigrK   ctor_sourceglblsrc   s   &      r&   rW   JitClassType._set_inita   s    
 ~~++33J?$$T* !"% $++4+A%[ V}J	r(   c                    \        V\        P                  4      '       d#   VP                  P                  V P                  J # R # )F)rT   r   Box_numba_type_r8   )rX   instances   &&r&   __instancecheck__JitClassType.__instancecheck__r   s1    h))((33s~~EEr(   c                    V P                   P                  ! R .VO5/ VB pVP                  4        V P                  ! VP                  R,          / VP
                  B # )Nr_   )rg   bindapply_defaultsrl   rK   kwargs)rX   rK   r{   ry   s   &*, r&   __call__JitClassType.__call__w   sN     }}!!$888yy$))B-74;;77r(   r)   N)r+   r,   r-   r.   __doc__rV   rW   rv   r|   r/   r0   r3   s   @r&   rO   rO   Q   s#     	"
8 8r(   rO   c                     V P                  4        FY  w  r\        V\        4      '       g   \        R V: 24      h\        V\        P
                  4      '       d   KL  \        RV: 24      h	  R# )z!spec keys should be strings, got z0spec values should be Numba type instances, got N)r:   rT   r   rS   r
   Type)specr=   r>   s   &  r&   _validate_specr      sU    

!S!!QHII!UZZ(( # $ $	 r(   c                    \        4       pVP                  4        FG  w  r4VP                  R4      '       d(   VP                  R4      '       g   RV ,           V,           pWBV&   KI  	  V# )z:
Apply the same changes to dunder names as CPython would.
___)r   r:   
startswithendswith)clsnamer   outr=   r>   s   &&   r&   _fix_up_private_attrr      sV     -C

<<ajj&6&6g!AA  Jr(   c                V    \        VRR4      pV'       d   V P                  V4       R# R# )z;
Add the required libs for the callable to allow inlining.
libsNr)   )getattradd_linking_libs)contextcallr   s   && r&   _add_linking_libsr      s(     4$D  & r(   c                   Vf   \        4       pM!\        V\        4      '       d   \        V4      p\        P                  ! V 4      P                  4        F  w  rEWA9  g   K  \        V4      W&   K  	  \        V4       \        V P                  V4      p/ p\        \        P                  ! V 4      4       F  pVP                  VP                  4       K   	  / / / / 3w  rrVP                  4        Fg  w  r\        V\        P                   4      '       d   WV&   K+  \        V\"        4      '       d   WV&   KG  \        V\$        4      '       d   WV&   Kc  WV&   Ki  	  \'        V4      \'        V	4      ,          \'        V
4      ,          \'        V4      ,          pV'       d*   \)        RP+                  RP-                  V4      4      4      hVP/                  RR4      p\1        V4       V'       d<   RpRP-                  VP3                  4       4      p\5        VP+                  V4      4      hV	P                  4        F-  w  rVP6                  f   K  \5        RP+                  V4      4      h	  VP                  4        UUu/ uF  w  rV\9        V4      bK  	  ppp/ pV	P                  4        F`  w  r/ pVP:                  '       d   \9        VP:                  4      VR&   VP<                  '       d   \9        VP<                  4      VR&   VVV&   Kb  	  V
P                  4        UUu/ uF  w  rV\9        VP>                  4      bK  	  pppV! V \@        VVVV4      p\C        VVR	7      pVP                  V4       \E        V P                  V 3V4      p \F        PH                  pVPK                  V V4       \F        PL                  pV! VVV4      PO                  4        \        PN                  ! V VPP                  4       V # u uppi u uppi )
a  
Internal function to create a jitclass.

Args
----
cls: the original class object (used as the prototype)
spec: the structural specification contains the field types.
class_ctor: the numba type to represent the jitclass
builder: the internal jitclass builder
zname shadowing: {0}r`   r~    z(class members are not yet supported: {0}zdeleter is not supported: {0}getset)r8   r~   ))r   rT   r   ptget_type_hintsr:   r   r   r   r+   reversedinspectgetmroupdate__dict__pytypesFunctionTypepropertystaticmethodr   	NameErrorri   rj   pop_drop_ignored_attrskeysrS   fdelr   fgetfset__func__ConstructorTemplatedictrO   r   typing_contextinsert_globaltarget_contextregisterrd   )rX   r   
class_ctorbuilderattrpy_typeclsdctbaseclsre   propsstatic_methodsothersr=   r>   shadowed	docstringrL   r$   jit_methods	jit_propsrZ   jit_static_methodsr8   jit_class_dct	typingctx	targetctxs   &&&&                      r&   register_class_typer      sK    |}	D(	#	#4  **3/557&w/DJ 8 4  d3D FGNN3/0g&&' 1 .0R^*GNa--..AJ8$$!H<(( !11I  Gs5z)C,??3t9LH-44TYYx5HIJJ

9b)I8))FKKM*

7+,,66;BB1EFF  +2--/:/$!1d1g:/K:I666affCJ666affCJ	!  )7(<(<(>@(>4

(>  @ J J	BM+,
s||cV]
;C ))IC, ))IJ	9-6683
 8 89JI ;@s   ;O6!O<c                   *   a  ] tR tRt o RtR tRtV tR# )r   i  z0
Base class for jitclass constructor templates.
c                   V P                   P                  pVP                  R ,          pVP                  4       3V,           p\        P
                  ! V4      pVP                  V P                  WR4      p\        VP                  \        P                  4      '       g%   \        P                  ! RVP                   R24      h\        P                  ! V.VP                  R,          O5!  pV# )r   z$__init__() should return None, not ''r_   )keyrd   r   get_reference_typer
   
Dispatcherget_call_typer   rT   return_typeNoneTyper   NumbaTypeErrorr   	signaturerK   )	r   rK   kwsrd   rc   	boundargs	disp_typesigr   s	   &&&      r&   genericConstructorTemplate.generic  s    ..((4"5579D@	$$T*	%%dllIC#//5>>::''6s6GqIK K !!-?#((2,?
r(   r)   N)r+   r,   r-   r.   r~   r   r/   r0   r   s   @r&   r   r     s      r(   r   c                 8   \        . RO4      p\        P                  R9   d   V\        RR.4      ,          pR F  pW 9   g   K  VP                  V4       K  	  V P	                  4        Fp  w  r4\        V\        P                  \        P                  34      '       d   VP                  V4       KH  \        VRR4      \        J g   K_  VP                  V4       Kr  	  RV 9   d   V R,          f   VP                  R4       V F  pV P                  V4       K  	  R# )	__weakref__r.   r/   __objclass__N__hash__)r   r,   r   ))      )r      )__annotations____annotate_func____annotations_cache__)r   r   	PYVERSIONaddr:   rT   r   BuiltinFunctionTypeBuiltinMethodTyper   objectr   )rZ   dropattr=   r>   s   &    r&   r   r     s      D ,,&(?@AA) :HHSM	) 		a'55!335 6 6HHQKQ-7HHQK  SS_4
 r(   c                   n   a  ] tR tRt o Rt]P                  ! R4      t]! 4       t	R t
R tR tR tRtV tR	# )
ClassBuilderi8  z
A jitclass builder for a mutable jitclass.  This will register
typing and implementation hooks to the given typing and target contexts.
zjitclass builderc                *    Wn         W n        W0n        R # r7   )r8   r   r   )r   r8   r   r   s   &&&&r&   r   ClassBuilder.__init__@  s    $""r(   c                    V P                  V P                  V P                  P                  4       V P                  P                  V P                  4       R# )z'
Register to the frontend and backend.
N)_register_methodsclass_impl_registryr8   rd   r   install_registry)r   s   &r&   r   ClassBuilder.registerE  sA    
 	t77#<<	> 	''(@(@Ar(   c                    \        VP                  4      \        VP                  4      ,           pV FA  pW@P                  9  g   K  V P	                  W4       V P                  P                  V4       KC  	  R# )z
Register method implementations.
This simply registers that the method names are valid methods.  Inside
of imp() below we retrieve the actual method to run from the type of
the receiver argument (i.e. self).
N)listr   r   implemented_methods_implement_methodr   )r   registryrd   to_registermeths   &&&  r&   r   ClassBuilder._register_methodsP  sa     =4451123D
 333&&x6((,,T2  r(   c                "  aa V3R  loV3R lpSP                  R4      pVR9   d   V! V4       R# VP                  \        P                  S3\        P                  \        P                  ! \        P
                  4      4      ! S! 4       4       R# )c                     < V3R  lp V # )c                   < VP                   ^ ,          pS	VP                  9   d   VP                  S	,          pMPS	VP                  9   d@   VP                  S	,          pVP                  VP                   R,          R7      pVR,          p\        P
                  ! X4      pV P                  Wb4      pV! W4      p\        W4       \        P                  ! WVP                  V4      # )r   r_   ra   )rK   r   r   replacer
   r   get_functionr   r	   impl_ret_new_refr   )
r   r   r   rK   rd   methodr   r   r   r   s
   &&&&     r&   imp<ClassBuilder._implement_method.<locals>.get_imp.<locals>.impe  s     #=444*66t<F]===*==dCF ++388B<+8C8D!,,V4	++I;7)!'00014#G Gr(   r)   )r   r   s    r&   get_imp/ClassBuilder._implement_method.<locals>.get_impd  s    G$ Jr(   c                   <a R V ,          o\        \        V 4      p\        P                  ! V4       ! V3R lR\        P                  4      4       p\
        P                  ! \        P                  S3\        P                  \        P                  ! \        P                  4      4      ! S! 4       4       \
        P                  ! V\        P                  \        P                  ! \        P                  4      4      ! S! 4       4       R# )z__%s__c                   .   <a  ] tR tRt o V3R ltRtV tR# )KClassBuilder._implement_method.<locals>._getsetitem_gen.<locals>.GetSetItemi}  c                  < V^ ,          p\        V\        P                  4      '       d[   SVP                  9   dH   VP                  S,          p\        P                  ! V4      pVP                  V P                  W4      pV# R# R# )r   N)rT   r
   ClassInstanceTyper   r   r   r   )r   rK   r   ru   r   r   r   _dunder_meths   &&&    r&   r   SClassBuilder._implement_method.<locals>._getsetitem_gen.<locals>.GetSetItem.generic  st    #AwH!(E,C,CDD(H,@,@@'33LA$)$4$4T$:	'55dllDN"
	 A Er(   r)   N)r+   r,   r-   r.   r   r/   r0   )r3   r  s   @r&   
GetSetItemr  }  s     # #r(   r  N)r   operatorr   infer_globalAbstractTemplater	   lower_builtinr
   r  VarArgAny)getsetopr  r  r   s   &  @r&   _getsetitem_gen7ClassBuilder._implement_method.<locals>._getsetitem_geny  s    #f,L6*B##B'#Y77 # (# ""E$;$;\#J#(#:#:#(<<		#:<<CIG ""2#(#:#:#(<<		#:<<CIGr(   r   N)getitemsetitem)striplowerr
   r  r  r  )r   r   r   r  dunder_strippedr   s   &&f  @r&   r   ClassBuilder._implement_methodb  sj    	*	G0 **S/44O,NNE33T: 22 <<		244;I?r(   )r8   r   r   N)r+   r,   r-   r.   r~   r	   Registryr   r   r   r   r   r   r   r/   r0   r   s   @r&   r   r   8  s@      #++,>?%#
	B3$5? 5?r(   r   c                   >   a  ] tR tRt o ]P
                  tR tRtV t	R# )ClassAttributei  c                  a aaa	 SSP                   9   d   SP                   S,          # SSP                  9   d`   SP                  S,          p\        P                  ! V4      o	 ! VV	VV 3R  lR\        P
                  4      p\        P                  ! VS4      # SSP                  9   d`   SP                  S,          p\        P                  ! V4      o	 ! VV	VV 3R lR\        P
                  4      p\        P                  ! VS4      # SSP                  9   d]   SP                  S,          pVR,          p\        P                  ! V4      o	S	P                  S P                  S3/ 4      pVP                  # R# )c                   P   <a  ] tR tRt o  ZP                   Z3tVV3R ltRtV tR# )6ClassAttribute.generic_resolve.<locals>.MethodTemplatei  c                   < S3\        V4      ,           pSP                  V P                  W4      pVP                  4       # r7   )tupler   r   	as_methodr   rK   r   r   r   ru   s   &&& r&   r   >ClassAttribute.generic_resolve.<locals>.MethodTemplate.generic  s5    $;t4D#11$,,JC==?*r(   r)   Nr+   r,   r-   r.   r   r   r/   r0   r3   r   r   ru   r   s   @r&   MethodTemplater    s     xx&+ +r(   r%  c                   P   <a  ] tR tRt o  ZP                   Z3tVV3R ltRtV tR# )<ClassAttribute.generic_resolve.<locals>.StaticMethodTemplatei  c                `   < SP                  V P                  W4      pVP                  SR 7      # ))recvr)r   r   r   r!  s   &&& r&   r   DClassAttribute.generic_resolve.<locals>.StaticMethodTemplate.generic  s.     $11$,,JC
 ;;X;66r(   r)   Nr#  r$  s   @r&   StaticMethodTemplater'    s     xx&7 7r(   r+  r   N)r9   r   r
   r   r   r
  BoundFunctionr   r   r   r   r   )
r   ru   r   r   r%  r+  impdctgetterr   r   s
   fff      @r&   generic_resolveClassAttribute.generic_resolve  s3   8??"??4((X)))''-D((.I+ +!;!; + &&~x@@X000..t4D((.I7 7y'A'A 7 &&';XFFX'''''-FE]F((0I))$,,RHC??" (r(   r)   N)
r+   r,   r-   r.   r
   r  r   r/  r/   r0   r   s   @r&   r  r    s     

!
!C.# .#r(   r  c                   WBP                   9   d}   V P                  WVR7      pVP                  pV P                  WP	                  4       VR7      p\
        P                  ! WVP                   V,          \        V\        V4      4      4      # WBP                  9   d   VP                  V,          R,          p\        P                  ! RV4      p	\        P                  ! V4      p
V
P                  V P                  V./ 4      p	V P!                  W4      pV! W.4      p\#        W4       \
        P$                  ! WV	P&                  V4      # \)        RP+                  V4      4      h)z,
Generic getattr() for @jitclass instances.
valuerefr   Nattribute {0!r} not implemented)r9   make_helperr   make_data_helperget_data_typer	   impl_ret_borrowedr   r;   r   r   r   r
   r   r   r   r   r   r   r   NotImplementedErrorri   )r   r   typr3  r   instdata_pointerr   r.  r   
dispatcherr   r   s   &&&&&        r&   get_attr_implr@    s2   
 zz""7u"=yy''1B1B1D,8 ( :))'*-**T*:*1$T8J*KM 	M 
	t$U+!!$,%%f-
&&w'='=ubI##J47G$'(((3??CPP
?FFtL
MMr(   c                   VP                   w  rVVw  rxWEP                  9   d   V P                  WVR7      p	V	P                  p
V P	                  WP                  4       V
R7      pVP                  V,          p\        V\        V4      4      p\        V\        V4      V4       V P                  P                  WV4       V P                  P                  WV4       R# WEP                  9   dx   VP                  V,          R,          p\        P                  ! V4      pVP                  V P                   WV3/ 4      pV P#                  W4      pV! WV34       \%        V V4       R# \'        RP)                  V4      4      h)z,
Generic setattr() for @jitclass instances.
r2  r4  r   r6  N)rK   r9   r7  r   r8  r9  r   r;   setattrnrtincrefdecrefr   r
   r   r   r   r   r   r;  ri   )r   r   r   rK   r   r<  valtytargetvalr=  data_ptrr   	attr_typeoldvaluesetterr   r   s   &&&&&            r&   set_attr_implrM    sL   
 JCKFzz""7v">99''1B1B1D,4 ( 6 JJt$	4d!34 	l4(#.7s3 	7x8		t$U+$$V,	%%g&<&<'*lB8##I3Wsm$'4(!-44T:< 	<r(   c                    V P                  \        P                  4      pV P                  \        P                  4      p\        P
                  ! \        P                  ! 4       W4V.4      pR P                  VP                  4      p\        P                  ! WV4      pVP                  '       d   \        P                  ! VP                  4       4      pVP                  4       p	V P                  V	4      p
VP                  VP                   ^ ,          V
P#                  4       4      pV P%                  WVR7      pV P&                  P)                  WVP+                  4       4       VP-                  4        V# )z	_Dtor.{0}r4  )get_value_typer
   voidptruintpllvmirr   VoidTyperi   rB   r   get_or_insert_functionis_declaration	IRBuilderappend_basic_blockr9  bitcastrK   
as_pointerr7  rC  rE  	_getvalueret_void)r   modulerd   	llvoidptrllsize
dtor_ftypefnamedtor_fnr   alloc_fe_type
alloc_typeptrr   s   &&&          r&   imp_dtorre    s   &&u}}5I##EKK0F$$V__%6&/%CEJ }112E,,VGG""7#=#=#?@%335++M:
oogll1oz/D/D/FG""7s"C74>>3CDNr(   c           	        VP                   pV P                  VP                  4       4      pV P                  V4      pV P                  P	                  VV P                  \        P                  V4      \        WP                  V4      4      pV P                  P                  W4      pVP                  VVP                  4       4      pVP                  \        P                  ! V4      V4       V P!                  W4      p	Wyn        Wn        VP                   3VP&                  ,           p
VP(                  R,          p\        P*                  ! V4      pV P-                  V\        P.                  ! V
!  4      p\1        W4       V	P3                  4       .\5        V4      ,           pV! W4       V	P3                  4       p\6        P8                  ! WWO4      # )z/
Generic constructor (__new__) for jitclasses.
r   )r   r9  get_abi_sizeofrC  meminfo_alloc_dtorget_constantr
   rQ  re  r\  meminfo_datarX  rY  storer   get_null_valuer7  r   r   rK   r   r   r   voidr   rZ  r   r	   r   )r   r   r   rK   inst_typrc  
alloc_sizer   r>  inst_structrn   rm   r   r   realargsrets   &&&&            r&   	ctor_implrs  ,  s|    H&&x'='='?@J''
3Jkk,,U[[*5..(3G
 ;;++G=L??<#-#8#8#:<L MM'((4  %%g8K!# !CHH,H
+D  &I	5::x+@ADg$%%'(4:5H 


!C$$WxEEr(   )Dr   r  r
   r   typingr   collectionsr   collections.abcr   llvmliter   rR  numbar   
numba.corer   r   r	   r   numba.core.datamodelr   r   numba.core.registryr   numba.core.typingr   numba.core.typing.asnumbatyper   numba.core.serializer   numba.experimental.jitclassr   StructModelr   r5   r   r  r   	ClassTypeOpaqueModelr;   rh   rM   rU   rO   r   r   r   r   r
  r   r   r   r   infer_getattrAttributeTemplater  r   lower_getattr_genericr@  lower_setattr_genericrM  re  r  r  r  rs  r)   r(   r&   <module>r     s       # $ !  > > 8 * ' 7 1 ,BF&& BF** F   00- @   ,,.? @   &*<*< = *84 *8 *8`$	'_D)44 ,@_?6 _?D 1#Y00 1# 1#h !!778O8OPN QN6 !!778O8OP$< Q$<N2 !!''(-UYY(?A(FA(Fr(   