mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-05-29 06:39:32 +03:00
CAPI: Create response queue in companion.Session
No need to create in callers and then use setter.
This commit is contained in:
parent
69d0d03b9b
commit
e1c6a0e9f8
9
EDMC.py
9
EDMC.py
@ -10,7 +10,6 @@ import queue
|
||||
import re
|
||||
import sys
|
||||
from os.path import getmtime, join
|
||||
from queue import Queue
|
||||
from time import sleep, time
|
||||
from typing import TYPE_CHECKING, Any, List, Optional
|
||||
|
||||
@ -272,10 +271,6 @@ sys.path: {sys.path}'''
|
||||
|
||||
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
|
||||
querytime = int(time())
|
||||
companion.session.station(query_time=querytime)
|
||||
@ -283,7 +278,9 @@ sys.path: {sys.path}'''
|
||||
# Wait for the response
|
||||
_capi_request_timeout = 60
|
||||
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:
|
||||
logger.error(f'CAPI requests timed out after {_capi_request_timeout} seconds')
|
||||
|
@ -385,8 +385,6 @@ class AppWindow(object):
|
||||
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_response_queue: queue.Queue = queue.Queue()
|
||||
companion.session.set_capi_response_queue(self.capi_response_queue)
|
||||
|
||||
self.w = master
|
||||
self.w.title(applongname)
|
||||
@ -950,7 +948,7 @@ class AppWindow(object):
|
||||
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)
|
||||
capi_response = companion.session.capi_response_queue.get(block=False)
|
||||
if isinstance(capi_response, companion.EDMCCAPIFailedRequest):
|
||||
logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}')
|
||||
if capi_response.exception:
|
||||
|
@ -602,8 +602,7 @@ class Session(object):
|
||||
# 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
|
||||
self.capi_response_queue: Queue = Queue()
|
||||
logger.debug('Starting CAPI queries thread...')
|
||||
self.capi_query_thread = threading.Thread(
|
||||
target=self.capi_query_worker,
|
||||
@ -613,10 +612,6 @@ class Session(object):
|
||||
self.capi_query_thread.start()
|
||||
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:
|
||||
"""Set a reference to main UI Tk root window."""
|
||||
self.tk_master = master
|
||||
|
Loading…
x
Reference in New Issue
Block a user