|
|
@ -56,7 +56,13 @@ class MetadataPP(PostProcessor):
|
|
|
|
ext = "json"
|
|
|
|
ext = "json"
|
|
|
|
|
|
|
|
|
|
|
|
directory = options.get("directory")
|
|
|
|
directory = options.get("directory")
|
|
|
|
if directory:
|
|
|
|
if isinstance(directory, list):
|
|
|
|
|
|
|
|
self._directory = self._directory_format
|
|
|
|
|
|
|
|
self._directory_formatters = [
|
|
|
|
|
|
|
|
formatter.parse(dirfmt, util.NONE).format_map
|
|
|
|
|
|
|
|
for dirfmt in directory
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
elif directory:
|
|
|
|
self._directory = self._directory_custom
|
|
|
|
self._directory = self._directory_custom
|
|
|
|
sep = os.sep + (os.altsep or "")
|
|
|
|
sep = os.sep + (os.altsep or "")
|
|
|
|
self._metadir = util.expand_path(directory).rstrip(sep) + os.sep
|
|
|
|
self._metadir = util.expand_path(directory).rstrip(sep) + os.sep
|
|
|
@ -147,6 +153,16 @@ class MetadataPP(PostProcessor):
|
|
|
|
def _directory_custom(self, pathfmt):
|
|
|
|
def _directory_custom(self, pathfmt):
|
|
|
|
return os.path.join(pathfmt.realdirectory, self._metadir)
|
|
|
|
return os.path.join(pathfmt.realdirectory, self._metadir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _directory_format(self, pathfmt):
|
|
|
|
|
|
|
|
formatters = pathfmt.directory_formatters
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
pathfmt.directory_formatters = self._directory_formatters
|
|
|
|
|
|
|
|
segments = pathfmt.build_directory(pathfmt.kwdict)
|
|
|
|
|
|
|
|
directory = pathfmt.clean_path(os.sep.join(segments) + os.sep)
|
|
|
|
|
|
|
|
return os.path.join(pathfmt.realdirectory, directory)
|
|
|
|
|
|
|
|
finally:
|
|
|
|
|
|
|
|
pathfmt.directory_formatters = formatters
|
|
|
|
|
|
|
|
|
|
|
|
def _filename(self, pathfmt):
|
|
|
|
def _filename(self, pathfmt):
|
|
|
|
return (pathfmt.filename or "metadata") + "." + self.extension
|
|
|
|
return (pathfmt.filename or "metadata") + "." + self.extension
|
|
|
|
|
|
|
|
|
|
|
|