Edit File: detect.cpython-311.pyc
� ����q�dS+�����������������������������d�Z�ddlZddlmZmZmZmZmZ�ddlm Z m Z mZmZm Z �ddlmZ�g�d�Zdd �Zd ��Zdd�Zd ��Zdd�Zd��Zdd�Zdd�Zdd�Zd��Zdd�Zdd�Zdd�Zdd�ZdS�)z= Methods for detecting objects leading to pickling failures. �����N)�ismethod� isfunction�istraceback�isframe�iscode����)�parent� reference�at�parents�children)�trace)�baditems� badobjects�badtypes�code�errors�freevars� getmodule� globalvars� nestedcode� nestedglobals� outermost�referredglobals�referrednestedr����varnamesFc�����������������������ddl�m}��||�|������������}|s|s|S�ddl}ddlm}��||�d�������������}|t����������|�����������������������������������������������v�r|ndS�)zget the module of the objectr���)r���Nr���)�getnameT)�force)�inspectr����builtins�sourcer����vars�keys)�object� _filenamer����getmod�moduler!���r����names��� �\/builddir/build/BUILD/cloudlinux-venv-1.0.2/venv/lib/python3.11/site-packages/dill/detect.pyr���r������s�������+�+�+�+�+�+� �V�F�I� &� &�F� �)�U�)�6�M��O�O�O��������7�6��&�&�&�D��t�H�~�~�2�2�4�4�4�4�8�8�$�>�����c�����������������������t����������|�������������r|�j��������j��������pi�}nt����������|�������������r |�j��������pi�}ndS�|�����������������������������������}ddlm}��||�d�������������\��}}n#�t����������$�r�g�d}}Y�nw�xY�wd���������������������|��������������fd�|D���������������}|D�]+\��}} ��||������������||fk����r|c�S��#�t����������$�r�Y��(w�xY�wdS�)z�get outermost enclosing object (i.e. the outer function in a closure) NOTE: this is the object-equivalent of getsource(func, enclosing=True) Nr���)�getsourcelinesT)� enclosing��c��������������3����.����K����|�]\��}}|�v�� ||fV����d�S��N��)�.0r)����objr���s��� �r*���� <genexpr>zoutermost.<locals>.<genexpr>3���s/�����������E�E�j�t�C������S�z�����E�Er+���) r����__func__�__globals__r����itemsr"���r-���� Exception�join) �func�_globalsr-����lines�lnum�_localsr)���r4���r���s ��� @r*���r���r��� ���s4������ ���~�~����=�,�2���� �D� � ����#�)�r������~�~���H�&�&�&�&�&�&�$�n�T�T�:�:�:���t�t�����������d�������� �7�7�5�>�>�D�E�E�E�E�H�E�E�E�G��������S� ��~�c�"�"�u�T�l�2�2�3�J�J�J�2���� �� �� ��D� ���� �Fs$����A&��&A7�6A7�%B;�; C�CTc������������������(����t����������|�������������}�t����������|�������������sg�S�t������������������������}|�j��������D�]N}|��t����������|������������}|r8|���������������������|�������������|r!|t����������t����������|d�������������������������z��}�Ot ����������|������������S�)zAget the code objects for any nested functions (e.g. in a closure)NT��recurse)r���r����set� co_consts�addr����list)r;���rB����nested�cos��� r*���r���r���<���s���������:�:�D��$�<�<�"��� �U�U�F��n��D��D�� �:�x� �"�X�X�� �� D��J�J�r�N�N�N��C��#�j��T�&B�&B�&B�"C�"C�C�����<�<�r+���c������������������������t����������|�������������r|�j��������}�t����������|�������������r|�j��������}�t ����������|�������������r|�j��������}�t ����������|�������������r|�j��������}�t����������|�������������r|�S�dS�)z~get the code object for the given function or method NOTE: use dill.source.getsource(CODEOBJ) to get the source code N) r���r6���r����__code__r����tb_framer����f_coder����r;���s��� r*���r���r���I���se������ ���~�~�+�d�m�t��$���-�� ���4���.���$��t�}�}�(�T�[�d� �d�|�|� �D�[� �Fr+���c����������������������ddl�}t������������������������}t����������|�|������������D�]�}|���������������������|������������D�]�}t ����������|dd������������}t ����������|dd������������|u�r|���������������������|��������������<t ����������|dd������������|u�r|���������������������|��������������et ����������|dd������������|u�r|���������������������|���������������t ����������|d������������r||u�r|���������������������|�����������������t����������|������������S�)aJ��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. r���Nr6���rJ���rL����co_code)�gcrC���r���� get_referrers�getattrrE����hasattrrF���)r;���rB���rP����funcsrH���r4����_s��� r*���r���r���V���s�������I�I�I��E�E�E���w�'�'��G��G���#�#�B�'�'�� G�� G�C���Z��.�.�A��q�*�d�+�+�r�1�1�5�9�9�S�>�>�>�>���j�$�/�/�2�5�5�u�y�y��~�~�~�~���h��-�-��3�3�U�Y�Y�s�^�^�^�^���i�(�(�F�S�B�Y�Y�� � �#����� G����;�;�r+���c��������������������������t������������������������r��j����������t������������������������r��j��������pd���j��������j����������ni�S����fd�}t �����������|��������������������������S�)zgget objects defined in enclosing code that are referred to by func returns a dict of {name:object}r2���c���������������3��������K����t������������������������D�])\��}�} �|j��������}n#�t����������$�r�Y��w�xY�w|�|j��������fV����*d�S�r1���)�zip� cell_contents� ValueError)r)����crY����closuresr;���s��� ��r*����get_cell_contentsz#freevars.<locals>.get_cell_contents����sr������������4��*�*�� (�� (�G�D�!� � !�� � ���� �� �� ��� �������'�'�'�'�'� (�� (s����"� /�/)r���r6���r����__closure__rJ����co_freevars�dict)r;���r]���r\���s���` @r*���r���r���u���s~�����������~�~�+�d�m�t��$������#�)�r���}�(���� �(��(��(��(��(��(���!�!�#�#�$�$�$r+���c����������������������t����������|�������������}�|��t������������������������S�ddl}ddlm}�|j��������dk����}t ������������������������}�|d������������5�}t����������j��������|��������������ddd�������������n#�1�swxY�w�Y���|������������������������������������ ����������������������������������D�]{}d|v�ru|� ��������������������d������������d ���������� ��������������������d ������������d���������}|r*|���������������������|���������������������dd��������������������������f|���������������������|��������������|t����������|�d t������������������������������������D�]9} | r5|r3t����������| ������������r$|���������������������t#����������| d���������������������������:t����������|������������S�)z.get the names of any globals found within funcNr���r���)�capturei���stdout�_GLOBAL�(����)zNULL + r/���rD���TrA���)r���rF����sys�temprb���� hexversionrC����dis�getvalue� splitlines�splitrE����replacerR����tupler����updater���) r;���rB���rh���rb����CAN_NULL�names�out�liner)���rH���s ��� r*���r���r�������s��������:�:�D��|�D�F�F�]��J�J�J��������~��*�H��E�E�E� ��� � ���c���� � � ��������������������������������������)�)�+�+�� �� �������:�:�c�?�?�2�&�,�,�S�1�1�!�4�D��� �� � �$�,�,�y�"�5�5�6�6�6�6�� � �$������d�K����1�1��:��:�� �� :�'�� :�f�R�j�j�� :��L�L��r�4�8�8�8�9�9�9����;�;�s����A/�/A3�6A3c������������������H�����t����������|�||�����������������������������������������������S�)z@get the names of objects in the global scope referred to by func)r���r$���)r;���rB����builtins��� r*���r���r�������s �������d�G�W�-�-�2�2�4�4�4r+���c���������������������� ��t����������|�������������r|�j��������}�t����������|��������������rd|r3t����������t ����������t ���������������������������������������������������������������������ni�� |�t������������������������}�}|j��������pi�D�]W} �|j ��������}t����������|||������������pi�}|����������������������|�������������� ���������������������|��������������H#�t����������$�r�Y��Tw�xY�w� ���������������������|j ��������pi��������������|s!|����������������������|j��������j����������������������nH|����������������������t!����������|j���������������������������������|������������������������������������D�]@}� ���������������������|������������}||u�r�|����������������������t����������|d|��������������������������An�t%����������|�������������r�|r3t����������t ����������t ���������������������������������������������������������������������ni�� |s|�j��������}�n{|�j��������}t����������t!����������|�������������������������}�|������������������������������������D�]@}||u�r�� ���������������������|������������}|����������������������t����������|d|��������������������������Ani�S�t)����������� fd�|�D���������������������������S�)zdget objects defined in global scope that are referred to by func return a dict of {name:object}Tc��������������3����4����K����|�]}|�v��|�|���������fV����d�S�r1���r2���)r3���r)����globss��� �r*���r5���zglobalvars.<locals>.<genexpr>����s0�����������E�E�t�t�u�}�}��e�D�k�"�}�}�}�}�E�Er+���)r���r6���r���r#���r����sum�copyrC���r^���rY���r���rq���rZ���r7���rJ����co_namesr����getr����co_namer`���) r;���rB���rw���� orig_funcr4���rY����_vars�key�nested_funcrz���s ��� @r*���r���r�������s����������~�~�+�d�m�t��$����+�/6�>��Y�s�^�^�$�$�)�)�+�+�+�B������4� ��(�.�B�� $�� $�C� $� #� 1� ��#�=�'�7�C�C�I�r�����E�"�"�"����U�#�#�#�#����� �� �� ��� ����� ���Y�*�0�b�1�1�1��� D��K�K� �*�3�4�4�4�4��K�K� �i�&8�9�9�:�:�:��y�y�{�{�� D�� D��#�i�i��n�n���)�+�+�����J�{�D�'�B�B�C�C�C�C� D�� ������/6�>��Y�s�^�^�$�$�)�)�+�+�+�B���� D��=�D�D���I��}�T�*�*�+�+�D��y�y�{�{�� D�� D���)�#�#��#�i�i��n�n�����J�{�D�'�B�B�C�C�C�C� D��� ��E�E�E�E�t�E�E�E�E�E�Es����;C��� C �C c������������������^�����t����������|�������������}�t����������|�������������sdS�|�j��������|�j��������fS�)ztget names of variables defined by func returns a tuple (local vars, local vars referrenced by nested functions)r2���)r���r����co_varnames�co_cellvarsrM���s��� r*���r���r�������s3���������:�:�D��$�<�<����r���T�-�-�-r+���c���������������������������t����������|�d������������sd��t����������|�d��������������fD���������������S�t����������|�dd������������r|������������������������������������n|�}�g�����fd�|�D����������������d���D���������������S�)z'get items in object that fail to pickle�__iter__c�����������������������g�|�]}|�|��S�r1���r2����r3����js��� r*���� <listcomp>zbaditems.<locals>.<listcomp>����s������L�L�L�a�a�m��m�m�mr+���r����valuesNc����������� �������b������g�|�]+}|�v������������������������t����������|d�����������������������������,S�)r���)�appendr���)r3����i�_obj�exact�safes��� ���r*���r����zbaditems.<locals>.<listcomp>����s8�������K�K�K��Q�d�]�]�T�[�[��A�a��d�+�+�,�,�]�]�]r+���c�����������������������g�|�]}|�|��S�r1���r2���r����s��� r*���r����zbaditems.<locals>.<listcomp>����s������-�-�-�!�q�}�A�}�}�}r+���)rS���r���rR���r����)r4���r����r����r����s��� ``@r*���r���r�������s�����������3�z�"�"��M�L�L�J�s�1�U�4�8�8�:�L�L�L�L�!�#�h�t�4�4� =�#�*�*�,�,�,�#�C� �D�K�K�K�K�K�K�c�K�K�K�K�-�-�t�-�-�-�-r+���c�����������������������������ddl�m���s������������������rdS���S�t����������������fd�t������������������������D���������������������������S�)zget objects that fail to pickler�����picklesNc��������������3��������K����|�]D}��t�����������|���������������������������|t����������t�����������|�������������d�z ����������������fV����EdS��r���N)rR���r����r3����attr�depthr����r4���r����r����s��� �����r*���r5���zbadobjects.<locals>.<genexpr>����s}������������N��N��w�w�w�s�4�/@�/@��t�'L�'L�N�$� �7�3�t�#4�#4�U�1�W�U�4�H�H�I��N��N��N��N��N��Nr+���)�dillr����r`����dir�r4���r����r����r����r����s���````@r*���r���r�������s����������������������7�3�u�T�"�"�/�4�4�� ���N��N��N��N��N��N��N��N��3�x�x�N��N��N��O��O��Or+���c�����������������������������ddl�m���s������������������rdS�t������������������������S�t����������������fd�t ������������������������D���������������������������S�)z)get types for objects that fail to pickler���r����Nc��������������3��������K����|�]D}��t�����������|���������������������������|t����������t�����������|�������������d�z ����������������fV����EdS�r����)rR���r���r����s��� �����r*���r5���zbadtypes.<locals>.<genexpr>����s}������������N��N��w�w�w�s�4�/@�/@��t�'L�'L�N�$����T�!2�!2�5��7�5��F�F�G��N��N��N��N��N��Nr+���)r����r�����typer`���r����r����s���````@r*���r���r�������s����������������������7�3�u�T�"�"�/�4�4��C�y�y����N��N��N��N��N��N��N��N��3�x�x�N��N��N��O��O��Or+���c������������������N����ddl�m}m}�|s� ��||�������������}|r||�k����sJ�d|�d|������������������t����������|������������t����������|�������������k����s*J�dt����������|�������������dt����������|������������������������������dS�#�t����������$�r!�ddl}|�����������������������������������d���������cY�S�w�xY�wi�}t����������|�������������D�]j} �t����������|�| ������������} n1#�t����������$�r$�ddl}|�����������������������������������d���������|| <���Y��Aw�xY�w�|| ||������������st����������| |dz ��||������������|| <����k|S�)z*get errors for objects that fail to pickler���)r����r|���zUnpickling produces z instead of Nr���) r����r����r|���r����r9���rh����exc_infor����rR���r���)r4���r����r����r����r����r|����pikrh����_dictr�����_attrs��� r*���r���r������s������"�"�"�"�"�"�"�"���%� %��$�s�)�)�C��� G��c�z�z�z�z�>A�c�c�#�#�F��"�z�z���9�9��S� � �)�)�)�)�:>�s�)�)�)�)�D��I�I�I�N��*�)�)��4���� %�� %�� %��J�J�J��<�<�>�>�!�$�$�$�$� %����� �E��C����;��;�� ��C��%�%�E�E���� �� �� ��J�J�J��,�,�.�.��+�E�$�K��H� ������w�u�U�4�(�(�� ;� ��u�Q�w�u�T�:�:�E�$�K���Ls$����A-A;��;(B&�%B&�=C�+C<�;C<)NF)T)TF)FF)r���FF)�__doc__rk���r ���r���r���r���r���r����pointersr ���r ���r���r���r ����loggerr����__all__r���r���r���r���r���r���r���r���r���r���r���r���r���r���r2���r+���r*����<module>r�������s���������� � � ��F��F��F��F��F��F��F��F��F��F��F��F��F��F��>��>��>��>��>��>��>��>��>��>��>��>��>��>�������������B��B��B��?��?��?��?������8������� �� �� ��������>%��%��%�,�������,5��5��5��5�2F��2F��2F��2F�j.��.��.�.��.��.��.�O��O��O��O�O��O��O��O�����������r+���