%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/idlelib/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/idlelib/__pycache__/multicall.cpython-38.pyc

U

qaH@sdZddlZddlZddlZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd
ZdZdZdZ ej!dkrdZ"eeee fZ#ndZ"eeeefZ#e$dd e%e&e"DZ'd!Z(Gd"d#d#Z)e%de&e">Z*d$d e*DZ+d%d&Z,e,e*Z-gZ.e*D]BZ/dZ0e%e&e"D] Z1de1>e/@r2e0e#e1OZ0q2e.2e0qGd'd(d(Z3d)Z4e3fde)fe&e4dZ5e$d*d e%e&e4DZ6e7d+Z8e7d,Z9d-d.Z:d/d0Z;iZ<d1d2Z=d3d4Z>e?d5krdd6l@mAZAeAd7dd8d9dd:lBmCZCeCe>dS);a
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)ZShiftZControl)ZOption)ZCommand)r)ZAltr)ZMetaMcCs"g|]}t|D]}||fqqS)
_modifiers.0Znumbernamerr-/usr/local/lib/python3.8/idlelib/multicall.py
<listcomp>7s
r%zapplication has been destroyedc@s,eZdZddZddZddZddZd	S)

_SimpleBindercCs8||_dt|dd|_||_||_g|_d|_dS)N<r>)type_typessequencewidget
widgetinstbindedfuncs	handlerid)selfr)r,r-rrr$__init__Jsz_SimpleBinder.__init__cCs>|js.|j|jfdd}|j|j|j||_|j|dS)NcSsT||_i}tt|dddD]0}||}||krd||<||}|r|SqdS)NrT)mc_typerangelen)eventlr3	wascalledifuncrrrr$handlerTsz#_SimpleBinder.bind.<locals>.handler)r/r.r)r,bindr-r+append)r0tripletr:r<rrr$r=Rs

z_SimpleBinder.bindcCs2|j||js.|j|j|j|jd|_dSN)r.remover,unbindr-r+r/)r0r?r:rrr$rBbsz_SimpleBinder.unbindc
CsZ|jrVz|j|j|j|jWn4tjk
rT}zt|jdkrDW5d}~XYnXdSNr)	r/r,rBr-r+tkinterTclErrorAPPLICATION_GONEargs)r0errr$__del__hsz_SimpleBinder.__del__N)__name__
__module____qualname__r1r=rBrIrrrr$r&Isr&cs(g|] dfddttDqS)c3s*|]"\}}d|>@r|ddVqdS)rr-Nr)r"r9msrr$	<genexpr>wsz<listcomp>.<genexpr>)join	enumerater )r"rrPr$r%wscsLdd}g}|D]6ttfdd|D}|j|dd||q|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.
    cSs$d}|r t|d\}}||7}q|S)znumber of bits set in n base 2rr)divmod)nnbremrrr$nbitss

zexpand_substates.<locals>.nbitsc3s|]}|@VqdSr@r)r"xstaterr$rRsz#expand_substates.<locals>.<genexpr>T)keyreverse)listsetsortr>)ZstatesrYZ	statelistZ	substatesrr[r$expand_substates|srbc@s4eZdZddZddZddZddZd	d
ZdS)_ComplexBindercCs||||j|jfdd}|S)NcSsdg|dd<||_||_i}d}|D]R}tt|dddD]0}	||	}
|
|kr>d||
<||	|}|r>qpq>|r&qzq&g|dd<|D]
}|qg|dd<|r|SdS)NTrr2)r3mc_stater4r5)r6listsr3rdishandlerrunningdoafterhandlerr8r;r7r9r:frrr$r<s*z0_ComplexBinder.__create_handler.<locals>.handler)rfrg)r0rer3rdr<rrr$Z__create_handlers
z_ComplexBinder.__create_handlerc	s|_t|d_|_|_dddtDi_g_g_g_	tD]`}fddt
|D}||t|}dt
|jd}j|jj||fqJdS)NrcSsg|]}gqSrrr"rQrrr$r%sz+_ComplexBinder.__init__.<locals>.<listcomp>csg|]}jd|qSr@)r.r"r9r0rr$r%sr'r()r)r*typenamer,r-_statesr.
handleridsrfrg_state_subsets_ComplexBinder__create_handler_state_codes_state_namesr>r=)r0r)r,r-rQrer<seqrrkr$r1s z_ComplexBinder.__init__c	sdjkrddtDjd<tD]jfddddfD}|jt}dtjdf}j|j	
j||fq*fdd}js|nj
|dS)NrcSsg|]}gqSrrrirrr$r%sz'_ComplexBinder.bind.<locals>.<listcomp>cs(g|] }tD]}j||qqSr)ror.)r"detailr9)rQr0rr$r%s
z	<%s%s-%s>csjddSNrr)r.r>rr:r0r?rr$<lambda>z%_ComplexBinder.bind.<locals>.<lambda>)r.rmrpr)rqrrrlrnr>r,r=r-rfrg)r0r?r:rer<rsdoitr)r:rQr0r?r$r=s$


z_ComplexBinder.bindcs.fdd}js|nj|dS)NcsjddSru)r.rArrvrr$rwrxz'_ComplexBinder.unbind.<locals>.<lambda>)rfrgr>)r0r?r:ryrrvr$rBsz_ComplexBinder.unbindcCs`|jD]T\}}z|j|j||Wqtjk
rX}zt|jdkrHW5d}~XYqXqdSrC)rnr,rBr-rDrErFrG)r0rsidrHrrr$rIsz_ComplexBinder.__del__N)rJrKrLrpr1r=rBrIrrrr$rcs
rc))KeyPressZKey)
KeyRelease)ZButtonPressZButton)Z
ButtonRelease)ZActivate)Z	Circulate)ZColormap)Z	Configure)Z
Deactivate)ZDestroy)ZEnter)ZExpose)ZFocusIn)ZFocusOut)ZGravity)ZLeave)ZMap)ZMotion)Z
MouseWheel)ZProperty)ZReparent)ZUnmap)Z
VisibilitycCs"g|]}t|D]}||fqqSr)r*r!rrr$r%s
z^\w+$z^[1-5]$cCs|r|ddks|ddkr dS|ddd}d}|rb|dtkrb|dt|d>O}|d=q6|r|dtkrt|d}|d=ndSt|tkr|s|rdSd}nN|dd	d
Dkrt}nt}|sd}n(t|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.
    rr'r2r(NrrNcSsg|]}t|qSr)_type_namesrirrr$r%$sz#_parse_sequence.<locals>.<listcomp>)r{r|)	split_modifier_namesr}_binder_classesr&
_keysym_re
_button_rer5match)r+Zwords	modifiersr)rtZtype_rerrr$_parse_sequences0
rcCs`|dr8dt|dt|ddd|ddSdt|dt|dddSdS)Nrr'rrrNr()rrr*)r?rrr$_triplet_to_sequence2s"rcs0tkrtSGfddd}|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.
    csreZdZeejstfddZdfdd	Zdfdd	Z	fdd	Z
fd
dZdfdd
	ZddZ
dS)z#MultiCallCreator.<locals>.MultiCallcs:jf||i_fddtttD_dS)Ncsg|]}t||qSr)rrj)r0r,rr$r%Ksz@MultiCallCreator.<locals>.MultiCall.__init__.<locals>.<listcomp>)r1_MultiCall__eventinfor4r5r*_MultiCall__binders)r0rGkwargsr,rkr$r1Es

z,MultiCallCreator.<locals>.MultiCall.__init__Ncst|tkrt|dkr|dddkr|dddkr||jkr|j|}|ddk	r|dD]}|j|d||dq`||d<|ddk	r|dD]}|j|d||qn|gg|j|<||||S)Nr<<>>rr)r)strr5rrrBr=)r0r+r:addeir?rrr$r=Ns 

z(MultiCallCreator.<locals>.MultiCall.bindcst|tkrt|dkr|dddkr|dddkr||jkr|j|\}}|dk	r|D]}|j|d||q\d|j|d<|||S)Nrrrrrr)r)rr5rrrB)r0r+Zfuncidr:tripletsr?rrr$rB`sz*MultiCallCreator.<locals>.MultiCall.unbindcs|||jkrdgg|j|<|j|\}}|D]L}t|}|dkrN|||q*|dk	rl|j|d||||q*dSNr)rr	event_addrr=r>r0virtual	sequencesr:rrsr?rrr$rks
z-MultiCallCreator.<locals>.MultiCall.event_addcsr||jkrdS|j|\}}|D]L}t|}|dkrD|||q |dk	rb|j|d||||q dSr)rrevent_deleterrBrArrrr$r|s
z0MultiCallCreator.<locals>.MultiCall.event_deletecsF|dks||jkr||Sttt|j|d||SdSr)r
event_infotuplemapr)r0rrrr$rs
z.MultiCallCreator.<locals>.MultiCall.event_infocSs||jD]p}|j|\}}|r|D]T}z|j|d||Wq tjk
rr}zt|jdkrbW5d}~XYq Xq qdS)Nrr)rrrBrDrErFrG)r0rr:rr?rHrrr$rIs
z+MultiCallCreator.<locals>.MultiCall.__del__)NNN)N)N)rJrKrL
issubclassrDZMiscAssertionErrorr1r=rBrrrrIrrrr$	MultiCallBs	r)_multicall_dict)r,rrrr$MultiCallCreator:s
[rcst|}|dtt|ddd\}}|d||dfttj|	dgffdd	}|d	|d
|d|d|d
|d|d|d|d|d|d|ddS)NzTest MultiCall+rz+%d+%drcsHfdd}d|d|d|d|dd7<dS)NcstdSr@)print)r6rsrr$r<sz-_multi_call.<locals>.bindseq.<locals>.handlerz
<<handler%d>>rr)r=r)rsrVr<textrr$bindseqsz_multi_call.<locals>.bindseqz<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>)
rDZTopleveltitlerintZgeometryr~rZTextpack)parenttoprZyrrrr$_multi_calls&

 r__main__)mainzidlelib.idle_test.test_mainmenuF)	verbosityexit)run)D__doc__resysrDZMC_KEYPRESSZ
MC_KEYRELEASEZMC_BUTTONPRESSZMC_BUTTONRELEASEZMC_ACTIVATEZMC_CIRCULATEZMC_COLORMAPZMC_CONFIGUREZ
MC_DEACTIVATEZ
MC_DESTROYZMC_ENTERZ	MC_EXPOSEZ
MC_FOCUSINZMC_FOCUSOUTZ
MC_GRAVITYZMC_LEAVEZMC_MAPZ	MC_MOTIONZ
MC_MOUSEWHEELZMC_PROPERTYZMC_REPARENTZMC_UNMAPZ
MC_VISIBILITYZMC_SHIFTZ
MC_CONTROLZMC_ALTZMC_METAZ	MC_OPTIONZ
MC_COMMANDplatformr Z_modifier_masksdictr4r5rrFr&rmrrrbrorqrQr;r9r>rcr*rr}compilerrrrrrrrJZunittestrZidlelib.idle_test.htestrrrrr$<module>s


-_



'g


Zerion Mini Shell 1.0