From 8a60e85289e7ceadd6dee750a56d72be328c979a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Gmach?= Date: Tue, 30 Jun 2020 16:28:40 +0200 Subject: [PATCH] Move extension helper functions also to extensions module modified: src/flask_uploads/extensions.py modified: src/flask_uploads/flask_uploads.py --- src/flask_uploads/extensions.py | 30 +++++++++++++++++++++++++++++ src/flask_uploads/flask_uploads.py | 31 ++---------------------------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/flask_uploads/extensions.py b/src/flask_uploads/extensions.py index d09a7ec..52e0067 100644 --- a/src/flask_uploads/extensions.py +++ b/src/flask_uploads/extensions.py @@ -1,5 +1,6 @@ """Extension presets and extension configuration.""" +import os # This contains archive and compression formats (.gz, .bz2, .zip, .tar, # .tgz, .txz, and .7z). @@ -93,3 +94,32 @@ def __init__(self, items): def __contains__(self, item): return item not in self.items + + +def extension(filename): + ext = os.path.splitext(filename)[1] + if ext.startswith('.'): + # os.path.splitext retains . separator + ext = ext[1:] + return ext + + +def lowercase_ext(filename): + """ + This is a helper used by UploadSet.save to provide lowercase extensions for + all processed files, to compare with configured extensions in the same + case. + + .. versionchanged:: 0.1.4 + Filenames without extensions are no longer lowercased, only the + extension is returned in lowercase, if an extension exists. + + :param filename: The filename to ensure has a lowercase extension. + """ + if '.' in filename: + main, ext = os.path.splitext(filename) + return main + ext.lower() + # For consistency with os.path.splitext, + # do not treat a filename without an extension as an extension. + # That is, do not return filename.lower(). + return filename diff --git a/src/flask_uploads/flask_uploads.py b/src/flask_uploads/flask_uploads.py index 7e5d802..6f9d468 100644 --- a/src/flask_uploads/flask_uploads.py +++ b/src/flask_uploads/flask_uploads.py @@ -22,35 +22,8 @@ from .exceptions import UploadNotAllowed from .extensions import DEFAULTS - - -def extension(filename): - ext = os.path.splitext(filename)[1] - if ext.startswith('.'): - # os.path.splitext retains . separator - ext = ext[1:] - return ext - - -def lowercase_ext(filename): - """ - This is a helper used by UploadSet.save to provide lowercase extensions for - all processed files, to compare with configured extensions in the same - case. - - .. versionchanged:: 0.1.4 - Filenames without extensions are no longer lowercased, only the - extension is returned in lowercase, if an extension exists. - - :param filename: The filename to ensure has a lowercase extension. - """ - if '.' in filename: - main, ext = os.path.splitext(filename) - return main + ext.lower() - # For consistency with os.path.splitext, - # do not treat a filename without an extension as an extension. - # That is, do not return filename.lower(). - return filename +from .extensions import extension +from .extensions import lowercase_ext def addslash(url):