parent
							
								
									c5b16df772
								
							
						
					
					
						commit
						9ba20fa21a
					
				
				 1 changed files with 41 additions and 0 deletions
			
			
		| @ -0,0 +1,41 @@ | ||||
| #!/usr/bin/env python3 | ||||
| import os, glob | ||||
| import ast | ||||
| import stat | ||||
| import subprocess | ||||
| 
 | ||||
| fouts = set([x.decode('utf-8') for x in subprocess.check_output(['git', 'ls-files']).strip().split()]) | ||||
| 
 | ||||
| pyf = [] | ||||
| for d in ["cereal", "common", "scripts", "selfdrive", "tools"]: | ||||
|   for root, dirs, files in os.walk(d): | ||||
|     for f in files: | ||||
|       if f.endswith(".py"): | ||||
|         pyf.append(os.path.join(root, f)) | ||||
| 
 | ||||
| imps = set() | ||||
| 
 | ||||
| class Analyzer(ast.NodeVisitor): | ||||
|   def visit_Import(self, node): | ||||
|     for alias in node.names: | ||||
|       imps.add(alias.name) | ||||
|     self.generic_visit(node) | ||||
|   def visit_ImportFrom(self, node): | ||||
|     imps.add(node.module) | ||||
|     self.generic_visit(node) | ||||
| 
 | ||||
| tlns = 0 | ||||
| for f in sorted(pyf): | ||||
|   if f not in fouts: | ||||
|     continue | ||||
|   xbit = bool(os.stat(f)[stat.ST_MODE] & stat.S_IXUSR) | ||||
|   src = open(f).read() | ||||
|   lns = len(src.split("\n")) | ||||
|   tree = ast.parse(src) | ||||
|   Analyzer().visit(tree) | ||||
|   print("%5d %s %s" % (lns, f, xbit)) | ||||
|   tlns += lns | ||||
| 
 | ||||
| print("%d lines of parsed openpilot python" % tlns) | ||||
| #print(sorted(list(imps))) | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in new issue