o inh1@sddlZddlZddlZddZGdddZGdddeZeejZGdd d eZGd d d eZ Gd d d e Z GdddeZ dS)NcOs8d|d<z tj|i|WStjygYSw)NTuniversal_newlines) subprocess check_output splitlinesCalledProcessError)argskwargsr A/usr/local/lib/python3.10/dist-packages/argcomplete/completers.py_call s r c @s4eZdZdZdedejdejdejddf dd Z dS) BaseCompleterzQ This is the base class that all argcomplete completers should subclass. prefixactionparser parsed_argsreturnNcCstd)Nz0This method should be implemented by a subclass.)NotImplementedError)selfr rrrr r r __call__szBaseCompleter.__call__) __name__ __module__ __qualname____doc__strargparseActionArgumentParser Namespacerr r r r r sr c@s$eZdZddZddZddZdS)ChoicesCompletercCs ||_dSNchoices)rr!r r r __init__s zChoicesCompleter.__init__cCst|ts t|}|Sr) isinstancer)rchoicer r r _convert!s zChoicesCompleter._convertc sfddjDS)Nc3s|]}|VqdSr)r%).0crr r 'sz,ChoicesCompleter.__call__..r )rrr r(r r&szChoicesCompleter.__call__N)rrrr"r%rr r r r rs rc@s"eZdZdZd ddZddZdS) FilesCompleterzM File completer class, optionally takes a list of allowed extensions r TcCs.t|ttfr |g}dd|D|_||_dS)NcSsg|] }|ddqS)*.)lstrip)r&xr r r 7sz+FilesCompleter.__init__..)r#rbytes allowednames directories)rr1r2r r r r"2s zFilesCompleter.__init__c Ksg}|jr8|jrtdddj|dgtjd}|dd|D7}|jD]}|tdddj||dgtjd7}q"|S|tddd j|dgtjd7}tdddj|dgtjd}tt|t|}|jrl|d d|D7}|S) Nbashz-cz#bind; compgen -A directory -- '{p}')p)stderrcSg|]}|dqS/r r&fr r r r/Ez+FilesCompleter.__call__..z*bind; compgen -A file -X '!*.{0}' -- '{p}'zbind; compgen -A file -- '{p}'cSr6r7r r9r r r r/Ur;)r1r2r formatrDEVNULLlistset)rr r completionfilesr.anticompr r r r:s.  zFilesCompleter.__call__N)r T)rrrrr"rr r r r r*-s  r*c@seZdZddZddZdS)_FilteredFilesCompletercCs|sJd||_dS)z Create the completer A predicate accepts as its only argument a candidate path and either accepts it or rejects it. zExpected a callable predicateN predicate)rrEr r r r"Zs  z _FilteredFilesCompleter.__init__ckstj|}z t|p d}Wn tyYdSwtj|}|D]"}||s+q#tj||}||s8q#tj |rB|dn|Vq#dS)z/ Provide completions on prefix r,Nr8) ospathdirnamelistdir Exceptionbasename startswithjoinrEisdir)rr r target_dirnamesincomplete_partname candidater r r rds      z _FilteredFilesCompleter.__call__N)rrrr"rr r r r rCYs rCc@seZdZddZdS)DirectoriesCompletercCstj|tjjddS)NrD)rCr"rFrGrNr(r r r r"yszDirectoriesCompleter.__init__N)rrrr"r r r r rTxs rTc@s eZdZdZddZddZdS)SuppressCompleterzK A completer used to suppress the completion of specific arguments cCsdSrr r(r r r r"szSuppressCompleter.__init__cCsdS)z? Decide if the completion should be suppressed Tr r(r r r suppressszSuppressCompleter.suppressN)rrrrr"rVr r r r rU}s rU) rrFrr r renvironEnvironCompleterr*rCrTrUr r r r s  ,