diff options
Diffstat (limited to 'grc/python/extract_docs.py')
-rw-r--r-- | grc/python/extract_docs.py | 94 |
1 files changed, 47 insertions, 47 deletions
diff --git a/grc/python/extract_docs.py b/grc/python/extract_docs.py index 1d1c738dcc..b3b87e64ca 100644 --- a/grc/python/extract_docs.py +++ b/grc/python/extract_docs.py @@ -20,55 +20,55 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA import re def _extract(key): - """ - Extract the documentation from the python __doc__ strings. - If multiple modules match, combine the docs. - - Args: - key: the block key - - Returns: - a string with documentation - """ - #extract matches - try: - module_name, constructor_name = key.split('_', 1) - module = __import__('gnuradio.'+module_name) - module = getattr(module, module_name) - except ImportError: - try: - module_name, constructor_name = key.split('_', 1) - module = __import__(module_name) - except: return '' - except: - return '' - pattern = constructor_name.replace('_', '_*').replace('x', '\w') - pattern_matcher = re.compile('^%s\w*$'%pattern) - matches = filter(lambda x: pattern_matcher.match(x), dir(module)) - #combine all matches - doc_strs = list() - for match in matches: - try: - title = ' --- ' + match + ' --- ' - doc_strs.append('\n\n'.join([title, getattr(module, match).__doc__]).strip()) - except: pass - return '\n\n'.join(doc_strs) + """ + Extract the documentation from the python __doc__ strings. + If multiple modules match, combine the docs. + + Args: + key: the block key + + Returns: + a string with documentation + """ + #extract matches + try: + module_name, constructor_name = key.split('_', 1) + module = __import__('gnuradio.'+module_name) + module = getattr(module, module_name) + except ImportError: + try: + module_name, constructor_name = key.split('_', 1) + module = __import__(module_name) + except: return '' + except: + return '' + pattern = constructor_name.replace('_', '_*').replace('x', '\w') + pattern_matcher = re.compile('^%s\w*$'%pattern) + matches = filter(lambda x: pattern_matcher.match(x), dir(module)) + #combine all matches + doc_strs = list() + for match in matches: + try: + title = ' --- ' + match + ' --- ' + doc_strs.append('\n\n'.join([title, getattr(module, match).__doc__]).strip()) + except: pass + return '\n\n'.join(doc_strs) _docs_cache = dict() def extract(key): - """ - Call the private extract and cache the result. - - Args: - key: the block key - - Returns: - a string with documentation - """ - if not _docs_cache.has_key(key): - _docs_cache[key] = _extract(key) - return _docs_cache[key] + """ + Call the private extract and cache the result. + + Args: + key: the block key + + Returns: + a string with documentation + """ + if not _docs_cache.has_key(key): + _docs_cache[key] = _extract(key) + return _docs_cache[key] if __name__ == '__main__': - import sys - print extract(sys.argv[1]) + import sys + print extract(sys.argv[1]) |