1616import json
1717import urllib
1818from pprint import pformat
19+ from typing import Optional
1920
2021from twisted .internet import defer , reactor
2122from twisted .web .client import Agent , readBody
@@ -85,8 +86,9 @@ def get_json(self, url, args=None):
8586 body = yield readBody (response )
8687 defer .returnValue (json .loads (body ))
8788
88- def _create_put_request (self , url , json_data , headers_dict = {} ):
89+ def _create_put_request (self , url , json_data , headers_dict : Optional [ dict ] = None ):
8990 """Wrapper of _create_request to issue a PUT request"""
91+ headers_dict = headers_dict or {}
9092
9193 if "Content-Type" not in headers_dict :
9294 raise defer .error (RuntimeError ("Must include Content-Type header for PUTs" ))
@@ -95,14 +97,22 @@ def _create_put_request(self, url, json_data, headers_dict={}):
9597 "PUT" , url , producer = _JsonProducer (json_data ), headers_dict = headers_dict
9698 )
9799
98- def _create_get_request (self , url , headers_dict = {} ):
100+ def _create_get_request (self , url , headers_dict : Optional [ dict ] = None ):
99101 """Wrapper of _create_request to issue a GET request"""
100- return self ._create_request ("GET" , url , headers_dict = headers_dict )
102+ return self ._create_request ("GET" , url , headers_dict = headers_dict or {} )
101103
102104 @defer .inlineCallbacks
103105 def do_request (
104- self , method , url , data = None , qparams = None , jsonreq = True , headers = {}
106+ self ,
107+ method ,
108+ url ,
109+ data = None ,
110+ qparams = None ,
111+ jsonreq = True ,
112+ headers : Optional [dict ] = None ,
105113 ):
114+ headers = headers or {}
115+
106116 if qparams :
107117 url = "%s?%s" % (url , urllib .urlencode (qparams , True ))
108118
@@ -123,8 +133,12 @@ def do_request(
123133 defer .returnValue (json .loads (body ))
124134
125135 @defer .inlineCallbacks
126- def _create_request (self , method , url , producer = None , headers_dict = {}):
136+ def _create_request (
137+ self , method , url , producer = None , headers_dict : Optional [dict ] = None
138+ ):
127139 """Creates and sends a request to the given url"""
140+ headers_dict = headers_dict or {}
141+
128142 headers_dict ["User-Agent" ] = ["Synapse Cmd Client" ]
129143
130144 retries_left = 5
0 commit comments