def _generate_constraint(content: SphinxContent, item: Item, item_cache: ItemCache) -> None: constraint = item["appl-config-option-constraint"] count = len(constraint) lines = [] # type: List[str] _resolve_constraint_links(content, constraint, item_cache) if count == 1: if "min" in constraint: _generate_min_max(lines, constraint["min"], "greater") elif "max" in constraint: _generate_min_max(lines, constraint["max"], "less") elif "set" in constraint: _generate_set(lines, constraint["set"]) elif "custom" in constraint: if len(constraint["custom"]) == 1: lines.extend(constraint["custom"][0].strip().split("\n")) else: _start_constraint_list(lines) _generate_item_custom(lines, constraint) elif count == 2 and "min" in constraint and "max" in constraint: minimum = constraint["min"] maximum = constraint["max"] lines.append("The value of this configuration option shall be " f"greater than or equal to {minimum}") lines.append(f"and less than or equal to {maximum}.") else: _start_constraint_list(lines) _generate_item_min(lines, constraint) _generate_item_max(lines, constraint) _generate_item_set(lines, constraint) _generate_item_custom(lines, constraint) content.add_definition_item("VALUE CONSTRAINTS:", lines)
def test_add_definition_item(): sc = SphinxContent() sc.add_definition_item("x", ["y", "z"]) assert sc.content == "\nx\n y\n z\n" sc = SphinxContent() sc.add_definition_item("a", "\n b\n") assert sc.content == "\na\n b\n"
def _generate_initializer_or_integer(content: SphinxContent, item: Item, _option_type: str, item_cache: ItemCache) -> None: default_value = item["appl-config-option-default-value"] if not isinstance(default_value, str) or " " not in default_value: default_value = f"The default value is {default_value}." content.add_definition_item("DEFAULT VALUE:", default_value) _generate_constraint(content, item, item_cache)
def _generate_glossary_content(terms: ItemMap) -> SphinxContent: content = SphinxContent() content.add_header("Glossary", level="*") content.add_blank_line() content.add_line(".. glossary::") content.add_line(":sorted:", indent=1) macro_to_sphinx = MacroToSphinx() macro_to_sphinx.set_terms(terms) for item in sorted(terms.values(), key=lambda x: x["glossary-term"].lower()): text = macro_to_sphinx.substitute(item["text"].strip()) item.register_license_and_copyrights(content) content.add_definition_item(item["glossary-term"], text, indent=1) content.add_licence_and_copyrights() return content
def _generate_content(group: Item, options: ItemMap, item_cache: ItemCache) -> SphinxContent: content = SphinxContent() group.register_license_and_copyrights(content) content.add_header(group["appl-config-group-name"], level="=") content.add_blank_line() content.add_lines(group["appl-config-group-description"]) for item in sorted(options.values(), key=lambda x: x.uid): name = item["appl-config-option-name"] item.register_license_and_copyrights(content) content.add_index_entries([name] + item["appl-config-option-index"]) content.add_blank_line() content.add_label(name) content.add_blank_line() content.add_header(name, level="-") content.add_definition_item("CONSTANT:", f"``{name}``") option_type = item["appl-config-option-type"] content.add_definition_item("OPTION TYPE:", _OPTION_TYPES[option_type]) _OPTION_GENERATORS[option_type](content, item, option_type, item_cache) content.add_definition_item("DESCRIPTION:", item["appl-config-option-description"]) _generate_notes(content, item["appl-config-option-notes"]) content.add_licence_and_copyrights() return content
def _generate_feature(content: SphinxContent, item: Item, option_type: str, _item_cache: ItemCache) -> None: content.add_definition_item("DEFAULT CONFIGURATION:", _OPTION_DEFAULT_CONFIG[option_type](item))
def _generate_notes(content: SphinxContent, notes: Optional[str]) -> None: if not notes: notes = "None." content.add_definition_item("NOTES:", notes)