From af22a19f18f7997a7c7a3ee4ad60f03ab89b0459 Mon Sep 17 00:00:00 2001
From: root <root@localhost.localdomain>
Date: Thu, 30 Sep 2021 17:03:09 +0800
Subject: [PATCH] fix run in python 3.7 environment

---
 mitmproxy/addons/tlsconfig.py | 3 ++-
 mitmproxy/net/server_spec.py  | 5 +++--
 mitmproxy/proxy/commands.py   | 3 ++-
 mitmproxy/proxy/layers/tls.py | 3 ++-
 4 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/mitmproxy/addons/tlsconfig.py b/mitmproxy/addons/tlsconfig.py
index 260be64..ee5efde 100644
--- a/mitmproxy/addons/tlsconfig.py
+++ b/mitmproxy/addons/tlsconfig.py
@@ -1,7 +1,8 @@
 import ipaddress
 import os
 from pathlib import Path
-from typing import List, Optional, TypedDict, Any
+from typing import List, Optional, Any
+from typing_extensions import TypedDict
 
 from OpenSSL import SSL
 from mitmproxy import certs, ctx, exceptions, connection
diff --git a/mitmproxy/net/server_spec.py b/mitmproxy/net/server_spec.py
index f117774..99c5996 100644
--- a/mitmproxy/net/server_spec.py
+++ b/mitmproxy/net/server_spec.py
@@ -3,7 +3,8 @@ Server specs are used to describe an upstream proxy or server.
 """
 import functools
 import re
-from typing import Tuple, Literal, NamedTuple
+from typing import Tuple, NamedTuple
+from typing_extensions import Literal
 
 from mitmproxy.net import check
 
@@ -26,7 +27,7 @@ server_spec_re = re.compile(
 )
 
 
-@functools.lru_cache
+@functools.lru_cache()
 def parse(server_spec: str) -> ServerSpec:
     """
     Parses a server mode specification, e.g.:
diff --git a/mitmproxy/proxy/commands.py b/mitmproxy/proxy/commands.py
index 8f07990..5cada3c 100644
--- a/mitmproxy/proxy/commands.py
+++ b/mitmproxy/proxy/commands.py
@@ -6,7 +6,8 @@ possibly to the master and addons.
 
 The counterpart to commands are events.
 """
-from typing import Literal, Union, TYPE_CHECKING
+from typing import Union, TYPE_CHECKING
+from typing_extensions import Literal
 
 import mitmproxy.hooks
 from mitmproxy.connection import Connection, Server
diff --git a/mitmproxy/proxy/layers/tls.py b/mitmproxy/proxy/layers/tls.py
index c9a2ff2..e2bbb7a 100644
--- a/mitmproxy/proxy/layers/tls.py
+++ b/mitmproxy/proxy/layers/tls.py
@@ -1,7 +1,8 @@
 import struct
 import time
 from dataclasses import dataclass
-from typing import Iterator, Literal, Optional, Tuple
+from typing import Iterator, Optional, Tuple
+from typing_extensions import Literal
 
 from OpenSSL import SSL
 from mitmproxy import certs, connection
-- 
2.27.0

