From ea4563f908883d917dbb3b593fd5bb3b22ffdcb3 Mon Sep 17 00:00:00 2001 From: Harmon Date: Wed, 19 May 2021 10:42:18 -0500 Subject: [PATCH] Properly close file in API.update_profile_banner --- tweepy/api.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) 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): -- 2.25.1