From 59bef67ff5347099752794e3ac4ff27056bae2c5 Mon Sep 17 00:00:00 2001 From: Vasek Sraier Date: Wed, 27 Oct 2021 17:14:35 +0200 Subject: [PATCH] utils: modelling: fix type processing between different python versions --- manager/knot_resolver_manager/utils/types.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/manager/knot_resolver_manager/utils/types.py b/manager/knot_resolver_manager/utils/types.py index e4047a76d..986da503b 100644 --- a/manager/knot_resolver_manager/utils/types.py +++ b/manager/knot_resolver_manager/utils/types.py @@ -3,6 +3,7 @@ import enum import inspect +import sys from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union from typing_extensions import Literal @@ -39,12 +40,15 @@ def is_union(tp: Any) -> bool: def is_literal(tp: Any) -> bool: - return isinstance(tp, type(Literal)) + if sys.version_info.minor == 6: + return isinstance(tp, type(Literal)) + else: + return getattr(tp, "__origin__", None) == Literal def get_generic_type_arguments(tp: Any) -> List[Any]: default: List[Any] = [] - if is_literal(tp): + if sys.version_info.minor == 6 and is_literal(tp): return getattr(tp, "__values__") else: return getattr(tp, "__args__", default) -- 2.47.3