Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/idlelib/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/idlelib/__pycache__/multicall.cpython-312.pyc

�

%Μg�H�	���dZddlZddlZddlZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd
ZdZdZdZ ejBdk(r	dZ"eeee fZ#ndZ"eeeefZ#e$e%e"��D��cic]}e"|D]}||���c}}Z&dZ'Gd �d!�Z(e$de%e"�z�Z)e)D��cgc]"�d"jU�fd#�e+e"�D����$c}Z,d$�Z-e-e)�Z.gZ/e)D]9Z0dZ1e$e%e"��D]Z2de2ze0zs�e1e#e2zZ1�e/jge1��;Gd%�d&�Z4d'Z5e4fdze(fe%e5�dz
zzZ6e$e%e5��D��cic]}e5|D]}||���c}}Z7ejpd(�Z9ejpd)�Z:d*�Z;d+�Z<iZ=d,�Z>d-�Z?e@d.k(r dd/lAmBZBeBd0dd1�2�dd3lCmDZDeDe?�yycc}}wcc}wcc}}w)4a�
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�Mzapplication has been destroyedc�$�eZdZd�Zd�Zd�Zd�Zy)�
_SimpleBinderc�x�||_dt|dzdz|_||_||_g|_d|_y)N�<r�>)�type�_types�sequence�widget�
widgetinst�bindedfuncs�	handlerid)�selfr+r.r/s    �./usr/local/lib/python3.12/idlelib/multicall.py�__init__z_SimpleBinder.__init__Js?����	��F�4�L��O�+�C�/��
����$���������c���|jsP|j|jfd�}|jj	|j
|j|�|_|jj|�y)Nc��||_i}tt|�dz
dd�D]}||}||vs�
d||<||�}|s�|cSy)Nr���T)�mc_type�range�len)�event�lr9�	wascalled�i�func�rs       r3�handlerz#_SimpleBinder.bind.<locals>.handlerTsT�� '��
��	��s�1�v�a�x��R�0�A��Q�4�D��9�,�*.�	�$�� ��K���#$�H�
1r5)r1r0r+r.�bindr/r-�append)r2�tripletr@rBs    r3rCz_SimpleBinder.bindRsY���~�~�#'�#3�#3�t�y�y�	
%�"�[�[�-�-�d�o�o�.2�m�m�W�F�D�N�������%r5c���|jj|�|jsC|jj|j|j
|j�d|_yy�N)r0�remover.�unbindr/r-r1)r2rEr@s   r3rIz_SimpleBinder.unbindbsM��������%�����K�K���t����
�
�t�~�~�N�!�D�N� r5c��|jr=	|jj|j|j|j�yy#t
j$r }t|jdvr�Yd}~yd}~wwxYw�Nr)	r1r.rIr/r-�tkinter�TclError�APPLICATION_GONE�args)r2�es  r3�__del__z_SimpleBinder.__del__hsh���>�>�
����"�"�4�?�?�D�M�M����(����#�#�
�'�1�6�6�!�9�4��5��
�s�;A�A>�A9�9A>N)�__name__�
__module__�__qualname__r4rCrIrQ�r5r3r'r'Is���&� "�r5r'�c3�D�K�|]\}}d|z�zr
|ddz���y�w)rr�-NrU)�.0r?�m�ss   �r3�	<genexpr>r\ws0�����)�$9�D�A�q���F�a�<��!��S��$9�s� c��d�}g}|D]B}t|D�chc]}||z��	c}�}|j|d��|j|��D|Scc}w)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�<�d}|rt|d�\}}||z
}|r�|S)znumber of bits set in n base 2rr)�divmod)�n�nb�rems   r3�nbitszexpand_substates.<locals>.nbits�s.��
����A�q�\�F�A�s��#�I�B���	r5T)�key�reverse)�list�sortrD)�statesrc�	statelist�state�x�	substatess      r3�expand_substatesrm|s`����I����V�4�V��%�!�)�V�4�5�	����5�$��/�����#�����5s�A
c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�_ComplexBinderc�@�||||j|jfd�}|S)Nc��dg|dd||_||_i}d}|D]B}tt|�dz
dd�D] }	||	}
|
|vs�
d||
<||	|�}|s� n|s�Bng|dd|D]	}|��g|dd|r|Sy)NTrr8)r9�mc_stater:r;)r<�listsr9rr�ishandlerrunning�doafterhandlerr>rAr=r?r@�fs            r3rBz0_ComplexBinder.__create_handler.<locals>.handler�s���$(�&��Q��#�E�M�%�E�N��I��A����s�1�v�a�x��R�0�A��Q�4�D��9�,�*.�	�$�� �A�a�D��K���!�
1����#%��Q��#����$� "�N�1�����r5)rtru)r2rsr9rrrBs     r3�__create_handlerz_ComplexBinder.__create_handler�s(��#(�%�(�'+�'<�'<�%)�%8�%8�	�4�r5c	��||_t|d|_||_||_dt
D�cgc]}g��c}i|_g|_g|_g|_	t
D]�}t|D�cgc]}|jd|��}}|j||t|�}dt|z|jzdz}|jj||jj|j||�f���ycc}wcc}w)Nrr)r*)r+r,�typenamer.r/�_statesr0�
handleridsrtru�_state_subsets�_ComplexBinder__create_handler�_state_codes�_state_namesrDrC)	r2r+r.r/r[r?rsrB�seqs	         r3r4z_ComplexBinder.__init__�s����	��t��Q���
����$��� �w�"7�w�!�2�w�"7�8������!#��� ����A�8F�q�8I�J�8I�1�T�%�%�d�+�A�.�8I�E�J��+�+�E�4��a��I�G��l�1�o�%�d�m�m�3�C�7�C��O�O�"�"�C����)9�)9�$�/�/�:=�w�*H�$I�
J�	��#8��Ks�	D�+Dc	�~�����d�jvr�tD�cgc]}g��c}�j�d<tD]�}�ddfD��cgc]"}t|D]}�j||���$}}}�j|�jt
|�}dt|��j�d�d�d�}�jj|�jj�j||�f������fd�}	�js|	�y�jj|	�ycc}wcc}}w)Nrr)rXr*c�R���j�d�dj��S�Nrr)r0rD�r@r2rEs���r3�<lambda>z%_ComplexBinder.bind.<locals>.<lambda>��(���t�'�'���
�3�G�A�J�?�F�F�t�Lr5)r0rzr|r}r+r~rryr{rDr.rCr/rtru)
r2rEr@r[�detailr?rsrBr��doits
```       r3rCz_ComplexBinder.bind�s4����1�:�T�-�-�-�8?�+@��1�B��+@�D���W�Q�Z�(���)0���T�(:�=�(:�f�#1�!�#4�a��*�*�6�2�1�5�#4�6�(:��=��/�/��t�y�y�0<�Q��A��$0��O�T�]�]�G�A�J�O�����&�&��T�[�[�-=�-=�d�o�o�>A�7�.L�(M�N��M���$�$��F����&�&�t�,��,A��=s�	D4�'D9c�v�������fd�}�js|�y�jj|�y)Nc�R���j�d�dj��Sr�)r0rHr�s���r3r�z'_ComplexBinder.unbind.<locals>.<lambda>�r�r5)rtrurD)r2rEr@r�s``` r3rIz_ComplexBinder.unbind�s*���L���$�$��F����&�&�t�,r5c���|jD]-\}}	|jj|j||��/y#tj
$r }t|jdvr�Yd}~�_d}~wwxYwrK)r{r.rIr/rLrMrNrO)r2r��idrPs    r3rQz_ComplexBinder.__del__�sc�����G�C��
����"�"�4�?�?�C��<�'���#�#�
�'�1�6�6�!�9�4��5��
�s�'>�A1�A,�,A1N)rRrSrTr}r4rCrIrQrUr5r3roro�s���:J�.-�$-�r5ro))�KeyPress�Key)�
KeyRelease)�ButtonPress�Button)�
ButtonRelease)�Activate)�	Circulate)�Colormap)�	Configure)�
Deactivate)�Destroy)�Enter)�Expose)�FocusIn)�FocusOut)�Gravity)�Leave)�Map)�Motion)�
MouseWheel)�Property)�Reparent)�Unmap)�
Visibilityz^\w+$z^[1-5]$c���|r|ddk7s|ddk7ry|ddjd�}d}|r.|dtvr#|dt|dzz}|d=|r|dtvr�#|r|dtvrt|d}|d=nyt|tur|s|ryd}nT|dD�cgc]}t|��
c}vrt
}nt}|sd}n)t|�dk(r|j|d�r|d}ny|||fScc}w)	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.
    rr)r8r*NrrX)r�r�)	�split�_modifier_names�_type_names�_binder_classesr'�
_keysym_re�
_button_rer;�match)r-�words�	modifiersr+r�r[�type_res       r3�_parse_sequencer�s%���x��{�c�)�X�b�\�S�-@���Q�r�N� � ��%�E��I�
�E�!�H��/��Q�/�%��(�3�3�3�	��!�H��E�!�H��/�
��q��[�(��5��8�$���!�H���t��
�-�����F��,F�G�,F�q�K��N�,F�G�G� �G� �G���F�
��Z�1�_����u�Q�x�!8��1�X�F���d�F�"�"��Hs�C(c��|dr+dt|dzt|ddzdz|dzdzSdt|dzt|ddzdzS)Nrr)rrrXr*)rr,)rEs r3�_triplet_to_sequencer�2sy���q�z��<���
�+�+�F�7�1�:�,>�q�,A�A�#�E��q�z����	��<���
�+�+�F�7�1�:�,>�q�,A�A�#�E�Er5c�V���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���eZdZeW�ej
�sJ��fd�Zd	�fd�	Zd
�fd�	Z�fd�Z	�fd�Z
d
�fd�	Zd�Zy)�#MultiCallCreator.<locals>.MultiCallc����j|g|��i|��i|_ttt��D�cgc]}t||�|���c}|_ycc}wrG)r4�_MultiCall__eventinfor:r;r,r��_MultiCall__binders)r2rO�kwargsr?r.s    �r3r4z,MultiCallCreator.<locals>.MultiCall.__init__Es`����F�O�O�D�2�4�2�6�2� "�D��',�S��[�'9�;�'9�!�.�a�0��F�D�A�'9�;�D�N��;s�ANc���t|�tur�t|�dkDr�|dddk(r�|dddk(r�||jvrz|j|}|d�/|dD]'}|j|dj||d��)||d<|d�>|dD]$}|j|dj
||��&n|gg|j|<�j
||||�S)Nr�<<����>>rr)r+�strr;r�r�rIrC)r2r-r@�add�eirEr.s      �r3rCz(MultiCallCreator.<locals>.MultiCall.bindNs�����H�~��$��X���):����|�t�#����
��(=��t�/�/�/��)�)�(�3�B��!�u�(�')�!�u�G� �N�N�7�1�:�6�=�=�g�r�!�u�M�(-� �B�q�E��!�u�(�')�!�u�G� �N�N�7�1�:�6�;�;�G�T�J�(-�37���D�$�$�X�.��;�;�t�X�t�S�9�9r5c�B��t|�tur{t|�dkDrm|dddk(re|dddk(r]||jvrO|j|\}}|�;|D]$}|j|dj||��&d|j|d<�j|||�S)Nrr�r�r�rr)r+r�r;r�r�rI)r2r-�funcidr@�tripletsrEr.s      �r3rIz*MultiCallCreator.<locals>.MultiCall.unbind`s�����H�~��$��X���):����|�t�#����
��(=��4�+�+�+�!%�!1�!1�(�!;���h��#�#+�����w�q�z�2�9�9�'�4�H�$,�48�D�$�$�X�.�q�1��=�=��x��8�8r5c�"��||jvrdgg|j|<|j|\}}|D]X}t|�}|��j|||��$|�"|j|dj	||�|j|��Zy�Nr)r�r��	event_addr�rCrD�r2�virtual�	sequencesr@r�r�rEr.s       �r3r�z-MultiCallCreator.<locals>.MultiCall.event_addks�����d�.�.�.�-1�2�J�� � ��)�!�-�-�g�6�N�D�(� ��)�#�.���?��$�$�T�7�C�8��'����w�q�z�2�7�7���F��O�O�G�,�!r5c���||jvry|j|\}}|D]X}t|�}|��j|||��$|�"|j|dj	||�|j|��Zyr�)r�r��event_deleter�rIrHr�s       �r3r�z0MultiCallCreator.<locals>.MultiCall.event_delete|s�����d�.�.�.��!�-�-�g�6�N�D�(� ��)�#�.���?��'�'��g�s�;��'����w�q�z�2�9�9�'�4�H��O�O�G�,�!r5c���|�||jvr�j||�Sttt|j|d���j||�zSr�)r��
event_info�tuple�mapr�)r2r�r.s  �r3r�z.MultiCallCreator.<locals>.MultiCall.event_info�sh�����'��1A�1A�"A��(�(��w�7�7��S�!5�!%�!1�!1�'�!:�1�!=�?�@��(�(��w�7�8�8r5c��|jD]A}|j|\}}|s�|D]%}	|j|dj||��'�Cy#tj$r }t
|jdvr�Yd}~�Yd}~wwxYw)Nrr)r�r�rIrLrMrNrO)r2r�r@r�rErPs      r3rQz+MultiCallCreator.<locals>.MultiCall.__del__�s����+�+��!%�!1�!1�'�!:���h��#+��&� �N�N�7�1�:�6�=�=�g�t�L�$,�,�� '�/�/�&�#3�q�v�v�a�y�#@� %�$A��&�s�"A�B�%B�B)NNNrG)
rRrSrT�
issubclassrL�Miscr4rCrIr�r�r�rQ)r.s�r3�	MultiCallr�Bs:����&�'�,�,�/�/�/�	;�	:�$		9�	-�"	-�	8�		&r5r�)�_multicall_dict)r.r�s` r3�MultiCallCreatorr�:s9���
�� ��v�&�&�Y&�V�Y&�v(�O�F���r5c�8��tj|�}|jd�tt|j�j
d�dd�\}}|jd||dzfz�ttj�|���j��j�dgf�fd�	}|d�|d	�|d
�|d�|d�|d
�|d�|d�|d�|d�|d�|d�y)NzTest MultiCall�+rz+%d+%d�rc�����fd�}�jd|dz|��jd|dz��|dxxdz
cc<y)Nc���t��yrG)�print)r<r�s �r3rBz-_multi_call.<locals>.bindseq.<locals>.handler�s
����#�Jr5z
<<handler%d>>rr)rCr�)r�r`rB�texts`  �r3�bindseqz_multi_call.<locals>.bindseq�sC���	��	�	�/�!�A�$�&��0�����q��t�+�S�1�	�!���	�r5z<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>)rL�Toplevel�titler��int�geometryr�r��Text�pack�	focus_set)�parent�toprk�yr�r�s     @r3�_multi_callr��s����
�
�
�6�
"�C��I�I����s�F�O�O�%�+�+�C�0���4�5�D�A�q��L�L��Q��C��L�(�)�)��G�L�L�)�#�.�D��I�I�K��N�N���s���G���O���M������!�"��I��� �!��L������L���I���I�r5�__main__)�mainzidlelib.idle_test.test_mainmenuF)�	verbosity�exit)�run)E�__doc__�re�sysrL�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�platform�
_modifiers�_modifier_masksr:r;r�rNr'rz�join�	enumeraterrmr|r~r[rAr?rDror,r�r��compiler�r�r�r�r�r�r�rR�unittestr��idlelib.idle_test.htestr�)�number�namer[s00pr3�<module>rs�����<
�
��
��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�D�J�!�6�8�W�=�O�(-�S��_�'=�9�'=�V�%/��%7�T���<�%7��'=�9��4��&�&�Z��S��_�$�
%��!�"�!�A����)�$-�j�$9�)�)�!�"��
�$"�'�*����	�A�	�A�
�3�z�?�
#��
��F�a�<�
���#�#�A�$������
�[�[�~
��"�#�a�'�=�*:�c�&�k�!�m�*L�L��$)��V��#5�1�#5��!'�����V�|�!/��#5�1���R�Z�Z��
!�
�
�R�Z�Z�
�
#�
�%#�NF���d�N�:�z����	*�a�e�D�+������O9��@"��\1s�;G
�5'G�G

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists