a
}|äg
ã @ sž d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z zddl
Z
W n* eyŠ ddlm
m mZ
Y n0 G d d
„ d
ƒZdS )z8Provides Tab completion when prompting users for a path.é N)Ú
TracebackType)ÚCallable)ÚIterator)ÚLiteral)ÚOptional)ÚTypec @ sf e Zd ZdZddœdd„Zeeee dœdd„Zddœd d
„Z ee
e ee ee ddœd
d„Z
dS )Ú Completera/ Provides Tab completion when prompting users for a path.
This class is meant to be used with readline to provide Tab
completion for users entering paths. The complete method can be
passed to readline.set_completer directly, however, this function
works best as a context manager. For example:
with Completer():
raw_input()
In this example, Tab completion will be available during the call to
raw_input above, however, readline will be restored to its previous
state when exiting the body of the with statement.
N)Úreturnc C s | | | d S )N© ©Úselfr
r
úG/usr/lib/python3.9/site-packages/certbot/_internal/display/completer.pyÚ__init__" s zCompleter.__init__)ÚtextÚstater c C s$ |dkrt |d ¡| _t| jdƒS )a( Provides path completion for use with readline.
:param str text: text to offer completions for
:param int state: which completion to return
:returns: possible completion for text or ``None`` if all
completions have been returned
:rtype: str
r Ú*N)ÚglobZiglobZ_iterÚnext)r r r r
r
r
Úcomplete' s zCompleter.completec C sX t ¡ | _t ¡ | _t | j¡ t d¡ t jd urJdt jv rJt d¡ n
t d¡ d S )Nz
;Úlibeditzbind ^I rl_completez
tab: complete)
ÚreadlineZ
get_completerÚ_original_completerZget_completer_delimsÚ_original_delimsÚ
set_completerr Úset_completer_delimsÚ__doc__Úparse_and_bindr r
r
r
Ú __enter__6 s
zCompleter.__enter__zLiteral[False])Úunused_typeÚunused_valueÚunused_tracebackr c C s t | j¡ t | j¡ dS )NF)r r r r r )r r r r r
r
r
Ú__exit__D s zCompleter.__exit__)Ú__name__Ú
__module__Ú__qualname__r r ÚstrÚintr r r r Ú
BaseExceptionr r! r
r
r
r
r s
þr )r r Útypesr Útypingr r r r r r ÚImportErrorZ(certbot._internal.display.dummy_readlineZ _internalZdisplayZdummy_readliner r
r
r
r
Ú