+
    ÏÜ³jÜ'  ã                  óz  € R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIHt ^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ]! R4      t]! R	4      t ! R
 R]]]3,          4      tR R R lltR R ltR R ltR]R]P
                  RRRRR]R]R]P:                  R]P:                  /tR R lt ! R R4      t R# )!z
Module for scope operations
)Úannotations)ÚChainMapN)ÚStringIO)ÚTypeVar)Ú	Timestamp)ÚUndefinedVariableErrorÚ_KTÚ_VTc                  ó2   € ] tR t^tRtR R ltR R ltRtR# )ÚDeepChainMapzr
Variant of ChainMap that allows direct updates to inner scopes.

Only works when all passed mapping are mutable.
c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úkeyr   Úvaluer	   ÚreturnÚNone© )Úformats   "Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/pandas/core/computation/scope.pyÚ__annotate__ÚDeepChainMap.__annotate__"   s!   € ÷ "ñ "˜sð "¨3ð "°4ñ "ó    c                	óp   € V P                    F  pW9   g   K  W#V&    R # 	  W P                   ^ ,          V&   R # ©N)Úmaps)Úselfr   r   Úmappings   &&& r   Ú__setitem__ÚDeepChainMap.__setitem__"   s1   € Ø—y”yˆGØŽ~Ø$˜‘Úñ !ð "�	‰	�!��SÓr   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r   )   s   € ÷ ñ ˜sð  tñ r   c                óT   € V P                    F  pW9   g   K  W!  R# 	  \        V4      h)z4
Raises
------
KeyError
    If `key` doesn't exist.
N)r   ÚKeyError)r   r   r   s   && r   Ú__delitem__ÚDeepChainMap.__delitem__)   s+   € ð —y”yˆGØŽ~Ø�LÚñ !ô �s‹mÐr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r"   Ú__static_attributes__r   r   r   r   r      s   † ñõ"÷ñ r   r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚlevelÚintr   ÚScoper   )r   s   "r   r   r   7   s   € ÷ 
ñ 
Øð
à
ñ
r   c                ó0   € \        V ^,           VVVVR7      # )z.Ensure that we are grabbing the correct scope.)Úglobal_dictÚ
local_dictÚ	resolversÚtarget)r-   )r+   r/   r0   r1   r2   s   &&&&&r   Úensure_scoper3   7   s$   € ô Ø��	ØØØØôð r   c               ó   € V ^8„  d   QhRR/# ©r   r   Ústrr   )r   s   "r   r   r   D   s   € ÷ ñ �Cñ r   c                óV   €  \        V 4      p\        V4      #   \         d    T p Li ; i)zv
Replace a number with its hexadecimal representation. Used to tag
temporary variables with their calling scope's id.
)ÚordÚ	TypeErrorÚhex)ÚxÚhexins   & r   Ú	_replacerr=   D   s2   € ðÜ�A“ˆô
 ˆu‹:Ðøô	 ô àŠðús   ‚ ˜(§(c               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r   r   r   T   s   € ÷ 3ñ 3˜ñ 3r   c                ó    € \         P                  ! R\        V 4      4      pRP                  V Uu. uF  p\	        V4      NK  	  up4      # u upi )z,Return the padded hexadecimal id of ``obj``.z@PÚ )ÚstructÚpackÚidÚjoinr=   )ÚobjÚpackedr;   s   &  r   Ú_raw_hex_idrG   T   s=   € ô �[Š[˜œr #›wÓ'€FØ�7‰7©&Ó1©& Q”I˜a–L©&Ñ1Ó2Ð2ùÒ1s   °Ar   ÚdatetimeÚTrueTÚFalseFÚlistÚtupleÚinfÚInfc               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r   r   r   g   s   € ÷ ñ ˜sñ r   c                ód   € \        4       p\        P                  ! WR7       VP                  4       # )z”
Return a prettier version of obj.

Parameters
----------
obj : object
    Object to pretty print

Returns
-------
str
    Pretty print object repr
)Ústream)r   ÚpprintÚgetvalue)rE   Úsios   & r   Ú_get_pretty_stringrU   g   s#   € ô ‹*€CÜ
‡M‚M�#Õ"Ø�<‰<‹>Ðr   c                  óê   € ] tR t^zt$ Rt. ROtR]R&   R]R&   R]R&   R]R&   RR
 R lltR R lt]	R R l4       t
R R ltR R R lltR R ltR R ltR R lt]	R R l4       t]	R R l4       tRtR	# )!r-   a’  
Object to hold scope, with a few bells to deal with some custom syntax
and contexts added by pandas.

Parameters
----------
level : int
global_dict : dict or None, optional, default None
local_dict : dict or Scope or None, optional, default None
resolvers : list-like or None, optional, default None
target : object

Attributes
----------
level : int
scope : DeepChainMap
target : object
temps : dict
r+   r1   ÚscopeÚtempsr,   r   ÚdictNc               ó    € V ^8„  d   QhRRRR/# ©r   r+   r,   r   r   r   )r   s   "r   r   ÚScope.__annotate__•   s   € ÷ &ñ &Øð&à	ñ&r   c                	óž  € V^,           V n         \        \        P                  4       4      V n        WPn        \        V\        4      '       d`   V P                  P                  VP                  4       VP
                  e   VP
                  V n        V P                  VP                   4       \        P                  ! V P                   4      p V P                  P                  Ve   TMVP                  P                  4       4      p\        V4      V n        \        V\        4      '       gJ   V P                  P                  Ve   TMVP                  P                  4       4      p\        V4      V n        ?\        V\        4      '       d'   V\        VP                   P"                  4      ,          p\        V!  V n        / V n        R#   ?i ; i)é   N)r+   r   ÚDEFAULT_GLOBALSÚcopyrW   r2   Ú
isinstancer-   ÚupdateÚ_updateÚsysÚ	_getframeÚ	new_childÚ	f_globalsÚf_localsrL   r1   r   rX   )	r   r+   r/   r0   r1   r2   ÚframeÚscope_globalÚscope_locals	   &&&&&&   r   Ú__init__ÚScope.__init__•   sZ  € ð ˜Q•YˆŒ
ô "¤/×"6Ñ"6Ó"8Ó9ˆŒ
ØŒä�j¤%×(Ò(Ø�J‰J×Ñ˜j×.Ñ.Ô/Ø× Ñ Ò,Ø(×/Ñ/�”Ø�L‰L˜×)Ñ)Ô*ä—’˜dŸj™jÓ)ˆð	ð  Ÿ:™:×/Ñ/Ø +Ò 7‘¸U¿_¹_×RÑRÓTóˆLô & lÓ3ˆDŒJÜ˜j¬%×0Ò0Ø"Ÿj™j×2Ñ2Ø#-Ò#9‘Z¸u¿~¹~×SÑSÓUó�ô *¨+Ó6�”
àô �j¤%×(Ò(Øœ˜z×3Ñ3×8Ñ8Ó9Õ9ˆIÜ% yÑ1ˆŒØˆŽ
øñ ús   ÃB(G	 Ç	Gc               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r   r   r\   ½   s   € ÷ Rñ R˜#ñ Rr   c                	óî   € \        \        V P                  P                  4       4      4      p\        \        V P                  P                  4       4      4      p\        V 4      P                   R V RV R2# )z(scope=z, resolvers=Ú))rU   rK   rW   Úkeysr1   Útyper$   )r   Ú
scope_keysÚres_keyss   &  r   Ú__repr__ÚScope.__repr__½   s\   € Ü'¬¨T¯Z©Z¯_©_Ó->Ó(?Ó@ˆ
Ü%¤d¨4¯>©>×+>Ñ+>Ó+@Ó&AÓBˆÜ�t“*×%Ñ%Ð& g¨j¨\¸ÀhÀZÈqÐQÐQr   c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   r\   Ã   s   € ÷ )ñ )˜tñ )r   c                ó>   € \        \        V P                  4      4      # )z½
Return whether we have any extra scope.

For example, DataFrames pass Their columns as resolvers during calls to
``DataFrame.eval()`` and ``DataFrame.query()``.

Returns
-------
hr : bool
)rx   Úlenr1   ©r   s   &r   Úhas_resolversÚScope.has_resolversÂ   s   € ô ”C˜Ÿ™Ó'Ó(Ð(r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r6   Úis_localrx   r   )r   s   "r   r   r\   Ð   s   € ÷ %Eñ %E˜3ð %E¨$ñ %Er   c                ój  €  V'       d   V P                   V,          # V P                  '       d   V P                  V,          # V'       g   V P                  '       d   Q hV P                   V,          #   \         d7     T P                  T,          u #   \         d   p\        Y4      ThRp?ii ; ii ; i)a  
Resolve a variable name in a possibly local context.

Parameters
----------
key : str
    A variable name
is_local : bool
    Flag indicating whether the variable is local or not (prefixed with
    the '@' symbol)

Returns
-------
value : object
    The value of a particular variable
N)rW   r|   r1   r!   rX   r   )r   r   r   Úerrs   &&& r   ÚresolveÚScope.resolveÐ   s    € ð"	EçØ—z‘z #•Ð&ð ×!×!Ð!Ø—~‘~ cÕ*Ð*÷  ¨×(:×(:Ð(:Ð:Ð:Ø—:‘:˜c•?Ð"øÜô 	EðEð —z‘z #•Ò&øÜô EÜ,¨SÓ;ÀÐDûðEúð	EúsP   ‚A1 ŠA1 �A1 ¯A1 ÁA1 Á
A1 ÁA1 Á1B2Á=BÂB2ÂB.ÂB)Â)B.Â.B2c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úold_keyr6   Únew_keyr   r   r   )r   s   "r   r   r\   ÷   s!   € ÷ ñ ˜sð ¨Sð ÀTñ r   c                ó  € V P                   '       d3   V P                  P                  V P                  P                  ,           pMV P                  P                  pVP	                  V P
                  4       V F  pW9   g   K  W5V&    R# 	  R# )a  
Replace a variable name, with a potentially new value.

Parameters
----------
old_key : str
    Current variable name to replace
new_key : str
    New variable name to replace `old_key` with
new_value : object
    Value to be replaced along with the possible renaming
N)r|   r1   r   rW   ÚappendrX   )r   r…   r†   Ú	new_valuer   r   s   &&&&  r   ÚswapkeyÚScope.swapkey÷   sd   € ð ××ÐØ—>‘>×&Ñ&¨¯©¯©Õ8‰Dà—:‘:—?‘?ˆDà�‰�D—J‘JÔãˆGØÖ!Ø#,˜Ñ Úó r   c               ó    € V ^8„  d   QhRRRR/# )r   Úscopesz	list[str]r   r   r   )r   s   "r   r   r\     s   € ÷ ñ  yð °Tñ r   c                óØ   € \         P                  ! W!4      pV FG  w  pw  p    p \        VRV 24      p\        V P                  P                  V4      4      V n        ?KI  	  R#   ?i ; i)aA  
Get specifically scoped variables from a list of stack frames.

Parameters
----------
stack : list
    A list of stack frames as returned by ``inspect.stack()``
scopes : sequence of strings
    A sequence containing valid stack frame attribute names that
    evaluate to a dictionary. For example, ('locals', 'globals')
Úf_N)Ú	itertoolsÚproductÚgetattrr   rW   rf   )r   Ústackr�   Ú	variablesrW   ri   Ú_Úds   &&&     r   Ú	_get_varsÚScope._get_vars  sn   € ô ×%Ò% fÓ4ˆ	Û-6Ñ)ˆEÑ)�E˜1˜a  A qðÜ˜E R¨ w <Ó0�Ü)¨$¯*©*×*>Ñ*>¸qÓ*AÓB�”
ò
 ó .7øñ ús   §8A&Á&A)c               ó    € V ^8„  d   QhRRRR/# r[   r   )r   s   "r   r   r\   '  s   € ÷  ñ  ˜Sð   Tñ  r   c                óŒ   € V^,           p\         P                  ! 4       p V P                  VRV R.R7       VR ?R#   TR ?i ; i)z[
Update the current scope by going back `level` levels.

Parameters
----------
level : int
NÚlocals)r�   :NNN)Úinspectr“   r—   )r   r+   Úslr“   s   &&  r   rc   ÚScope._update'  sJ   € ð �Q�Yˆô
 —’“ˆð	 Ø�N‰N˜5  "˜:¨x¨jˆNÔ9à�a�š%ø��a�™%ús	    = ½Ac               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r   r   r\   ;  s   € ÷ ñ  ñ r   c                óÊ   € \        V4      P                   RV P                   R\        V 4       2pW P                  9  g   Q hWP                  V&   W P                  9   g   Q hV# )zÓ
Add a temporary variable to the scope.

Parameters
----------
value : object
    An arbitrary object to be assigned to a temporary variable.

Returns
-------
str
    The name of the temporary variable created.
r•   )rr   r$   ÚntempsrG   rX   )r   r   Únames   && r   Úadd_tmpÚScope.add_tmp;  sd   € ô �u“+×&Ñ&Ð' q¨¯©¨°Q´{À4Ó7HÐ6IÐJˆð Ÿ:™:Ô%Ð%Ð%Ø �
‰
�4ÑØ—z‘zÔ!Ð!Ð!ð ˆr   c               ó   € V ^8„  d   QhRR/# )r   r   r,   r   )r   s   "r   r   r\   T  s   € ÷ ñ ˜ñ r   c                ó,   € \        V P                  4      # )z/The number of temporary variables in this scope)rz   rX   r{   s   &r   r¡   ÚScope.ntempsS  s   € ô �4—:‘:‹Ðr   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r\   Y  s   € ÷ #ñ #˜Lñ #r   c                ó†   € V P                   .V P                  P                  OV P                  P                  Op\	        V!  # )z™
Return the full scope for use with passing to engines transparently
as a mapping.

Returns
-------
vars : DeepChainMap
    All variables in this scope.
)rX   r1   r   rW   r   )r   r   s   & r   Ú
full_scopeÚScope.full_scopeX  s7   € ð —
‘
ÐC˜TŸ^™^×0Ñ0ÐC°4·:±:·?±?ÐCˆÜ˜TÑ"Ð"r   )r+   r1   rW   r2   rX   ©NNr   Nr   )r$   r%   r&   r'   r(   Ú	__slots__Ú__annotations__rl   ru   Úpropertyr|   r‚   rŠ   r—   rc   r£   r¡   rª   r)   r   r   r   r-   r-   z   sˆ   ‡ ñò( C€IØƒJØÓØÓØƒK÷&õPRð
 ô)ó ð)õ%E÷Nõ2õ. õ(ð0 ôó ðð ô#ó ô#r   r-   r¬   )!r(   Ú
__future__r   Úcollectionsr   rH   rœ   Úior   r�   rR   rA   rd   Útypingr   ÚnumpyÚnpÚpandas._libs.tslibsr   Úpandas.errorsr   r   r	   r   r3   r=   rG   rK   rL   rM   r_   rU   r-   r   r   r   Ú<module>r¸      s¹   ðñõ #å  Û Û Ý Û Û Û Û 
Ý ã å )Ý 0áˆeƒn€Ùˆeƒn€ô�8˜C ˜HÕ%ô ÷8
õõ 3ð �Ø�×!Ñ!Ø
ˆDØˆUØ
ˆDØˆUØ	ˆ2�6‰6Ø	ˆ2�6‰6ð	€õ÷&j#ó j#r   