diff --git a/etiquette/helpers.py b/etiquette/helpers.py index c710fc4..9ffaddb 100644 --- a/etiquette/helpers.py +++ b/etiquette/helpers.py @@ -328,18 +328,6 @@ def is_xor(*args): ''' return [bool(a) for a in args].count(True) == 1 -def natural_sorter(x): - ''' - Used for sorting files in 'natural' order instead of lexicographic order, - so that you get 1 2 3 4 5 6 7 8 9 10 11 12 13 ... - instead of 1 10 11 12 13 2 3 4 5 ... - Thank you Mark Byers - http://stackoverflow.com/a/11150413 - ''' - convert = lambda text: int(text) if text.isdigit() else text.lower() - alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)] - return alphanum_key(x) - def now(timestamp=True): ''' Return the current UTC timestamp or datetime object. diff --git a/etiquette/photodb.py b/etiquette/photodb.py index f14f4da..af410b0 100644 --- a/etiquette/photodb.py +++ b/etiquette/photodb.py @@ -17,6 +17,7 @@ from voussoirkit import pathclass from voussoirkit import ratelimiter from voussoirkit import spinal from voussoirkit import sqlhelpers +from voussoirkit import stringtools from voussoirkit import vlogging from . import constants @@ -1569,7 +1570,7 @@ class PDBUtilMixin: same order that the files are listed when natural sorted. This is essentially an aesthetic preference, that when you are viewing the photos sorted by timestamp they are also natural sorted. - See helpers.natural_sorter. + See stringtools.natural_sorter. new_photo_kwargs: A dict of kwargs to pass into every call of new_photo. @@ -1747,7 +1748,7 @@ class PDBUtilMixin: for (current_directory, subdirectories, files) in walk_generator: if natural_sort: - files = sorted(files, key=lambda f: helpers.natural_sorter(f.basename)) + files = sorted(files, key=lambda f: stringtools.natural_sorter(f.basename)) photos = [create_or_fetch_photo(file) for file in files]