From: Harmon Date: Wed, 19 May 2021 15:42:18 +0000 (-0500) Subject: Properly close file in API.update_profile_banner X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=ea4563f908883d917dbb3b593fd5bb3b22ffdcb3;p=tweepy.git Properly close file in API.update_profile_banner --- diff --git a/tweepy/api.py b/tweepy/api.py index 856e0ab..f48d460 100644 --- a/tweepy/api.py +++ b/tweepy/api.py @@ -2087,15 +2087,16 @@ class API: :reference: https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_banner """ - if file is not None: - files = {'banner': (filename, file)} - else: - files = {'banner': open(filename, 'rb')} - return self.request( - 'POST', 'account/update_profile_banner', endpoint_parameters=( - 'width', 'height', 'offset_left', 'offset_top' - ), files=files, **kwargs - ) + with contextlib.ExitStack() as stack: + if file is not None: + files = {'banner': (filename, file)} + else: + files = {'banner': stack.enter_context(open(filename, 'rb'))} + return self.request( + 'POST', 'account/update_profile_banner', endpoint_parameters=( + 'width', 'height', 'offset_left', 'offset_top' + ), files=files, **kwargs + ) @payload('user') def update_profile_image(self, filename, *, file=None, **kwargs):