aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/utils
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-12-28 13:39:27 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-12-28 14:20:53 +0100
commit0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282 (patch)
tree5e2d59a2f56d002f00b6ba44dc90433efc49ade2 /mitmproxy/utils
parent8185cf27243a7c982ff4c3151045b3d494396740 (diff)
downloadmitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.tar.gz
mitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.tar.bz2
mitmproxy-0929e74b4e82e3ee9ba1d6ddb7a54a68240a4282.zip
fix compat with Python 3.5.0
Diffstat (limited to 'mitmproxy/utils')
-rw-r--r--mitmproxy/utils/typecheck.py21
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: