HEX
Server: LiteSpeed
System: Linux server902.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: deshuvsd (2181)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //opt/hc_python/lib64/python3.12/site-packages/greenlet/tests/__pycache__/leakcheck.cpython-312.pyc
�

J�/iD1��z�ddlmZddlZddlZddlZddlmZddlZddlZejjd�Zejjd�xseZejjd�Z
exse
Zejjd�Zexsejjd�Zejjd	�Zejjd
�Zd�Zd�ZGd
�de�Zeed�rGd�de�Ze�e_eZnd�ZGd�de�ZGd�de�Zd�Zy)�)�print_functionN)�wraps�GITHUB_ACTIONS�TRAVIS�APPVEYOR�GREENLET_MANYLINUX�GREENLET_SKIP_LEAKCHECKS� GREENLET_SKIP_FAILING_LEAKCHECKS� GREENLET_ONLY_FAILING_LEAKCHECKSc��d|_|S)a�
    Ignore the given object during leakchecks.

    Can be applied to a method, in which case the method will run, but
    will not be subject to leak checks.

    If applied to a class, the entire class will be skipped during leakchecks. This
    is intended to be used for classes that are very slow and cause problems such as
    test timeouts; typically it will be used for classes that are subclasses of a base
    class and specify variants of behaviour (such as pool sizes).
    T)�ignore_leakcheck��funcs �I/opt/hc_python/lib64/python3.12/site-packages/greenlet/tests/leakcheck.py�ignores_leakcheckrLs��!�D���K�c�V�d|_trtjd�|�}|S)z2
    Mark that the function is known to leak.
    TzSkipping known failures)�fails_leakcheck�SKIP_FAILING_LEAKCHECKS�unittest�skiprs rrr[s*�� �D���7�x�}�}�6�7��=���Krc��eZdZy)�LeakCheckErrorN)�__name__�
__module__�__qualname__�rrrrds��rr�
getobjectsc��eZdZd�Zd�Zy)�_MockGCc�,�tjd�S)Nr)�sysr��selfs r�get_objectsz_MockGC.get_objectsls���>�>�!�$�$rc�"�tt|�S�N)�getattr�gc)r$�names  r�__getattr__z_MockGC.__getattr__ns���2�t�$�$rN)rrrr%r+rrrr r ks��	%�	%rr c��|S)a
        Decorator for a function that is known to fail when running
        strict (``sys.getobjects()``) leakchecks.

        This type of leakcheck finds all objects, even those, such as
        strings, which are not tracked by the garbage collector.
        rrs r�fails_strict_leakcheckr-ss	���rc��eZdZd�Zd�Zy)�!ignores_types_in_strict_leakcheckc��||_yr')�types)r$r1s  r�__init__z*ignores_types_in_strict_leakcheck.__init__~s	����
rc�(�|j|_|Sr')r1�leakcheck_ignore_types)r$rs  r�__call__z*ignores_types_in_strict_leakcheck.__call__�s��&*�j�j��#��rN)rrrr2r5rrrr/r/}s���rr/c�D�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�_RefCountCheckerr)�uop_executorc�X�||_||_g|_i|_d|_d|_y)NrF)�testcase�function�deltas�
peak_stats�
ignored_types�needs_setUp)r$r:r;s   rr2z_RefCountChecker.__init__�s0�� ��
� ��
����������!��rc��||uryt|�}|t|j�k(r'	|jj|�}|t
ur|ry|jj�D]}||us�y||jvs&||jvs|j|jvryy#t$r!|jj	|�dk(}Y��wxYw)NFrT)�type�_include_object_p�__eq__�AttributeError�__cmp__�NotImplemented�__dict__�valuesr>�
IGNORED_TYPESr�IGNORED_TYPE_NAMES)r$�obj�kind�exact_method_equals�xs     rrBz"_RefCountChecker._include_object_p�s���
�$�;���C�y���4��.�.�/�/�
O�&*�&<�&<�&C�&C�C�&H�#�#�.�8�=P�����%�%�'�A��a�x��(�
�D�&�&�&��t�)�)�)��}�}�� 7� 7�7����/"�
O�'+�&<�&<�&D�&D�S�&I�Q�&N�#�	
O�s�B+�+'C�Cc�Z�tjd|j|j��S)N)�limitr=�filter)�objgraph�growthr=rBr#s r�_growthz_RefCountChecker._growth�s$�����T�d�o�o�&*�&<�&<�>�	>rc��|syg}td�|D��}|D]\}}}|jd||||fz�� dj|�}|S)Nz<Unable to calculate growth>c3�:K�|]\}}}t|����y�wr')�len)�.0r*�_s   r�	<genexpr>z0_RefCountChecker._report_diff.<locals>.<genexpr>�s����7��*�$��1�C��I��s�z%-*s%9d %+9d�
)�max�append�join)r$rS�lines�widthr*�count�delta�diffs        r�_report_diffz_RefCountChecker._report_diff�s]���1����7��7�7��"(��D�%���L�L��5�$��u�*E�E�F�#)��y�y�����rc��tj�}tj�|jr+|jj�d|j_	|j|jg|��i|��|jj�|jj�d|j_d|_|rtj�yy#|jj�|jj�d|j_d|_|rtj�wwxYw)NFT)r)�	isenabled�disabler?r:�setUp�skipTearDownr;�tearDown�
doCleanups�enable)r$�args�kwargs�
gc_enableds    r�	_run_testz_RefCountChecker._run_test�s����\�\�^�
�
�
�
������M�M���!�).�D�M�M�&�	��D�M�M�$�-�-�9�$�9�&�9��M�M�"�"�$��M�M�$�$�&�)-�D�M�M�&�#�D����	�	����	
�M�M�"�"�$��M�M�$�$�&�)-�D�M�M�&�#�D����	�	���s
�! C%�%A%E
c���dtjvr!tjdj�dtjvr!tjdj�|j�S)N�urlparsezurllib.parse)r"�modules�clear_cacherTr#s r�
_growth_afterz_RefCountChecker._growth_after�sR������$��K�K�
�#�/�/�1��S�[�[�(��K�K��'�3�3�5��|�|�~�rc�t�|j}|sytjrtdtj����|ddddgk(rt	|�dvry|ddgd�k(ryt	|�d	k\rt|d
d�dk(ryt	|�dk\r@|ddkDr8|d|dk(r-|d|dk(r"|j
|�}td
|�d|����t|dd�dks(t|d
d�dks|d
djd�dk\rd}nd}t	|�|k\r td
|�d|j
|�����y)NTz Generated uncollectable garbage ���r)��F���)rrr����ry���zrefcount increased by r[rx��)r<r)�garbagerrW�sumrdra)r$rSr<rcrPs     r�
_check_deltasz_RefCountChecker._check_deltas�sZ��
������
�:�:� ����!U�V�V��"�#�;�1�a�&� �S��[�F�%:���"�#�;�)�#���v�;�!���F�2�3�K� 0�A� 5���v�;�!���r�
�Q��6�"�:����3K�PV�WY�PZ�^d�eg�^h�Ph��$�$�V�,�D� �6�4�!P�Q�Q��v�b�c�{��q� �C��r�s��$4��$9�V�B�C�[�=N�=N�q�=Q�UV�=V��E��E��v�;�%�� �$*�$(�$5�$5�f�$=�"?�@�
@�
rc�4�td�D]}tj��t|jdd�}|rd|j
_t|jdd�|_|j�}	|j|�r_|j||�|j�}|jjtd�|D���|j|�r�_|rtd|j�d	���y#t$r|s�YywxYw)
NryrFTr4rc3�&K�|]	}|d���y�w)rxNr)rX�stats  rrZz,_RefCountChecker.__call__.<locals>.<genexpr><s����'C�F�D��Q��F�s�z	Expected z to leak but it did not.)�ranger)�collectr(r;r:�expect_greenlet_leakr>rTr�rprur<r]r�r)r$rmrnrY�expect_failurerSs      rr5z_RefCountChecker.__call__)s����q��A��J�J�L��!����0A�5�I���15�D�M�M�.�$�T�]�]�4L�b�Q��������	_��$�$�V�,����t�V�,��+�+�-�����"�"�3�'C�F�'C�#D�E��$�$�V�,��$�d�m�m�%]�^�^���	�	�!��"�	�s�<A/D�D�DN)
rrrrIrJr2rBrTrdrprur�r5rrrr7r7�s<��
�M���	!�(�T>�
��"�/�b_rr7c�X��t�dd�str�St���fd��}|S)Nr
Fc���t|dd�rtjd��tr"t�dd�stjd��t	|��||�S)Nr
Fz$This class ignored during leakchecksrz(Only running tests that fail leakchecks.)r(r�SkipTest�ONLY_FAILING_LEAKCHECKSr7)r$rmrn�methods   �r�wrapperzwrap_refcount.<locals>.wrapperHsZ����4�+�U�3��#�#�$J�K�K�"�7�6�;L�e�+T��#�#�$N�O�O�-���f�-�d�F�;�;r)r(�SKIP_LEAKCHECKSr)r�r�s` r�
wrap_refcountr�Ds4����v�)�5�1�_��
�
�6�]�<��<��Nr)�
__future__r�osr"r)�	functoolsrrrR�environ�get�RUNNING_ON_GITHUB_ACTIONS�RUNNING_ON_TRAVIS�RUNNING_ON_APPVEYOR�
RUNNING_ON_CI�RUNNING_ON_MANYLINUXr�rr�rr�AssertionErrorr�hasattr�objectr r-r/r7r�rrr�<module>r�s&��0&�	�
�	����B�J�J�N�N�+;�<���J�J�N�N�8�,�I�0I���j�j�n�n�Z�0��!�8�%8�
��z�z�~�~�&:�;��&�T�"�*�*�.�.�9S�*T���*�*�.�.�)K�L���*�*�.�.�)K�L��
��	�^�	��3���%�&�%�
�)�H�K�,������~_�v�~_�@r