[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2021-10-27 02:52:56 +00:00
parent 9196210e89
commit 06f5e7094f
2 changed files with 11 additions and 9 deletions

View file

@ -24,8 +24,8 @@ from .helpers import get_flashed_messages as get_flashed_messages
from .helpers import get_template_attribute as get_template_attribute
from .helpers import make_response as make_response
from .helpers import safe_join as safe_join
from .helpers import send_file as send_file
from .helpers import send_chunked_file as send_chunked_file
from .helpers import send_file as send_file
from .helpers import send_from_directory as send_from_directory
from .helpers import stream_with_context as stream_with_context
from .helpers import url_for as url_for

View file

@ -626,38 +626,40 @@ def send_file(
)
)
def send_chunked_file(filepath:str , chunk_size: int = 8192):
""" If you serve binary files,
def send_chunked_file(filepath: str, chunk_size: int = 8192):
"""If you serve binary files,
you should not iterate through lines since
it basically contains only one line, which means you still load the
whole file all at once into the RAM. The only proper
way to read largit checkout files is via chunks with
way to read largit checkout files is via chunks with
this function: read_file_chunks(path, chunk_size)
send every chunks with stream_with_context function
:param filepath: file exists there . If not
provided, error occured.
:param chunk_size: defult size is 8192
"""
name_splited = filepath.split('/')
name_splited = filepath.split("/")
filename = name_splited[len(name_splited) - 1]
def read_file_chunks(path, chunk_size):
with open(path, 'rb') as fd:
with open(path, "rb") as fd:
while 1:
buf = fd.read(chunk_size)
if buf:
yield buf
else:
break
if os.path.isfile(filepath):
return current_app.response_class(
stream_with_context(read_file_chunks(filepath, chunk_size)),
headers={
'Content-Disposition': f'attachment; filename={filename}'
}
headers={"Content-Disposition": f"attachment; filename={filename}"},
)
else:
raise NotFound()
def safe_join(directory: str, *pathnames: str) -> str:
"""Safely join zero or more untrusted path components to a base
directory to avoid escaping the base directory.