From: Aleš Mrázek Date: Thu, 29 Aug 2024 13:07:28 +0000 (+0200) Subject: python/knot_resolver: removed unnecessary use of typing_extensions lib X-Git-Tag: v6.0.9~18^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c33492d3c0ff0bc180919f167e3368db45cb6ff3;p=thirdparty%2Fknot-resolver.git python/knot_resolver: removed unnecessary use of typing_extensions lib Since we support python 3.8 and higher, there is no need for backwards support for most of the features we use in the standard typing library. --- diff --git a/python/knot_resolver/client/commands/config.py b/python/knot_resolver/client/commands/config.py index add172722..c3c976e46 100644 --- a/python/knot_resolver/client/commands/config.py +++ b/python/knot_resolver/client/commands/config.py @@ -1,9 +1,7 @@ import argparse import sys from enum import Enum -from typing import List, Optional, Tuple, Type - -from typing_extensions import Literal +from typing import List, Literal, Optional, Tuple, Type from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command from knot_resolver.utils.modeling.parsing import DataFormat, parse_json, try_to_parse diff --git a/python/knot_resolver/controller/supervisord/config_file.py b/python/knot_resolver/controller/supervisord/config_file.py index 409c53875..f9b80f919 100644 --- a/python/knot_resolver/controller/supervisord/config_file.py +++ b/python/knot_resolver/controller/supervisord/config_file.py @@ -1,10 +1,10 @@ import logging import os +from typing import Literal from dataclasses import dataclass from pathlib import Path from jinja2 import Template -from typing_extensions import Literal from knot_resolver.constants import ( kres_cache_gc_executable, diff --git a/python/knot_resolver/controller/supervisord/plugin/patch_logger.py b/python/knot_resolver/controller/supervisord/plugin/patch_logger.py index 411f232e4..b5f966177 100644 --- a/python/knot_resolver/controller/supervisord/plugin/patch_logger.py +++ b/python/knot_resolver/controller/supervisord/plugin/patch_logger.py @@ -4,12 +4,11 @@ import os import sys import traceback -from typing import Any +from typing import Any, Literal from supervisor.dispatchers import POutputDispatcher from supervisor.loggers import LevelsByName, StreamHandler, SyslogHandler from supervisor.supervisord import Supervisor -from typing_extensions import Literal FORWARD_LOG_LEVEL = LevelsByName.CRIT # to make sure it's always printed diff --git a/python/knot_resolver/datamodel/cache_schema.py b/python/knot_resolver/datamodel/cache_schema.py index eca36bf22..c78d831ef 100644 --- a/python/knot_resolver/datamodel/cache_schema.py +++ b/python/knot_resolver/datamodel/cache_schema.py @@ -1,6 +1,4 @@ -from typing import List, Optional, Union - -from typing_extensions import Literal +from typing import List, Literal, Optional, Union from knot_resolver.datamodel.templates import template_from_str from knot_resolver.datamodel.types import ( diff --git a/python/knot_resolver/datamodel/config_schema.py b/python/knot_resolver/datamodel/config_schema.py index e703f7a92..50d060c49 100644 --- a/python/knot_resolver/datamodel/config_schema.py +++ b/python/knot_resolver/datamodel/config_schema.py @@ -1,9 +1,7 @@ import logging import os import socket -from typing import Any, Dict, List, Optional, Tuple, Union - -from typing_extensions import Literal +from typing import Any, Dict, List, Literal, Optional, Tuple, Union from knot_resolver.constants import RUN_DIR_DEFAULT, API_SOCK_PATH_DEFAULT, WORKERS_MAX_DEFAULT diff --git a/python/knot_resolver/datamodel/forward_schema.py b/python/knot_resolver/datamodel/forward_schema.py index 96c0f048f..9c8cc00ab 100644 --- a/python/knot_resolver/datamodel/forward_schema.py +++ b/python/knot_resolver/datamodel/forward_schema.py @@ -1,6 +1,4 @@ -from typing import Any, List, Optional, Union - -from typing_extensions import Literal +from typing import Any, List, Literal, Optional, Union from knot_resolver.datamodel.types import ( DomainName, diff --git a/python/knot_resolver/datamodel/local_data_schema.py b/python/knot_resolver/datamodel/local_data_schema.py index 2fe5a03a4..ee2297784 100644 --- a/python/knot_resolver/datamodel/local_data_schema.py +++ b/python/knot_resolver/datamodel/local_data_schema.py @@ -1,6 +1,4 @@ -from typing import Dict, List, Optional - -from typing_extensions import Literal +from typing import Dict, List, Literal, Optional from knot_resolver.datamodel.types import ( DomainName, diff --git a/python/knot_resolver/datamodel/logging_schema.py b/python/knot_resolver/datamodel/logging_schema.py index e2985dd1e..9961eb6c9 100644 --- a/python/knot_resolver/datamodel/logging_schema.py +++ b/python/knot_resolver/datamodel/logging_schema.py @@ -1,24 +1,13 @@ import os -from typing import Any, List, Optional, Set, Type, Union, cast - -from typing_extensions import Literal +from typing import Any, List, Literal, Optional, Set, Type, Union, cast from knot_resolver.datamodel.types import TimeUnit, WritableFilePath from knot_resolver.utils.modeling import ConfigSchema from knot_resolver.utils.modeling.base_schema import is_obj_type_valid -try: - # On Debian 10, the typing_extensions library does not contain TypeAlias. - # We don't strictly need the import for anything except for type checking, - # so this try-except makes sure it works either way. - from typing_extensions import TypeAlias # pylint: disable=ungrouped-imports -except ImportError: - TypeAlias = None # type: ignore - - LogLevelEnum = Literal["crit", "err", "warning", "notice", "info", "debug"] LogTargetEnum = Literal["syslog", "stderr", "stdout"] -LogGroupsEnum: TypeAlias = Literal[ +LogGroupsEnum = Literal[ "manager", "supervisord", "cache-gc", diff --git a/python/knot_resolver/datamodel/monitoring_schema.py b/python/knot_resolver/datamodel/monitoring_schema.py index 3b3ad6d90..f7a49f227 100644 --- a/python/knot_resolver/datamodel/monitoring_schema.py +++ b/python/knot_resolver/datamodel/monitoring_schema.py @@ -1,6 +1,4 @@ -from typing import Union - -from typing_extensions import Literal +from typing import Literal, Union from knot_resolver.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit from knot_resolver.utils.modeling import ConfigSchema diff --git a/python/knot_resolver/datamodel/network_schema.py b/python/knot_resolver/datamodel/network_schema.py index e766d4994..2489601d0 100644 --- a/python/knot_resolver/datamodel/network_schema.py +++ b/python/knot_resolver/datamodel/network_schema.py @@ -1,6 +1,4 @@ -from typing import List, Optional, Union - -from typing_extensions import Literal +from typing import List, Literal, Optional, Union from knot_resolver.datamodel.types import ( EscapedStr32B, diff --git a/python/knot_resolver/datamodel/options_schema.py b/python/knot_resolver/datamodel/options_schema.py index 9230c7f03..a9936eb4c 100644 --- a/python/knot_resolver/datamodel/options_schema.py +++ b/python/knot_resolver/datamodel/options_schema.py @@ -1,4 +1,4 @@ -from typing_extensions import Literal +from typing import Literal from knot_resolver.utils.modeling import ConfigSchema diff --git a/python/knot_resolver/datamodel/slice_schema.py b/python/knot_resolver/datamodel/slice_schema.py index 1586cab7d..f807c2984 100644 --- a/python/knot_resolver/datamodel/slice_schema.py +++ b/python/knot_resolver/datamodel/slice_schema.py @@ -1,6 +1,4 @@ -from typing import List, Optional - -from typing_extensions import Literal +from typing import List, Literal, Optional from knot_resolver.datamodel.policy_schema import ActionSchema from knot_resolver.utils.modeling import ConfigSchema diff --git a/python/knot_resolver/datamodel/types/enums.py b/python/knot_resolver/datamodel/types/enums.py index bc93ae2fe..aca1b4336 100644 --- a/python/knot_resolver/datamodel/types/enums.py +++ b/python/knot_resolver/datamodel/types/enums.py @@ -1,4 +1,4 @@ -from typing_extensions import Literal +from typing import Literal # Policy actions PolicyActionEnum = Literal[ diff --git a/python/knot_resolver/datamodel/view_schema.py b/python/knot_resolver/datamodel/view_schema.py index b1d3adbe1..be678e683 100644 --- a/python/knot_resolver/datamodel/view_schema.py +++ b/python/knot_resolver/datamodel/view_schema.py @@ -1,6 +1,4 @@ -from typing import List, Optional - -from typing_extensions import Literal +from typing import List, Literal, Optional from knot_resolver.datamodel.types import IDPattern, IPNetwork from knot_resolver.utils.modeling import ConfigSchema diff --git a/python/knot_resolver/manager/server.py b/python/knot_resolver/manager/server.py index d95bcf7d5..bf94eed20 100644 --- a/python/knot_resolver/manager/server.py +++ b/python/knot_resolver/manager/server.py @@ -9,14 +9,13 @@ from functools import partial from http import HTTPStatus from pathlib import Path from time import time -from typing import Any, Dict, List, Optional, Set, Union, cast +from typing import Any, Dict, List, Literal, Optional, Set, Union, cast from aiohttp import web from aiohttp.web import middleware from aiohttp.web_app import Application from aiohttp.web_response import json_response from aiohttp.web_runner import AppRunner, TCPSite, UnixSite -from typing_extensions import Literal import knot_resolver.utils.custom_atexit as atexit from knot_resolver import KresBaseException diff --git a/python/knot_resolver/utils/modeling/query.py b/python/knot_resolver/utils/modeling/query.py index aab0be0e4..e7c206029 100644 --- a/python/knot_resolver/utils/modeling/query.py +++ b/python/knot_resolver/utils/modeling/query.py @@ -1,8 +1,7 @@ import copy from abc import ABC, abstractmethod # pylint: disable=[no-name-in-module] -from typing import Any, List, Optional, Tuple, Union +from typing import Any, List, Literal, Optional, Tuple, Union -from typing_extensions import Literal from knot_resolver.utils.modeling.base_schema import BaseSchema, map_object from knot_resolver.utils.modeling.json_pointer import json_ptr_resolve diff --git a/python/knot_resolver/utils/modeling/types.py b/python/knot_resolver/utils/modeling/types.py index 4ce9aecca..c7452672e 100644 --- a/python/knot_resolver/utils/modeling/types.py +++ b/python/knot_resolver/utils/modeling/types.py @@ -4,9 +4,7 @@ import enum import inspect import sys -from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union - -from typing_extensions import Literal +from typing import Any, Dict, List, Literal, Optional, Tuple, Type, TypeVar, Union from .base_generic_type_wrapper import BaseGenericTypeWrapper diff --git a/python/knot_resolver/utils/requests.py b/python/knot_resolver/utils/requests.py index e52e54a35..72d54e135 100644 --- a/python/knot_resolver/utils/requests.py +++ b/python/knot_resolver/utils/requests.py @@ -2,13 +2,11 @@ import errno import socket import sys from http.client import HTTPConnection -from typing import Any, Optional, Union +from typing import Any, Literal, Optional, Union from urllib.error import HTTPError, URLError from urllib.parse import quote, unquote, urlparse from urllib.request import AbstractHTTPHandler, Request, build_opener, install_opener, urlopen -from typing_extensions import Literal - class SocketDesc: def __init__(self, socket_def: str, source: str): diff --git a/tests/manager/utils/modeling/test_base_schema.py b/tests/manager/utils/modeling/test_base_schema.py index c4f94b7c4..25fcf0311 100644 --- a/tests/manager/utils/modeling/test_base_schema.py +++ b/tests/manager/utils/modeling/test_base_schema.py @@ -1,8 +1,7 @@ -from typing import Any, Dict, List, Optional, Tuple, Type, Union +from typing import Any, Dict, List, Literal, Optional, Tuple, Type, Union import pytest from pytest import raises -from typing_extensions import Literal from knot_resolver.utils.modeling import ConfigSchema, parse_json, parse_yaml from knot_resolver.utils.modeling.exceptions import DataDescriptionError, DataValidationError diff --git a/tests/manager/utils/modeling/test_types.py b/tests/manager/utils/modeling/test_types.py index 184eee45a..4b9e62fa9 100644 --- a/tests/manager/utils/modeling/test_types.py +++ b/tests/manager/utils/modeling/test_types.py @@ -1,7 +1,6 @@ -from typing import Any, Dict, List, Tuple, Union +from typing import Any, Dict, List, Literal, Tuple, Union import pytest -from typing_extensions import Literal from knot_resolver.utils.modeling import BaseSchema from knot_resolver.utils.modeling.types import is_list, is_literal