compile modify templates only once

This commit is contained in:
Duncan Overbruck 2021-12-15 14:31:15 +01:00
parent a2030d1a63
commit 795bc2efc1
No known key found for this signature in database
GPG key ID: 335C1D17EC3D6E35

View file

@ -33,7 +33,7 @@ from beets import plugins
from beets import importer
from beets import util
from beets.util import syspath, normpath, ancestry, displayable_path, \
MoveOperation
MoveOperation, functemplate
from beets import library
from beets import config
from beets import logging
@ -1420,9 +1420,10 @@ def modify_items(lib, mods, dels, query, write, move, album, confirm):
print_('Modifying {} {}s.'
.format(len(objs), 'album' if album else 'item'))
changed = []
templates = {key: functemplate.template(value) for key, value in mods.items()}
for obj in objs:
obj_mods = {key: model_cls._parse(key, format(obj, value))
for key, value in mods.items()}
obj_mods = {key: model_cls._parse(key, obj.evaluate_template(templates[key]))
for key in mods.keys()}
if print_and_modify(obj, obj_mods, dels) and obj not in changed:
changed.append(obj)