@@ -39,11 +39,12 @@ def url_safe_escape(instring:str) -> str:
39
39
return urllib .parse .quote (instring , safe = '~-._' )
40
40
41
41
42
- def dump_overwrite (token :dict , output_file : IO [ str ] , input_dict :dict ):
42
+ def dump_overwrite (token :dict , output_filename : str , input_dict :dict ):
43
43
# overwrite fields in previous token (represented by input_dict)
44
44
# that also have values from new token
45
45
input_dict .update (token )
46
- json .dump (input_dict , output_file , indent = 4 )
46
+ with open (output_filename ,'w' ) as output_file :
47
+ json .dump (input_dict , output_file , indent = 4 )
47
48
48
49
49
50
def gmail_redirect_uri (local_port :int ) -> str :
@@ -70,7 +71,7 @@ def gmail_get_token_from_code(client_id:str, client_secret:str, authorization_co
70
71
return json .loads (response )
71
72
72
73
73
- def gmail_get_RequestHandler (client_id :str , client_secret :str , output_file : IO [ str ] , input_dict :dict ) -> type :
74
+ def gmail_get_RequestHandler (client_id :str , client_secret :str , output_filename : str , input_dict :dict ) -> type :
74
75
class GMailRequestHandler (http .server .BaseHTTPRequestHandler ):
75
76
def log_request (self , code :Union [int ,str ]= '-' , size :Union [int ,str ]= '-' ) -> None :
76
77
# Silence request logging.
@@ -97,8 +98,7 @@ def gmail_get_RequestHandler(client_id:str, client_secret:str, output_file:IO[st
97
98
code ,
98
99
self .server .server_address [1 ],
99
100
)
100
- dump_overwrite (token , output_file , input_dict )
101
- output_file .close ()
101
+ dump_overwrite (token , output_filename , input_dict )
102
102
sys .exit (0 )
103
103
104
104
def ExtractCodeFromResponse (self ) -> Optional [str ]:
@@ -115,11 +115,11 @@ def gmail_get_RequestHandler(client_id:str, client_secret:str, output_file:IO[st
115
115
return GMailRequestHandler
116
116
117
117
118
- def get_token_gmail (client_id :str , client_secret :str , scope :str , output_file : IO [ str ] , input_dict :dict ) -> None :
118
+ def get_token_gmail (client_id :str , client_secret :str , scope :str , output_filename : str , input_dict :dict ) -> None :
119
119
request_handler_class = gmail_get_RequestHandler (
120
120
client_id ,
121
121
client_secret ,
122
- output_file ,
122
+ output_filename ,
123
123
input_dict ,
124
124
)
125
125
server = http .server .HTTPServer (('' , 0 ), request_handler_class )
@@ -207,13 +207,13 @@ def outlook_get_initial_tokens_by_device_flow(client_id:str, tenant:str) -> Dict
207
207
}
208
208
209
209
210
- def get_token_outlook (client_id :str , client_secret :str , tenant :str , use_device_flow :bool , output_file : IO [ str ] , input_dict :dict ) -> None :
210
+ def get_token_outlook (client_id :str , client_secret :str , tenant :str , use_device_flow :bool , output_filename : str , input_dict :dict ) -> None :
211
211
if use_device_flow :
212
212
tokens = outlook_get_initial_tokens_by_device_flow (client_id , tenant )
213
213
else :
214
214
code = outlook_get_authorization_code (client_id , tenant )
215
215
tokens = outlook_get_initial_tokens (client_id , client_secret , tenant , code )
216
- dump_overwrite (tokens , output_file , input_dict )
216
+ dump_overwrite (tokens , output_filename , input_dict )
217
217
218
218
##########
219
219
@@ -234,7 +234,6 @@ def subcommand_get_token(args:argparse.Namespace) -> None:
234
234
else :
235
235
with open (args .output_file ,'r' ) as input_file :
236
236
input_dict = json .load (input_file )
237
- args .output_file = open (args .output_file ,'w' )
238
237
if args .service == 'outlook' :
239
238
if not args .tenant :
240
239
parser .error ("'outlook' service requires 'tenant' argument." )
0 commit comments