+
    LV-jÇ+  ã                   óÚ   € R t ^ RIt^ RIHtHtHtHtHt ^RIH	t	H
t
HtHtHt ^RIHt . ROtRR ltR tRR ltR tRR	 l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# )z=
Methods for detecting objects leading to pickling failures.
N)ÚismethodÚ
isfunctionÚistracebackÚisframeÚiscode)ÚparentÚ	referenceÚatÚparentsÚchildren)Útracec                ó®   € ^ RI Hp V! W4      pV'       g	   V'       g   V# ^ RIp^RIHp V! V RR7      pV\        V4      P                  4       9   d   V# R# )zget the module of the object)Ú	getmoduleN)ÚgetnameT)Úforce)Úinspectr   ÚbuiltinsÚsourcer   ÚvarsÚkeys)ÚobjectÚ	_filenamer   ÚgetmodÚmoduler   r   Únames   &&&     Ú\/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/dill/detect.pyr   r      sI   € å+Ù�FÓ&€Fß—U 6˜MÛÝÙ�6 Ô&€DØœt H›~×2Ñ2Ó4Ô4ˆ8Ð>¸$Ð>ó    c                óÆ  a€ \        V 4      '       d"   V P                  P                  ;'       g    / pM*\        V 4      '       d   V P                  ;'       g    / pMR# TP	                  4       p^RIHp V! V RR7      w  r4RP                  V4      oV3R lV 4       pV F  w  rg V! V4      W438X  d   Vu # K  	  R#   \         d    . RrC LMi ; i  \         d     K@  i ; i)zŽget outermost enclosing object (i.e. the outer function in a closure)

NOTE: this is the object-equivalent of getsource(func, enclosing=True)
N)ÚgetsourcelinesT)Ú	enclosingÚ c              3   ó@   <"  € T F  w  rVS9   g   K  W3x € K  	  R # 5i©N© )Ú.0r   ÚobjÚcodes   &  €r   Ú	<genexpr>Úoutermost.<locals>.<genexpr>3   s   øé € ÐE©H™j˜t¸À¹Œz��z«Hùs   ƒ“)	r   Ú__func__Ú__globals__r   Úitemsr   r   Ú	ExceptionÚjoin)	ÚfuncÚ_globalsr   ÚlinesÚlnumÚ_localsr   r%   r&   s	   &       @r   Ú	outermostr3       sÓ   ø€ ô
 �‡~‚~Ø—=‘=×,Ñ,×2Ð2°‰Ü	�D×	Ò	Ø×#Ñ#×)Ð) r‰áØ�~‰~Ó€Hå&Ù$ T°TÔ:‰ˆð �7‰7�5‹>€DäE©HÓE€Gã‰ˆð	Ù˜cÓ" u lÔ2¸3²JÑ2ñ ñ
 øô ô Ø˜Šdðûô ô 	Úð	ús$   Á4B= Â%CÂ=CÃCÃC ÃC c           	     ó4  € \        V 4      p \        V 4      '       g   . # \        4       pV P                   FV  pVf   K	  \        V4      pV'       g   K  VP	                  V4       V'       g   K9  V\        \        VRR7      4      ,          pKX  	  \        V4      # )zAget the code objects for any nested functions (e.g. in a closure)T©Úrecurse)r&   r   ÚsetÚ	co_constsÚaddÚ
nestedcodeÚlist)r.   r6   ÚnestedÚcos   &&  r   r:   r:   <   ss   € ä�‹:€DÜ�$�<Š< ˜Ü‹U€FØ�nŒnˆØŠ:‘xÜ�"‹Xˆß‰2Ø�J‰J�rŒNß‰w˜¤#¤j°¸TÔ&BÓ"CÕCšñ ô �‹<Ðr   c                ó  € \        V 4      '       d   V P                  p \        V 4      '       d   V P                  p \	        V 4      '       d   V P
                  p \        V 4      '       d   V P                  p \        V 4      '       d   V # R# )zvget the code object for the given function or method

NOTE: use dill.source.getsource(CODEOBJ) to get the source code
N)	r   r)   r   Ú__code__r   Útb_framer   Úf_coder   ©r.   s   &r   r&   r&   I   s\   € ô
 �‡~‚~˜dŸm™m�tÜ�$×Ò §¡˜Ü�4×Ò §¡˜$Üˆt‡}‚}˜TŸ[™[�dÜˆd‡|‚|˜D�[Ù
r   c                óÒ  € ^ RI p\        4       p\        W4       FÀ  pVP                  V4       F¨  p\	        VRR4      p\	        VRR4      VJ d   VP                  V4       K4  \	        VRR4      VJ d   VP                  V4       KX  \	        VRR4      VJ d   VP                  V4       K|  \        VR4      '       g   K�  WTJ g   K—  VP                  V4       Kª  	  KÂ  	  \        V4      # )a6  get functions defined inside of func (e.g. inner functions in a closure)

NOTE: results may differ if the function has been executed or not.
If len(nestedcode(func)) > len(referrednested(func)), try calling func().
If possible, python builds code objects, but delays building functions
until func() is called.
Nr)   r?   rA   Úco_code)Úgcr7   r:   Úget_referrersÚgetattrr9   Úhasattrr;   )r.   r6   rE   Úfuncsr=   r%   Ú_s   &&     r   ÚreferrednestedrK   V   s¸   € ó Ü‹E€Eä˜Ö'ˆà×#Ñ# BÖ'ˆCä˜˜Z¨Ó.ˆAÜ�q˜* dÓ+¨rÓ1°5·9±9¸S¶>ä˜˜j¨$Ó/°2Ó5°u·y±yÀ¶~ä˜˜h¨Ó-°Ó3°U·Y±Y¸s¶^ä˜˜i×(Ô(¨S­Y¸¿	¹	À#¾ó (ñ (ô" �‹;Ðr   c                óî   a a€ \        S 4      '       d   S P                  o \        S 4      '       d.   S P                  ;'       g    RoS P                  P
                  o M/ # VV 3R lp\        V! 4       4      # )zcget objects defined in enclosing code that are referred to by func

returns a dict of {name:object}c               3   ó–   <"  € \        SS4       F!  w  r VP                  pYP                  3x € K#  	  R #   \         d     K5  i ; i5ir"   )ÚzipÚcell_contentsÚ
ValueError)r   ÚcrO   Úclosuresr.   s      €€r   Úget_cell_contentsÚ#freevars.<locals>.get_cell_contents€   sI   øé € Ü˜4 Ö*‰GˆDðØ !§¡�ð Ÿ™Ð'Ô'ó +øô ô Úðüs%   ƒA	–7¢A	·AÁA	ÁAÁA	r#   )r   r)   r   Ú__closure__r?   Úco_freevarsÚdict)r.   rS   rR   s   f @r   ÚfreevarsrX   u   s^   ù€ ô �‡~‚~˜dŸm™m�tÜ�$×ÒØ×#Ñ#×)Ð) rˆØ�}‰}×(Ñ(‰àˆ	ö(ô Ñ!Ó#Ó$Ð$r   c                óJ  € \        V 4      p V f   \        4       # ^ RIp^RIHp VP
                  R8¬  p\        4       pV! R4      ;_uu_ 4       p \        P                  ! V 4       RRR4       XP                  4       P                  4        F†  pRV9   g   K  VP                  R4      R,          P                  R4      ^ ,          pV'       d4   VP                  VP                  RR	4      P                  R
R	4      4       Ku  VP                  V4       Kˆ  	  \        V R\        4       4       FF  p	V	'       g   K  V'       g   K  \!        V	4      '       g   K*  VP#                  \%        V	RR7      4       KH  	  \        V4      #   \         d     EL(i ; i  + '       g   i     EL5; i)z.get the names of any globals found within funcN)Úcapturei§ ÚstdoutÚ_GLOBALÚ(Ú)zNULL + r    z + NULLr8   Tr5   éÿÿÿÿ)r&   r;   ÚsysÚtemprZ   Ú
hexversionr7   ÚdisÚ
IndexErrorÚgetvalueÚ
splitlinesÚsplitr9   ÚreplacerG   Útupler   ÚupdateÚnestedglobals)
r.   r6   r`   rZ   ÚCAN_NULLÚnamesÚoutÚliner   r=   s
   &&        r   rk   rk   ‹   s1  € ä�‹:€DØ‚|œD›F�]ÛÝØ�~‰~ Ñ*€HÜ‹E€EÙ	�×	Ô	˜cð	Ü�GŠG�DŒM÷ 
ð
 —‘“×)Ñ)Ö+ˆØ˜ÖØ—:‘:˜c“? 2Õ&×,Ñ,¨SÓ1°!Õ4ˆDßØ—	‘	˜$Ÿ,™, y°"Ó5×=Ñ=¸iÈÓLÖMà—	‘	˜$–ñ ,ô �d˜K¬«Ö1ˆß‰2—'‘'œf RŸjœjØ�L‰Lœ r°4Ô8Ö9ñ 2ô �‹;Ðøô ô 	Úð	ú÷ 
×	Ð	ús*   ÁFÁE?Å?FÆ
FÆFÆFÆF"	c                ó6   € \        WV4      P                  4       # )z@get the names of objects in the global scope referred to by func)Ú
globalvarsr   )r.   r6   Úbuiltins   &&&r   Úreferredglobalsrs   ¤   s   € ä�d WÓ-×2Ñ2Ó4Ð4r   c                óü  a	€ \        V 4      '       d   V P                  p \        V 4      '       Edb   V'       d'   \        \	        \
        4      4      P                  4       M/ o	T \        4       rVP                  ;'       g    /  FH  p VP                  p\        WQV4      ;'       g    / pV P                  V4       S	P                  V4       KJ  	  S	P                  VP                  ;'       g    / 4       V'       g(   V P                  VP                  P                  4       EM4V P                  \!        VP                  4      4       V P                  4        F7  pS	P#                  V4      pWƒJ d   K  V P                  \        VRV4      4       K9  	  MÄ\%        V 4      '       d²   V'       d'   \        \	        \
        4      4      P                  4       M/ o	V'       g   V P                  p MnV P&                  p\        \!        V 4      4      p V P                  4        F7  pWsJ d   K
  S	P#                  V4      pV P                  \        VRV4      4       K9  	  M/ # \)        V	3R lV  4       4      #   \         d     EKø  i ; i)z`get objects defined in global scope that are referred to by func

return a dict of {name:object}Tc              3   óJ   <"  € T F  qS9   g   K  VSV,          3x € K  	  R # 5ir"   r#   )r$   r   Úglobss   & €r   r'   Úglobalvars.<locals>.<genexpr>Ú   s!   øé € ÐE©t t¸u±}Ô"��e˜D•kÕ"«tùs   ƒ#�#)r   r)   r   r   r   ÚsumÚcopyr7   rU   rO   rq   rj   rP   r*   r?   Úco_namesrk   Úgetr   Úco_namerW   )
r.   r6   rr   Ú	orig_funcr%   rO   Ú_varsÚkeyÚnested_funcrv   s
   &&&      @r   rq   rq   ¨   sÙ  ø€ ô �‡~‚~˜dŸm™m�tÜ�$×Óß/6””Yœs“^Ó$×)Ñ)Ô+¸Bˆà¤£�4Ø×(Ñ(×.Ð.¨BÒ.ˆCð$Ø #× 1Ñ 1�ô # =¸7ÓC×IÐIÀr�Ø—‘˜EÔ"Ø—‘˜UÖ#ñ /ð 	�‰�Y×*Ñ*×0Ð0¨bÔ1çØ�K‰K˜	×*Ñ*×3Ñ3Ö4à�K‰Kœ i×&8Ñ&8Ó9Ô:à—y‘y–{�Ø#Ÿi™i¨›n�ØÓ+áØ—‘œJ {°D¸'ÓBÖCò #ô 
��Šß/6””Yœs“^Ó$×)Ñ)Ô+¸BˆçØ—=‘=‰DàŸ™ˆIÜ”} TÓ*Ó+ˆDà—y‘y–{�ØÓ#áØ#Ÿi™i¨›n�Ø—‘œJ {°D¸'ÓBÖCò #ð ˆ	äÔE©tÓEÓEÐEøôM ô Ûðús   ÂI+É+I;É:I;c                ón   € \        V 4      p \        V 4      '       g   R# V P                  V P                  3# )zpget names of variables defined by func

returns a tuple (local vars, local vars referrenced by nested functions)r#   )r&   r   Úco_varnamesÚco_cellvarsrB   s   &r   Úvarnamesr„   Ý   s2   € ô �‹:€DÜ�$�<Š<Øˆ	Ø×Ñ˜T×-Ñ-Ð-Ð-r   c                ól  € \        V R4      '       g$   \        V ^ W4      3 Uu. uF
  q3f   K  VNK  	  up# \        V RR4      '       d   V P                  4       MT p . pV  Uu. uF'  qUV9  g   K  VP	                  \        V^ W4      4      NK)  	   pV Uu. uF
  q3f   K  VNK  	  up# u upi u upi u upi )z'get items in object that fail to pickleÚ__iter__NÚvalues)rH   Ú
badobjectsrG   r‡   Úappend)r%   ÚexactÚsafeÚjÚ_objÚis   &&&   r   Úbaditemsr�   ç   s¥   € ä�3�z×"Ò"Ü& s¨1¨UÓ8Ñ:ÓLÑ:�a—�Ñ:ÑLÐLÜ! # h¨t×4Ò4ˆ#�*‰*Œ,¸#€CØ€DÙ69ÓK±c°Àd¹]Ô,€T‡[�[”˜A˜a Ó+Ö,±cÑKÙÓ-‘t�!�AˆA‘tÑ-Ð-ùò	 Mùò LùÚ-s"   £B'­B'Á!B,Á. B,ÂB1ÂB1c                ó”   a aaaa€ ^ RI Ho S'       g   S! S SS4      '       d   R# S # \        VVV VV3R l\        S 4       4       4      # )zget objects that fail to pickle©ÚpicklesNc              3   óž   <"  € T FB  pS! \        SV4      SS4      '       d   K  V\        \        SV4      S^,
          SS4      3x € KD  	  R# 5i©é   N)rG   rˆ   ©r$   ÚattrÚdepthrŠ   r%   r’   r‹   s   & €€€€€r   r'   Úbadobjects.<locals>.<genexpr>÷   sI   øé € ð NÙˆt¡w¬w°s¸4Ó/@ÀÀt×'Lô J�$œ
¤7¨3¨tÓ#4°U¸1µW¸UÀ4ÓHÕIÛùó
   ƒA¤)A)Údillr’   rW   Údir©r%   r˜   rŠ   r‹   r’   s   ffff@r   rˆ   rˆ   ñ   sG   ü€ åßÙ�3�u˜T×"Ò"©4Øˆ
Ü÷ Nð NÜ˜3”xóNó Oð Or   c                ó¦   a aaaa€ ^ RI Ho S'       g   S! S SS4      '       d   R# \        S 4      # \        VVV VV3R l\	        S 4       4       4      # )z)get types for objects that fail to pickler‘   Nc              3   óž   <"  € T FB  pS! \        SV4      SS4      '       d   K  V\        \        SV4      S^,
          SS4      3x € KD  	  R# 5ir”   )rG   Úbadtypesr–   s   & €€€€€r   r'   Úbadtypes.<locals>.<genexpr>   sI   øé € ð NÙˆt¡w¬w°s¸4Ó/@ÀÀt×'Lô H�$œ¤¨¨TÓ!2°5¸µ7¸5ÀÓFÕGÛùrš   )r›   r’   ÚtyperW   rœ   r�   s   ffff@r   r    r    ú   sL   ü€ åßÙ�3�u˜T×"Ò"©4Ü�C‹yÐÜ÷ Nð NÜ˜3”xóNó Oð Or   c                ó,  € ^ RI HpHp V'       gc    V! V 4      pV'       d   W`8X  g   Q RV: RV : 24       h\        V4      \        V 4      8X  g"   Q R\        V4      : R\        V 4      : 24       hR# / p\        V 4       F5  p	 \        W	4      p
T! Y¢T4      '       d   K   \        Y¡^,
          Y#4      Y‰&   K7  	  V#   \         d    ^ RIpTP                  4       ^,          u # i ; i  \         d"    ^ RIpTP                  4       ^,          Y‰&    K’  i ; i)z*get errors for objects that fail to pickle)r’   ry   zUnpickling produces z instead of N)
r›   r’   ry   r¢   r,   r`   Úexc_inforœ   rG   Úerrors)r%   r˜   rŠ   r‹   r’   ry   Úpikr`   Ú_dictr—   Ú_attrs   &&&&       r   r¥   r¥     sÿ   € ç"ßð
	%Ù�s“)ˆCßØ”zñ GÛ>AÂ#ÐFóG�zä˜“9¤ S£	Ô)ñ OÜ:>¸s¾)ÄDÈÅIÐNóOÐ)áð €EÜ�C–ˆð	Ü˜CÓ%ˆEñ
 �u 4×(Ô(Ü  ¨Q¥w¨uÓ:ˆE‹Kñ ð €Løô ô 	%ÛØ—<‘<“> !Õ$Ò$ð	%ûô ô 	ÛØŸ,™,›.¨Õ+ˆE‰KÚð	ús)   ’B; ¢AB; ÂC'Â;&C$Ã#C$Ã'(DÄD)r�   rˆ   r    r&   r¥   rX   r   rq   r:   rk   r3   rs   rK   r   r„   )NF)T)TF)FF)é    FF)Ú__doc__rc   r   r   r   r   r   r   Úpointersr   r   r	   r
   r   Úloggerr   Ú__all__r   r3   r:   r&   rK   rX   rk   rs   rq   r„   r�   rˆ   r    r¥   r#   r   r   Ú<module>r®      sp   ðñó ß FÕ Fç >Õ >Ý òB€ô?òô8ò
ôò>%ô,ô25ô2Fòj.ô.ôOôOör   