ref: Extract both format variations from format method
This commit is contained in:
parent
39ba0f5508
commit
12fd3271fd
1 changed files with 24 additions and 14 deletions
|
|
@ -32,23 +32,33 @@ class BBTFormatter(papis.format.Formatter):
|
||||||
default: str | None = None,
|
default: str | None = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
if not fmt.startswith("bbt:"):
|
if not fmt.startswith("bbt:"):
|
||||||
fallback_formatter = papis.config.getstring("default-formatter", OPTIONS_SECTION)
|
fallback_formatter = papis.config.getstring(
|
||||||
|
"default-formatter", OPTIONS_SECTION
|
||||||
|
)
|
||||||
|
return self.format_with_fallback(
|
||||||
|
fallback_formatter, fmt, doc, doc_key, additional, default
|
||||||
|
)
|
||||||
|
|
||||||
# NOTE sure would be nice to have a less hacky way of calling another formatter
|
return self.format_with_bbt(doc)
|
||||||
|
|
||||||
|
def format_with_fallback(
|
||||||
|
self,
|
||||||
|
fallback_formatter: str,
|
||||||
|
fmt: str,
|
||||||
|
doc: papis.document.DocumentLike,
|
||||||
|
doc_key: str,
|
||||||
|
additional: dict[str, Any] | None = None,
|
||||||
|
default: str | None = None,
|
||||||
|
) -> str:
|
||||||
_saved = papis.format.FORMATTER
|
_saved = papis.format.FORMATTER
|
||||||
papis.format.FORMATTER = None
|
papis.format.FORMATTER = None
|
||||||
|
fallback_formatted: str = papis.format.get_formatter(fallback_formatter).format(
|
||||||
fallback_formatted: str = papis.format.get_formatter(
|
fmt, doc, doc_key, additional, default
|
||||||
fallback_formatter
|
)
|
||||||
).format(fmt, doc, doc_key, additional, default)
|
|
||||||
|
|
||||||
papis.format.FORMATTER = _saved
|
papis.format.FORMATTER = _saved
|
||||||
return fallback_formatted
|
return fallback_formatted
|
||||||
|
|
||||||
formatted = self.use_bbt(doc)
|
def format_with_bbt(self, doc: papis.document.DocumentLike) -> str:
|
||||||
return formatted
|
|
||||||
|
|
||||||
def use_bbt(self, doc: papis.document.DocumentLike) -> str:
|
|
||||||
author_unfmt = (
|
author_unfmt = (
|
||||||
doc["author_list"][0]["family"]
|
doc["author_list"][0]["family"]
|
||||||
if "author_list" in doc
|
if "author_list" in doc
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue