Ë {Ss7•/ãóø—dZddlZddlZddlZddlZddlZej D�cgc]}|dvr|‘Œ c}Zejd«ej«d\Z Z ddl m Z ddlmZddlmZd Zd Zd d d e fZd d d e fZej,ej.zd zZej2›ej4r ej4nd ›�Zde›�ZGd„d«Zej=«edk(rddl m!Z!e!dd¬«yycc}w)z”Complete either attribute names or file names. Either on demand or after a user-selected delay after a key character, pop up a list of candidates. éN>ÚNoneÚTrueÚFalse)ÚmatchÚcase)ré)Úautocomplete_w)ÚidleConf)Ú HyperParser)TFTN)FTTNFÚ_ÚÚ.có^—eZdZd d„Zed„«Zd„Zdd„Zd„Zd„Z dd„Z d „Z d „Z d „Z d „Zy)Ú AutoCompleteNcóp—||_|�|j|_||_d|_d|_d|_y©N)ÚeditwinÚtextÚtagsÚautocompletewindowÚ_delayed_completion_idÚ_delayed_completion_index)Úselfrrs ú+/usr/lib/python3.12/idlelib/autocomplete.pyÚ__init__zAutoComplete.__init__(s;€ØˆŒ Ø Ð ØŸ ™ ˆDŒI؈Œ Ø"&ˆÔð'+ˆÔ#Ø)-ˆÕ&ócóB—tjddddd¬«|_y)NÚ extensionsrÚ popupwaitÚintr)ÚtypeÚdefault)r Ú GetOptionr)Úclss rÚreloadzAutoComplete.reload4s €ä ×*Ñ*Ø ˜.¨+¸EÈ1ôNˆ� rcóX—tj|j|j¬«S)N)r)r ÚAutoCompleteWindowrr)rs rÚ_make_autocomplete_windowz&AutoComplete._make_autocomplete_window9s€Ü×0Ñ0°·±ÀÇÁÔKÐKrcó`—|jr"|jj«d|_yyr)rÚ hide_window©rÚevents rÚ_remove_autocomplete_windowz(AutoComplete._remove_autocomplete_window<s*€Ø × "Ò "Ø × #Ñ #× /Ñ /Ô 1Ø&*ˆDÕ #ð #rcó.—|jt«y)zA(^space) Open completion list, even if a function call is needed.Úbreak)Úopen_completionsÚFORCEr+s rÚforce_open_completions_eventz)AutoComplete.force_open_completions_eventAs€à ×ÑœeÔ$Ørcó@—t|d«r |js*|jjdd«j «sy|j r5|j j «r|j j«y|jt«}|rdSdS)z5(tab) Complete word or open list if multiple options.Úmc_stateúinsert linestartÚinsertNr/) Úhasattrr4rÚgetÚstriprÚ is_activeÚcompleter0ÚTAB)rr,Úopeneds rÚautocomplete_eventzAutoComplete.autocomplete_eventFs€ä �5˜*Ô %¨%¯.ª.Ø—I‘I—M‘MÐ"4°hÓ?×EÑEÔGðØ × "Ò " t×'>Ñ'>×'HÑ'HÔ'JØ × #Ñ #× ,Ñ ,Ô .Øà×*Ñ*¬3Ó/ˆFÙ$�7Ð .¨$Ð .rcó|—|jjd«}|tvr™|dk(rtnt}|jj d«|_|j�%|jj|j«|jj|j|j|«|_yy)z7(./) Open completion list after pause with no movement.z insert-1crr6N) rr8ÚTRIGGERSÚTRY_AÚTRY_FÚindexrrÚ after_cancelÚafterrÚ_delayed_open_completions)rr,ÚlastcharÚargss rÚtry_open_completions_eventz'AutoComplete.try_open_completions_eventTsŽ€à—9‘9—=‘= Ó-ˆØ ”xÑ Ø$¨šO•5´ˆDØ-1¯Y©Y¯_©_¸XÓ-FˆDÔ *Ø×*Ñ*Ð6Ø— ‘ ×&Ñ& t×'BÑ'BÔCØ*.¯)©)¯/©/Ø—‘ × >Ñ >Àó+FˆDÕ 'ð rcó†—d|_|jjd«|jk(r|j |«yy)z)Call open_completions if index unchanged.Nr6)rrrCrr0)rrHs rrFz&AutoComplete._delayed_open_completions_s9€à&*ˆÔ#Ø �9‰9�?‰?˜8Ó $¨×(FÑ(FÒ FØ × !Ñ ! $Õ 'ð Grcó’—|\}}}}|j�,|jj|j«d|_t|jd«}|jj dd«}t |«x}} |j«rx|r |tk(rm|j«t}|r*||dz dtzvr|dz}|r||dz dtzvrŒ||| } |} |r||dz dvr|dz}|r ||dz dvrŒ||| } nâ|j«rÑ|r |tk(rÆ|j«t}|rM||dz tvst||dz «dkDr+|dz}|r$||dz tvrŒt||dz «dkDrŒ+||| } |rW||dz dk(rL|jdt |«|dz z z«|j!«} | r|s| j#d «d k7ryd } ny|r| s| sy|j%| |«} | d sy|j'«|_|j(j+| dt | «z|||« S) aXFind the completions and create the AutoCompleteWindow. Return True if successful (no syntax error or so found). If complete is True, then if there's nothing to complete and no start of completion, won't open completions and return False. If mode is given, will open a completion list only in this mode. Nr6r5rz'"érz insert-%dcÚ(éÿÿÿÿr r)rrrDr rr8ÚlenÚ is_in_stringÚFILESr-ÚSEPSÚ is_in_codeÚATTRSÚID_CHARSÚordÚ set_indexÚget_expressionÚfindÚfetch_completionsr(rÚ show_window) rrHÚ evalfuncsr;ÚwantwinÚmodeÚhpÚcurlineÚiÚjÚ comp_startÚ comp_whatÚ comp_listss rr0zAutoComplete.open_completionsesd€ð.2Ñ*ˆ �8˜W dà × &Ñ &Ð 2Ø �I‰I× "Ñ " 4×#>Ñ#>Ô ?Ø*.ˆDÔ 'ä ˜Ÿ™ xÓ 0ˆØ—)‘)—-‘-Ð 2°HÓ=ˆÜ�G“ ЈˆAØ �?‰?Ô ¡d¨d´Eªkð × ,Ñ ,Ô .܈Dᘠ !¡™ ¨E´D©LÑ8Ø�Q‘�ñ˜  !¡™ ¨E´D©LÒ8à   1˜ˆJ؈Aᘠ !¡™ ¨EÑ1Ø�Q‘�ñ˜  !¡™ ¨EÒ1à  !˜ ‰IØ �]‰]Œ_¡d¨d´EªkØ × ,Ñ ,Ô .܈DÙ˜  1¡™¬Ñ1´S¸ÀÀ1Á¹Ó5FÈÒ5LØ�Q‘�ñ˜  1¡™¬Ò1´S¸ÀÀ1Á¹Ó5FÈÓ5Là   1˜ˆJÙ�W˜Q˜q™S‘\ SÒ(Ø— ‘ ˜\¬S°«\¸1¸Q¹3Ñ-?Ñ@ÔAØ×-Ñ-Ó/� Ù!Ù! i§n¡n°SÓ&9¸RÒ&?Øà‘ àá ™I©jØØ×+Ñ+¨I°tÓ<ˆ ؘ!Š}ØØ"&×"@Ñ"@Ó"BˆÔØ×*Ñ*×6Ñ6ؘL¬3¨z«?Ñ:ؘ$ ó)ð)ð )rcóð— |jjjjj}|r|j dd||fi«S|t k(rõ|dk(r�itjj¥tj¥}td|«}|jt«|j«d|vrttd|««}næ|D�cgc] }|dddk7sŒ |‘Œ}}nÍ |j|«}t!|«}|j«d|vrt|j"«}n|D�cgc] }|dddk7sŒ |‘Œ}}nm|t$k(rd|dk(rd } t&j(j+|«} t'j,| «}|j«|D�cgc] }|ddd k7sŒ |‘Œ}}s}|fS#d}Y�Œ’xYwcc}wcc}w#ggfcYSxYwcc}w#t.$rggfcYSwxYw) aOReturn a pair of lists of completions for something. The first list is a sublist of the second. Both are sorted. If there is a Python subprocess, get the comp. list there. Otherwise, either fetch_completions() is running in the subprocess itself or it was called in an IDLE EditorWindow before any script had been run. The subprocess environment is that of the most recently run script. If two unrelated modules are being edited some calltips in the current module may be inoperative if the module was not the last to run. NÚexecÚget_the_completion_listr zdir()Ú__all__rr r)rÚflistÚpyshellÚinterpÚrpccltÚ remotecallrTÚ__main__Ú __builtins__Ú__dict__ÚevalÚextendÚcompletion_kwdsÚsortÚsortedÚ get_entityÚdirrirQÚosÚpathÚ expanduserÚlistdirÚOSError) rÚwhatr^rmÚ namespaceÚbiglÚsmalllÚsÚentityÚ expandedpaths rrZzAutoComplete.fetch_completions¡sù€ð Ø—\‘\×'Ñ'×/Ñ/×6Ñ6×=Ñ=ˆFñ Ø×$Ñ$ VÐ-FØ&*¨D \°2ó7ð 7ð”uŠ}ؘ2’:ð!6¤8×#8Ñ#8×#AÑ#Að!6Ü#+×#4Ñ#4ð!6�Iä ¨Ó3�DØ—K‘K¤Ô0Ø—I‘I”KØ  DÑ(Ü!'¬¨Y¸ Ó(BÓ!C™á-1Ó!B©T¨°Q°r¸°U¸c³\¢!¨T˜Ñ!Bð &Ø!%§¡°Ó!6˜Ü" 6›{˜ØŸ ™ œ Ø$¨Ñ,Ü%+¨F¯N©NÓ%;™Fá15Ó%F±¨A¸¸2¸A¸À#»¢a°˜FÐ%Føðœ’ؘ2’:Ø�Dð"Ü#%§7¡7×#5Ñ#5°dÓ#;�LÜŸ:™: lÓ3�DØ—I‘I”KÙ)-Ó>© A°°2°A°¸#³ša¨�FÐ>ñØ�ؘ4�<Ð øðU Ø‹Füò"Cùò&Gøð&Ø! 2˜vš üò?øÜò"ؘr˜6’Mð"úsg‚4Gà G Ã%G Ã-A GÄ7 GÅGÅ GÅAG%Æ% G Æ3G Æ7G%ÇGÇGÇGÇ G%Ç% G5Ç4G5cóZ—t|itj¥tj¥«S)zBLookup name in a namespace spanning sys.modules and __main.dict__.)rrÚsysÚmodulesrorq)rÚnames rrwzAutoComplete.get_entityÛs$€ä�DÐ>œSŸ[™[Ð>¬H×,=Ñ,=Ð>Ó?Ð?r)NNr)Ú__name__Ú __module__Ú __qualname__rÚ classmethodr%r(r-r2r>rIrFr0rZrw©rrrr&sO„ó .ðñNóðNòLó+ò ò /ó Fò(ò :)òx8 ót@rrro)Úmainz#idlelib.idle_test.test_autocompleteé)Ú verbosity)"Ú__doc__roÚkeywordryÚstringr†ÚkwlistrtrsrurTrQÚidlelibr Úidlelib.configr Úidlelib.hyperparserr r1r<rArBÚ ascii_lettersÚdigitsrUÚsepÚaltseprRr@rr%r‰ÚunittestrŽ)r‚s0rÚr�sðñó ÛÛ Û Û ð&Ÿnšnó<™n˜ØÐ!:Ñ:ò˜nñ<€à×ÑÐ(Ô)Ø×ÑÔð� €€uÝ"Ý#Ý+ð *€Ø)€Ø �%˜E UÐ*€Ø �%˜E UÐ*€ð × Ñ  &§-¡-Ñ /°#Ñ 5€à �&‰&ˆ˜rŸyšy�"—)’)¨bÐ1Ð2€Ø ˆtˆfˆ:€÷w@ñw@ðt ×ÑÔà ˆzÒÝÙÐ .¸!Ö<ðùòk