Refactor io doc building code

This commit is contained in:
Tony S Yu
2013-12-05 23:19:44 -06:00
parent 552f24be8e
commit f8ea426608
+16 -13
View File
@@ -15,6 +15,12 @@ from .video import *
reset_plugins()
WRAP_LEN = 73
def _separator(char, lengths):
return [char * separator_length for separator_length in lengths]
def _update_doc(doc):
"""Add a list of plugins to the module docstring, formatted as
@@ -23,24 +29,21 @@ def _update_doc(doc):
"""
from textwrap import wrap
info = [(p, plugin_info(p)) for p in available_plugins if not p == 'test']
info = [(p, plugin_info(p).get('description', 'no description'))
for p in available_plugins if not p == 'test']
col_1_len = max([len(n) for (n, _) in info])
wrap_len = 73
col_2_len = wrap_len - 1 - col_1_len
col_2_len = WRAP_LEN - 1 - col_1_len
# Insert table header
info.insert(0, ('=' * col_1_len, {'description': '=' * col_2_len}))
info.insert(1, ('Plugin', {'description': 'Description'}))
info.insert(2, ('-' * col_1_len, {'description': '-' * col_2_len}))
info.append(('=' * col_1_len, {'description': '=' * col_2_len}))
info.insert(0, _separator('=', (col_1_len, col_2_len)))
info.insert(1, ('Plugin', 'Description'))
info.insert(2, _separator('-', (col_1_len, col_2_len)))
info.append(_separator('-', (col_1_len, col_2_len)))
for (name, meta_data) in info:
wrapped_descr = wrap(meta_data.get('description', ''),
col_2_len)
doc += "%s %s\n" % (name.ljust(col_1_len),
'\n'.join(wrapped_descr))
for (name, plugin_description) in info:
wrapped_descr = wrap(plugin_description, col_2_len)
doc += "%s %s\n" % (name.ljust(col_1_len), '\n'.join(wrapped_descr))
doc = doc.strip()
return doc