Skip to content

Commit ac230b7

Browse files
mbrunthalerjairhenrique
authored andcommitted
Call urllib.parse less frequently
1 parent 965f365 commit ac230b7

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

vcr/request.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,15 @@ def __init__(self, method, uri, body, headers):
2727
self.headers = headers
2828
log.debug("Invoking Request %s", self.uri)
2929

30+
@property
31+
def uri(self):
32+
return self._uri
33+
34+
@uri.setter
35+
def uri(self, uri):
36+
self._uri = uri
37+
self.parsed_uri = urlparse(uri)
38+
3039
@property
3140
def headers(self):
3241
return self._headers
@@ -61,30 +70,29 @@ def add_header(self, key, value):
6170

6271
@property
6372
def scheme(self):
64-
return urlparse(self.uri).scheme
73+
return self.parsed_uri.scheme
6574

6675
@property
6776
def host(self):
68-
return urlparse(self.uri).hostname
77+
return self.parsed_uri.hostname
6978

7079
@property
7180
def port(self):
72-
parse_uri = urlparse(self.uri)
73-
port = parse_uri.port
81+
port = self.parsed_uri.port
7482
if port is None:
7583
try:
76-
port = {"https": 443, "http": 80}[parse_uri.scheme]
84+
port = {"https": 443, "http": 80}[self.parsed_uri.scheme]
7785
except KeyError:
7886
pass
7987
return port
8088

8189
@property
8290
def path(self):
83-
return urlparse(self.uri).path
91+
return self.parsed_uri.path
8492

8593
@property
8694
def query(self):
87-
q = urlparse(self.uri).query
95+
q = self.parsed_uri.query
8896
return sorted(parse_qsl(q))
8997

9098
# alias for backwards compatibility

0 commit comments

Comments
 (0)