implement 'extension-map' option (#318)

pull/2278/head
Mike Fährmann 4 years ago
parent 98a4d86a01
commit e3480bc8de
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -183,6 +183,25 @@ Description
escaped with backslashes, e.g. ``"\\[\\]"`` escaped with backslashes, e.g. ``"\\[\\]"``
extractor.*.extension-map
-------------------------
Type
``object``
Default
``null``
Example
.. code:: json
{
"jpeg": "jpg",
"jpe" : "jpg",
"jfif": "jpg",
"jif" : "jpg",
"jfi" : "jpg"
}
Description
A JSON ``object`` mapping filename extensions to alternatives.
extractor.*.skip extractor.*.skip
---------------- ----------------
Type Type

@ -723,6 +723,12 @@ class PathFormat():
directory_fmt = extractor.config("directory", extractor.directory_fmt) directory_fmt = extractor.config("directory", extractor.directory_fmt)
kwdefault = extractor.config("keywords-default") kwdefault = extractor.config("keywords-default")
extension_map = extractor.config("extension-map")
if extension_map is None:
# TODO: better default value in 1.16.0
extension_map = {}
self.extension_map = extension_map.get
try: try:
self.filename_formatter = Formatter( self.filename_formatter = Formatter(
filename_fmt, kwdefault).format_map filename_fmt, kwdefault).format_map
@ -850,7 +856,9 @@ class PathFormat():
"""Set general filename data""" """Set general filename data"""
self.kwdict = kwdict self.kwdict = kwdict
self.temppath = self.prefix = "" self.temppath = self.prefix = ""
self.extension = kwdict["extension"]
ext = kwdict["extension"]
kwdict["extension"] = self.extension = self.extension_map(ext, ext)
if self.extension: if self.extension:
self.build_path() self.build_path()
@ -859,6 +867,7 @@ class PathFormat():
def set_extension(self, extension, real=True): def set_extension(self, extension, real=True):
"""Set filename extension""" """Set filename extension"""
extension = self.extension_map(extension, extension)
if real: if real:
self.extension = extension self.extension = extension
self.kwdict["extension"] = self.prefix + extension self.kwdict["extension"] = self.prefix + extension

Loading…
Cancel
Save