From f34c1034f2be889237fef8f3c9e007a963b3d55f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0pa=C4=8Dek?= Date: Fri, 24 Jun 2022 09:55:01 +0200 Subject: [PATCH] Warn about experimental and deprecated options (cherry picked from commit 7b4ad8a3ff4dc8fb5d5da41e713c9111d620753b) --- doc/arm/_ext/iscconf.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/arm/_ext/iscconf.py b/doc/arm/_ext/iscconf.py index 06f3d6c9f5..f4a74897e7 100644 --- a/doc/arm/_ext/iscconf.py +++ b/doc/arm/_ext/iscconf.py @@ -185,6 +185,23 @@ def domain_factory(domainname, domainlabel, todolist, grammar): grammarnode += nodetype(text=grammar_txt) return grammarnode + def format_warnings(self, flags): + """Return node with a warning box about deprecated and + experimental options""" + warn = nodes.warning() + if "deprecated" in flags: + warn += nodes.paragraph( + text=( + "This option is deprecated and will be removed in a future" + " version of BIND." + ) + ) + if "experimental" in flags: + warn += nodes.paragraph( + text="This option is experimental and subject to change." + ) + return warn + def parse_nested_str(self, instr): """Parse string as nested rst syntax and produce a node""" raw = nodes.paragraph(text=instr) @@ -214,10 +231,19 @@ def domain_factory(domainname, domainlabel, todolist, grammar): grammars = iscconf.statement_grammar_groups[name] multi_grammar = len(grammars) > 1 + union_flags = set() for grammar_grp in grammars: + for one_grammar_dict in grammar_grp: + union_flags = union_flags.union( + set(one_grammar_dict.subgrammar.get("_flags", [])) + ) grammarnode = self.format_grammar(multi_grammar, grammar_grp) contentnode.insert(0, grammarnode) + warn = self.format_warnings(union_flags) + if len(warn): + contentnode.insert(0, warn) + name = domainname label = domainlabel