parent
c236ccdc3a
commit
024ab45c18
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