diff --git a/EDMC.py b/EDMC.py index 842e0a33..cfd019e5 100755 --- a/EDMC.py +++ b/EDMC.py @@ -290,7 +290,7 @@ sys.path: {sys.path}''' sys.exit(EXIT_SERVER) # noinspection DuplicatedCode - if isinstance(capi_response, companion.CAPIFailedRequest): + if isinstance(capi_response, companion.EDMCCAPIFailedRequest): logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}') if capi_response.exception: raise capi_response.exception diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 940b4a40..6ec7b32c 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -947,11 +947,11 @@ class AppWindow(object): play_bad: bool = False err: Optional[str] = None - capi_response: Union[companion.CAPIFailedRequest, companion.EDMCCAPIResponse] + capi_response: Union[companion.EDMCCAPIFailedRequest, companion.EDMCCAPIResponse] try: logger.trace_if('capi.worker', 'Pulling answer off queue') capi_response = self.capi_response_queue.get(block=False) - if isinstance(capi_response, companion.CAPIFailedRequest): + if isinstance(capi_response, companion.EDMCCAPIFailedRequest): logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}') if capi_response.exception: raise capi_response.exception diff --git a/companion.py b/companion.py index 2d83a38c..85a4e4f6 100644 --- a/companion.py +++ b/companion.py @@ -560,7 +560,7 @@ class EDMCCAPIResponse(EDMCCAPIReturn): self.capi_data: CAPIData = capi_data # Frontier CAPI response, possibly augmented (station query) -class CAPIFailedRequest(EDMCCAPIReturn): +class EDMCCAPIFailedRequest(EDMCCAPIReturn): """CAPI failed query error class.""" def __init__( @@ -594,10 +594,17 @@ class Session(object): self.retrying = False # Avoid infinite loop when successful auth / unsuccessful query self.tk_master: Optional[tk.Tk] = None - self.capi_raw_data = CAPIDataRaw() - logger.debug('Starting CAPI queries thread...') - self.capi_response_queue: Queue + self.capi_raw_data = CAPIDataRaw() # Cache of raw replies from CAPI service + # Queue that holds requests for CAPI queries, the items should always + # be EDMCCAPIRequest objects. self.capi_query_queue: Queue = Queue() + # This queue is used to pass the result, possibly a failure, of CAPI + # queries back to the requesting code (technically anything checking + # this queue, but it should be either EDMarketConnector.AppWindow or + # EDMC.py). Items may be EDMCCAPIResponse or EDMCCAPIFailedRequest. + # NB: This is created by the caller and set using self.set_capi_response_queue(). + self.capi_response_queue: Queue + logger.debug('Starting CAPI queries thread...') self.capi_query_thread = threading.Thread( target=self.capi_query_worker, daemon=True, @@ -893,7 +900,7 @@ class Session(object): except Exception as e: self.capi_response_queue.put( ( - CAPIFailedRequest( + EDMCCAPIFailedRequest( message=e.args, exception=e, query_time=query.query_time, @@ -920,7 +927,7 @@ class Session(object): except Exception as e: self.capi_response_queue.put( ( - CAPIFailedRequest( + EDMCCAPIFailedRequest( message=e.args, exception=e, query_time=query.query_time,