import supervisor.xmlrpc # type: ignore[import]
-from knot_resolver.compat.asyncio import async_in_a_thread
from knot_resolver.controller.exceptions import SubprocessControllerException, SubprocessControllerExecException
from knot_resolver.controller.interface import (
KresID,
from knot_resolver.manager.constants import supervisord_config_file, supervisord_pid_file, supervisord_sock_file
from knot_resolver.utils import which
from knot_resolver.utils.async_utils import call, readfile
+from knot_resolver.utils.compat.asyncio import async_in_a_thread
logger = logging.getLogger(__name__)
from pathlib import Path
from typing import NoReturn
-from knot_resolver import compat
from knot_resolver.constants import CONFIG_FILE_PATH_DEFAULT, CONFIG_FILE_PATH_ENV_VAR, VERSION
from knot_resolver.manager.logging import logger_startup
from knot_resolver.manager.server import start_server
+from knot_resolver.utils import compat
def parse_args() -> argparse.Namespace:
from subprocess import SubprocessError
from typing import Any, Callable, List, Optional
-from knot_resolver.compat.asyncio import create_task
from knot_resolver.constants import FIX_COUNTER_ATTEMPTS_MAX, FIX_COUNTER_DECREASE_INTERVAL_SEC, WATCHDOG_INTERVAL_SEC
from knot_resolver.controller.exceptions import SubprocessControllerException
from knot_resolver.controller.interface import Subprocess, SubprocessController, SubprocessStatus, SubprocessType
from knot_resolver.controller.registered_workers import command_registered_workers, get_registered_workers_kresids
from knot_resolver.datamodel import KresConfig
from knot_resolver.manager.config_store import ConfigStore, only_on_real_changes_update, only_on_real_changes_verifier
+from knot_resolver.utils.compat.asyncio import create_task
from knot_resolver.utils.functional import Result
from knot_resolver.utils.modeling.types import NoneType
from aiohttp.web_response import json_response
from aiohttp.web_runner import AppRunner, TCPSite, UnixSite
-from knot_resolver.compat import asyncio as asyncio_compat
from knot_resolver.constants import CONFIG_FILE_PATH_DEFAULT, PID_FILE_NAME
from knot_resolver.controller import get_best_controller_implementation
from knot_resolver.controller.exceptions import SubprocessControllerExecException
from knot_resolver.utils import custom_atexit as atexit
from knot_resolver.utils import ignore_exceptions_optional
from knot_resolver.utils.async_utils import readfile
+from knot_resolver.utils.compat import asyncio as asyncio_compat
from knot_resolver.utils.etag import structural_etag
from knot_resolver.utils.functional import Result
from knot_resolver.utils.modeling.exceptions import AggregateDataValidationError, DataParsingError, DataValidationError
import logging
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple
-from knot_resolver import compat
from knot_resolver.controller.registered_workers import command_registered_workers, get_registered_workers_kresids
from knot_resolver.datamodel.config_schema import KresConfig
from knot_resolver.manager.config_store import ConfigStore, only_on_real_changes_update
+from knot_resolver.utils import compat
from knot_resolver.utils.functional import Result
from knot_resolver.utils.modeling.parsing import DataFormat
from threading import Thread
from typing import Any, Dict, Generic, List, Optional, TypeVar, Union
-from knot_resolver.compat.asyncio import to_thread
+from knot_resolver.utils.compat.asyncio import to_thread
def unblock_signals():
['knot_resolver',
'knot_resolver.client',
'knot_resolver.client.commands',
- 'knot_resolver.compat',
'knot_resolver.controller',
'knot_resolver.controller.supervisord',
'knot_resolver.controller.supervisord.plugin',
'knot_resolver.datamodel.types',
'knot_resolver.manager',
'knot_resolver.utils',
+ 'knot_resolver.utils.compat',
'knot_resolver.utils.modeling']
package_data = \