+
    ‹°³j  ã                   óê  € R t ^ RIHt ^ RIHt  ! R R]4      t]! 4       t]P                  t]P                  t	^ RI
HtHt R tR tR tRR
 lt]! RR4      P#                  4       t]! RR4      t]P#                  4       R8X  d   R	tM	 ]! ]4      t]R8X  d   ]tM/]R8X  d
   ]! ]4      tM]R8X  d
   ]! ]4      tM]! R],          4      hR tR R ltR	#   ] d    ]! RR],          ,           4      hi ; i)zCaching facility for SymPy )Úimport_module)ÚCallablec                   ó0   a € ] tR t^t o RtR tR tRtV tR# )Ú_cachezList of cached functions c                óÔ   € V  Fa  pVP                   pTp\        VR4      '       d2   \        VR4      '       d   VP                  4       pMVP                  pKC  Rp\	        W$4       Kc  	  R# )zprint cache infoÚ__wrapped__Ú
cache_infoN)Ú__name__Úhasattrr   r   Úprint)ÚselfÚitemÚnameÚmyfuncÚinfos   &    ÚQ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/core/cache.pyÚprint_cacheÚ_cache.print_cache   s_   € ó ˆDØ—=‘=ˆDØˆFÜ˜& -×0Ò0Ü˜6 <×0Ò0Ø!×,Ñ,Ó.�DØà#×/Ñ/’Fà�ä�$Öó ó    c                ó¤   € V  FI  pTp\        VR4      '       g   K  \        VR4      '       d   VP                  4        K=  VP                  pKF  	  R# )zclear cache contentr   Úcache_clearN)r
   r   r   )r   r   r   s   &  r   Úclear_cacheÚ_cache.clear_cache   sE   € ãˆDØˆFÜ˜& -×0Ô0Ü˜6 =×1Ò1Ø×&Ñ&Ô(Ùà#×/Ñ/’Fó r   © N)	r	   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s   ø‡ € Ù$ò÷"	0ð 	0r   r   )Ú	lru_cacheÚwrapsc                ó   a € V 3R lpV# )a•  caching decorator.

important: the result of cached function must be *immutable*


Examples
========

>>> from sympy import cacheit
>>> @cacheit
... def f(a, b):
...    return a+b

>>> @cacheit
... def f(a, b): # noqa: F811
...    return [a, b] # <-- WRONG, returns mutable object

to force cacheit to check returned results mutability and consistency,
set environment variable SYMPY_USE_CACHE to 'debug'
c                 óÊ   <a a€ \        SR R7      ! S 4      o\        S 4      VV 3R l4       pSP                  Vn        SP                  Vn        \        P                  V4       V# )T)Útypedc                  óÒ   <€  S! V / VB pV#   \          dO   pTP                  '       d)   TP                  ^ ,          P                  R4      '       g   h S! T / TB p Rp?T# Rp?ii ; i)é    zunhashable type:N)Ú	TypeErrorÚargsÚ
startswith)r)   ÚkwargsÚretvalÚeÚcfuncÚfuncs   *,  €€r   ÚwrapperÚ0__cacheit.<locals>.func_wrapper.<locals>.wrapperE   si   ø€ ð/Ù Ð/¨Ñ/�ð
 ˆMøô	 ô /Ø—v—v�v Q§V¡V¨A¥Y×%9Ñ%9Ð:L×%MÒ%MØÙ˜tÐ. vÑ.”ØˆMûð	/ús   ƒ �A&˜9A!Á	A!Á!A&)r!   r"   r   r   ÚCACHEÚappend©r/   r0   r.   Úmaxsizes   f @€r   Úfunc_wrapperÚ__cacheit.<locals>.func_wrapperB   sY   ú€ Ü˜'¨Õ.¨tÓ4ˆä	ˆt‹õ	ó 
ð	ð #×-Ñ-ˆÔØ#×/Ñ/ˆÔä�‰�WÔØˆr   r   ©r5   r6   s   f r   Ú	__cacheitr9   -   s   ø€ õ*ð& Ðr   c                 ó   € V # ©Nr   )r/   s   &r   Ú__cacheit_nocacher<   Y   s   € Ø€Kr   c                ó   a € V 3R lpV# )z)cacheit + code to check cache consistencyc                 óX   <a a€ \        S4      ! S 4      o\        S 4      VV 3R  l4       pV# )c                  óv   <€ S! V / VB pS! V / VB p\        V4      \        V4      3 W#8w  d   \        R 4      hV# )z Returned values are not the same)ÚhashÚRuntimeError)r)   Úkw_argsÚr1Úr2r.   r/   s   *,  €€r   r0   Ú6__cacheit_debug.<locals>.func_wrapper.<locals>.wrapperb   sM   ø€ ñ �tÐ'˜wÑ'ˆBÙ˜Ð( Ñ(ˆBô �‹H”d˜2“hÑð ŒxÜ"Ð#EÓFÐFØˆIr   )r9   r"   r4   s   f @€r   r6   Ú%__cacheit_debug.<locals>.func_wrapper_   s/   ú€ Ü˜'Ô" 4Ó(ˆä	ˆt‹õ	ó 
ð	ð( ˆr   r   r8   s   f r   Ú__cacheit_debugrG   ]   s   ø€ õð2 Ðr   Nc                 ó   € ^ RI Hp V! W4      # )r'   )Úgetenv)ÚosrI   )ÚkeyÚdefaultrI   s   && r   Ú_getenvrM   {   s   € ÝÙ�#ÓÐr   ÚSYMPY_USE_CACHEÚyesÚSYMPY_CACHE_SIZEÚ1000Únonez2SYMPY_CACHE_SIZE must be a valid integer or None. zGot: %sÚnoÚdebugz*unrecognized value for SYMPY_USE_CACHE: %sc                óh   a aa€ RS P                   ,           o\        4       oVVV 3R lp\        V4      # )z"Decorator to cache property methodÚ__c                 óX   <€ \        V SS4      pVSJ d   S! V 4      p\        V SV4       V# r;   )ÚgetattrÚsetattr)r   ÚvalÚ_cached_property_sentinelÚattrnamer/   s   & €€€r   ÚpropfuncÚ!cached_property.<locals>.propfuncŸ   s5   ø€ Ü�d˜HÐ&?Ó@ˆØÐ+Ó+Ù�t“*ˆCÜ�D˜( CÔ(Øˆ
r   )r	   ÚobjectÚproperty)r/   r]   r[   r\   s   f @@r   Úcached_propertyra   ›   s+   ú€ à�d—m‘mÕ#€HÜ &£Ð÷ô �HÓÐr   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )é   Úmoduler   Úreturn)Ústrr   )Úformats   "r   Ú__annotate__rh   ¨   s!   € ÷ *ñ *œ3ð *¤sð *¬xñ *r   c                óx   a aaa€ RoVV V3R lo ! VV V3R lR\         4      p ! VVV V3R lRVR7      pV! 4       # )z�Create a lazy proxy for a function in a module.

The module containing the function is not imported until the function is used.

Nc                  ó:   <€ S f   \        \        S4      S4      o S # r;   ©rX   r   )r/   rd   r   s   €€€r   Ú_get_functionÚ$lazy_function.<locals>._get_function°   s   ø€ àŠ<Üœ=¨Ó0°$Ó7ˆDØˆr   c                   ó<   <a € ] tR t^·t o ]VVV3R l4       tRtV tR# )Ú'lazy_function.<locals>.LazyFunctionMetac                óx   <€ S! 4       P                   pVR V P                  P                   RS RS R2,          pV# ©z

Note: this is a z wrapper of 'Ú.Ú'©r   Ú	__class__r	   ©r   Ú	docstringrl   rd   r   s   & €€€r   r   Ú/lazy_function.<locals>.LazyFunctionMeta.__doc__¸   óG   ø€ á%›×/Ñ/ˆIØÐ/°·±×0GÑ0GÐ/HÈÐV\ÐU]Ð]^Ð_cÐ^dÐdeÐfÕfˆIØÐr   r   N)r	   r   r   r   r`   r   r   r   )r    rl   rd   r   s   @€€€r   ÚLazyFunctionMetaro   ·   s   ù‡ € Ø	ö	ó 
ö	r   rz   c                   ón   <a a€ ] tR t^¾t oVVV3R lt]VVV3R l4       tV3R ltV VV3R ltRt	Vt
V ;t# )Ú#lazy_function.<locals>.LazyFunctionc                óF   <€ Sf   \        \        S4      S4      oS! V/ VB # r;   rk   )r   r)   r+   r/   rd   r   s   &*,€€€r   Ú__call__Ú,lazy_function.<locals>.LazyFunction.__call__¿   s+   ø€ ð Š|Üœ}¨VÓ4°dÓ;�Ù˜Ð( Ñ(Ð(r   c                óx   <€ S! 4       P                   pVR V P                  P                   RS RS R2,          pV# rq   rt   rv   s   & €€€r   r   Ú+lazy_function.<locals>.LazyFunction.__doc__Æ   ry   r   c                ó.   <€ S! 4       P                  4       # r;   )Ú__str__)r   rl   s   &€r   rƒ   Ú+lazy_function.<locals>.LazyFunction.__str__Ì   s   ø€ Ù “?×*Ñ*Ó,Ð,r   c           	     óJ   <€ R SP                    R\        V 4      R RS RS R2	# )Ú<z object at 0xÚxz>: wrapping 'rr   rs   )r	   Úid)r   ru   rd   r   s   &€€€r   Ú__repr__Ú,lazy_function.<locals>.LazyFunction.__repr__Ï   s7   ø€ Ø�y×)Ñ)Ð*¨-¼¸4»À°|À=ÐQWÐPXÐXYÐZ^ÐY_Ð_`ÐaÐar   r   )r	   r   r   r   r~   r`   r   rƒ   r‰   r   r   Ú__classcell__)ru   r    rl   r/   rd   r   s   @@€€€€r   ÚLazyFunctionr|   ¾   s/   ú‡ € ÷	)ð 
ö	ó 
ð	õ
	-÷	b÷ 	br   rŒ   )Ú	metaclass)Útype)rd   r   rz   rŒ   rl   r/   s   ff  @@r   Úlazy_functionr�   ¨   s?   û€ ð €D÷÷ñ œ4ô ÷bò bÐ!1õ bñ( ‹>Ðr   r;   )r   Ú	importlibr   Útypingr   Úlistr   r2   r   r   Ú	functoolsr!   r"   r9   r<   rG   rM   ÚlowerÚ	USE_CACHEÚscsrP   ÚintÚ
ValueErrorrA   Úcacheitra   r�   r   r   r   Ú<module>rš      s!  ðÙ "Ý #Ý ô0ˆTô 0ñB 	‹€à×Ñ€Ø×Ñ€ç &ò(òXòô< ñ
 Ð% uÓ-×3Ñ3Ó5€	ñ
 Ð  &Ó)€Ø‡9�9ƒ;�&ÔØÑð*Ù˜s›8Ðð �ÔØ�GØ�%ÔÙÐ(Ó)�GØ�'ÔÙÐ.Ó/�Gá
Ø4°yÕ@óBð Bò
÷*øð; ô *ÙØ@ØÐ(Õ(õ)ó*ð 	*ð*ús   ÂC ÃC2