mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 20:27:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
""" Script for mapping module names to their docstrings, will print output in json format. Will look for all python
 | 
						|
    files in the current directory and map filename:docstring
 | 
						|
"""
 | 
						|
 | 
						|
import ast
 | 
						|
import os
 | 
						|
 | 
						|
 | 
						|
class DocstringCollector:
 | 
						|
    def __init__(self):
 | 
						|
        self.docstring_map = {}
 | 
						|
        self.cur_path = os.getcwd()
 | 
						|
        self.files = []
 | 
						|
 | 
						|
    def get_python_files(self):
 | 
						|
        for file in os.listdir(self.cur_path):
 | 
						|
            if file.endswith('.py'):
 | 
						|
                self.files.append(file)
 | 
						|
 | 
						|
    def map_docstrings(self):
 | 
						|
        if len(self.files) > 0:
 | 
						|
            for file in self.files:
 | 
						|
                try:
 | 
						|
                    with open(file, 'r') as f:
 | 
						|
                        tree = ast.parse(f.read())
 | 
						|
                    docstring = ast.get_docstring(tree)
 | 
						|
                    if docstring is not None:
 | 
						|
                        self.docstring_map[file] = docstring
 | 
						|
                except Exception as e:
 | 
						|
                    continue
 | 
						|
                    # print("Exception %s on %s" % (e, file))
 | 
						|
        else:
 | 
						|
            raise ValueError("No python files found in directory")
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
    collector = DocstringCollector()
 | 
						|
    collector.get_python_files()
 | 
						|
    collector.map_docstrings()
 | 
						|
    # print(collector.docstring_map.keys())
 | 
						|
    print(collector.docstring_map)
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    main() |