Support for any iterable type as input data

This commit is contained in:
Andrey Efremov 2024-01-11 14:25:22 +07:00
parent e59ddcae98
commit ed039dc892
2 changed files with 10 additions and 1 deletions

View File

@ -18,3 +18,8 @@ else:
text_type = unicode # noqa: F821
binary_type = str
environb = os.environ
try:
from collections.abc import Iterable as iterable_type
except ImportError:
from collections import Iterable as iterable_type

View File

@ -5,9 +5,13 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from send2trash.compat import text_type, binary_type, iterable_type
def preprocess_paths(paths):
if not isinstance(paths, list):
if isinstance(paths, iterable_type) and not isinstance(paths, (text_type, binary_type)):
paths = list(paths)
elif not isinstance(paths, list):
paths = [paths]
# Convert items such as pathlib paths to strings
paths = [path.__fspath__() if hasattr(path, "__fspath__") else path for path in paths]