Use voussoirkit.gentools for chunk_generator.

master
voussoir 2020-11-15 22:10:21 -08:00
parent 7d454a03ac
commit 9ca40c6ae7
2 changed files with 2 additions and 19 deletions

View File

@ -149,24 +149,6 @@ def checkerboard_image(color_1, color_2, image_size, checker_size):
offset = not offset offset = not offset
return image return image
def chunk_sequence(sequence, chunk_length, allow_incomplete=True):
'''
Given a sequence, yield lists of length `chunk_length`.
allow_incomplete:
If True, allow the final chunk to be shorter if the
given sequence is not an exact multiple of `chunk_length`.
If False, the incomplete chunk will be discarded.
'''
import itertools
iterator = iter(sequence)
while True:
chunk = list(itertools.islice(iterator, chunk_length))
if not chunk:
break
if len(chunk) == chunk_length or allow_incomplete:
yield chunk
def collapse_whitespace(s): def collapse_whitespace(s):
s = s.strip() s = s.strip()
s = re.sub(r'\s+', ' ', s) s = re.sub(r'\s+', ' ', s)

View File

@ -10,6 +10,7 @@ import send2trash
import traceback import traceback
from voussoirkit import bytestring from voussoirkit import bytestring
from voussoirkit import gentools
from voussoirkit import hms from voussoirkit import hms
from voussoirkit import pathclass from voussoirkit import pathclass
from voussoirkit import sentinel from voussoirkit import sentinel
@ -961,7 +962,7 @@ class Photo(ObjectBase):
''' '''
Create the filepath that should be the location of our thumbnail. Create the filepath that should be the location of our thumbnail.
''' '''
chunked_id = [''.join(chunk) for chunk in helpers.chunk_sequence(self.id, 3)] chunked_id = [''.join(chunk) for chunk in gentools.chunk_generator(self.id, 3)]
(folder, basename) = (chunked_id[:-1], chunked_id[-1]) (folder, basename) = (chunked_id[:-1], chunked_id[-1])
folder = os.sep.join(folder) folder = os.sep.join(folder)
folder = self.photodb.thumbnail_directory.join(folder) folder = self.photodb.thumbnail_directory.join(folder)