File: C:/Users/fred/anaconda3/Lib/site-packages/spyder/plugins/completion/providers/fallback/provider.py
# -*- coding: utf-8 -*-
# Copyright © Spyder Project Contributors
# Licensed under the terms of the MIT License
# (see spyder/__init__.py for details)
"""
Fallback completion provider.
Wraps FallbackActor to provide compatibility with SpyderCompletionProvider API.
"""
# Standard library imports
import logging
# Local imports
from spyder.config.base import _
from spyder.plugins.completion.api import SpyderCompletionProvider
from spyder.plugins.completion.providers.fallback.actor import FallbackActor
logger = logging.getLogger(__name__)
class FallbackProvider(SpyderCompletionProvider):
COMPLETION_PROVIDER_NAME = 'fallback'
DEFAULT_ORDER = 2
def __init__(self, parent, config):
SpyderCompletionProvider.__init__(self, parent, config)
self.fallback_actor = FallbackActor(self)
self.fallback_actor.sig_fallback_ready.connect(
lambda: self.sig_provider_ready.emit(
self.COMPLETION_PROVIDER_NAME))
self.fallback_actor.sig_set_tokens.connect(
lambda _id, resp: self.sig_response_ready.emit(
self.COMPLETION_PROVIDER_NAME, _id, resp))
self.started = False
self.requests = {}
def get_name(self):
return _('Fallback')
def start_completion_services_for_language(self, language):
return self.started
def start(self):
if not self.started:
self.fallback_actor.start()
self.started = True
def shutdown(self):
if self.started:
self.fallback_actor.stop()
self.started = False
def send_request(self, language, req_type, req, req_id=None):
request = {
'type': req_type,
'file': req['file'],
'id': req_id,
'msg': req
}
req['language'] = language
self.fallback_actor.sig_mailbox.emit(request)
def can_close(self):
return True