1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
import inspect
import pycparser
import cairocffi
ALL_THE_CODE = ''.join(
line
for module in [
cairocffi, cairocffi.surfaces, cairocffi.patterns,
cairocffi.fonts, cairocffi.context, cairocffi.matrix]
for line in inspect.getsourcelines(module)[0])
class Visitor(pycparser.c_ast.NodeVisitor):
def visit_Decl(self, node): # noqa: N802
for _, child in node.children():
if isinstance(child, pycparser.c_ast.FuncDecl):
if ('cairo.' + node.name) not in ALL_THE_CODE and not (
node.name.endswith('user_data')):
print(node.name)
break
print('cairo functions never used in cairocffi:\n')
Visitor().visit(pycparser.CParser().parse(cairocffi.constants._CAIRO_HEADERS))
|