From 64f74800ee9d82dc6c5fea9ea550e2f17949772c Mon Sep 17 00:00:00 2001 From: IDK Date: Mon, 26 Apr 2021 08:53:12 +0200 Subject: [PATCH] Enhance API inspection tools --- misc/check_zope_usage.py | 30 +++++++++++++++++++++++++----- misc/extract_code_strings.py | 5 +++-- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/misc/check_zope_usage.py b/misc/check_zope_usage.py index 85ffd7ab8..d0b8fa4ab 100755 --- a/misc/check_zope_usage.py +++ b/misc/check_zope_usage.py @@ -5,10 +5,12 @@ Quick method: just grep method name in all constant strings from the source code base. Usage: - check_zope_usage.py methods-list.txt string-constants.txt + check_zope_usage.py publishedmethods.csv string-constants.txt -methods-list.txt : fichier texte, module et un nom de méthode / ligne +publishedmethods.csv : fichier texte, module et un nom de méthode / ligne ZScoUsers get_userlist + comme extrait par zopelistmethods.py + string-constants.txt : les constantes chaines, extraites par extract_code_strings.py "scolars.py" "
  • " @@ -17,12 +19,14 @@ E. Viennet 2021-01-09 from __future__ import print_function import sys +import glob methods_filename = sys.argv[1] constants_filename = sys.argv[2] with open(methods_filename) as f: - methods = [l.strip().split("\t")[1] for l in f] + # module, method_name, signature + methods = [l.strip().split("\t") for l in f] print("%d methods" % len(methods)) @@ -31,9 +35,25 @@ with open(constants_filename) as f: print("%d constants" % len(constants)) +# Add JavaScripts +jss = [] +for fn in glob.glob("static/js/*.js"): + jss.append(open(fn).read()) + +print("%d javascripts" % len(jss)) + +L = [] for method in methods: n = 0 for c in constants: - if method in c: + if method[1] in c: n += 1 - print("%s\t%s" % (method, n)) + nj = 0 + for js in jss: + if method[1] in js: + nj += 1 + L.append(method + [n, nj]) + +# Sort by decreasing popularity +L.sort(key=lambda x: (x[-1] + x[-2], x[1]), reverse=True) +print("\n".join(["%s\t%s\t%s\t%d\t%d" % tuple(l) for l in L])) diff --git a/misc/extract_code_strings.py b/misc/extract_code_strings.py index 01f894e2f..a8a41f45c 100755 --- a/misc/extract_code_strings.py +++ b/misc/extract_code_strings.py @@ -7,7 +7,8 @@ Useful to check if an API function is used in a generated web page ! Usage: extract_code_strings.py source.py ... > string-constants.txt -(replace RT by an existing departement id) + +Résultat utilisé par check_zope_usage.py E. Viennet 2021-01-09 """ @@ -17,7 +18,7 @@ import sys import ast import types -L = [] +# L = [] for srcfilename in sys.argv[1:]: # print("processing %s" % srcfilename, file=sys.stderr) with open(srcfilename) as f: