
    G@d                     r    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dS )zp
Fallback completion provider.

Wraps FallbackActor to provide compatibility with SpyderCompletionProvider API.
    N_)SpyderCompletionProvider)FallbackActorc                   B    e Zd ZdZdZd Zd Zd Zd Zd Z	dd	Z
d
 ZdS )FallbackProviderfallback   c                      t          j         ||           t                      _         j        j                             fd            j        j                             fd           d _        i  _        d S )Nc                  B     j                              j                  S N)sig_provider_readyemitCOMPLETION_PROVIDER_NAMEselfs   Ulib/python3.11/site-packages/spyder/plugins/completion/providers/fallback/provider.py<lambda>z+FallbackProvider.__init__.<locals>.<lambda>!   s     D+00-/ /     c                 F    j                             j        | |          S r   )sig_response_readyr   r   )_idrespr   s     r   r   z+FallbackProvider.__init__.<locals>.<lambda>$   s$    d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__   s     )$???+D11.66/ / / /	0 	0 	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                 X    | j         s"| j                                         d| _         d S d S NT)r   r   startr   s    r   r+   zFallbackProvider.start/   s6    | 	 %%'''DLLL	  	 r   c                 X    | j         r"| j                                         d| _         d S d S )NF)r   r   stopr   s    r   shutdownzFallbackProvider.shutdown4   s6    < 	!$$&&& DLLL	! 	!r   Nc                 h    ||d         ||d}||d<   | j         j                            |           d S )Nfile)typer0   idmsgr'   )r   sig_mailboxr   )r   r'   req_typereqreq_idrequests         r   send_requestzFallbackProvider.send_request9   sI    K	
 
 #J',,W55555r   c                     dS r*    r   s    r   	can_closezFallbackProvider.can_closeC   s    tr   r   )__name__
__module____qualname__r   DEFAULT_ORDERr   r%   r(   r+   r.   r9   r<   r;   r   r   r   r      s        )M
 
 
         
! ! !
6 6 6 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 B B B B B L L L L L L 
	8	$	$+ + + + +/ + + + + +r   