
    h                     &   d Z ddlZdZ ej                         Zg Z G d d      Z G d dej                        Zd Z e e             Zej                         Z
ej                  de
f        ed	e
d
       ej                           ede       y)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                       e Zd Zd Zy)RunCallablec                 X    t         j                  d       t        j                  d       y )N)r   __del__zfrom RunCallable)resultsappendmainswitch)selfs    RD:\EasyAligner\venv\Lib\site-packages\greenlet/tests/fail_clearing_run_switches.pyr   zRunCallable.__del__   s    12&'    N)__name__
__module____qualname__r    r   r   r   r      s    (r   r   c                       e Zd Zd Zy)Gc                 n    |dk(  rt         j                  d       t        S t        j	                  | |      S )Nrun)zG.__getattribute__r   )r   r   run_funcobject__getattribute__)r   names     r   r   zG.__getattribute__   s.    5=NN89O&&tT22r   N)r   r   r   r   r   r   r   r   r      s    3r   r   c                  .    t         j                  d       y )N)r   enter)r   r   r   r   r   r   r       s    NN()r   zmain: g.switch()zIn main withT)flushRESULTS)__doc__greenletg
getcurrentr	   r   r   r   r   r
   xr   printr   r   r   <module>r$      s    x
( (3 3* km
 HHJ "A& ' nat $ 
 i r   