+
    ‹°³jÂ/  ã                  óü   a € 0 t $ ^ RIHt ^ RIHt ^ RIt^RIHtHtH	t	H
t
 ^RIHt ^ RIt ! R R]4      tR t ! R	 R
4      tR t]! 4       tR]R&   R.tR t]3R lt ! R R4      tR t ! R R]4      tR tR tR# )é    )Úannotations)ÚwarnN)ÚorderingÚambiguitiesÚsuper_signatureÚAmbiguityWarning)Úexpand_tuplesc                  ó   € ] tR t^
tRtRtR# )ÚMDNotImplementedErrorz,A NotImplementedError for multiple dispatch © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/multipledispatch/dispatcher.pyr   r   
   s   † Ý7r   r   c                óN   € \        \        V P                  V4      \        4       R# )a  Raise warning when ambiguity is detected

Parameters
----------
dispatcher : Dispatcher
    The dispatcher on which the ambiguity was detected
ambiguities : set
    Set of type signature pairs that are ambiguous within this dispatcher

See Also:
    Dispatcher.add
    warning_text
N)r   Úwarning_textÚnamer   )Ú
dispatcherr   s   &&r   Úambiguity_warnr      s   € ô 	Œ�j—o‘o {Ó	3Ô5EÖFr   c                  ó&   € ] tR t^!tRtR tR tRtR# )ÚRaiseNotImplementedErrorz*Raise ``NotImplementedError`` when called.c                	ó   € Wn         R # ©N©r   )Úselfr   s   &&r   Ú__init__Ú!RaiseNotImplementedError.__init__$   s   € Ø$Žr   c                	ó¼   € \         ;QJ d    . R  V 4       F  NK  	  5M! R  V 4       4      p\        RV P                  P                  : R\	        V4      : R24      h)c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir   )Útype)Ú.0Úas   & r   Ú	<genexpr>Ú4RaiseNotImplementedError.__call__.<locals>.<genexpr>(   s   é € Ð,¡t !”d˜1—g�g£tùó   ‚zAmbiguous signature for ú: <Ú>)ÚtupleÚNotImplementedErrorr   r   Ústr_signature)r   ÚargsÚkwargsÚtypess   &*, r   Ú__call__Ú!RaiseNotImplementedError.__call__'   sF   € ß”Ñ,¡tÓ,—‘Ñ,¡tÓ,Ó,ˆÝ!à�O‰O× Ô ¤-°Ö"6ð
óð 	r   r   N)r   r   r   r   r   r    r2   r   r   r   r   r   r   !   s   † Ù4ò%ör   r   c                ó¸   € V FS  p\        \        V4      4      p\        \        V4      4      ^8X  d   K2  V P	                  V\        V 4      \        R7       KU  	  R# )a‡  
If super signature for ambiguous types is duplicate types, ignore it.
Else, register instance of ``RaiseNotImplementedError`` for ambiguous types.

Parameters
----------
dispatcher : Dispatcher
    The dispatcher on which the ambiguity was detected
ambiguities : set
    Set of type signature pairs that are ambiguous within this dispatcher

See Also:
    Dispatcher.add
    ambiguity_warn
©Úon_ambiguityN)r,   r   ÚlenÚsetÚaddr   Ú#ambiguity_register_error_ignore_dup)r   r   ÚambÚ	signatures   &&  r   r:   r:   .   sP   € ó  ˆÜœ/¨#Ó.Ó/ˆ	ÜŒs�9‹~Ó !Ô#ÙØ�‰ØÔ/°
Ó;Ü<ð 	ö 	
ó	 r   zset[Dispatcher]Ú_unresolved_dispatchersTc                 ó   € R \         ^ &   R# )FN)Ú_resolver   r   r   Úhalt_orderingr@   N   s   € Ø„HˆQƒKr   c                ó€   € R \         ^ &   \        '       d)   \        P                  4       pVP                  V R7       K4  R# )Tr5   N)r?   r=   ÚpopÚreorder)r6   r   s   & r   Úrestart_orderingrD   R   s5   € Ø„HˆQ�Kß
!Ó
!Ü,×0Ñ0Ó2ˆ
Ø×Ñ¨ÐÖ5ñ "r   c                  ó¼   € ] tR t^YtRtRtRR ltR t]R 4       t	]R 4       t
]3R lt]3R ltR	 tR
 t]tR tR tR tR tR t]R 4       tR tR tR tR tRtR# )Ú
Dispatchera-  Dispatch methods based on type signature

Use ``dispatch`` to add implementations

Examples
--------

>>> from sympy.multipledispatch import dispatch
>>> @dispatch(int)
... def f(x):
...     return x + 1

>>> @dispatch(float)
... def f(x): # noqa: F811
...     return x - 1

>>> f(3)
4
>>> f(3.0)
2.0
Nc                	óX   € V;V n         V n        / V n        / V n        . V n        W n        R # r   )r   r   ÚfuncsÚ_cacher   Údoc)r   r   rJ   s   &&&r   r    ÚDispatcher.__init__q   s*   € Ø$(Ð(ˆŒ	�D”MØˆŒ
ØˆŒØˆŒØŽr   c                ó   a aa€ VV V3R lpV# )aŠ  Register dispatcher with new implementation

>>> from sympy.multipledispatch.dispatcher import Dispatcher
>>> f = Dispatcher('f')
>>> @f.register(int)
... def inc(x):
...     return x + 1

>>> @f.register(float)
... def dec(x):
...     return x - 1

>>> @f.register(list)
... @f.register(tuple)
... def reverse(x):
...     return x[::-1]

>>> f(1)
2

>>> f(1.0)
0.0

>>> f([1, 2, 3])
[3, 2, 1]
c                ó0   <€ SP                   ! SV 3/ SB  V # r   )r9   )Úfuncr0   r   r1   s   &€€€r   Ú_ÚDispatcher.register.<locals>._“   s   ø€ Ø�HŠH�U˜DÑ+ FÒ+ØˆKr   r   )r   r1   r0   rO   s   fjl r   ÚregisterÚDispatcher.registerx   s   ú€ ÷6	ð ˆr   c                	ó’   € \        \        R 4      '       d1   \        P                  ! V4      pVP                  P	                  4       # R# ©r<   N)ÚhasattrÚinspectr<   Ú
parametersÚvalues©ÚclsrN   Úsigs   && r   Úget_func_paramsÚDispatcher.get_func_params˜   s7   € ä”7˜K×(Ò(Ü×#Ò# DÓ)ˆCØ—>‘>×(Ñ(Ó*Ð*ñ )r   c                óR  a€ V P                  V4      pV'       d�   \        P                  oV3R lV 4       p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       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      '       g   V# R# R# )z:Get annotations of function positional parameters
        c              3  óz   <"  € T F0  pVP                   SP                  SP                  39   g   K,  Vx € K2  	  R # 5ir   )ÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORD)r%   ÚparamÚ	Parameters   & €r   r'   Ú2Dispatcher.get_func_annotations.<locals>.<genexpr>¦   s;   øé € ð 9© ØŸ™Ø ×0Ñ0Ø ×6Ñ6ð8ñ8÷ ’e«ùs   ƒ);±
;c              3  ó:   "  € T F  pVP                   x € K  	  R # 5ir   )Ú
annotation)r%   rc   s   & r   r'   re   «   s   é € ð  %á#�Eð × Ö Û#ùs   ‚c              3  ó>   <"  € T F  qSP                   J x € K  	  R # 5ir   )Úempty)r%   Úannrd   s   & €r   r'   re   ¯   s   øé € ÐE¹°#˜iŸo™oÕ-»ùs   ƒTFN)r\   rV   rd   r,   Úany)rZ   rN   Úparamsr   rd   s   &&  @r   Úget_func_annotationsÚDispatcher.get_func_annotationsž   s‘   ø€ ð ×$Ñ$ TÓ*ˆßÜ×)Ñ)ˆIô9©ó 9ˆF÷
  œ%ñ  %á#ó %Ÿ%™%ñ  %á#ó %ó %ˆK÷ “3ÔE¹ÓE—3—3’3ÔE¹ÓE×EÒEØ"Ð"ñ Fñ r   c           	     ó0  € V'       g   V P                  V4      pV'       d   Tp\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d'   \        V4       F  pV P                  WRV4       K  	  R# V FR  p\	        V\
        4      '       d   K  RP                  R V 4       4      p\        RV: RV: R	V P                  : 24      h	  W P                  V&   V P                  VR
7       V P                  P                  4        R# )a  Add new types/method pair to dispatcher

>>> from sympy.multipledispatch import Dispatcher
>>> D = Dispatcher('add')
>>> D.add((int, int), lambda x, y: x + y)
>>> D.add((float, float), lambda x, y: x + y)

>>> D(1, 2)
3
>>> D(1, 2.0)
Traceback (most recent call last):
...
NotImplementedError: Could not find signature for add: <int, float>

When ``add`` detects a warning it calls the ``on_ambiguity`` callback
with a dispatcher/itself, and a set of ambiguous type signature pairs
as inputs.  See ``ambiguity_warn`` for an example.
c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir   )Ú
isinstancer,   )r%   Útyps   & r   r'   Ú!Dispatcher.add.<locals>.<genexpr>Ì   s   é € Ð;±¨#Œz˜#œu×%Ð%³ùs   ‚TFNú, c              3  ó|   "  € T F2  p\        V\        4      '       d   VP                  M
\        V4      x € K4  	  R # 5ir   )rq   r$   r   Ústr)r%   Úcs   & r   r'   rs   Ó   s4   é € ð $DÙ9B°Aô 3=¸QÄ×2EÒ2E A§J¢JÜ),¨Q«ô%0Û9Bùs   ‚:<zTried to dispatch on non-type: z
In signature: <z>
In function: r5   )rm   rk   r	   r9   rq   r$   ÚjoinÚ	TypeErrorr   rH   rC   rI   Úclear)r   r<   rN   r6   r   Útypsrr   Ústr_sigs   &&&&    r   r9   ÚDispatcher.add²   sâ   € ÷( Ø×3Ñ3°DÓ9ˆKßØ'�	÷ ‹3Ñ;±Ó;�3�3Š3Ñ;±Ó;×;Ò;Ü% iÖ0�Ø—‘˜ \Ö2ñ 1áãˆCÜ˜c¤4×(Ô(ØŸ)™)ñ $DÙ9Bó$Dó D�åó "%£g¨t¯y«yð!:ó ;ð ;ñ	 ð !%�
‰
�9ÑØ�‰ ,ˆÔ/Ø�‰×ÑÖr   c                	óÜ   € \         ^ ,          '       dD   \        V P                  4      V n        \        V P                  4      pV'       d   V! W4       R# R# \        P                  V 4       R# )r   N)r?   r   rH   r   r=   r9   )r   r6   r;   s   && r   rC   ÚDispatcher.reorderÞ   sI   € Ü�A�;Œ;Ü$ T§Z¡ZÓ0ˆDŒMÜ˜dŸj™jÓ)ˆCßÙ˜TÖ'ñ ô $×'Ñ'¨Ö-r   c           	     	ó8  € \        V Uu. uF  p\        V4      NK  	  up4      p V P                  V,          p V! V/ VB # u upi   \         dQ    T P                  ! T!  pT'       g(   \        R T P                  : R\        T4      : R24      hYPP                  T&    Lhi ; i  \         dj    T P                  ! T!  p\        T4       T F   p T! T/ TB u u #   \         d     K  i ; i	  \        RT P                  : R\        T4      : R24      hi ; i)úCould not find signature for r*   r+   zMatching functions for z(> found, but none completed successfully)r,   r$   rI   ÚKeyErrorÚdispatchr-   r   r.   r   Údispatch_iterÚnext)r   r/   r0   Úargr1   rN   rH   s   &*,    r   r2   ÚDispatcher.__call__ç   s  € Ü©DÓ1©D S”t˜C–y©DÑ1Ó2ˆð	&Ø—;‘;˜uÕ%ˆDð	KÙ˜Ð( Ñ(Ð(ùò 2øô ô 	&Ø—=’= %Ñ(ˆDßÝ)à—Y”Y¤¨eÖ 4ð6ó7ð 7ð "&�K‰K˜Óð	&ûô %ô 
	KØ×&Ò&¨Ñ.ˆEÜ�ŒKÛ�ðÙ Ð0¨Ñ0Ô0øÜ,ô Úðúñ õ
 &à)-¯¬´MÀ%Ö4Hð'Jó Kð Kð
	KúsK   ŠA¦A ºB% Á"B"Á*5B"Â!B"Â%+DÃCÃDÃC,Ã(DÃ+C,Ã,-Dc                	ó(   € R V P                   ,          # )z<dispatched %s>)r   ©r   s   &r   Ú__str__ÚDispatcher.__str__  s   € Ø  4§9¡9Õ,Ð,r   c                ó    € WP                   9   d   V P                   V,          #  \        V P                  ! V!  4      #   \         d     R# i ; i)aï  Deterimine appropriate implementation for this type signature

This method is internal.  Users should call this object as a function.
Implementation resolution occurs within the ``__call__`` method.

>>> from sympy.multipledispatch import dispatch
>>> @dispatch(int)
... def inc(x):
...     return x + 1

>>> implementation = inc.dispatch(int)
>>> implementation(3)
4

>>> print(inc.dispatch(float))
None

See Also:
    ``sympy.multipledispatch.conflict`` - module to determine resolution order
N)rH   r…   r„   ÚStopIteration©r   r1   s   &*r   rƒ   ÚDispatcher.dispatch  sJ   € ð, —J‘JÔØ—:‘:˜eÕ$Ð$ð	Ü˜×*Ò*¨EÑ2Ó3Ð3øÜô 	Úð	ús   ¥> ¾AÁAc              '  	óÞ   "  € \        V4      pV P                   FM  p\        V4      V8X  g   K  \        \        \        W4      4      '       g   K6  V P
                  V,          pVx € KO  	  R # 5ir   )r7   r   ÚallÚmapÚ
issubclassrH   )r   r1   Únr<   Úresults   &*   r   r„   ÚDispatcher.dispatch_iter#  sL   é € Ü�‹JˆØŸœˆIÜ�9‹~ Ö"¤s¬3¬z¸5Ó+L×'MÔ'MØŸ™ IÕ.�Ø”ó 'ùs   ‚(A-¯A-ÁA-c                óB   € \        R\        4       V P                  ! V!  # )zzDeterimine appropriate implementation for this type signature

.. deprecated:: 0.4.4
    Use ``dispatch(*types)`` instead
z-resolve() is deprecated, use dispatch(*types))r   ÚDeprecationWarningrƒ   rŽ   s   &&r   ÚresolveÚDispatcher.resolve*  s#   € ô 	Ð<Üô	!ð �}Š}˜eÑ$Ð$r   c                	ó6   € R V P                   RV P                  /# ©r   rH   rœ   r‰   s   &r   Ú__getstate__ÚDispatcher.__getstate__5  s   € Ø˜Ÿ	™	Ø˜Ÿ™ð%ð 	%r   c                	ó€   € VR ,          V n         VR,          V n        \        V P                  4      V n        / V n        R# )r   rH   N)r   rH   r   rI   )r   Úds   &&r   Ú__setstate__ÚDispatcher.__setstate__9  s/   € Ø�f•IˆŒ	Ø�w•ZˆŒ
Ü  §¡Ó,ˆŒØˆŽr   c                	óŠ  € R V P                   ,          .pV P                  '       d   VP                  V P                  4       . pV P                  RRR1,           F§  pV P                  V,          pVP
                  '       df   R\        V4      ,          pVR\        V4      ,          R,           ,          pWTP
                  P                  4       ,          pVP                  V4       K�  VP                  \        V4      4       K©  	  V'       d(   VP                  RRP                  V4      ,           4       RP                  V4      # )	zMultiply dispatched method: %sNzInputs: <%s>
Ú-Ú
zOther signatures:
    z
    ú

éÿÿÿÿ)
r   rJ   Úappendr   rH   r   r.   r7   Ústriprx   )r   ÚdocsÚotherr[   rN   Úss   &     r   r   ÚDispatcher.__doc__?  sç   € à0°4·9±9Õ<Ð=ˆà�8�8ˆ8Ø�K‰K˜Ÿ™Ô!àˆØ—=‘=¡ 2 ×&Ð&ˆCØ—:‘:˜c•?ˆDØ�|�|ˆ|Ø$¤}°SÓ'9Õ9�Ø�Sœ3˜q›6•\ DÕ(Õ(�Ø—\‘\×'Ñ'Ó)Õ)�Ø—‘˜A–à—‘œ]¨3Ó/Ö0ñ '÷ Ø�K‰KÐ1°H·M±MÀ%Ó4HÕHÔIà�{‰{˜4Ó Ð r   c                	óR   € V P                   ! \        \        V4      !  P                  # r   )rƒ   r’   r$   r   )r   r/   s   &*r   Ú_helpÚDispatcher._helpV  s   € Ø�}Š}œc¤$¨›oÑ.×6Ñ6Ð6r   c                ó8   € \        V P                  ! V!  4       R# )z9Print docstring for the function corresponding to inputs N)Úprintr¯   ©r   r/   r0   s   &*,r   ÚhelpÚDispatcher.helpY  s   € äˆd�jŠj˜$ÑÖ r   c                	óz   € V P                   ! \        \        V4      !  pV'       g   \        R 4      h\	        V4      # )zNo function found)rƒ   r’   r$   ry   Úsource)r   r/   rN   s   &* r   Ú_sourceÚDispatcher._source]  s/   € Ø�}Š}œc¤$¨›oÑ.ˆßÜÐ/Ó0Ð0Ü�d‹|Ðr   c                ó8   € \        V P                  ! V!  4       R# )z;Print source code for the function corresponding to inputs N)r²   r¸   r³   s   &*,r   r·   ÚDispatcher.sourcec  s   € äˆd�lŠl˜DÑ!Ö"r   )r   rI   rJ   rH   r   r   )r   r   rH   r   rI   rJ   r   )r   r   r   r   r   Ú	__slots__r    rQ   Úclassmethodr\   rm   r   r9   rC   r2   rŠ   Ú__repr__rƒ   r„   r™   r�   r¡   Úpropertyr¯   r´   r¸   r·   r   r   r   r   rF   rF   Y   s¨   † ñð* I€Iôòð@ ñ+ó ð+ð
 ñ#ó ð#ð& 1?ô *ðX $2ô .òKò4-à€Hòò<ò	%ò%òð ñ!ó ð!ò,7ò!òö#r   rF   c                óz   € R \         P                  ! V 4      ,          pV\         P                  ! V 4      ,           pV# )z
File: %s

)rV   ÚgetsourcefileÚ	getsource)rN   r¬   s   & r   r·   r·   h  s1   € Øœ×.Ò.¨tÓ4Õ4€AØ	ŒG×Ò˜dÓ#Õ#€AØ€Hr   c                  ó6   € ] tR tRtRt]R 4       tR tR tRt	R# )ÚMethodDispatcherin  zCDispatch methods based on type signature

See Also:
    Dispatcher
c                	ó¾   € \        \        R 4      '       dG   \        P                  ! V4      p\        P                  ! VP
                  P                  4       ^R4      # R# rT   )rU   rV   r<   ÚitlÚislicerW   rX   rY   s   && r   r\   Ú MethodDispatcher.get_func_paramsu  sD   € ä”7˜K×(Ò(Ü×#Ò# DÓ)ˆCÜ—:’:˜cŸn™n×3Ñ3Ó5°q¸$Ó?Ð?ñ )r   c                	ó   € Wn         W n        V # r   )ÚobjrZ   )r   ÚinstanceÚowners   &&&r   Ú__get__ÚMethodDispatcher.__get__{  s   € ØŒØŒØˆr   c                	óþ   € \        V Uu. uF  p\        V4      NK  	  up4      pV P                  ! V!  pV'       g(   \        R V P                  : R\        V4      : R24      hV! V P                  .VO5/ VB # u upi )r�   r*   r+   )r,   r$   rƒ   r-   r   r.   rÊ   )r   r/   r0   r†   r1   rN   s   &*,   r   r2   ÚMethodDispatcher.__call__€  sq   € Ü©DÓ1©D S”t˜C–y©DÑ1Ó2ˆØ�}Š}˜eÑ$ˆßÝ%Ø'+§y¤y´-ÀÖ2Fð'Hó Ið Iá�D—H‘HÐ.˜tÒ. vÑ.Ð.ùò 2s   ŠA:)rZ   rÊ   N)
r   r   r   r   r   r½   r\   rÍ   r2   r   r   r   r   rÄ   rÄ   n  s'   † ñð ñ@ó ð@ò
ö
/r   rÄ   c                ó2   € RP                  R V  4       4      # )z–String representation of type signature

>>> from sympy.multipledispatch.dispatcher import str_signature
>>> str_signature((int, float))
'int, float'
rt   c              3  ó8   "  € T F  qP                   x € K  	  R # 5ir   )r   )r%   rZ   s   & r   r'   Ú str_signature.<locals>.<genexpr>�  s   é € Ð1©S c—\–\«Sùr)   )rx   )r[   s   &r   r.   r.   ‰  s   € ð �9‰9Ñ1©SÓ1Ó1Ð1r   c                óP  € RV ,          pVR,          pV F0  pVRRP                  R V 4       4      ,           R,           ,          pK2  	  VR,          pTRP                  V Uu. uF,  pR	\        \        V4      4      ,           R
V ,          ,           NK.  	  up4      ,          pV# u upi )z The text for ambiguity warnings z.
Ambiguities exist in dispatched function %s

z;The following signatures may result in ambiguous behavior:
Ú	rt   c              3  óT   "  € T F  pR \        V4      ,           R,           x € K   	  R# 5i)Ú[Ú]N)r.   )r%   r¬   s   & r   r'   Úwarning_text.<locals>.<genexpr>™  s"   é € ÐA¹D°q�cœM¨!Ó,Õ,¨s×2Ò2»Dùs   ‚&(r¥   z,

Consider making the following additions:

r¦   z
@dispatch(z)
def %s(...))rx   r.   r   )r   r;   ÚtextÚpairr¬   s   &&   r   r   r   “  s¼   € à>À$ÕG€DØÐJÕJ€DÛˆØ�Ø�I‰IÑA¹DÓAÓAõBØDHõIõ 	IŠñ ð 	Ð>Õ>€DØˆF�K‰KÙ<?óAÙ<?°qð &¬´oÀaÓ6HÓ(IÕIØ+¨dÕ2÷3ð 3Ù<?ñAó Bõ B€Dà€KùòAs   Á"2B#
)Ú__conditional_annotations__Ú
__future__r   Úwarningsr   rV   Úconflictr   r   r   r   Úutilsr	   Ú	itertoolsrÆ   r-   r   r   r   r:   r8   r=   Ú__annotations__r?   r@   rD   rF   r·   rÄ   r.   r   )rÜ   s   @r   Ú<module>rã      s�   øðß "Ð "å Û ß NÓ NÝ  Û ô8Ð/ô 8òG÷"ñ ò
ñ8 ,/«5Ð ˜Ó 0Øˆ6€òð #1ô 6÷L#ñ L#ò^ô/�zô /ò62ô
r   