Skip to content

Commit

Permalink
refactor: remove unnecessary 'closing' usage for boto3 client (langge…
Browse files Browse the repository at this point in the history
  • Loading branch information
y-omr authored Oct 15, 2024
1 parent 5eb0050 commit 6d2c6ca
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 36 deletions.
11 changes: 5 additions & 6 deletions api/extensions/storage/aliyun_oss_storage.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from collections.abc import Generator
from contextlib import closing

import oss2 as aliyun_s3
from flask import Flask
Expand Down Expand Up @@ -34,15 +33,15 @@ def save(self, filename, data):
self.client.put_object(self.__wrapper_folder_filename(filename), data)

def load_once(self, filename: str) -> bytes:
with closing(self.client.get_object(self.__wrapper_folder_filename(filename))) as obj:
data = obj.read()
obj = self.client.get_object(self.__wrapper_folder_filename(filename))
data = obj.read()
return data

def load_stream(self, filename: str) -> Generator:
def generate(filename: str = filename) -> Generator:
with closing(self.client.get_object(self.__wrapper_folder_filename(filename))) as obj:
while chunk := obj.read(4096):
yield chunk
obj = self.client.get_object(self.__wrapper_folder_filename(filename))
while chunk := obj.read(4096):
yield chunk

return generate()

Expand Down
23 changes: 9 additions & 14 deletions api/extensions/storage/aws_s3_storage.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging
from collections.abc import Generator
from contextlib import closing

import boto3
from botocore.client import Config
Expand Down Expand Up @@ -55,8 +54,7 @@ def save(self, filename, data):

def load_once(self, filename: str) -> bytes:
try:
with closing(self.client) as client:
data = client.get_object(Bucket=self.bucket_name, Key=filename)["Body"].read()
data = self.client.get_object(Bucket=self.bucket_name, Key=filename)["Body"].read()
except ClientError as ex:
if ex.response["Error"]["Code"] == "NoSuchKey":
raise FileNotFoundError("File not found")
Expand All @@ -67,9 +65,8 @@ def load_once(self, filename: str) -> bytes:
def load_stream(self, filename: str) -> Generator:
def generate(filename: str = filename) -> Generator:
try:
with closing(self.client) as client:
response = client.get_object(Bucket=self.bucket_name, Key=filename)
yield from response["Body"].iter_chunks()
response = self.client.get_object(Bucket=self.bucket_name, Key=filename)
yield from response["Body"].iter_chunks()
except ClientError as ex:
if ex.response["Error"]["Code"] == "NoSuchKey":
raise FileNotFoundError("File not found")
Expand All @@ -79,16 +76,14 @@ def generate(filename: str = filename) -> Generator:
return generate()

def download(self, filename, target_filepath):
with closing(self.client) as client:
client.download_file(self.bucket_name, filename, target_filepath)
self.client.download_file(self.bucket_name, filename, target_filepath)

def exists(self, filename):
with closing(self.client) as client:
try:
client.head_object(Bucket=self.bucket_name, Key=filename)
return True
except:
return False
try:
self.client.head_object(Bucket=self.bucket_name, Key=filename)
return True
except:
return False

def delete(self, filename):
self.client.delete_object(Bucket=self.bucket_name, Key=filename)
3 changes: 1 addition & 2 deletions api/extensions/storage/google_cloud_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import io
import json
from collections.abc import Generator
from contextlib import closing

from flask import Flask
from google.cloud import storage as google_cloud_storage
Expand Down Expand Up @@ -43,7 +42,7 @@ def load_stream(self, filename: str) -> Generator:
def generate(filename: str = filename) -> Generator:
bucket = self.client.get_bucket(self.bucket_name)
blob = bucket.get_blob(filename)
with closing(blob.open(mode="rb")) as blob_stream:
with blob.open(mode="rb") as blob_stream:
while chunk := blob_stream.read(4096):
yield chunk

Expand Down
23 changes: 9 additions & 14 deletions api/extensions/storage/oracle_oci_storage.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from collections.abc import Generator
from contextlib import closing

import boto3
from botocore.exceptions import ClientError
Expand Down Expand Up @@ -28,8 +27,7 @@ def save(self, filename, data):

def load_once(self, filename: str) -> bytes:
try:
with closing(self.client) as client:
data = client.get_object(Bucket=self.bucket_name, Key=filename)["Body"].read()
data = self.client.get_object(Bucket=self.bucket_name, Key=filename)["Body"].read()
except ClientError as ex:
if ex.response["Error"]["Code"] == "NoSuchKey":
raise FileNotFoundError("File not found")
Expand All @@ -40,9 +38,8 @@ def load_once(self, filename: str) -> bytes:
def load_stream(self, filename: str) -> Generator:
def generate(filename: str = filename) -> Generator:
try:
with closing(self.client) as client:
response = client.get_object(Bucket=self.bucket_name, Key=filename)
yield from response["Body"].iter_chunks()
response = self.client.get_object(Bucket=self.bucket_name, Key=filename)
yield from response["Body"].iter_chunks()
except ClientError as ex:
if ex.response["Error"]["Code"] == "NoSuchKey":
raise FileNotFoundError("File not found")
Expand All @@ -52,16 +49,14 @@ def generate(filename: str = filename) -> Generator:
return generate()

def download(self, filename, target_filepath):
with closing(self.client) as client:
client.download_file(self.bucket_name, filename, target_filepath)
self.client.download_file(self.bucket_name, filename, target_filepath)

def exists(self, filename):
with closing(self.client) as client:
try:
client.head_object(Bucket=self.bucket_name, Key=filename)
return True
except:
return False
try:
self.client.head_object(Bucket=self.bucket_name, Key=filename)
return True
except:
return False

def delete(self, filename):
self.client.delete_object(Bucket=self.bucket_name, Key=filename)

0 comments on commit 6d2c6ca

Please sign in to comment.