1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-06-07 10:53:26 +03:00

CAPI: Create response queue in companion.Session

No need to create in callers and then use setter.
This commit is contained in:
Athanasius 2021-08-25 11:50:56 +01:00
parent 69d0d03b9b
commit e1c6a0e9f8
No known key found for this signature in database
GPG Key ID: AE3E527847057C7D
3 changed files with 5 additions and 15 deletions

View File

@ -10,7 +10,6 @@ import queue
import re import re
import sys import sys
from os.path import getmtime, join from os.path import getmtime, join
from queue import Queue
from time import sleep, time from time import sleep, time
from typing import TYPE_CHECKING, Any, List, Optional from typing import TYPE_CHECKING, Any, List, Optional
@ -272,10 +271,6 @@ sys.path: {sys.path}'''
companion.session.login(monitor.cmdr, monitor.is_beta) companion.session.login(monitor.cmdr, monitor.is_beta)
# Set up the response queue
capi_response_queue: Queue = Queue()
companion.session.set_capi_response_queue(capi_response_queue)
# Initiate CAPI queries # Initiate CAPI queries
querytime = int(time()) querytime = int(time())
companion.session.station(query_time=querytime) companion.session.station(query_time=querytime)
@ -283,7 +278,9 @@ sys.path: {sys.path}'''
# Wait for the response # Wait for the response
_capi_request_timeout = 60 _capi_request_timeout = 60
try: try:
capi_response = capi_response_queue.get(block=True, timeout=_capi_request_timeout) capi_response = companion.session.capi_response_queue.get(
block=True, timeout=_capi_request_timeout
)
except queue.Empty: except queue.Empty:
logger.error(f'CAPI requests timed out after {_capi_request_timeout} seconds') logger.error(f'CAPI requests timed out after {_capi_request_timeout} seconds')

View File

@ -385,8 +385,6 @@ class AppWindow(object):
def __init__(self, master: tk.Tk): # noqa: C901, CCR001 # TODO - can possibly factor something out def __init__(self, master: tk.Tk): # noqa: C901, CCR001 # TODO - can possibly factor something out
self.capi_query_holdoff_time = config.get_int('querytime', default=0) + companion.capi_query_cooldown self.capi_query_holdoff_time = config.get_int('querytime', default=0) + companion.capi_query_cooldown
self.capi_response_queue: queue.Queue = queue.Queue()
companion.session.set_capi_response_queue(self.capi_response_queue)
self.w = master self.w = master
self.w.title(applongname) self.w.title(applongname)
@ -950,7 +948,7 @@ class AppWindow(object):
capi_response: Union[companion.EDMCCAPIFailedRequest, companion.EDMCCAPIResponse] capi_response: Union[companion.EDMCCAPIFailedRequest, companion.EDMCCAPIResponse]
try: try:
logger.trace_if('capi.worker', 'Pulling answer off queue') logger.trace_if('capi.worker', 'Pulling answer off queue')
capi_response = self.capi_response_queue.get(block=False) capi_response = companion.session.capi_response_queue.get(block=False)
if isinstance(capi_response, companion.EDMCCAPIFailedRequest): if isinstance(capi_response, companion.EDMCCAPIFailedRequest):
logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}') logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}')
if capi_response.exception: if capi_response.exception:

View File

@ -602,8 +602,7 @@ class Session(object):
# queries back to the requesting code (technically anything checking # queries back to the requesting code (technically anything checking
# this queue, but it should be either EDMarketConnector.AppWindow or # this queue, but it should be either EDMarketConnector.AppWindow or
# EDMC.py). Items may be EDMCCAPIResponse or EDMCCAPIFailedRequest. # 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 = Queue()
self.capi_response_queue: Queue
logger.debug('Starting CAPI queries thread...') logger.debug('Starting CAPI queries thread...')
self.capi_query_thread = threading.Thread( self.capi_query_thread = threading.Thread(
target=self.capi_query_worker, target=self.capi_query_worker,
@ -613,10 +612,6 @@ class Session(object):
self.capi_query_thread.start() self.capi_query_thread.start()
logger.debug('Done') logger.debug('Done')
def set_capi_response_queue(self, capi_response_queue: Queue) -> None:
"""Set a reference to the CAPI response data queue."""
self.capi_response_queue = capi_response_queue
def set_tk_master(self, master: tk.Tk) -> None: def set_tk_master(self, master: tk.Tk) -> None:
"""Set a reference to main UI Tk root window.""" """Set a reference to main UI Tk root window."""
self.tk_master = master self.tk_master = master