2025-07-21T16:58:54.662 [INFO] [MainThread] [loggingutils.py] [setup_logging()] Logging set up
2025-07-21T16:58:54.663 [INFO] [MainThread] [__init__.py] [create_app()] Logging has been set up
2025-07-21T16:58:54.674 [INFO] [MainThread] [base_server.py] [__init__()] Server initialized for gevent.
2025-07-21T16:58:54.674 [DEBUG] [MainThread] [tlc.py] [setup_weather()] Importing weather.sdk.client
2025-07-21T16:58:54.675 [DEBUG] [MainThread] [client.py] [open()] Opening with close_first = False
2025-07-21T16:58:54.675 [DEBUG] [MainThread] [client.py] [open()] Trying to open transport...
2025-07-21T16:58:54.678 [DEBUG] [MainThread] [tlc.py] [setup_telescope()] Importing lesedi.sdk.telescope
2025-07-21T16:58:54.680 [INFO] [MainThread] [telescope.py] [__init__()] Telescope: 10.2.2.32:9050
2025-07-21T16:58:54.680 [DEBUG] [MainThread] [tlc.py] [setup_instruments()] Importing mookodi.sdk.instrument
2025-07-21T16:58:54.719 [DEBUG] [MainThread] [__init__.py] [wrapper()] matplotlib data path: /opt/pyenvs/mookodienv/lib/python3.8/site-packages/matplotlib-3.5.2-py3.8-linux-x86_64.egg/matplotlib/mpl-data
2025-07-21T16:58:54.721 [DEBUG] [MainThread] [__init__.py] [wrapper()] CONFIGDIR=/root/.config/matplotlib
2025-07-21T16:58:54.722 [DEBUG] [MainThread] [__init__.py] [<module>()] interactive is False
2025-07-21T16:58:54.722 [DEBUG] [MainThread] [__init__.py] [<module>()] platform is linux
2025-07-21T16:58:54.722 [DEBUG] [MainThread] [__init__.py] [<module>()] loaded modules: ['sys', 'builtins', '_frozen_importlib', '_imp', '_warnings', '_io', 'marshal', 'posix', '_frozen_importlib_external', '_thread', '_weakref', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', '_abc', 'abc', 'io', '_stat', 'stat', '_collections_abc', 'genericpath', 'posixpath', 'os.path', 'os', '_sitebuiltins', '_locale', '_bootlocale', 'types', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib', 'importlib.machinery', 'importlib.abc', '_operator', 'operator', 'keyword', '_heapq', 'heapq', 'itertools', 'reprlib', '_collections', 'collections', '_functools', 'functools', 'contextlib', 'importlib.util', 'lesedi', 'mookodi', 'weather', 'zope', 'sitecustomize', 'site', 'enum', '_sre', 'sre_constants', 'sre_parse', 'sre_compile', 'copyreg', 're', '__future__', 'binascii', 'fnmatch', 'errno', 'zlib', '_compression', '_weakrefset', 'threading', '_bz2', 'bz2', '_lzma', 'lzma', 'pwd', 'grp', 'shutil', '_struct', 'struct', 'zipfile', 'weakref', 'pkgutil', 'platform', 'math', '_datetime', 'datetime', 'xml', 'xml.parsers', 'pyexpat.errors', 'pyexpat.model', 'pyexpat', 'xml.parsers.expat.model', 'xml.parsers.expat.errors', 'xml.parsers.expat', 'plistlib', 'email', 'email.errors', '_string', 'string', 'email.quoprimime', 'base64', 'email.base64mime', 'quopri', 'email.encoders', 'email.charset', 'email.header', '_bisect', 'bisect', '_sha512', '_random', 'random', '_socket', 'collections.abc', 'select', 'selectors', 'socket', 'urllib', 'urllib.parse', 'locale', 'calendar', 'email._parseaddr', 'email.utils', 'email._policybase', 'email.feedparser', 'email.parser', 'tempfile', 'textwrap', '_opcode', 'opcode', 'dis', 'token', 'tokenize', 'linecache', 'inspect', 'ntpath', 'pkg_resources.extern', 'pkg_resources._vendor', 'pkg_resources.extern.six', 'pkg_resources._vendor.six', 'pkg_resources.extern.six.moves', 'pkg_resources._vendor.six.moves', 'pkg_resources.py31compat', 'pkg_resources.extern.appdirs', 'pkg_resources._vendor.packaging.__about__', 'pkg_resources.extern.packaging', 'pkg_resources.extern.packaging._structures', 'pkg_resources.extern.packaging.version', 'pkg_resources.extern.packaging._compat', 'pkg_resources.extern.packaging.specifiers', 'copy', 'pprint', 'traceback', 'pkg_resources.extern.pyparsing', 'pkg_resources.extern.six.moves.urllib', 'pkg_resources.extern.packaging.markers', 'pkg_resources.extern.packaging.requirements', 'sysconfig', 'encodings.cp437', 'uu', 'email._encoded_words', 'email.iterators', 'email.message', 'signal', '_posixsubprocess', 'subprocess', 'pkg_resources', 'gunicorn', 'gunicorn.app', 'gunicorn.errors', '_ast', 'ast', 'fcntl', 'html.entities', 'html', 'atexit', 'logging', 'gunicorn.workers', 'gunicorn.util', 'gunicorn.pidfile', 'gunicorn.sock', 'gunicorn.systemd', 'gunicorn.arbiter', 'gettext', 'argparse', 'shlex', '_ssl', 'ssl', 'gunicorn.reloader', 'gunicorn.config', 'gunicorn.debug', 'gunicorn.app.base', 'gunicorn.app.wsgiapp', '_compat_pickle', '_pickle', 'pickle', '_queue', 'queue', 'logging.handlers', 'socketserver', 'logging.config', 'gunicorn.glogging', 'gevent._compat', 'gevent.libev', 'cython_runtime', '_cython_3_0_0a11', 'gc', 'greenlet._greenlet', 'greenlet', 'gevent.exceptions', 'zope.interface._compat', 'zope.interface.exceptions', 'zope.interface.ro', 'zope.interface._zope_interface_coptimizations', 'zope.interface.advice', 'zope.interface.declarations', 'zope.interface.interface', 'zope.interface.interfaces', 'zope.interface', 'gevent._interfaces', 'gevent.libev.corecext', 'gevent._config', 'gevent._util', 'gevent._gevent_c_greenlet_primitives', 'gevent._gevent_c_hub_local', 'gevent._hub_local', 'gevent._greenlet_primitives', 'gevent._gevent_c_waiter', 'gevent._waiter', 'gevent.timeout', 'gevent._gevent_c_hub_primitives', 'gevent._hub_primitives', 'gevent._tblib', 'gevent._gevent_c_ident', 'gevent._gevent_cgreenlet', 'gevent.greenlet', 'gevent._ident', 'gevent.hub', 'gevent.os', 'gevent', 'gevent._gevent_c_abstract_linkable', 'gevent._abstract_linkable', 'gevent._gevent_cevent', 'gevent._gevent_cqueue', 'gevent.queue', 'gevent.event', 'gevent.monkey', 'gevent._gevent_c_semaphore', 'gevent._semaphore', 'gevent.lock', 'gevent._gevent_c_imap', 'gevent._imap', 'gevent.pool', 'gevent.baseserver', 'backports', 'gevent._socketcommon', 'gevent._socket3', 'gevent.socket', 'gevent.server', 'http', 'http.client', 'gevent.pywsgi', 'gunicorn.http.errors', 'gunicorn.http.body', 'gunicorn.http.message', 'gunicorn.http.unreader', 'gunicorn.http.parser', 'gunicorn.http', 'gunicorn.http.wsgi', 'gunicorn.workers.workertmp', 'gunicorn.workers.base', 'gunicorn.workers.base_async', 'gunicorn.workers.ggevent', 'zope.event', 'gevent.events', 'gevent._gevent_clocal', 'gevent.local', 'gevent.thread', 'gevent.threading', '_threading_local', 'gevent.time', 'gevent.select', 'gevent.selectors', 'gevent._ssl3', 'gevent.ssl', 'gevent.subprocess', 'gevent.signal', 'pytz.exceptions', 'pytz.lazy', 'pytz.tzinfo', 'pytz.tzfile', 'pytz', 'astropy._version', 'packaging.__about__', 'packaging', 'typing.io', 'typing.re', 'typing', 'packaging._structures', 'packaging.version', 'astropy.version', 'astropy.config.paths', 'astropy.extern', 'astropy.extern.configobj', 'astropy.extern.configobj.configobj', 'astropy.extern.configobj.validate', '_csv', 'csv', 'pathlib', 'backports.configparser.compat', 'backports.configparser', 'configparser', 'importlib.metadata', 'erfa._version', 'numpy._globals', 'numpy.__config__', 'numpy._distributor_init', '_json', 'json.scanner', 'json.decoder', 'json.encoder', 'json', 'numpy._version', 'numpy.version', 'numpy.core._multiarray_umath', 'numpy.compat._inspect', 'numpy.compat.py3k', 'numpy.compat', 'numpy.core.overrides', 'numpy.core.multiarray', 'numpy.core.umath', 'numbers', 'numpy.core._string_helpers', 'numpy.core._dtype', 'numpy.core._type_aliases', 'numpy.core.numerictypes', 'numpy.core._exceptions', 'numpy.core._methods', 'numpy.core.fromnumeric', 'numpy.core.shape_base', 'numpy.core._ufunc_config', 'numpy.core.arrayprint', 'numpy.core._asarray', 'numpy.core.numeric', 'numpy.core.defchararray', 'numpy.core.records', 'numpy.core.memmap', 'numpy.core.function_base', 'numpy.core._machar', 'numpy.core.getlimits', 'numpy.core.einsumfunc', 'numpy.core._multiarray_tests', 'numpy.core._add_newdocs', 'numpy.core._add_newdocs_scalars', 'numpy.core._dtype_ctypes', '_ctypes', 'ctypes._endian', 'ctypes', 'numpy.core._internal', 'numpy._pytesttester', 'numpy.core', 'numpy.lib.mixins', 'numpy.lib.ufunclike', 'numpy.lib.type_check', 'numpy.lib.scimath', 'numpy.lib.stride_tricks', 'numpy.lib.twodim_base', 'numpy.linalg._umath_linalg', 'numpy.linalg.linalg', 'numpy.linalg', 'numpy.matrixlib.defmatrix', 'numpy.matrixlib', 'numpy.lib.histograms', 'numpy.lib.function_base', 'numpy.lib.index_tricks', 'numpy.lib.nanfunctions', 'numpy.lib.shape_base', 'numpy.lib.polynomial', 'numpy.lib.utils', 'numpy.lib.arraysetops', 'numpy.lib.format', 'numpy.lib._datasource', 'numpy.lib._iotools', 'numpy.lib.npyio', 'numpy.lib.arrayterator', 'numpy.lib.arraypad', 'numpy.lib._version', 'numpy.lib', 'numpy.fft._pocketfft_internal', 'numpy.fft._pocketfft', 'numpy.fft.helper', 'numpy.fft', 'numpy.polynomial.polyutils', 'numpy.polynomial._polybase', 'numpy.polynomial.polynomial', 'numpy.polynomial.chebyshev', 'numpy.polynomial.legendre', 'numpy.polynomial.hermite', 'numpy.polynomial.hermite_e', 'numpy.polynomial.laguerre', 'numpy.polynomial', '_cython_0_29_30', 'numpy.random._common', '_hashlib', '_blake2', '_sha3', 'hashlib', 'hmac', 'secrets', 'numpy.random.bit_generator', 'numpy.random._bounded_integers', 'numpy.random._mt19937', 'numpy.random.mtrand', 'numpy.random._philox', 'numpy.random._pcg64', 'numpy.random._sfc64', 'numpy.random._generator', 'numpy.random._pickle', 'numpy.random', 'numpy.ctypeslib', 'numpy.ma.core', 'numpy.ma.extras', 'numpy.ma', 'numpy', 'erfa.ufunc', 'erfa.version', 'erfa.core', 'erfa.helpers', 'erfa', 'astropy.utils.exceptions', 'astropy.utils.decorators', 'astropy.utils.introspection', 'astropy.utils.codegen', 'difflib', 'unicodedata', 'astropy.utils.misc', 'astropy.utils.shapes', 'astropy.utils', 'astropy.config.configuration', 'astropy.config.affiliated', 'astropy.config', 'astropy.utils.state', 'astropy.tests', 'glob', 'astropy.tests.runner', 'astropy.logger', 'astropy.utils._compiler', 'astropy', 'astropy.units.format.base', '_decimal', 'decimal', 'fractions', 'astropy.units.utils', 'astropy.utils.parsing', 'astropy.units.format.utils', 'astropy.units.format.cds', 'astropy.units.format.console', 'astropy.units.format.generic', 'astropy.units.format.fits', 'astropy.units.format.latex', 'astropy.units.format.ogip', 'astropy.units.format.unicode_format', 'astropy.units.format.vounit', 'astropy.units.format', 'astropy.units.core', 'astropy.utils.compat.misc', 'astropy.utils.compat.numpycompat', 'astropy.utils.compat', 'astropy.utils.metadata', 'astropy.utils.data_info', 'astropy.units.quantity_helper.converters', 'astropy.units.structured', 'astropy.units.quantity_helper.helpers', 'astropy.units.quantity_helper.erfa', 'numpy.ma.mrecords', 'unittest.util', 'unittest.result', 'concurrent', 'concurrent.futures._base', 'concurrent.futures', 'asyncio.constants', 'asyncio.format_helpers', 'asyncio.base_futures', 'asyncio.log', 'asyncio.coroutines', '_contextvars', 'contextvars', 'asyncio.exceptions', 'asyncio.base_tasks', '_asyncio', 'asyncio.events', 'asyncio.futures', 'asyncio.protocols', 'asyncio.transports', 'asyncio.sslproto', 'asyncio.locks', 'asyncio.tasks', 'asyncio.staggered', 'asyncio.trsock', 'asyncio.base_events', 'asyncio.runners', 'asyncio.queues', 'asyncio.streams', 'asyncio.subprocess', 'asyncio.base_subprocess', 'asyncio.selector_events', 'asyncio.unix_events', 'asyncio', 'unittest.case', 'unittest.async_case', 'unittest.suite', 'unittest.loader', 'unittest.signals', 'unittest.runner', 'unittest.main', 'unittest', 'numpy.testing._private', 'numpy.linalg.lapack_lite', 'numpy.testing._private.utils', 'numpy.testing._private.extbuild', 'numpy.testing._private.decorators', 'numpy.testing._private.nosetester', 'numpy.testing', 'numpy.lib.recfunctions', 'astropy.units.quantity_helper.function_helpers', 'astropy.units.quantity_helper.scipy_special', 'astropy.units.quantity_helper', 'astropy.units.quantity', 'astropy.constants.constant', 'astropy.constants.codata2018', 'astropy.constants.iau2015', 'astropy.constants.config', 'astropy.constants.cgs', 'astropy.constants.si', 'astropy.constants.utils', 'astropy.constants', 'astropy.units.si', 'astropy.extern.ply', 'astropy.extern.ply.yacc', 'astropy.units.format.generic_parsetab', 'astropy.extern.ply.lex', 'astropy.units.format.generic_lextab', 'astropy.units.astrophys', 'astropy.units.cgs', 'astropy.units.misc', 'astropy.units.photometric', 'astropy.units.function.core', 'astropy.units.function.mixin', 'astropy.units.function.units', 'astropy.units.function.logarithmic', 'astropy.units.function', 'astropy.units.imperial', 'astropy.units.physical', 'astropy.units.equivalencies', 'typing_extensions', 'astropy.units._typing', 'astropy.units.decorators', 'astropy.units', 'markupsafe._speedups', 'markupsafe', 'jinja2.bccache', 'jinja2.utils', 'jinja2.nodes', 'jinja2.exceptions', 'jinja2.visitor', 'jinja2.idtracking', 'jinja2.optimizer', 'jinja2.compiler', 'jinja2.async_utils', 'jinja2.runtime', 'jinja2.filters', 'jinja2.tests', 'jinja2.defaults', 'jinja2._identifier', 'jinja2.lexer', 'jinja2.parser', 'jinja2.environment', 'jinja2.loaders', 'jinja2', 'mimetypes', 'http.server', 'werkzeug._internal', 'werkzeug.exceptions', 'werkzeug.urls', 'werkzeug.serving', 'urllib.response', 'urllib.error', 'urllib.request', 'http.cookiejar', 'werkzeug.sansio', 'werkzeug.sansio.http', 'werkzeug.http', 'werkzeug.datastructures', 'dataclasses', 'werkzeug.sansio.multipart', 'werkzeug.security', 'werkzeug.sansio.utils', 'werkzeug.wsgi', 'werkzeug.utils', 'werkzeug.formparser', 'werkzeug.user_agent', 'werkzeug.sansio.request', 'werkzeug.wrappers.request', 'werkzeug.sansio.response', 'werkzeug.wrappers.response', 'werkzeug.wrappers', 'werkzeug.test', 'werkzeug', 'werkzeug.local', 'flask.globals', '_uuid', 'uuid', 'flask.json.provider', 'flask.json', 'click._compat', 'click.globals', 'click.utils', 'click.exceptions', 'click.types', 'click.parser', 'click.formatting', 'click.termui', 'click.core', 'click.decorators', 'click', 'werkzeug.routing.converters', 'werkzeug.routing.exceptions', 'werkzeug.routing.rules', 'werkzeug.routing.matcher', 'werkzeug.routing.map', 'werkzeug.routing', 'blinker._saferef', 'blinker._utilities', 'blinker.base', 'blinker', 'flask.signals', 'flask.helpers', 'flask.cli', 'flask.typing', 'flask.config', 'flask.ctx', 'flask.logging', 'flask.templating', 'flask.scaffold', 'itsdangerous.exc', 'itsdangerous.encoding', 'itsdangerous.signer', 'itsdangerous.serializer', 'itsdangerous.timed', 'itsdangerous._json', 'itsdangerous.url_safe', 'itsdangerous', 'flask.json.tag', 'flask.sessions', 'flask.wrappers', 'flask.app', 'flask.blueprints', 'flask', 'webassets.six.moves', 'webassets.six', 'webassets.exceptions', 'webassets.importlib', 'webassets.utils', 'webassets.filter.autoprefixer', 'webassets.filter.babel', 'webassets.filter.cleancss', 'webassets.filter.clevercss', 'webassets.filter.closure', 'webassets.filter.closure_stylesheets', 'webassets.filter.jst', 'webassets.filter.closure_templates', 'webassets.filter.coffeescript', 'webassets.filter.compass', 'webassets.filter.cssmin', 'webassets.filter.cssprefixer', 'webassets.filter.cssrewrite.urlpath', 'webassets.filter.cssrewrite.base', 'webassets.filter.cssrewrite', 'webassets.filter.cssutils', 'webassets.filter.datauri', 'webassets.filter.dust', 'webassets.filter.handlebars', 'webassets.filter.jade', 'webassets.filter.jinja2', 'webassets.filter.jsmin', 'webassets.filter.jspacker.jspacker', 'webassets.filter.jspacker', 'webassets.filter.less', 'webassets.filter.less_ruby', 'webassets.filter.libsass', 'webassets.filter.sass', 'webassets.filter.node_sass', 'webassets.filter.postcss', 'webassets.filter.pyscss', 'webassets.filter.rcssmin', 'webassets.filter.replace', 'webassets.filter.requirejs', 'webassets.filter.rjsmin.rjsmin', 'webassets.filter.rjsmin', 'webassets.merge', 'webassets.cache', 'webassets.filter.sass_ruby', 'webassets.filter.slimit', 'webassets.filter.slimmer', 'webassets.filter.spritemapper', 'webassets.filter.stylus', 'webassets.filter.typescript', 'webassets.filter.uglifyjs', 'webassets.filter.yui', 'webassets.filter', 'webassets.updater', 'webassets.version', 'webassets.env', 'webassets.bundle', 'webassets', 'yaml.error', 'yaml.tokens', 'yaml.events', 'yaml.nodes', 'yaml.reader', 'yaml.scanner', 'yaml.parser', 'yaml.composer', 'yaml.constructor', 'yaml.resolver', 'yaml.loader', 'yaml.emitter', 'yaml.serializer', 'yaml.representer', 'yaml.dumper', 'yaml._yaml', 'yaml.cyaml', 'yaml', 'webassets.loaders', 'flask_assets', 'flask_login.__about__', 'flask_login.config', 'flask_login.mixins', 'flask_login.signals', 'flask_login.utils', 'flask_login.login_manager', 'click.testing', 'flask.testing', 'flask_login.test_client', 'flask_login', 'engineio.json', 'urllib3.packages', 'urllib3.packages.six', 'urllib3.packages.six.moves', 'urllib3.packages.six.moves.http_client', 'urllib3.exceptions', 'urllib3._version', 'urllib3.contrib', 'urllib3.contrib._appengine_environ', 'urllib3.util.wait', 'urllib3.util.connection', 'urllib3.util.request', 'urllib3.util.response', 'urllib3.util.retry', 'urllib3.util.url', 'urllib3.util.ssltransport', 'urllib3.util.ssl_', 'urllib3.util.timeout', 'urllib3.util', 'urllib3.util.proxy', 'urllib3._collections', 'ipaddress', 'urllib3.util.ssl_match_hostname', 'urllib3.connection', 'urllib3.fields', 'urllib3.filepost', 'urllib3.packages.six.moves.urllib', 'urllib3.packages.six.moves.urllib.parse', 'urllib3.request', 'urllib3.response', 'urllib3.util.queue', 'urllib3.connectionpool', 'urllib3.poolmanager', 'urllib3', 'chardet.enums', 'chardet.charsetprober', 'chardet.charsetgroupprober', 'chardet.resultdict', 'chardet.codingstatemachinedict', 'chardet.codingstatemachine', 'chardet.escsm', 'chardet.escprober', 'chardet.latin1prober', 'chardet.macromanprober', 'chardet.big5freq', 'chardet.euckrfreq', 'chardet.euctwfreq', 'chardet.gb2312freq', 'chardet.jisfreq', 'chardet.johabfreq', 'chardet.chardistribution', 'chardet.mbcharsetprober', 'chardet.mbcssm', 'chardet.big5prober', 'chardet.cp949prober', 'chardet.jpcntx', 'chardet.eucjpprober', 'chardet.euckrprober', 'chardet.euctwprober', 'chardet.gb2312prober', 'chardet.johabprober', 'chardet.sjisprober', 'chardet.utf8prober', 'chardet.mbcsgroupprober', 'chardet.sbcharsetprober', 'chardet.hebrewprober', 'chardet.langbulgarianmodel', 'chardet.langgreekmodel', 'chardet.langhebrewmodel', 'chardet.langrussianmodel', 'chardet.langthaimodel', 'chardet.langturkishmodel', 'chardet.sbcsgroupprober', 'chardet.utf1632prober', 'chardet.universaldetector', 'chardet.version', 'chardet', 'http.cookies', 'requests.compat', 'requests.exceptions', 'charset_normalizer.assets', 'charset_normalizer.constant', '_multibytecodec', 'charset_normalizer.utils', 'charset_normalizer.md', 'charset_normalizer.models', 'charset_normalizer.cd', 'charset_normalizer.api', 'charset_normalizer.legacy', 'charset_normalizer.version', 'charset_normalizer', 'requests.packages.urllib3.packages', 'requests.packages.urllib3.packages.six', 'requests.packages.urllib3.packages.six.moves', 'requests.packages.urllib3.packages.six.moves.http_client', 'requests.packages.urllib3.exceptions', 'requests.packages.urllib3._version', 'requests.packages.urllib3.contrib', 'requests.packages.urllib3.contrib._appengine_environ', 'requests.packages.urllib3.util.wait', 'requests.packages.urllib3.util.connection', 'requests.packages.urllib3.util.request', 'requests.packages.urllib3.util.response', 'requests.packages.urllib3.util.retry', 'requests.packages.urllib3.util.url', 'requests.packages.urllib3.util.ssltransport', 'requests.packages.urllib3.util.ssl_', 'requests.packages.urllib3.util.timeout', 'requests.packages.urllib3.util', 'requests.packages.urllib3.util.proxy', 'requests.packages.urllib3._collections', 'requests.packages.urllib3.util.ssl_match_hostname', 'requests.packages.urllib3.connection', 'requests.packages.urllib3.fields', 'requests.packages.urllib3.filepost', 'requests.packages.urllib3.packages.six.moves.urllib', 'requests.packages.urllib3.packages.six.moves.urllib.parse', 'requests.packages.urllib3.request', 'requests.packages.urllib3.response', 'requests.packages.urllib3.util.queue', 'requests.packages.urllib3.connectionpool', 'requests.packages.urllib3.poolmanager', 'requests.packages.urllib3', 'idna.package_data', 'idna.idnadata', 'idna.intranges', 'idna.core', 'idna', 'requests.packages.idna.package_data', 'requests.packages.idna.idnadata', 'requests.packages.idna.intranges', 'requests.packages.idna.core', 'requests.packages.idna', 'requests.packages.chardet', 'requests.packages', 'importlib.resources', 'certifi.core', 'certifi', 'requests.certs', 'requests.__version__', 'requests._internal_utils', 'requests.cookies', 'requests.structures', 'requests.utils', 'requests.auth', 'stringprep', 'encodings.idna', 'requests.hooks', 'requests.status_codes', 'requests.models', 'requests.adapters', 'requests.sessions', 'requests.api', 'requests', 'engineio.packet', 'engineio.base_client', 'engineio.exceptions', 'engineio.payload', 'engineio.client', 'engineio.static_files', 'engineio.middleware', 'gzip', 'engineio.base_server', 'engineio.base_socket', 'engineio.socket', 'engineio.server', 'engineio.async_socket', 'engineio.async_server', 'engineio.async_client', 'engineio.async_drivers', 'engineio.async_drivers.asgi', 'engineio', 'socketio.base_namespace', 'socketio.packet', 'socketio.base_client', 'socketio.exceptions', 'socketio.client', 'socketio.simple_client', 'bidict._typing', 'bidict._abc', 'bidict._dup', 'bidict._exc', 'bidict._iter', 'bidict._base', 'bidict._bidict', 'bidict._frozenbidict', 'bidict._orderedbase', 'bidict._frozenordered', 'bidict._named', 'bidict._orderedbidict', 'bidict.metadata', 'bidict', 'socketio.base_manager', 'socketio.manager', 'socketio.pubsub_manager', 'socketio.kombu_manager', 'redis.compat', 'redis.typing', 'redis.crc', 'redis.exceptions', 'redis.commands.helpers', 'redis.commands.core', 'redis.commands.redismodules', 'redis.commands.cluster', 'cryptography.__about__', 'cryptography.utils', 'cryptography', 'redis.utils', 'redis.commands.parser', 'redis.commands.sentinel', 'redis.commands', 'redis.backoff', 'redis.retry', 'redis.connection', 'redis.lock', 'redis.client', 'redis.cluster', 'redis.sentinel', 'redis', 'socketio.redis_manager', 'socketio.kafka_manager', 'socketio.zmq_manager', 'socketio.base_server', 'socketio.server', 'socketio.namespace', 'socketio.middleware', 'socketio.tornado', 'socketio.async_client', 'socketio.async_simple_client', 'socketio.async_manager', 'socketio.async_server', 'socketio.async_namespace', 'async_timeout', 'redis.asyncio.retry', 'redis.asyncio.connection', 'redis.asyncio.lock', 'redis.asyncio.client', 'redis.asyncio.parser', 'redis.asyncio.cluster', 'redis.asyncio.sentinel', 'redis.asyncio.utils', 'redis.asyncio', 'socketio.async_pubsub_manager', 'socketio.async_redis_manager', 'socketio.async_aiopika_manager', 'socketio.asgi', 'socketio', 'termios', 'getpass', 'codeop', 'code', 'werkzeug.debug.repr', 'werkzeug.debug.console', 'werkzeug.debug.tbtools', 'werkzeug.debug', 'werkzeug._reloader', 'flask_socketio.namespace', 'flask_socketio.test_client', 'flask_socketio', 'flask_dance.consumer.storage', 'flask_dance.consumer.storage.session', 'flask_dance.utils', 'flask_dance.consumer.base', 'oauthlib', 'oauthlib.common', 'oauthlib.oauth1.rfc5849.utils', 'oauthlib.oauth1.rfc5849.parameters', 'oauthlib.oauth1.rfc5849.signature', 'oauthlib.oauth1.rfc5849', 'oauthlib.oauth1.rfc5849.errors', 'oauthlib.oauth1.rfc5849.endpoints.base', 'oauthlib.oauth1.rfc5849.endpoints.access_token', 'oauthlib.oauth1.rfc5849.endpoints.authorization', 'oauthlib.oauth1.rfc5849.endpoints.request_token', 'oauthlib.oauth1.rfc5849.endpoints.resource', 'oauthlib.oauth1.rfc5849.endpoints.signature_only', 'oauthlib.oauth1.rfc5849.endpoints.pre_configured', 'oauthlib.oauth1.rfc5849.endpoints', 'oauthlib.oauth1.rfc5849.request_validator', 'oauthlib.oauth1', 'requests_oauthlib.oauth1_auth', 'requests_oauthlib.oauth1_session', 'oauthlib.oauth2.rfc6749.utils', 'oauthlib.oauth2.rfc6749.errors', 'oauthlib.oauth2.rfc6749.endpoints.base', 'oauthlib.oauth2.rfc6749.endpoints.authorization', 'oauthlib.oauth2.rfc6749.endpoints.introspect', 'oauthlib.uri_validate', 'oauthlib.oauth2.rfc6749.request_validator', 'oauthlib.oauth2.rfc6749.grant_types.base', 'oauthlib.oauth2.rfc6749.grant_types.authorization_code', 'oauthlib.oauth2.rfc6749.grant_types.client_credentials', 'oauthlib.oauth2.rfc6749.grant_types.implicit', 'oauthlib.oauth2.rfc6749.grant_types.refresh_token', 'oauthlib.oauth2.rfc6749.grant_types.resource_owner_password_credentials', 'oauthlib.oauth2.rfc6749.grant_types', 'oauthlib.oauth2.rfc6749.endpoints.revocation', 'oauthlib.oauth2.rfc6749.endpoints.token', 'oauthlib.oauth2.rfc6749.endpoints.metadata', 'oauthlib.oauth2.rfc6749.tokens', 'oauthlib.oauth2.rfc6749.endpoints.resource', 'oauthlib.oauth2.rfc6749.endpoints.pre_configured', 'oauthlib.oauth2.rfc6749.endpoints', 'oauthlib.oauth2.rfc6749', 'oauthlib.signals', 'oauthlib.oauth2.rfc6749.parameters', 'oauthlib.oauth2.rfc6749.clients.base', 'oauthlib.oauth2.rfc6749.clients.backend_application', 'oauthlib.oauth2.rfc6749.clients.legacy_application', 'oauthlib.oauth2.rfc6749.clients.mobile_application', 'oauthlib.oauth2.rfc6749.clients.service_application', 'oauthlib.oauth2.rfc6749.clients.web_application', 'oauthlib.oauth2.rfc6749.clients', 'oauthlib.oauth2.rfc8628', 'oauthlib.oauth2.rfc8628.clients.device', 'oauthlib.oauth2.rfc8628.clients', 'oauthlib.oauth2', 'requests_oauthlib.oauth2_auth', 'requests_oauthlib.oauth2_session', 'requests_oauthlib', 'urlobject.compat', 'urlobject.six.moves', 'urlobject.six', 'urlobject.netloc', 'urlobject.path', 'urlobject.ports', 'urlobject.query_string', 'urlobject.urlobject', 'urlobject', 'flask_dance.consumer.requests', 'flask_dance.consumer.oauth1', 'flask_dance.consumer.oauth2', 'flask_dance.consumer', 'flask_dance', 'sqlalchemy.util.preloaded', 'sqlalchemy.cyextension', '_cython_0_29_32', 'sqlalchemy.cyextension.collections', 'sqlalchemy.cyextension.immutabledict', 'sqlalchemy.cyextension.processors', 'sqlalchemy.cyextension.resultproxy', 'gevent._fileobjectcommon', 'gevent._fileobjectposix', 'gevent.fileobject', 'sqlalchemy.util.compat', 'sqlalchemy.exc', 'sqlalchemy.cyextension.util', 'sqlalchemy.util._has_cy', 'sqlalchemy.util.typing', 'sqlalchemy.util._collections', 'sqlalchemy.util.langhelpers', 'sqlalchemy.util._concurrency_py3k', 'sqlalchemy.util.concurrency', 'sqlalchemy.util.deprecations', 'sqlalchemy.util', 'sqlalchemy.event.registry', 'sqlalchemy.event.legacy', 'sqlalchemy.event.attr', 'sqlalchemy.event.base', 'sqlalchemy.event.api', 'sqlalchemy.event', 'sqlalchemy.log', 'sqlalchemy.pool.base', 'sqlalchemy.pool.events', 'sqlalchemy.util.queue', 'sqlalchemy.pool.impl', 'sqlalchemy.pool', 'sqlalchemy.sql.roles', 'sqlalchemy.sql.visitors', 'sqlalchemy.inspection', 'sqlalchemy.sql.cache_key', 'sqlalchemy.sql.operators', 'sqlalchemy.sql.traversals', 'sqlalchemy.sql.base', 'sqlalchemy.sql._typing', 'sqlalchemy.sql.coercions', 'sqlalchemy.sql.annotation', 'sqlalchemy.sql.type_api', 'sqlalchemy.sql.elements', 'sqlalchemy.util.topological', 'sqlalchemy.sql.ddl', 'sqlalchemy.sql.selectable', 'sqlalchemy.sql.schema', 'sqlalchemy.sql.util', 'sqlalchemy.engine._py_processors', 'sqlalchemy.engine.processors', 'sqlalchemy.sql.sqltypes', 'sqlalchemy.sql.dml', 'sqlalchemy.sql.crud', 'sqlalchemy.sql.functions', 'sqlalchemy.sql.compiler', 'sqlalchemy.sql._dml_constructors', 'sqlalchemy.sql._elements_constructors', 'sqlalchemy.sql._selectable_constructors', 'sqlalchemy.sql.lambdas', 'sqlalchemy.sql.expression', 'sqlalchemy.sql.default_comparator', 'sqlalchemy.sql.events', 'sqlalchemy.sql.naming', 'sqlalchemy.sql', 'sqlalchemy.engine.interfaces', 'sqlalchemy.engine.util', 'sqlalchemy.engine.base', 'sqlalchemy.engine.events', 'sqlalchemy.dialects', 'sqlalchemy.engine.url', 'sqlalchemy.engine.mock', 'sqlalchemy.engine.create', 'sqlalchemy.engine.row', 'sqlalchemy.engine.result', 'sqlalchemy.engine.cursor', 'sqlalchemy.engine.reflection', 'sqlalchemy.engine', 'sqlalchemy.schema', 'sqlalchemy.types', 'sqlalchemy.engine.characteristics', 'sqlalchemy.engine.default', 'sqlalchemy', 'sqlalchemy.ext', 'sqlalchemy.orm.exc', 'sqlalchemy.sql._orm_types', 'sqlalchemy.orm._typing', 'sqlalchemy.orm.base', 'sqlalchemy.orm.mapped_collection', 'sqlalchemy.orm.collections', 'sqlalchemy.orm.path_registry', 'sqlalchemy.orm.interfaces', 'sqlalchemy.orm.attributes', 'sqlalchemy.orm.state', 'sqlalchemy.orm.instrumentation', 'sqlalchemy.orm.util', 'sqlalchemy.future.engine', 'sqlalchemy.future', 'sqlalchemy.orm.context', 'sqlalchemy.orm.loading', 'sqlalchemy.orm.strategy_options', 'sqlalchemy.orm.descriptor_props', 'sqlalchemy.orm.relationships', 'sqlalchemy.orm.properties', 'sqlalchemy.orm.mapper', 'sqlalchemy.orm.query', 'sqlalchemy.orm.evaluator', 'sqlalchemy.orm.sync', 'sqlalchemy.orm.persistence', 'sqlalchemy.orm.bulk_persistence', 'sqlalchemy.orm.identity', 'sqlalchemy.orm.state_changes', 'sqlalchemy.orm.unitofwork', 'sqlalchemy.orm.session', 'sqlalchemy.orm._orm_constructors', 'sqlalchemy.orm.clsregistry', 'sqlalchemy.orm.decl_base', 'sqlalchemy.orm.decl_api', 'sqlalchemy.orm.strategies', 'sqlalchemy.orm.writeonly', 'sqlalchemy.orm.dynamic', 'sqlalchemy.orm.scoping', 'sqlalchemy.orm.events', 'sqlalchemy.orm.dependency', 'sqlalchemy.orm', 'sqlalchemy.ext.declarative.extensions', 'sqlalchemy.ext.declarative', 'sqlalchemy.ext.mutable', 'flask_dance.consumer.storage.sqla', 'flask_sqlalchemy.pagination', 'flask_sqlalchemy.query', 'flask_sqlalchemy.model', 'flask_sqlalchemy.session', 'flask_sqlalchemy.extension', 'flask_sqlalchemy', 'alembic.runtime', 'sqlalchemy.engine.strategies', 'sqlalchemy.ext.compiler', 'zipp', 'importlib_resources._compat', 'importlib_resources.abc', 'importlib_resources._common', 'importlib_resources._legacy', 'importlib_resources', 'importlib_metadata._functools', 'importlib_metadata._text', 'importlib_metadata._adapters', 'importlib_metadata._compat', 'importlib_metadata._meta', 'importlib_metadata._collections', 'importlib_metadata._itertools', 'importlib_metadata', 'alembic.util.compat', 'alembic.util.exc', 'alembic.util.editor', 'alembic.util.langhelpers', 'alembic.util.sqla_compat', 'alembic.util.messaging', 'mako', 'mako.compat', 'timeit', 'mako.util', 'mako.ext', 'mako.filters', 'mako.exceptions', 'mako.cache', 'mako._ast_util', 'mako.pyparser', 'mako.ast', 'mako.parsetree', 'mako.pygen', 'mako.codegen', 'mako.runtime', 'mako.lexer', 'mako.template', 'alembic.util.pyfiles', 'alembic.util', 'alembic.ddl.base', 'alembic.ddl.impl', 'alembic.ddl.mssql', 'alembic.operations.schemaobj', 'sqlalchemy.events', 'alembic.operations.batch', 'alembic.operations.base', 'alembic.operations.ops', 'alembic.operations.toimpl', 'alembic.operations', 'alembic.autogenerate.render', 'alembic.autogenerate.compare', 'alembic.autogenerate.api', 'alembic.autogenerate.rewriter', 'alembic.autogenerate', 'alembic.ddl.mysql', 'alembic.ddl.oracle', 'sqlalchemy.dialects.postgresql.json', 'sqlalchemy.dialects.postgresql.ranges', 'sqlalchemy.dialects.postgresql.array', 'sqlalchemy.dialects.postgresql.hstore', 'sqlalchemy.dialects.postgresql.types', 'sqlalchemy.dialects.postgresql.pg_catalog', 'sqlalchemy.dialects.postgresql.ext', 'sqlalchemy.dialects.postgresql.named_types', 'sqlalchemy.dialects.postgresql.base', 'sqlalchemy.dialects.postgresql.asyncpg', 'sqlalchemy.dialects.postgresql.pg8000', 'sqlalchemy.dialects.postgresql._psycopg_common', 'sqlalchemy.dialects.postgresql.psycopg', 'sqlalchemy.dialects.postgresql.psycopg2', 'sqlalchemy.dialects.postgresql.psycopg2cffi', 'sqlalchemy.dialects.postgresql.dml', 'sqlalchemy.dialects.postgresql', 'alembic.ddl.postgresql', 'alembic.ddl.sqlite', 'alembic.ddl', 'alembic.runtime.migration', 'alembic.runtime.environment', 'alembic.context', 'alembic.op', 'alembic', 'alembic.script.revision', 'alembic.script.write_hooks', 'dateutil._version', 'dateutil', 'six', 'six.moves', 'dateutil.tz._common', 'dateutil.tz._factories', 'dateutil.tz.tz', 'dateutil.tz', 'alembic.script.base', 'alembic.script', 'alembic.command', 'alembic.config', 'flask_migrate', 'wtforms.validators', 'wtforms.widgets.core', 'wtforms.widgets', 'wtforms.i18n', 'wtforms.utils', 'wtforms.fields.core', 'wtforms.fields.choices', 'wtforms.fields.datetime', 'wtforms.fields.form', 'wtforms.fields.list', 'wtforms.fields.numeric', 'wtforms.fields.simple', 'wtforms.fields', 'wtforms.meta', 'wtforms.form', 'wtforms', 'wtforms.csrf', 'wtforms.csrf.core', 'flask_wtf.csrf', 'flask_wtf.form', 'flask_wtf.recaptcha.widgets', 'flask_wtf.recaptcha.validators', 'flask_wtf.recaptcha.fields', 'flask_wtf.recaptcha', 'flask_wtf', 'filament.forms', 'filament.models', 'filament.views', 'filament', 'mookodi.sdk', 'mookodi.sdk.interface', 'thrift', 'thrift.Thrift', 'thrift.protocol', 'thrift.transport', 'thrift.compat', 'thrift.transport.TTransport', 'thrift.protocol.TProtocol', 'thrift.TRecursive', 'mookodi.sdk.interface.ttypes', 'lesedi.sdk', 'lesedi.sdk.ttypes', 'tlc', 'scripting', 'wincam', 'wincam.sdk', 'wincam.sdk.detector.interface', 'wincam.sdk.detector.interface.ttypes', 'wincam.sdk.detector.interface.constants', 'wincam.sdk.detector.interface.Service', 'thrift.transport.TSocket', 'thrift.protocol.TBinaryProtocol', 'astropy.io', 'mmap', 'ftplib', 'astropy.utils.data', 'astropy.io.fits.util', 'astropy.io.fits.verify', 'astropy.io.fits.card', 'astropy.io.fits.column', 'astropy.utils.compat.optional_deps', 'astropy.io.fits.file', 'astropy.io.fits._utils', 'astropy.io.fits.header', 'astropy.io.fits.hdu.base', 'astropy.io.fits.hdu.image', 'astropy.io.fits.fitsrec', 'astropy.io.fits.hdu.table', 'astropy.io.fits.compression', 'astropy.io.fits.hdu.compressed', 'astropy.io.fits.hdu.groups', 'astropy.io.fits.hdu.hdulist', 'astropy.io.fits.hdu.nonstandard', 'astropy.io.fits.hdu.streaming', 'astropy.io.fits.hdu', 'astropy.utils.diff', 'astropy.io.fits.diff', 'astropy.io.fits.convenience', 'astropy.io.fits', 'wincam.sdk.detector.client', 'wincam.sdk.detector', 'astropy.time._parse_times', 'astropy.time.utils', 'astropy.time.time_helper.function_helpers', 'astropy.time.time_helper', 'astropy.extern._strptime', 'astropy.time.core', 'astropy.time.formats', 'astropy.time', 'sbpy.version', 'sbpy._astropy_init', 'sbpy', 'multiprocessing.process', 'array', 'multiprocessing.reduction', 'multiprocessing.context', '__mp_main__', 'multiprocessing', 'astropy.utils.console', 'astropy.table.bst', 'astropy.table.sorted_array', 'astropy.table.index', 'astropy.table.groups', 'astropy.table.pprint', 'astropy.table._column_mixins', 'astropy.table.column', 'astropy.io.registry.base', 'astropy.io.registry.core', 'astropy.io.registry.compat', 'astropy.io.registry.interface', 'astropy.io.registry', 'astropy.table.info', 'astropy.table.connect', 'astropy.utils.masked.function_helpers', 'astropy.utils.masked.core', 'astropy.utils.masked', 'astropy.table.row', 'astropy.table.ndarray_mixin', 'astropy.table.mixins', 'astropy.table.mixins.registry', 'astropy.table.table', 'astropy.table._np_utils', 'astropy.table.np_utils', 'astropy.table.operations', 'astropy.table.soco', 'astropy.table.serialize', 'astropy.table.jsviewer', 'astropy.io.ascii.connect', 'astropy.io.ascii.docs', 'astropy.io.ascii.core', 'astropy.io.ascii.basic', 'astropy.io.ascii.cparser', 'astropy.io.ascii.fastbasic', 'astropy.io.ascii.fixedwidth', 'astropy.io.ascii.cds', 'astropy.io.ascii.mrt', 'astropy.table.meta', 'astropy.io.ascii.ecsv', 'astropy.io.ascii.latex', 'astropy.utils.xml', 'astropy.utils.xml._iterparser', 'astropy.utils.xml.writer', 'astropy.io.ascii.html', 'astropy.io.ascii.ipac', 'astropy.io.ascii.misc', 'astropy.io.ascii.daophot', 'astropy.io.ascii.qdp', 'astropy.io.ascii.sextractor', 'astropy.io.ascii.rst', 'astropy.io.ascii.ui', 'astropy.io.ascii', 'astropy.io.fits.connect', 'astropy.io.misc.pickle_helpers', 'astropy.io.misc', 'astropy.io.misc.hdf5', 'astropy.io.misc.parquet', 'astropy.io.misc.connect', 'astropy.io.votable.exceptions', 'astropy.utils.collections', 'astropy.io.votable.converters', 'astropy.io.votable.ucd', 'astropy.io.votable.util', 'astropy.utils.xml.check', 'astropy.utils.xml.validate', 'astropy.io.votable.xmlutil', 'astropy.io.votable.tablewriter', 'astropy.io.votable.tree', 'astropy.utils.xml.iterparser', 'astropy.io.votable.table', 'astropy.io.votable', 'astropy.io.votable.connect', 'astropy.io.misc.pandas', 'astropy.io.misc.pandas.connect', 'astropy.io.misc.asdf', 'astropy.io.misc.asdf.deprecation', 'astropy.io.misc.asdf.connect', 'astropy.table', 'sbpy.data.dimensions', 'astropy.coordinates.errors', 'astropy.coordinates.angle_formats', 'astropy.coordinates.angles', 'astropy.coordinates.matrix_utilities', 'astropy.coordinates.transformations', 'astropy.coordinates.distances', 'astropy.coordinates.representation', 'astropy.coordinates.earth', 'astropy.coordinates.attributes', 'astropy.coordinates.baseframe', 'astropy.coordinates.builtin_frames.baseradec', 'astropy.coordinates.builtin_frames.icrs', '_strptime', 'astropy.coordinates.earth_orientation', 'astropy.utils.iers.iers', 'astropy.utils.iers', 'astropy.coordinates.builtin_frames.utils', 'astropy.coordinates.builtin_frames.fk5', 'astropy.coordinates.builtin_frames.fk4', 'astropy.coordinates.builtin_frames.galactic', 'astropy.coordinates.builtin_frames.galactocentric', 'astropy.coordinates.builtin_frames.supergalactic', 'astropy.coordinates.builtin_frames.altaz', 'astropy.coordinates.builtin_frames.hadec', 'astropy.coordinates.builtin_frames.gcrs', 'astropy.coordinates.builtin_frames.cirs', 'astropy.coordinates.builtin_frames.itrs', 'astropy.coordinates.builtin_frames.hcrs', 'astropy.coordinates.builtin_frames.equatorial', 'astropy.coordinates.builtin_frames.ecliptic', 'astropy.coordinates.builtin_frames.skyoffset', 'astropy.coordinates.builtin_frames.icrs_fk5_transforms', 'astropy.coordinates.builtin_frames.fk4_fk5_transforms', 'astropy.coordinates.builtin_frames.galactic_transforms', 'astropy.coordinates.builtin_frames.supergalactic_transforms', 'astropy.coordinates.erfa_astrom', 'astropy.coordinates.builtin_frames.icrs_cirs_transforms', 'astropy.coordinates.builtin_frames.cirs_observed_transforms', 'astropy.coordinates.builtin_frames.icrs_observed_transforms', 'astropy.coordinates.builtin_frames.intermediate_rotation_transforms', 'astropy.coordinates.builtin_frames.ecliptic_transforms', 'astropy.coordinates.builtin_frames.lsr', 'astropy.coordinates.builtin_frames', 'astropy.coordinates.sky_coordinate_parsers', 'astropy.coordinates.sky_coordinate', 'astropy.coordinates.name_resolve', 'astropy.coordinates.matching', 'astropy.coordinates.funcs', 'astropy.coordinates.calculation', 'astropy.coordinates.solar_system', 'astropy.coordinates.spectral_quantity', 'astropy.coordinates.spectral_coordinate', 'astropy.coordinates.angle_utilities', 'astropy.coordinates', 'sbpy.exceptions', 'sbpy.data.core', 'sbpy.data.decorators', 'astroquery.version', 'astroquery._astropy_init', 'astroquery.logger', 'astroquery', 'keyring.py312compat', 'keyring.credentials', 'keyring.errors', 'keyring.util', 'jaraco', 'jaraco.classes', 'jaraco.classes.properties', 'keyring._compat', 'keyring.backend', 'keyring.util.platform_', 'keyring.backends', 'keyring.backends.fail', 'keyring.core', 'keyring', 'astroquery.utils.progressbar', 'astroquery.exceptions', 'astroquery.utils.commons', 'astroquery.utils.download_file_list', 'astroquery.utils.class_or_instance', 'astroquery.utils.docstr_chompers', 'astroquery.utils.process_asyncs', 'astroquery.utils', 'astroquery.utils.system_tools', 'astroquery.query', 'astroquery.jplhorizons.core', 'astroquery.jplhorizons', 'soupsieve.__meta__', 'soupsieve.util', 'soupsieve.pretty', 'soupsieve.css_types', 'soupsieve.css_match', 'soupsieve.css_parser', 'soupsieve', 'bs4.dammit', 'bs4.formatter', 'bs4.element', '_markupbase', 'html.parser', 'bs4.builder._htmlparser', 'six.moves.urllib', 'webencodings.labels', 'encodings.utf_16_le', 'encodings.utf_16_be', 'webencodings', 'html5lib.constants', 'xml.etree', 'xml.etree.ElementPath', '_elementtree', 'xml.etree.ElementTree', 'html5lib._utils', 'html5lib._inputstream', 'html5lib._trie._base', 'html5lib._trie.py', 'html5lib._trie', 'html5lib._tokenizer', 'html5lib.treebuilders', 'html5lib.treebuilders.base', 'html5lib.html5parser', 'html5lib.treewalkers', 'xml.sax.handler', 'xml.sax._exceptions', 'xml.sax.xmlreader', 'xml.sax', 'xml.sax.saxutils', 'html5lib.serializer', 'html5lib', 'bs4.builder._html5lib', 'lxml', 'lxml._elementpath', 'lxml.etree', 'bs4.builder._lxml', 'bs4.builder', 'bs4', 'astroquery.mpc.core', 'astroquery.mpc', 'astroquery.imcce.core', 'astroquery.imcce', 'pyoorb', 'sbpy.bib.core', 'sbpy.bib', 'sbpy.data.orbit', 'sbpy.data.ephem', 'astroquery.jplsbdb.core', 'astroquery.jplsbdb', 'astroquery.jplspec.lookup_table', 'astroquery.jplspec.core', 'astroquery.jplspec', 'sbpy.data.phys', 'sbpy.data.obs', 'sbpy.data.names', 'sbpy.data', 'scripting.script_runner', 'tlc.tlc', 'saao', 'saao.utils', 'saao.utils.loggingutils', 'app', 'webassets.ext', 'jinja2.ext', 'webassets.ext.jinja2', 'flask_sqlalchemy.cli', 'sqlalchemy.dialects.sqlite.json', 'sqlalchemy.dialects.sqlite.base', 'sqlalchemy.dialects.sqlite.pysqlite', 'sqlalchemy.dialects.sqlite.aiosqlite', 'sqlalchemy.dialects.sqlite.pysqlcipher', 'sqlalchemy.dialects.sqlite.dml', 'sqlalchemy.dialects.sqlite', '_sqlite3', 'sqlite3.dbapi2', 'sqlite3', 'geventwebsocket.protocols', 'geventwebsocket.protocols.base', 'geventwebsocket.exceptions', 'geventwebsocket.resource', 'geventwebsocket._compat', 'geventwebsocket.utf8validator', 'geventwebsocket.websocket', 'geventwebsocket.logging', 'geventwebsocket.handler', 'geventwebsocket.server', 'geventwebsocket', 'engineio.async_drivers.gevent', 'weather.sdk', 'thrift.protocol.TCompactProtocol', 'weather.sdk.ttypes', 'weather.sdk.WeatherService', 'weather.sdk.client', 'gevent.resolver._addresses', 'gevent.resolver', 'gevent.resolver.thread', 'gevent.util', 'gevent._threading', 'concurrent.futures.thread', 'gevent.threadpool', 'lesedi.sdk.Service', 'lesedi.sdk.constants', 'lesedi.sdk.client', 'lesedi.sdk.telescope', 'mookodi.sdk.instrument', 'astropy.visualization', 'astropy.stats._stats', 'astropy.stats.funcs', 'astropy.stats.biweight', 'astropy.stats._fast_sigma_clip', 'astropy.stats.sigma_clipping', 'astropy.stats.jackknife', 'astropy.stats.circstats', 'astropy.stats.bayesian_blocks', 'astropy.stats.histogram', 'astropy.stats.info_theory', 'astropy.stats.spatial', 'astropy.timeseries.core', 'astropy.timeseries.sampled', 'astropy.timeseries.binned', 'astropy.timeseries.io.kepler', 'astropy.timeseries.io', 'astropy.timeseries.downsample', 'astropy.timeseries.periodograms.base', 'astropy.timeseries.periodograms.lombscargle.implementations.slow_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.utils', 'astropy.timeseries.periodograms.lombscargle.implementations.fast_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.scipy_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.mle', 'astropy.timeseries.periodograms.lombscargle.implementations.chi2_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.fastchi2_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.cython_impl', 'astropy.timeseries.periodograms.lombscargle.implementations.main', 'astropy.timeseries.periodograms.lombscargle.implementations', 'astropy.timeseries.periodograms.lombscargle._statistics', 'scipy._lib._testutils', 'scipy._lib', 'scipy._lib.deprecation', 'scipy.__config__', 'scipy.version', 'scipy._distributor_init', 'scipy._lib._pep440', 'scipy._lib._ccallback_c', 'scipy._lib._ccallback', 'scipy', 'astropy.timeseries.periodograms.lombscargle.core', 'astropy.timeseries.periodograms.lombscargle', 'astropy.timeseries.periodograms.bls._impl', 'astropy.timeseries.periodograms.bls.methods', 'astropy.timeseries.periodograms.bls.core', 'astropy.timeseries.periodograms.bls', 'astropy.timeseries.periodograms', 'astropy.timeseries', 'astropy.stats.lombscargle', 'astropy.stats.bls', 'astropy.stats', 'astropy.visualization.hist', 'astropy.visualization.transform', 'astropy.visualization.interval', 'astropy.visualization.mpl_normalize', 'astropy.visualization.stretch', 'matplotlib', 'matplotlib._api.deprecation', 'matplotlib._api', 'matplotlib._version', 'matplotlib._c_internal_utils', 'matplotlib.cbook', 'matplotlib.docstring', 'PIL._version', 'PIL', 'PIL.ImageMode', 'PIL.TiffTags', 'PIL._binary', 'PIL._util', 'PIL._imaging', 'cffi.lock', 'cffi.error', 'cffi.model', 'cffi.api', 'cffi', 'PIL.Image', 'PIL.ImageChops', 'PIL.ImageFile', 'PIL.GimpGradientFile', 'PIL.GimpPaletteFile', 'PIL.ImageColor', 'PIL.PaletteFile', 'PIL.ImagePalette', 'PIL.ImageSequence', 'PIL.PngImagePlugin', 'matplotlib._path', 'matplotlib.bezier', 'matplotlib.path', 'matplotlib.transforms', 'matplotlib.ticker', 'matplotlib.scale', 'matplotlib._color_data', 'matplotlib.colors', 'pyparsing.util', 'pyparsing.unicode', 'pyparsing.exceptions', 'pyparsing.actions', 'pyparsing.results', 'pyparsing.core', 'pyparsing.helpers', 'pyparsing.testing', 'pyparsing.common', 'pyparsing', 'matplotlib.fontconfig_pattern', 'matplotlib._enums', 'cycler', 'matplotlib.rcsetup', 'matplotlib.ft2font', 'kiwisolver._cext', 'kiwisolver']
2025-07-21T16:58:54.782 [DEBUG] [MainThread] [__init__.py] [wrapper()] CACHEDIR=/root/.cache/matplotlib
2025-07-21T16:58:54.784 [DEBUG] [MainThread] [font_manager.py] [_load_fontmanager()] Using fontManager instance from /root/.cache/matplotlib/fontlist-v330.json
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [tlc.py] [setup_instruments()] Import successful
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [tlc.py] [setup_instruments()] Creating instrument instance
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [instrument.py] [__init__()] In Instrument __init__
2025-07-21T16:58:55.198 [INFO] [MainThread] [instrument.py] [__init__()] Setting self.remote_host to mookodi.suth.saao.ac.za
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [instrument.py] [__init__()] Finished Instrument __init__
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [tlc.py] [setup_instruments()] Instrument instance successfully created
2025-07-21T16:58:55.198 [DEBUG] [MainThread] [tlc.py] [setup_instruments()] Instrument mok at mookodi.suth.saao.ac.za initialised
2025-07-21T16:58:55.198 [INFO] [MainThread] [telescope.py] [tcsclient()] Telescope client instance stale or absent. (Re)connecting...
2025-07-21T16:58:55.198 [INFO] [MainThread] [telescope.py] [tcsclient()] Connected to telescope client
2025-07-21T16:58:55.199 [DEBUG] [MainThread] [tlc.py] [get_current_instrument()] The instrument currently selected on the telescope is Mookodi
2025-07-21T16:58:55.199 [DEBUG] [MainThread] [tlc.py] [get_current_instrument()] Full names: {0: 'Mookodi'}
2025-07-21T16:58:55.199 [DEBUG] [MainThread] [tlc.py] [get_current_instrument()] Current instrument is Mookodi at index 0
2025-07-21T16:58:55.200 [INFO] [MainThread] [tlc.py] [set_current_instrument()] Current instrument is now mok (index 0)
2025-07-21T16:58:55.203 [ERROR] [Dummy-1] [base_server.py] [_log_error_once()] Invalid session fFnpa1o0ryW3ksWHAAAE (further occurrences of this error will be logged with level INFO)
2025-07-21T16:58:55.204 [INFO] [Dummy-2] [socket.py] [send()] eifpVKeudJUqzOd_AAAA: Sending packet OPEN data {'sid': 'eifpVKeudJUqzOd_AAAA', 'upgrades': ['websocket'], 'pingTimeout': 20000, 'pingInterval': 25000}
2025-07-21T16:58:55.215 [INFO] [Dummy-2] [socket.py] [receive()] eifpVKeudJUqzOd_AAAA: Received packet MESSAGE data 0
2025-07-21T16:58:55.215 [INFO] [Dummy-2] [socket.py] [send()] eifpVKeudJUqzOd_AAAA: Sending packet MESSAGE data 0{"sid":"nMccIFevBzpSRqHXAAAB"}
2025-07-21T16:58:55.224 [INFO] [Dummy-3] [socket.py] [handle_get_request()] eifpVKeudJUqzOd_AAAA: Received request to upgrade to websocket
2025-07-21T16:59:20.206 [INFO] [Dummy-4] [socket.py] [send()] eifpVKeudJUqzOd_AAAA: Sending packet PING data None
2025-07-21T16:59:20.218 [INFO] [Dummy-5] [socket.py] [receive()] eifpVKeudJUqzOd_AAAA: Received packet PONG data 
2025-07-21T16:59:45.221 [INFO] [Dummy-6] [socket.py] [send()] eifpVKeudJUqzOd_AAAA: Sending packet PING data None
2025-07-21T16:59:45.235 [INFO] [Dummy-7] [socket.py] [receive()] eifpVKeudJUqzOd_AAAA: Received packet PONG data 
