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:
parent
69d0d03b9b
commit
e1c6a0e9f8
9
EDMC.py
9
EDMC.py
@ -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')
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user