From 29e8440ec49dffff698315a1887d3fd62bc1562c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Tue, 13 Jan 2026 22:25:37 +0100 Subject: [PATCH] [formatter] add 'format-operator-dot' option to allow disabling the behavior introduced in commit a79a945494da6aa0bac07e0a000ad9ca60899c48 --- docs/configuration.rst | 16 ++++++++++++++++ gallery_dl/__init__.py | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index a62e1a34..9258a61b 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -9376,6 +9376,22 @@ Description by using a `defaultdict `__ +format-operator-dot +------------------- +Type + ``bool`` +Default + ``true`` +Description + In standard `Format Strings`_, allow the `dot` operator ``.`` + to function as a general access operator + in addition to regular attribute access. + + * ``obj.attribute`` + * ``dict.fieldname`` + * ``list.123`` + + format-separator ---------------- Type diff --git a/gallery_dl/__init__.py b/gallery_dl/__init__.py index 98f8c12a..b28b5896 100644 --- a/gallery_dl/__init__.py +++ b/gallery_dl/__init__.py @@ -120,7 +120,10 @@ def main(): elif filterenv.startswith("default"): util.compile_expression = util.compile_expression_defaultdict - # format string separator + # format string options + if not config.get((), "format-operator-dot", True): + from . import formatter + formatter._attrgetter = formatter.operator.attrgetter if separator := config.get((), "format-separator"): from . import formatter formatter._SEPARATOR = separator