diff options
author | Maximilian Hils <git@maximilianhils.com> | 2016-12-28 13:39:27 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2016-12-28 14:20:53 +0100 |
commit | 0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282 (patch) | |
tree | 5e2d59a2f56d002f00b6ba44dc90433efc49ade2 /mitmproxy | |
parent | 8185cf27243a7c982ff4c3151045b3d494396740 (diff) | |
download | mitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.tar.gz mitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.tar.bz2 mitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.zip |
fix compat with Python 3.5.0
Diffstat (limited to 'mitmproxy')
-rw-r--r-- | mitmproxy/utils/typecheck.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/mitmproxy/utils/typecheck.py b/mitmproxy/utils/typecheck.py index 0b29f6a4..20af0150 100644 --- a/mitmproxy/utils/typecheck.py +++ b/mitmproxy/utils/typecheck.py @@ -1,5 +1,4 @@ import typing -import sys def check_type(attr_name: str, value: typing.Any, typeinfo: type) -> None: @@ -25,10 +24,11 @@ def check_type(attr_name: str, value: typing.Any, typeinfo: type) -> None: typename = str(typeinfo) if typename.startswith("typing.Union"): - if sys.version_info < (3, 6): - types = typeinfo.__union_params__ - else: + try: types = typeinfo.__args__ + except AttributeError: + # Python 3.5.x + types = typeinfo.__union_params__ for T in types: try: @@ -39,10 +39,11 @@ def check_type(attr_name: str, value: typing.Any, typeinfo: type) -> None: return raise e elif typename.startswith("typing.Tuple"): - if sys.version_info < (3, 6): - types = typeinfo.__tuple_params__ - else: + try: types = typeinfo.__args__ + except AttributeError: + # Python 3.5.x + types = typeinfo.__tuple_params__ if not isinstance(value, (tuple, list)): raise e @@ -52,7 +53,11 @@ def check_type(attr_name: str, value: typing.Any, typeinfo: type) -> None: check_type("{}[{}]".format(attr_name, i), x, T) return elif typename.startswith("typing.Sequence"): - T = typeinfo.__args__[0] + try: + T = typeinfo.__args__[0] + except AttributeError: + # Python 3.5.0 + T = typeinfo.__parameters__[0] if not isinstance(value, (tuple, list)): raise e for v in value: |