#!/usr/bin/env python # -*- coding: utf-8 -*- """Extract all string litterals from our code base. Useful to check if an API function is used in a generated web page ! Usage: extract_code_strings.py source.py ... > string-constants.txt Résultat utilisé par check_zope_usage.py E. Viennet 2021-01-09 """ from __future__ import print_function import sys import ast import types # L = [] for srcfilename in sys.argv[1:]: # print("processing %s" % srcfilename, file=sys.stderr) with open(srcfilename) as f: p = ast.parse(f.read()) # L.extend(x.s.strip() for x in ast.walk(p) if x.__class__ == ast.Str) for x in ast.walk(p): if x.__class__ == ast.Str: if isinstance(x.s, str): s = x.s else: s = x.s.encode("UTF-8") # remove tabs and cr s = s.replace("\t", "").replace("\n", "") if len(s): print("%s\t%s" % (srcfilename, s)) # L = sorted(set(L)) # uniq | sort # print("\n".join(L))