python (3.11.7)

(root)/
lib/
python3.11/
idlelib/
__pycache__/
multicall.cpython-311.pyc

eH\dZddlZddlZddlZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd
ZdZdZdZ ej!dkr	dZ"eeee fZ#ndZ"eeeefZ#de$e%e"DZ&d Z'Gd!d"Z(e$de%e"zZ)d#e)DZ*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%e3dz
zzZ4d(e$e%e3DZ5ej6d)Z7ej6d*Z8d+Z9d,Z:iZ;d-Z<d.Z=e>d/kr'dd0l?m@Z@e@d1dd23dd4lAmBZBeBe=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)ShiftControl)Option)Command)r)Altr)MetaMc4i|]}t|D]}||S)
_modifiers.0numbernames   E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/idlelib/multicall.py
<dictcomp>r.7sD999#%/%799!9999zapplication has been destroyedc&eZdZdZdZdZdZdS)
_SimpleBinderc||_dt|dzdz|_||_||_g|_d|_dS)N<r>)type_typessequencewidget
widgetinstbindedfuncs	handlerid)selfr5r8r9s    r-__init__z_SimpleBinder.__init__JsC	F4LO+C/
$r/c|js;|j|jfd}|j|j|j||_|j|dS)Nc||_i}tt|dz
ddD]$}||}||vrd||<||}|r|cS%dS)NrT)mc_typerangelen)eventlrA	wascalledifuncrs       r-handlerz#_SimpleBinder.bind.<locals>.handlerTsy '
	s1vvaxR00%%AQ4D9,,*.	$ DKK%#$HHH
%%r/)r;r:r5r8bindr9r7append)r<tripletrHrJs    r-rKz_SimpleBinder.bindRsp~	F#'#3ty	
%	
%	
%	
%"[--do.2mWFFDN%%%%%r/c|j||js4|j|j|j|jd|_dSdSN)r:remover8unbindr9r7r;)r<rMrHs   r-rQz_SimpleBinder.unbindbsY%%%	"Kt
t~NNN!DNNN	"	"r/c|jr`	|j|j|j|jdS#t
j$r }t|jdvrYd}~dSd}~wwxYwdSNr)	r;r8rQr9r7tkinterTclErrorAPPLICATION_GONEargs)r<es  r-__del__z_SimpleBinder.__del__hs>	
""4?DM(((((#


'16!944544444
			s+6A%A  A%N)__name__
__module____qualname__r=rKrQrYr'r/r-r1r1IsP&&& """r/r1cvg|]5dfdttD6S)c3DK|]\}}d|zz
|ddzVdS)rr-Nr')r*rGmss   r-	<genexpr>z<listcomp>.<genexpr>wsP)) AqFa<)!S))))))r/)join	enumerater(r*rbs @r-
<listcomp>rgwsg"""))))$-j$9$9)))))"""r/cd}g}|D]Itfd|D}||d||J|S)zFor each item of states return a list containing all combinations of
    that item with individual bits reset, sorted by the number of set bits.
    cBd}|rt|d\}}||z
}||S)znumber of bits set in n base 2rr)divmod)nnbrems   r-nbitszexpand_substates.<locals>.nbitss:
	Aq\\FAs#IB		r/ch|]}|zSr'r')r*xstates  r-	<setcomp>z#expand_substates.<locals>.<setcomp>s444%!)444r/T)keyreverse)listsortrL)statesrn	statelist	substatesrqs    @r-expand_substatesrz|s}I$$4444V44455	5$///####r/c,eZdZdZdZdZdZdZdS)_ComplexBinderc,||||j|jfd}|S)Nc"dg|dd<||_||_i}d}|D]P}tt|dz
ddD](}	||	}
|
|vrd||
<||	|}|rn)|rnQg|dd<|D]}|
g|dd<|r|SdS)NTrr@)rAmc_staterBrC)rDlistsrArishandlerrunningdoafterhandlerrFrIrErGrHfs            r-rJz0_ComplexBinder.__create_handler.<locals>.handlers$(&QQQ#EM%ENIA	
	
s1vvaxR00""AQ4D9,,*.	$ AaDKK"!EE"$QQQ#

 "N111


r/)rr)r<rrArrJs     r-__create_handlerz_ComplexBinder.__create_handlers1#(%('+'<%)%8				4r/c	|_t|d_|_|_ddt
Di_g_g_g_	t
D]}fdt|D}||t|}dt|zjzdz}j|jj||fdS)Nrcg|]}gSr'r'rfs  r-rgz+_ComplexBinder.__init__.<locals>.<listcomp>s"7"7"7!2"7"7"7r/c6g|]}jd|SrO)r:)r*rGr<s  r-rgz+_ComplexBinder.__init__.<locals>.<listcomp>s&JJJ1T%d+A.JJJr/r3r4)r5r6typenamer8r9_statesr:
handleridsrr_state_subsets_ComplexBinder__create_handler_state_codes_state_namesrLrK)r<r5r8r9rbrrJseqs`       r-r=z_ComplexBinder.__init__s	tQ
$ "7"7w"7"7"78!# 	J	JAJJJJq8IJJJE++E4aIIGl1o%dm3C7CO""C)9)9$/:=w*H*H$I
J
J
J
J		J	Jr/c	djvrdtDjd<tD]fdddfD}|jt}dt
jddd}j|j	
j||ffd}js|dSj
|dS)Nrcg|]}gSr'r'rfs  r-rgz'_ComplexBinder.bind.<locals>.<listcomp>s+@+@+@1B+@+@+@r/cVg|]%}tD]}j||&Sr')rr:)r*detailrGrbr<s   r-rgz'_ComplexBinder.bind.<locals>.<listcomp>sP===$#1!#4==*6215====r/r3r`r4chjddSNrr)r:rLrHr<rMsr-<lambda>z%_ComplexBinder.bind.<locals>.<lambda>*t'
3GAJ?FFtLLr/)r:rrr5rrrrrLr8rKr9rr)r<rMrHrrJrdoitrbs```    @r-rKz_ComplexBinder.binds[1:T---+@+@+@+@+@DWQZ(
N
N=====)0T(:===//ty0<QAA$0OOT]]]GAJJJO&&T[-=-=do>A7.L.L(MNNNNLLLLLL$	-DFFFFF&&t,,,,,r/ctfd}js|dSj|dS)NchjddSr)r:rPrsr-rz'_ComplexBinder.unbind.<locals>.<lambda>rr/)rrrL)r<rMrHrs``` r-rQz_ComplexBinder.unbindsPLLLLLL$	-DFFFFF&&t,,,,,r/c|jD]X\}}	|j|j||(#tj$r}t|jdvrYd}~Qd}~wwxYwdSrS)rr8rQr9rTrUrVrW)r<ridrXs    r-rYz_ComplexBinder.__del__s		GC
""4?C<<<<#


'16!94454444
		s!0AAAN)rZr[r\rr=rKrQrYr'r/r-r|r|sb:JJJ.---$---r/r|))KeyPressKey)
KeyRelease)ButtonPressButton)
ButtonRelease)Activate)	Circulate)Colormap)	Configure)
Deactivate)Destroy)Enter)Expose)FocusIn)FocusOut)Gravity)Leave)Map)Motion)
MouseWheel)Property)Reparent)Unmap)
Visibilityc4i|]}t|D]}||Sr')r6r)s   r-r.r.sC111!'11V1111r/z^\w+$z^[1-5]$cB|r|ddks|ddkrdS|ddd}d}|r<|dtvr-|dt|dzz}|d=|r|dtv-|r&|dtvrt|d}|d=ndSt|tur	|s|rdSd}n[|dd	Dvrt
}nt}|sd}n9t|dkr$||dr	|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>$sGGGqKNGGGr/)rr)	split_modifier_namesr_binder_classesr1
_keysym_re
_button_rerCmatch)r7words	modifiersr5rtype_res      r-_parse_sequencersqx{c))Xb\S-@-@tQrTN  %%EI
E!H//Q/%(333	!HE!H//
q[((58$!HHtt
--		4FFGG,FGGGGG GG G	FF
ZZ1__uQx!8!8_1XFF4dF""r/c|dr?dt|dzt|ddzdz|dzdzSdt|dzt|ddzdzS)Nrr3rrr`r4)rr6)rMs r-_triplet_to_sequencer2sqzF<
++F71:,>q,AA#Eqz	<
++F71:,>q,AA#EEr/chtvr
tSGfdd}|t<|S)zReturn 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~eZdZeejsJfdZd	fd	Zd
fd	ZfdZ	fdZ
d
fd	ZdZdS)#MultiCallCreator.<locals>.MultiCallcjg|Ri|i_fdtttD_dS)Nc>g|]}t||Sr')r)r*rGr<r8s  r-rgz@MultiCallCreator.<locals>.MultiCall.__init__.<locals>.<listcomp>Ks:;;;"#.a0FDAA;;;r/)r=_MultiCall__eventinforBrCr6_MultiCall__binders)r<rWkwargsr8s`  r-r=z,MultiCallCreator.<locals>.MultiCall.__init__EsqFOD242226222 "D;;;;;',S[['9'9;;;DNNNr/Nct|turt|dkr|dddkr|dddkr||jvr|j|}|d8|dD]/}|j|d||d0||d<|d2|dD])}|j|d||*n|gg|j|<||||S)Nr<<>>rr)r5strrCrrrQrK)r<r7rHaddeirMr8s      r-rKz(MultiCallCreator.<locals>.MultiCall.bindNs#H~~$$X):):|t##
(=(=t///)(3B!u(')!uNNG N71:6==gr!uMMMM BqE!u(')!uKKG N71:6;;GTJJJJ26D$X.;;tXtS999r/cjt|turt|dkrs|dddkre|dddkrW||jvrN|j|\}}|<|D])}|j|d||*d|j|d<|||S)Nrrrrrr)r5rrCrrrQ)r<r7funcidrHtripletsrMr8s      r-rQz*MultiCallCreator.<locals>.MultiCall.unbind`sH~~$$X):):|t##
(=(=4+++!%!1(!;h##+IIwqz299'4HHHH48D$X.q1==x888r/c*||jvrdgg|j|<|j|\}}|D]i}t|}||||+|'|j|d||||jdSNr)rr	event_addrrKrLr<virtual	sequencesrHrrrMr8s       r-rz-MultiCallCreator.<locals>.MultiCall.event_addksd...-12J )!-g6ND( 
-
-)#..?$$T7C8888'wqz277FFFOOG,,,,
-
-r/c||jvrdS|j|\}}|D]i}t|}||||+|'|j|d||||jdSr)rrevent_deleterrQrPrs       r-rz0MultiCallCreator.<locals>.MultiCall.event_delete|sd...!-g6ND( 
-
-)#..?''gs;;;;'wqz299'4HHHOOG,,,,
-
-r/c|	||jvr||Sttt|j|d||zSr)r
event_infotuplemapr)r<rr8s  r-rz.MultiCallCreator.<locals>.MultiCall.event_infosv'1A"A"A((w777S!5!%!1'!:1!=??@@((w7788r/c|jD]r}|j|\}}|r^|D][}	|j|d||+#tj$r}t
|jdvrYd}~Td}~wwxYwsdS)Nrr)rrrQrTrUrVrW)r<rrHrrMrXs      r-rYz+MultiCallCreator.<locals>.MultiCall.__del__s+
&
&!%!1'!:h&#+&&& N71:6==gtLLLL&/&&&#3qvay#@#@ %$A#@#@#@#@&

&
&s'A		A7A22A7)NNNrO)
rZr[r\
issubclassrTMiscr=rKrQrrrrY)r8sr-	MultiCallrBsz&',/////	;	;	;	;	;	:	:	:	:	:	:$		9		9		9		9		9		9	-	-	-	-	-"	-	-	-	-	-	8	8	8	8	8	8		&		&		&		&		&r/r)_multicall_dict)r8rs` r-MultiCallCreatorr:sl
  v&&Y&Y&Y&Y&Y&Y&Y&VY&Y&Y&v(OFr/ctj|}|dtt|ddd\}}|d||dzfzttj|	
dgffd	}|d|d	|d
|d|d|d
|d|d|d|d|d|ddS)NzTest MultiCall+rz+%d+%drcfd}d|dz|d|dz|dxxdz
cc<dS)Nc&tdSrO)print)rDrs r-rJz-_multi_call.<locals>.bindseq.<locals>.handlers#JJJJJr/z
<<handler%d>>rr)rKr)rrkrJtexts`  r-bindseqz_multi_call.<locals>.bindseqsp							/!A$&000qt+S111	!	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>)rTTopleveltitlerintgeometryrrTextpack	focus_set)parenttoprpyrrs     @r-_multi_callrs

6
"
"CIIsFOO%%++C00455DAqLLQCL())))GL))#..DIIKKKNNsGGGOGMGG!"""GIG !!!GLGGLGIGIr/__main__)mainzidlelib.idle_test.test_mainmenuF)	verbosityexit)run)C__doc__resysrTMC_KEYPRESS
MC_KEYRELEASEMC_BUTTONPRESSMC_BUTTONRELEASEMC_ACTIVATEMC_CIRCULATEMC_COLORMAPMC_CONFIGURE
MC_DEACTIVATE
MC_DESTROYMC_ENTER	MC_EXPOSE
MC_FOCUSINMC_FOCUSOUT
MC_GRAVITYMC_LEAVEMC_MAP	MC_MOTION
MC_MOUSEWHEELMC_PROPERTYMC_REPARENTMC_UNMAP
MC_VISIBILITYMC_SHIFT
MC_CONTROLMC_ALTMC_META	MC_OPTION
MC_COMMANDplatformr(_modifier_masksrBrCrrVr1rrrzrrrbrIrGrLr|r6rrcompilerrrrrrrrZunittestridlelib.idle_test.htestrr'r/r-<module>r(sz<
			




Q}q12B
A|1{1l
AxbIR*2
x2Fy
b+b+2(R}dTFT7	t*<8FJY
COODJ!68W=O99',uSS__'='=9994&&&&&&&&Z%SS__$
%
%""!"""
$"!'**	A	A
U33z??
#
#$$
Fa<	$
##A[[[[[[[[~
"#a'=*:cc&kk!m*LL11#(5V#5#5111RZ
!
!

RZ

#
#
%#%#%#NFFFdddN:zD	*aeDDDD++++++Cr/