implement 'extension-map' option (#318)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user