o .&ßaóã@s¾ddlZddlZddlZddlZe e¡ZGdd„deƒZ dd„Z edkr]e ej ƒdkr9ej dZ eej d ƒZne ej ƒd krFej dZ ned ej dƒe d¡ee e eƒƒdSdS) éNc@s\eZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z ddd„Z ddd„Z dS)Ú CompleterNcCs<|dur||_ntj ¡|_|j ¡|_| |jj¡|_dS©N) ÚdriverÚawscliÚ clidriverÚcreate_clidriverÚcreate_help_commandÚ main_helpÚ_get_documented_completionsÚ arg_tableÚ main_options)Úselfr©rú2/usr/lib/python3/dist-packages/awscli/completer.pyÚ__init__s   ÿzCompleter.__init__c Cs¢|durt|ƒ}|d|… ¡}|d}dd„|Dƒ}dd„|Dƒ}| |j|¡\}}| ||¡\} } |dur=| ||¡S| durI| ||||¡S| | | ||¡S)NréÿÿÿÿcSsg|] }| d¡s|‘qS©ú-©Ú startswith©Ú.0ÚwrrrÚ %óz&Completer.complete..cSsg|] }| d¡r|‘qSrrrrrrr&r)ÚlenÚsplitÚ _get_commandr Ú_complete_providerÚ_complete_commandÚ_complete_subcommand) r ÚcmdlineÚpointÚargsÚ current_argÚcmd_argsÚoptsÚcmd_nameÚcmdÚ subcmd_nameÚsubcmdrrrÚcompletes zCompleter.completecCsL||kr|r | |j¡SgS| d¡r| ||¡S|dur$| |j|¡SgS©Nr)r Ú command_tablerÚ_find_possible_options)r Ú command_nameÚ command_helpr$r&rrrr3sÿ ú ÿzCompleter._complete_commandcCs$||kr| d¡r| |||¡SgSr,)rr.)r r)Ú subcmd_helpr$r&rrrr @szCompleter._complete_subcommandcCsH|dkrgS|dkr|jj d¡}|dddS|dkr"|jjjSgS)Nz--endpoint-urlz--outputÚcliÚoptionsÚoutputÚchoicesz --profile)rÚsessionÚget_dataÚavailable_profiles)r Ú option_nameÚcli_datarrrÚ_complete_optionEs zCompleter._complete_optioncCs<| d¡r | ||¡S|dkr| |jj¡S| |jj|¡S)NrÚaws)rr.r r r-)r r$r&rrrrOs  ÿÿzCompleter._complete_providercCsD|dur |jdur |D]}||jvr|j|}|| ¡fSq dS)N)NN)r-r)r r0Ú command_argsr/Úcmd_objrrrrZs  þzCompleter._get_commandcCsTg}| ¡D]!\}}t|ddƒrq|dur| |¡sqt|ddƒr"q| |¡q|S)NÚ _UNDOCUMENTEDFÚpositional_arg)ÚitemsÚgetattrrÚappend)r ÚtablerÚnamesÚkeyÚcommandrrrr bs   z%Completer._get_documented_completionscs˜t |j¡}|dur|| |j¡7}|D]}||kr(| d¡}||vr(| |¡q| d¡‰‡fdd„|Dƒ}t|ƒdkrJ|d|krJ| |d¡S|S)Nrcsg|] }| ˆ¡rd|‘qS)z--r)rÚn©Úcwrrr~sz4Completer._find_possible_options..ér)Úcopyr r r ÚlstripÚremoverr;)r r$r&r1Ú all_optionsÚoptionÚ stripped_optÚ possibilitiesrrIrr.os ÿ  € z Completer._find_possible_optionsr) Ú__name__Ú __module__Ú __qualname__rr+rr r;rrr r.rrrrrs      rcCs tƒ ||¡}td |¡ƒdS)Nz )rr+ÚprintÚjoin)r!r"r5rrrr+„sr+Ú__main__érKézusage: %s )Úawscli.clidriverrÚsysÚloggingrLÚ getLoggerrSÚLOGÚobjectrr+rÚargvr!Úintr"rVÚexitrrrrÚs"  p   ÷