a
    [ŠÝgï  ã                   @   sˆ   d Z ddlZdZe ¡ Zg ZG dd„ dƒZG dd„ dejƒZdd„ Zeeƒ ƒZe 	¡ Z
e d	e
f¡ ed
e
dd e 	¡  edeƒ dS )a  
If we have a run callable passed to the constructor or set as an
attribute, but we don't actually use that (because ``__getattribute__``
or the like interferes), then when we clear callable before beginning
to run, there's an opportunity for Python code to run.

é    Nc                   @   s   e Zd Zdd„ ZdS )ÚRunCallablec                 C   s   t  d¡ t d¡ d S )N)r   Ú__del__zfrom RunCallable)ÚresultsÚappendÚmainÚswitch)Úself© r	   úw/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/greenlet/tests/fail_clearing_run_switches.pyr      s    
zRunCallable.__del__N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r      s   r   c                   @   s   e Zd Zdd„ ZdS )ÚGc                 C   s"   |dkrt  d¡ tS t | |¡S )NÚrun)úG.__getattribute__r   )r   r   Úrun_funcÚobjectÚ__getattribute__)r   Únamer	   r	   r
   r      s    
r   N)r   r   r   r   r	   r	   r	   r
   r      s   r   c                   C   s   t  d¡ d S )N)r   Zenter)r   r   r	   r	   r	   r
   r       s    r   zmain: g.switch()zIn main withT)ÚflushZRESULTS)Ú__doc__ZgreenletÚgZ
getcurrentr   r   r   r   r   r   Úxr   Úprintr	   r	   r	   r
   Ú<module>   s   	
