Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.189.157.115
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : multicall.cpython-311.pyc
�

Tf�H��\�dZddlZddlZddlZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd
ZdZdZdZ ej!dkr	dZ"eeee fZ#ndZ"eeeefZ#d�e$e%e"����D��Z&d Z'Gd!�d"��Z(e$de%e"��z��Z)d#�e)D��Z*d$�Z+e+e)��Z,gZ-e)D]CZ.dZ/e$e%e"����D]Z0de0ze.zre/e#e0zZ/�e-�1e/���DGd%�d&��Z2d'Z3e2fdze(fe%e3��dz
zzZ4d(�e$e%e3����D��Z5ej6d)��Z7ej6d*��Z8d+�Z9d,�Z:iZ;d-�Z<d.�Z=e>d/kr'dd0l?m@Z@e@d1dd2�3��dd4lAmBZBeBe=��dSdS)5a�
MultiCall - a class which inherits its methods from a Tkinter widget (Text, for
example), but enables multiple calls of functions per virtual event - all
matching events will be called, not only the most specific one. This is done
by wrapping the event functions - event_add, event_delete and event_info.
MultiCall recognizes only a subset of legal event sequences. Sequences which
are not recognized are treated by the original Tk handling mechanism. A
more-specific event will be called before a less-specific event.

The recognized sequences are complete one-event sequences (no emacs-style
Ctrl-X Ctrl-C, no shortcuts like <3>), for all types of events.
Key/Button Press/Release events can have modifiers.
The recognized modifiers are Shift, Control, Option and Command for Mac, and
Control, Alt, Shift, Meta/M for other platforms.

For all events which were handled by MultiCall, a new member is added to the
event instance passed to the binded functions - mc_type. This is one of the
event type constants defined in this module (such as MC_KEYPRESS).
For Key/Button events (which are handled by MultiCall and may receive
modifiers), another member is added - mc_state. This member gives the state
of the recognized modifiers, as a combination of the modifier constants
also defined in this module (for example, MC_SHIFT).
Using these members is absolutely portable.

The order by which events are called is defined by these rules:
1. A more-specific event will be called before a less-specific event.
2. A recently-binded event will be called before a previously-binded event,
   unless this conflicts with the first rule.
Each function will be called at most once for each event.
�N���������	�
���
���������� �@��darwin)��Shift��Control)�Option)�Command)r)�Altr)�Meta�Mc�4�i|]}t|D]}||���S�)�
_modifiers��.0�number�names   �:/usr/local/python-3.11/lib/python3.11/idlelib/multicall.py�
<dictcomp>r.7sD��9�9�9�#�%/��%7�9�9�!���9�9�9�9�zapplication has been destroyedc�&�eZdZd�Zd�Zd�Zd�ZdS)�
_SimpleBinderc��||_dt|dzdz|_||_||_g|_d|_dS)N�<r�>)�type�_types�sequence�widget�
widgetinst�bindedfuncs�	handlerid)�selfr5r8r9s    r-�__init__z_SimpleBinder.__init__JsC����	��F�4�L��O�+�C�/��
����$����������r/c��|js;|j|jfd�}|j�|j|j|��|_|j�|��dS)Nc��||_i}tt|��dz
dd��D]$}||}||vrd||<||��}|r|cS�%dS)Nr���T)�mc_type�range�len)�event�lrA�	wascalled�i�func�rs       r-�handlerz#_SimpleBinder.bind.<locals>.handlerTsy�� '��
��	��s�1�v�v�a�x��R�0�0�%�%�A��Q�4�D��9�,�,�*.�	�$�� �D��K�K���%�#$�H�H�H��
%�%r/)r;r:r5r8�bindr9r7�append)r<�tripletrHrJs    r-rKz_SimpleBinder.bindRsp���~�	F�#'�#3�t�y�	
%�	
%�	
%�	
%�"�[�-�-�d�o�.2�m�W�F�F�D�N������%�%�%�%�%r/c��|j�|��|js4|j�|j|j|j��d|_dSdS�N)r:�remover8�unbindr9r7r;)r<rMrHs   r-rQz_SimpleBinder.unbindbsY�������%�%�%���	"��K���t���
�t�~�N�N�N�!�D�N�N�N�	"�	"r/c���|jr`	|j�|j|j|j��dS#t
j$r }t|jdvr�Yd}~dSd}~wwxYwdS�Nr)	r;r8rQr9r7�tkinter�TclError�APPLICATION_GONE�args)r<�es  r-�__del__z_SimpleBinder.__del__hs����>�	�
���"�"�4�?�D�M���(�(�(�(�(���#�
�
�
�'�1�6�!�9�4�4��5�4�4�4�4�4�����
����		�	s�+6�A%�A � A%N)�__name__�
__module__�__qualname__r=rKrQrYr'r/r-r1r1IsP���������&�&�&� "�"�"�����r/r1c�v��g|]5�d��fd�tt��D������6S)�c3�D�K�|]\}}d|z�z�
|ddzV��dS)rr�-Nr')r*rG�m�ss   �r-�	<genexpr>z<listcomp>.<genexpr>wsP�����)�)� �A�q���F�a�<�)��!��S��)�)�)�)�)�)r/)�join�	enumerater(�r*rbs @r-�
<listcomp>rgwsg���"�"�"�����)�)�)�)�$-�j�$9�$9�)�)�)�)�)�"�"�"r/c���d�}g}|D]I�t�fd�|D����}|�|d���|�|���J|S)z�For each item of states return a list containing all combinations of
    that item with individual bits reset, sorted by the number of set bits.
    c�B�d}|rt|d��\}}||z
}|�|S)znumber of bits set in n base 2rr)�divmod)�n�nb�rems   r-�nbitszexpand_substates.<locals>.nbits�s:��
���	��A�q�\�\�F�A�s��#�I�B��	��	r/c���h|]}�|z��Sr'r')r*�x�states  �r-�	<setcomp>z#expand_substates.<locals>.<setcomp>�s���4�4�4��%�!�)�4�4�4r/T)�key�reverse)�list�sortrL)�statesrn�	statelist�	substatesrqs    @r-�expand_substatesrz|s}�������I��$�$���4�4�4�4�V�4�4�4�5�5�	����5�$��/�/�/�����#�#�#�#��r/c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�_ComplexBinderc�,�||||j|jfd�}|S)Nc�"�dg|dd�<||_||_i}d}|D]P}tt|��dz
dd��D](}	||	}
|
|vrd||
<||	|��}|rn�)|rn�Qg|dd�<|D]}|���
g|dd�<|r|SdS)NTrr@)rA�mc_staterBrC)rD�listsrAr�ishandlerrunning�doafterhandlerrFrIrErGrH�fs            r-rJz0_ComplexBinder.__create_handler.<locals>.handler�s���$(�&��Q�Q�Q��#�E�M�%�E�N��I��A��	
�	
���s�1�v�v�a�x��R�0�0�"�"�A��Q�4�D��9�,�,�*.�	�$�� �A�a�D��K�K���"�!�E�����E��"$��Q�Q�Q��#�
�
�������� "�N�1�1�1���
���
�
r/)r�r�)r<r�rArrJs     r-�__create_handlerz_ComplexBinder.__create_handler�s1��#(�%�(�'+�'<�%)�%8�	�	�	�	�4�r/c	����|�_t|d�_|�_|�_dd�t
D��i�_g�_g�_g�_	t
D]�}�fd�t|D��}��||t|��}dt|z�jzdz}�j�|�j��j||��f����dS)Nrc��g|]}g��Sr'r'rfs  r-rgz+_ComplexBinder.__init__.<locals>.<listcomp>�s��"7�"7�"7�!�2�"7�"7�"7r/c�6��g|]}�jd|��SrO)r:)r*rGr<s  �r-rgz+_ComplexBinder.__init__.<locals>.<listcomp>�s&���J�J�J�1�T�%�d�+�A�.�J�J�Jr/r3r4)r5r6�typenamer8r9�_statesr:�
handleridsr�r��_state_subsets�_ComplexBinder__create_handler�_state_codes�_state_namesrLrK)r<r5r8r9rbr�rJ�seqs`       r-r=z_ComplexBinder.__init__�s�����	��t��Q���
����$��� �"7�"7�w�"7�"7�"7�8������!#��� ����	J�	J�A�J�J�J�J��q�8I�J�J�J�E��+�+�E�4��a��I�I�G��l�1�o�%�d�m�3�C�7�C��O�"�"�C���)9�)9�$�/�:=�w�*H�*H�$I�
J�
J�
J�
J�		J�	Jr/c	�������d�jvr�d�tD���j�d<tD]����fd��ddfD��}��|�jt���}dt
���j�d�d�d�}�j�|�j	�
�j||��f�������fd�}�js|��dS�j
�|��dS)Nrc��g|]}g��Sr'r'rfs  r-rgz'_ComplexBinder.bind.<locals>.<listcomp>�s��+@�+@�+@�1�B�+@�+@�+@r/c�V��g|]%}t�D]}�j||���&Sr')r�r:)r*�detailrGrbr<s   ��r-rgz'_ComplexBinder.bind.<locals>.<listcomp>�sP���=�=�=�$�#1�!�#4�=�=���*�6�2�1�5�=�=�=�=r/r3r`r4c�h���j�d�d����S�Nrr)r:rL�rHr<rMs���r-�<lambda>z%_ComplexBinder.bind.<locals>.<lambda>��*���t�'���
�3�G�A�J�?�F�F�t�L�L�r/)r:r�r�r5r�r�r�r�rLr8rKr9r�r�)r<rMrHr�rJr��doitrbs```    @r-rKz_ComplexBinder.bind�s[�������1�:�T�-�-�-�+@�+@��+@�+@�+@�D��W�Q�Z�(��
N�
N��=�=�=�=�=�)0���T�(:�=�=�=���/�/��t�y�0<�Q��A�A���$0��O�O�T�]�]�]�G�A�J�J�J�O����&�&��T�[�-=�-=�d�o�>A�7�.L�.L�(M�N�N�N�N�L�L�L�L�L�L���$�	-��D�F�F�F�F�F���&�&�t�,�,�,�,�,r/c�t�������fd�}�js|��dS�j�|��dS)Nc�h���j�d�d����Sr�)r:rPr�s���r-r�z'_ComplexBinder.unbind.<locals>.<lambda>�r�r/)r�r�rL)r<rMrHr�s``` r-rQz_ComplexBinder.unbind�sP�����L�L�L�L�L�L���$�	-��D�F�F�F�F�F���&�&�t�,�,�,�,�,r/c���|jD]X\}}	|j�|j||���(#tj$r}t|jdvr�Yd}~�Qd}~wwxYwdSrS)r�r8rQr9rTrUrVrW)r<r��idrXs    r-rYz_ComplexBinder.__del__�s�����	�	�G�C��
���"�"�4�?�C��<�<�<�<���#�
�
�
�'�1�6�!�9�4�4��5�4�4�4�4�����
����	�	s�!0�A�A�AN)rZr[r\r�r=rKrQrYr'r/r-r|r|�sb���������:J�J�J�.-�-�-�$-�-�-�����r/r|))�KeyPress�Key)�
KeyRelease)�ButtonPress�Button)�
ButtonRelease)�Activate)�	Circulate)�Colormap)�	Configure)�
Deactivate)�Destroy)�Enter)�Expose)�FocusIn)�FocusOut)�Gravity)�Leave)�Map)�Motion)�
MouseWheel)�Property)�Reparent)�Unmap)�
Visibilityc�4�i|]}t|D]}||���Sr')r6r)s   r-r.r.sC��1�1�1��!'���1�1���V�1�1�1�1r/z^\w+$z^[1-5]$c�B�|r|ddks|ddkrdS|dd��d��}d}|r<|dtvr-|dt|dzz}|d=|r|dtv�-|r&|dtvrt|d}|d=ndSt|tur	|s|rdSd}n[|d�d	D��vrt
}nt}|sd}n9t|��dkr$|�|d��r	|d}ndS|||fS)
a-Get a string which should describe an event sequence. If it is
    successfully parsed as one, return a tuple containing the state (as an int),
    the event type (as an index of _types), and the detail - None if none, or a
    string if there is one. If the parsing is unsuccessful, return None.
    rr3r@r4Nrr`c�(�g|]}t|��Sr')�_type_namesrfs  r-rgz#_parse_sequence.<locals>.<listcomp>$s��G�G�G�q�K��N�G�G�Gr/)r�r�)	�split�_modifier_namesr��_binder_classesr1�
_keysym_re�
_button_rerC�match)r7�words�	modifiersr5r��type_res      r-�_parse_sequencer�sq����x��{�c�)�)�X�b�\�S�-@�-@��t��Q�r�T�N� � ��%�%�E��I�
��E�!�H��/�/��Q�/�%��(�3�3�3�	��!�H���E�!�H��/�/�
���q��[�(�(��5��8�$���!�H�H��t��t��
�-�-��	��	��4��F�F��G�G�,F�G�G�G�G�G� �G�G� �G��	��F�F�
��Z�Z�1�_�_����u�Q�x�!8�!8�_��1�X�F�F��4��d�F�"�"r/c��|dr?dt|dzt|ddzdz|dzdzSdt|dzt|ddzdzS)Nrr3rrr`r4)r�r6)rMs r-�_triplet_to_sequencer�2s���q�z�F��<���
�+�+�F�7�1�:�,>�q�,A�A�#�E��q�z����	��<���
�+�+�F�7�1�:�,>�q�,A�A�#�E�Er/c�h���tvr
t�SG�fd�d���}|t�<|S)z�Return a MultiCall class which inherits its methods from the
    given widget class (for example, Tkinter.Text). This is used
    instead of a templating mechanism.
    c�~��eZdZe�ej��sJ��fd�Zd	�fd�	Zd
�fd�	Z�fd�Z	�fd�Z
d
�fd�	Zd�ZdS)�#MultiCallCreator.<locals>.MultiCallc�����j�g|�Ri|��i�_��fd�ttt����D���_dS)Nc�>��g|]}t||������Sr')r�)r*rGr<r8s  ��r-rgz@MultiCallCreator.<locals>.MultiCall.__init__.<locals>.<listcomp>Ks:���;�;�;�"#�.�a�0��F�D�A�A�;�;�;r/)r=�_MultiCall__eventinforBrCr6�_MultiCall__binders)r<rW�kwargsr8s`  �r-r=z,MultiCallCreator.<locals>.MultiCall.__init__Esq�����F�O�D�2�4�2�2�2�6�2�2�2� "�D��;�;�;�;�;�',�S��[�[�'9�'9�;�;�;�D�N�N�Nr/Nc���t|��tur�t|��dkr�|dd�dkr�|dd�dkr�||jvr�|j|}|d�8|dD]/}|j|d�||d���0||d<|d�2|dD])}|j|d�||���*n|gg|j|<��||||��S)Nr�<<����>>rr)r5�strrCr�r�rQrK)r<r7rH�add�eirMr8s      �r-rKz(MultiCallCreator.<locals>.MultiCall.bindNs#����H�~�~��$�$��X����):�):�����|�t�#�#�����
��(=�(=��t�/�/�/��)�(�3�B��!�u�(�')�!�u�N�N�G� �N�7�1�:�6�=�=�g�r�!�u�M�M�M�M� �B�q�E��!�u�(�')�!�u�K�K�G� �N�7�1�:�6�;�;�G�T�J�J�J�J��26���D�$�X�.��;�;�t�X�t�S�9�9�9r/c�j��t|��tur�t|��dkrs|dd�dkre|dd�dkrW||jvrN|j|\}}|�<|D])}|j|d�||���*d|j|d<��|||��S)Nrr�r�r�rr)r5r�rCr�r�rQ)r<r7�funcidrH�tripletsrMr8s      �r-rQz*MultiCallCreator.<locals>.MultiCall.unbind`s�����H�~�~��$�$��X����):�):�����|�t�#�#�����
��(=�(=��4�+�+�+�!%�!1�(�!;���h��#�#+�I�I����w�q�z�2�9�9�'�4�H�H�H�H�48�D�$�X�.�q�1��=�=��x��8�8�8r/c�*��||jvrdgg|j|<|j|\}}|D]i}t|��}|���|||���+|�'|j|d�||��|�|���jdS�Nr)r�r��	event_addr�rKrL�r<�virtual�	sequencesrHr�r�rMr8s       �r-r�z-MultiCallCreator.<locals>.MultiCall.event_addks�����d�.�.�.�-1�2�J�� ��)�!�-�g�6�N�D�(� �
-�
-��)�#�.�.���?��$�$�T�7�C�8�8�8�8��'���w�q�z�2�7�7���F�F�F��O�O�G�,�,�,�,�
-�
-r/c���||jvrdS|j|\}}|D]i}t|��}|���|||���+|�'|j|d�||��|�|���jdSr�)r�r��event_deleter�rQrPr�s       �r-r�z0MultiCallCreator.<locals>.MultiCall.event_delete|s�����d�.�.�.���!�-�g�6�N�D�(� �
-�
-��)�#�.�.���?��'�'��g�s�;�;�;�;��'���w�q�z�2�9�9�'�4�H�H�H��O�O�G�,�,�,�,�
-�
-r/c����|�	||jvr��||��Sttt|j|d������||��zSr�)r��
event_info�tuple�mapr�)r<r�r8s  �r-r�z.MultiCallCreator.<locals>.MultiCall.event_info�sv�����'��1A�"A�"A��(�(��w�7�7�7��S�!5�!%�!1�'�!:�1�!=�?�?�@�@��(�(��w�7�7�8�8r/c��|jD]r}|j|\}}|r^|D][}	|j|d�||���+#tj$r}t
|jdvr�Yd}~�Td}~wwxYw�sdS)Nrr)r�r�rQrTrUrVrW)r<r�rHr�rMrXs      r-rYz+MultiCallCreator.<locals>.MultiCall.__del__�s����+�
&�
&��!%�!1�'�!:���h��&�#+�&�&��&� �N�7�1�:�6�=�=�g�t�L�L�L�L��&�/�&�&�&�#3�q�v�a�y�#@�#@� %�$A�#@�#@�#@�#@�����&�����

&�
&s�'A	�	A7�A2�2A7)NNNrO)
rZr[r\�
issubclassrT�Miscr=rKrQr�r�r�rY)r8s�r-�	MultiCallr�Bs���������z�&�'�,�/�/�/�/�/�	;�	;�	;�	;�	;�	:�	:�	:�	:�	:�	:�$		9�		9�		9�		9�		9�		9�	-�	-�	-�	-�	-�"	-�	-�	-�	-�	-�	8�	8�	8�	8�	8�	8�		&�		&�		&�		&�		&r/r�)�_multicall_dict)r8r�s` r-�MultiCallCreatorr�:sl���
�� � ��v�&�&�Y&�Y&�Y&�Y&�Y&�Y&�Y&�V�Y&�Y&�Y&�v(�O�F���r/c����tj|��}|�d��tt|����d��dd���\}}|�d||dzfz��ttj��|�����	����
��dgf�fd�	}|d��|d	��|d
��|d��|d��|d
��|d��|d��|d��|d��|d��|d��dS)NzTest MultiCall�+rz+%d+%d�rc�����fd�}��d|dz|����d|dz���|dxxdz
cc<dS)Nc�&��t���dSrO)�print)rDr�s �r-rJz-_multi_call.<locals>.bindseq.<locals>.handler�s����#�J�J�J�J�Jr/z
<<handler%d>>rr)rKr�)r�rkrJ�texts`  �r-�bindseqz_multi_call.<locals>.bindseq�sp����	�	�	�	�	��	�	�/�!�A�$�&��0�0�0�����q��t�+�S�1�1�1�	�!�����	�����r/z<Key>z
<Control-Key>z<Alt-Key-a>z<Control-Key-a>z<Alt-Control-Key-a>z<Key-b>z<Control-Button-1>z
<Button-2>z<Alt-Button-1>z
<FocusOut>z<Enter>z<Leave>)rT�Toplevel�titler��int�geometryr�r��Text�pack�	focus_set)�parent�toprp�yr�r�s     @r-�_multi_callr��s����
�
�6�
"�
"�C��I�I������s�F�O�O�%�%�+�+�C�0�0����4�5�5�D�A�q��L�L��Q��C��L�(�)�)�)�)��G�L�)�)�#�.�.�D��I�I�K�K�K��N�N�����s��������G�G�����G�O�����G�M�����G������G�!�"�"�"��G�I�����G� �!�!�!��G�L�����G������G�L�����G�I�����G�I�����r/�__main__)�mainzidlelib.idle_test.test_mainmenuF)�	verbosity�exit)�run)C�__doc__�re�sysrT�MC_KEYPRESS�
MC_KEYRELEASE�MC_BUTTONPRESS�MC_BUTTONRELEASE�MC_ACTIVATE�MC_CIRCULATE�MC_COLORMAP�MC_CONFIGURE�
MC_DEACTIVATE�
MC_DESTROY�MC_ENTER�	MC_EXPOSE�
MC_FOCUSIN�MC_FOCUSOUT�
MC_GRAVITY�MC_LEAVE�MC_MAP�	MC_MOTION�
MC_MOUSEWHEEL�MC_PROPERTY�MC_REPARENT�MC_UNMAP�
MC_VISIBILITY�MC_SHIFT�
MC_CONTROL�MC_ALT�MC_META�	MC_OPTION�
MC_COMMAND�platformr(�_modifier_masksrBrCr�rVr1r�r�rzr�r�rbrIrGrLr|r6r�r��compiler�r�r�r�r�r�r�rZ�unittestr��idlelib.idle_test.htestrr'r/r-�<module>r(sz����<
�	�	�	�
�
�
�
�����
��Q�}�q��1�2B�
��A�|�1�{�1�l��
�A���x�b�I�R�*���2�
��x�2�F��y��
�b�+�b�+�2�(�R�}���d��T�F�T�7��	�t�*��<�8���F�J���Y�
�C�O�O�D�J�!�6�8�W�=�O�9�9�',�u�S�S��_�_�'=�'=�9�9�9��4��&�&�&�&�&�&�&�&�Z�%��S�S��_�_�$�
%�
%��"�"�!�"�"�"��
���$"�!�'�*�*����	���A�	�A�
�U�3�3�z�?�?�
#�
#�$�$��
��F�a�<�	$�
���#�#�A����������[�[�[�[�[�[�[�[�~
��"�#�a�'�=�*:�c�c�&�k�k�!�m�*L�L��1�1�#(�5���V���#5�#5�1�1�1���R�Z��
!�
!�
�
�R�Z�
�
#�
#�
�%#�%#�%#�NF�F�F���d�d�d�N���:�z����������D�	*�a�e�D�D�D�D�+�+�+�+�+�+��C��������r/
© 2025 GrazzMean