MCPcopy Create free account
hub / github.com/ipython/ipython / class_config_rst_doc

Function class_config_rst_doc

docs/autogen_config.py:33–81  ·  view source on GitHub ↗

Generate rST documentation for this class' config options. Excludes traits defined on parent classes.

(cls, trait_aliases)

Source from the content-addressed store, hash-verified

31 return ', '.join(fmted)
32
33def class_config_rst_doc(cls, trait_aliases):
34 """Generate rST documentation for this class' config options.
35
36 Excludes traits defined on parent classes.
37 """
38 lines = []
39 classname = cls.__name__
40 for k, trait in sorted(cls.class_traits(config=True).items()):
41 ttype = trait.__class__.__name__
42
43 fullname = classname + '.' + trait.name
44 lines += ['.. configtrait:: ' + fullname,
45 ''
46 ]
47
48 help = trait.help.rstrip() or 'No description'
49 lines.append(indent(inspect.cleandoc(help), 4) + '\n')
50
51 # Choices or type
52 if 'Enum' in ttype:
53 # include Enum choices
54 lines.append(indent(
55 ':options: ' + ', '.join('``%r``' % x for x in trait.values), 4))
56 else:
57 lines.append(indent(':trait type: ' + ttype, 4))
58
59 # Default value
60 # Ignore boring default values like None, [] or ''
61 if interesting_default_value(trait.default_value):
62 try:
63 dvr = trait.default_value_repr()
64 except Exception:
65 dvr = None # ignore defaults we can't construct
66 if dvr is not None:
67 if len(dvr) > 64:
68 dvr = dvr[:61] + '...'
69 # Double up backslashes, so they get to the rendered docs
70 dvr = dvr.replace('\\n', '\\\\n')
71 lines.append(indent(':default: ``%s``' % dvr, 4))
72
73 # Command line aliases
74 if trait_aliases[fullname]:
75 fmt_aliases = format_aliases(trait_aliases[fullname])
76 lines.append(indent(':CLI option: ' + fmt_aliases, 4))
77
78 # Blank line
79 lines.append('')
80
81 return '\n'.join(lines)
82
83def reverse_aliases(app):
84 """Produce a mapping of trait names to lists of command line aliases.

Callers 1

write_docFunction · 0.85

Calls 3

indentFunction · 0.85
format_aliasesFunction · 0.85

Tested by

no test coverage detected