Generate rST documentation for this class' config options. Excludes traits defined on parent classes.
(cls: type[HasTraits], trait_aliases: dict[str, t.Any])
| 70 | |
| 71 | |
| 72 | def class_config_rst_doc(cls: type[HasTraits], trait_aliases: dict[str, t.Any]) -> str: |
| 73 | """Generate rST documentation for this class' config options. |
| 74 | |
| 75 | Excludes traits defined on parent classes. |
| 76 | """ |
| 77 | lines = [] |
| 78 | classname = cls.__name__ |
| 79 | for _, trait in sorted(cls.class_traits(config=True).items()): |
| 80 | ttype = trait.__class__.__name__ |
| 81 | |
| 82 | fullname = classname + "." + (trait.name or "") |
| 83 | lines += [".. configtrait:: " + fullname, ""] |
| 84 | |
| 85 | help = trait.help.rstrip() or "No description" |
| 86 | lines.append(indent(dedent(help)) + "\n") |
| 87 | |
| 88 | # Choices or type |
| 89 | if "Enum" in ttype: |
| 90 | # include Enum choices |
| 91 | lines.append(indent(":options: " + ", ".join("``%r``" % x for x in trait.values))) # type:ignore[attr-defined] |
| 92 | else: |
| 93 | lines.append(indent(":trait type: " + ttype)) |
| 94 | |
| 95 | # Default value |
| 96 | # Ignore boring default values like None, [] or '' |
| 97 | if interesting_default_value(trait.default_value): |
| 98 | try: |
| 99 | dvr = trait.default_value_repr() |
| 100 | except Exception: |
| 101 | dvr = None # ignore defaults we can't construct |
| 102 | if dvr is not None: |
| 103 | if len(dvr) > 64: |
| 104 | dvr = dvr[:61] + "..." |
| 105 | # Double up backslashes, so they get to the rendered docs |
| 106 | dvr = dvr.replace("\\n", "\\\\n") |
| 107 | lines.append(indent(":default: ``%s``" % dvr)) |
| 108 | |
| 109 | # Command line aliases |
| 110 | if trait_aliases[fullname]: |
| 111 | fmt_aliases = format_aliases(trait_aliases[fullname]) |
| 112 | lines.append(indent(":CLI option: " + fmt_aliases)) |
| 113 | |
| 114 | # Blank line |
| 115 | lines.append("") |
| 116 | |
| 117 | return "\n".join(lines) |
| 118 | |
| 119 | |
| 120 | def reverse_aliases(app: Application) -> dict[str, list[str]]: |
no test coverage detected
searching dependent graphs…