
    Je                     n    d Z ddlZddlmZ ddlmZ ddlmZ  ej                  e	      Z
 G d de      Zy)zp
Fallback completion provider.

Wraps FallbackActor to provide compatibility with SpyderCompletionProvider API.
    N_)SpyderCompletionProvider)FallbackActorc                   @    e Zd ZdZdZd Zd Zd Zd Zd Z	dd	Z
d
 Zy)FallbackProviderfallback   c                     t        j                   ||       t                _         j                  j                  j                   fd        j                  j                  j                   fd       d _        i  _        y )Nc                  N     j                   j                   j                        S N)sig_provider_readyemitCOMPLETION_PROVIDER_NAMEselfs   W/usr/lib/python3/dist-packages/spyder/plugins/completion/providers/fallback/provider.py<lambda>z+FallbackProvider.__init__.<locals>.<lambda>!   s!    D++00--/     c                 R    j                   j                  j                  | |      S r   )sig_response_readyr   r   )_idrespr   s     r   r   z+FallbackProvider.__init__.<locals>.<lambda>$   s%    d55::--sD: r   F)	r   __init__r   fallback_actorsig_fallback_readyconnectsig_set_tokensstartedrequests)r   parentconfigs   `  r   r   zFallbackProvider.__init__   sr     ))$?+D1..66/	0 	**22:	; r   c                     t        d      S )NFallbackr   r   s    r   get_namezFallbackProvider.get_name)   s    }r   c                     | j                   S r   )r   )r   languages     r   &start_completion_services_for_languagez7FallbackProvider.start_completion_services_for_language,   s    ||r   c                 `    | j                   s"| j                  j                          d| _         y y NT)r   r   startr   s    r   r+   zFallbackProvider.start/   s'    ||%%'DL r   c                 `    | j                   r"| j                  j                          d| _         y y )NF)r   r   stopr   s    r   shutdownzFallbackProvider.shutdown4   s'    <<$$& DL r   Nc                 l    ||d   ||d}||d<   | j                   j                  j                  |       y )Nfile)typer0   idmsgr'   )r   sig_mailboxr   )r   r'   req_typereqreq_idrequests         r   send_requestzFallbackProvider.send_request9   s>    K	
 #J'',,W5r   c                      yr*    r   s    r   	can_closezFallbackProvider.can_closeC   s    r   r   )__name__
__module____qualname__r   DEFAULT_ORDERr   r%   r(   r+   r.   r9   r<   r;   r   r   r   r      s0    )M
 
!
6r   r   )__doc__loggingspyder.config.baser   spyder.plugins.completion.apir   2spyder.plugins.completion.providers.fallback.actorr   	getLoggerr=   loggerr   r;   r   r   <module>rH      s;     ! B L 
		8	$+/ +r   