From f8ea4266082fba1210be270d6ae7607717591978 Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Mon, 18 Nov 2013 22:27:34 -0600 Subject: [PATCH] Refactor io doc building code --- skimage/io/__init__.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/skimage/io/__init__.py b/skimage/io/__init__.py index 350ca202..ed6df313 100644 --- a/skimage/io/__init__.py +++ b/skimage/io/__init__.py @@ -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